碎碎念
最近闲下来了,整理了下之前做过的实验和大作业,发出来给大家参考一下
实验目的及要求:
理解谓词逻辑知识表示的方法,掌握一阶谓词逻辑知识表示的基本原理,能够利用归结原理求解简单问题。掌握Prolog编程环境,熟悉逻辑推理编写过程。
主要知识点:谓词、原子公式、谓词公式、子句、子句集、空子句、归结原理。
重点:谓词公式、子句集和归结原理的实现。
难点:归结原理的实现。
实验内容:
实验项目1:
机器人搬盒子问题:设在一个房间里,有一个机器人ROBOT
,一个壁橱ALCOVE,一个积木块BOX,两个桌子A和B。开始时,机器人ROBOT在壁橱ALCOVE旁边,且两手空空,桌子A放着积木块BOX,桌子B是空的。机器人可把积木块BOX从一种状态桌子A上变换成另一种状态桌子B上,然后回到壁橱。用归结原理方法求解该问题?实验要求:
1.用谓词公式表示问题的初始状态、目标状态以及机器人操作;
2.将谓词公式转换为子句集;
3. 利用归结原理对子句集中的子句进行归结。
4. 用Prolog实现机器人搬盒子的谓词逻辑。
5. 用Python或其他编程语言实现该问题的求解。
实验项目2:
爱因斯坦逻辑难题(斑马问题):5个不同国家且工作各不相同的人分别住在一条街上的5所房子