【发布时间】:2020-12-13 16:48:22
【问题描述】:
所以在标签 prolog 下我发现了这个谜题 (original post),我想:这在 ASP 中会更好。所以我把这个问题放在这里作为任何想和我一起解决难题的人的问题。我自己找到解决方案后会立即回答这个问题,我很乐意将我的代码与您的代码进行比较。谢谢。
jean 在星期二被杀;唯一的嫌疑人是:
Luc、Paul、Alain、Bernard 和 Louis。
要遵循的规则是:
凶手是一个有杀人动机的人,他拥有一个 枪,而且周二没有不在场证明。
一个不值得信任的人提供的不在场证明不是 接受。
如果某个人对 jean 有特殊兴趣,他就有杀死 jean 的动机 杀了让,否则他要报仇。
有人对杀死 jean 有特殊兴趣,因为他是 jean 财产的受益人,或者如果他拥有 jean 的钱,或者如果 jean 让他犯罪感到惊讶。
以下是调查确定的事实:
卢克有伯纳德提供的周二不在场证明
伯纳德给了保罗周二的不在场证明
路易斯有一个周二的不在场证明,这是卢克提供的
阿兰有一个星期四的不在场证明,这是 Luc 给的
阿兰不是一个值得信赖的人
保罗想报复琼
卢克想报复琼
伯纳德是琼财富的受益者
让是路易斯财富的受益者
路易斯拥有钱给琼
Luc 拥有 Jean 的钱
让看到阿兰犯罪
卢克有一把枪
路易斯有一把枪
阿兰有一把枪
【问题讨论】:
-
这是斑马拼图的变体,您可以在stackoverflow.com/questions/23482224/… 中查看用 ASP 解决此问题的技术
-
@vukk 感谢您的链接。在我看来,这个谜题不仅仅是斑马,因为人们会说谎;这使得在 ASP 中解决更具吸引力
-
@vukk 哦,你是对的。谢谢。
标签: answer-set-programming clingo