Cut (逻辑编程)

✍ dations ◷ 2025-12-03 09:52:00 #Cut (逻辑编程)

Prolog编程中的cut操作,用!表示,该操作总能够成功,但是不能够回溯位于该操作左边的子句。Cut操作被广泛的用于减掉不希望回溯的分支,例如,避免找到程序不需要的额外的答案和避免额外的计算。

应当保守的应用cut操作,当程序不正确会有一种诱惑来插入cut来检验cut能否让程序正确。如果一个测试是不必须的因为有cut来保证这是真的,那么最好在合适的地方加上注释说明这一点。

Cut被某些人认为是有争议的逻辑程序控制方式,因为该操作是因为效率问题被加入的而且不是一个Horn clause.

如果一个cut操作只是为了提高性能,那么它就被称为green cut,例如:

 gamble(X) :- gotmoney(X),!. gamble(X) :- gotcredit(X), + gotmoney(X).

上述操作被称为green cut操作符。!只是简单的告诉Prolog解释器停止寻找其他的答案。但是你会注意到如果gotmoney(X)子句失败的话,那么解释器将会检查第二条规则。第二个规则中的gotmoney(X)似乎显得多余,因为只有当第一个规则失败的时候,第二个规则才会被查看,但是,显式地写上 + gotmoney(X),你就能确保第二个规则总是能正确地工作,即使在第一条规则被恰巧移除或改变的情况下也是正确的。

Green cut的目的是让程序变的效率更高,而不会改变程序的输出。

如果一个cut操作不是green的,那么它就是red cut,例如:

 gamble(X) :- gotmoney(X), !. gamble(X) :- gotcredit(X).

那么程序的运行结果将依赖于cut操作符的位置和关联子句的顺序,这些将决定这个程序的含义。如果任何情况下地一个关联子句被移除了(例如,剪切粘贴的时候的错误),第二个子句将不会表达和上述green cut例子中一样的意思,因为该子句将不能保证 + gotmoney(X)。


相关

  • 棕树蛇Coluber irregularis Merrem, 1802Boiga irregularis Fitzinger, 1826Dipsas irregularis Boie, 1827Triglyphodon irregularis Duméril & Bibron, 1854Dipsadomorphus irr
  • 费景汉费景汉(英语:John C. H. Fei,1923年3月11日-1996年7月19日),北京市人,经济学专家,逝世于台北。
  • 萨宾国家森林萨宾国家森林(英语:Sabine National Forest)位于东德克萨斯州(英语:East Texas)靠近得克萨斯-路易斯安那边界的地方。森林与另外完全位于德克萨斯州的三座国家森林、两片国家草原
  • 锡元锡元,(1851年-?)舒舒觉罗氏, 字会一, 号命三, 满洲镶红旗人,清朝政治人物、同进士出身, 著有《棣华堂文集》。同治癸酉科举人,光绪三年(1877年),参加丁丑科殿试,登进士三甲第15名
  • 锥纹石锥纹石,又称为铁纹石,是一种铁-镍合金的矿物,通常其比例为90:10至95:5,或许还有钴或碳的杂质存在其中。在地球表面,只有在陨石才会自然出现这种合金。它有金属的光泽,颜色为灰色,虽
  • 天草五桥天草五桥是连结熊本县宇土半岛先端之三角港至天草诸岛的大矢野岛、永浦岛、池岛、前岛的五座桥梁的总称。1966年(昭和41年)9月24日,开通。
  • 塔伊兹塔伊兹 (阿拉伯语:تعز‎,转写:)是也门高原地区的一座城市,海拔高度为1,400米。位于也门西南端,著名的红海港口摩卡附近。它是塔伊兹省的首府,2014年人口为2,612,222,是仅次于首
  • 达里奥·弗朗奇蒂达里奥·弗朗奇蒂,MBE(英语:George Dario Marino Franchitti,1973年5月19日-),在苏格兰出生,是一位英国赛车手。他曾经在2007、2010和2012年赢得印第安纳波利斯500大赛。2013年10月6日,弗朗奇蒂在休斯敦站的赛事中发生严重意外,弗兰基蒂的赛车在弯位与另一赛车相撞后,高速撞向围栏,凌空翻转后才停下。至少十三名观众被碎片击中受伤,弗兰基蒂亦需由工作人员抬出赛车送院检查,事后证实他脊椎及右脚踝受伤。达里奥生于苏格兰西洛锡安巴斯盖特,在爱丁堡斯图尔特梅尔维尔学
  • 塞尔吉尼奥·德斯特 塞尔吉尼奥·德斯特(荷兰语:Sergiño Dest,2000年11月03日-),是一名美国职业足球运动员,司职右后卫,阿贾克斯青训,现时由西甲球队巴塞罗那外借至意甲球队AC米兰。德斯特出生于荷兰城市阿尔梅勒,父亲为美国人,母亲为荷兰人,2019年德斯特选择代表美国国家队出赛。2019年夏季转会窗,德斯特是当季首位升上一线队的青年队球员。2019年7月27日,首次为阿贾克斯于克鲁伊夫盾决赛出场,并协助球队以2-0击败PSV埃因霍温,获得职业生涯首冠。2020年夏季转会窗,拜仁慕尼黑和巴塞罗那同时希望
  • 田伟 (军事人物)田伟(1976年-),湖北宣恩人,土家族,中国人民解放军陆军军官,中国共产党党员。西安政治学院军事法学专业毕业。2013年,当选第十二届全国人民代表大会解放军代表。2016年时,为陆军第42集团军某特战旅参谋长。