【发布时间】:2017-02-27 00:49:50
【问题描述】:
我正在做一个项目,我必须构建一个能够生成一堆前提的引擎,并且根据真实情况,告诉我还能推断出什么。给出的例子:
If John plays football then Mary makes cookies.
If Eric listens to rock then john doesn't play Football.
If Eric doesn't listen to rock then john plays Football.
Either Eric listens to rock or Luiza listens to rock.
当给定的真实事实是“Luiza 听摇滚”时,那么解决方案应该是:
Eric listens to rock = false
John plays football = true
Mary makes cookies = true
当真正的事实是“Eric 听摇滚”时,那么解决方案应该是:
Luiza listens to rock = false
Jonh plays football = false
Mary makes cookies = (can't solve)
当真正的事实是“约翰踢足球”时,那么解决方案应该是:
Mary makes cookies = true
Luiza listens to rock = (can't solve)
Jonh plays football = (can't solve)
问题:Prolog 是解决此类问题的正确工具吗?代码示例表示赞赏。
【问题讨论】:
-
是的,Prolog 在这方面会很棒。