实验目的
(1)熟悉谓词逻辑表示法;
(2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。
实验内容
房子里有一只猴子(即机器人),位于a处。b处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的c处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过python语言编程实现猴子摘香蕉问题的求解过程。

'''
猴子摘香蕉问题的Python编程实现
'''
#全局变量i
i=0
def Monkey_go_box(x,y):
    global i
    i=i+1
    print('step:',i,'monkey从',x,'走到'+y)

def Monkey_move_box(x,y):
    global i
    i = i + 1
    print('step:', i, 'monkey把箱子从', x, '运到' + y)

def Monkey_on_box():
    global i
    i = i + 1
    print('step:', i, 'monkey爬上箱子')

def Monkey_get_banana():
    global i
    i = i + 1
    print('step:', i, 'monkey摘到香蕉')


import sys

#读取输入的运行参数,
codeIn=sys.stdin.read()
codeInList=codeIn.split()
#运行参数分别表示monkey、banana、box的位置,
monkey=codeInList[0]
banana=codeInList[1]
box=codeInList[2]
print('操作步骤如下:')
#请用最少步骤完成猴子摘香蕉任务
###########开始#############
Monkey_go_box(monkey, box)
Monkey_move_box(box, banana)
Monkey_on_box()
Monkey_get_banana()


###########结束#############

注:由于输入方式codeIn=sys.stdin.read()和 codeInList=codeIn.split()的特殊性,若你用pycharm编译器运行此代码,则输入 a b c(中间有空格)之后,需要按下Ctrl+D即可得到运行结果。若你使用VScode,则输入a b c之后,需要按下Ctrl+Z+Enter之后即可运行。

Pycharm运行截图

Vscode运行截图

系列文章:

实验1:猴子摘香蕉问题的Python编程实现
实验2:编程实现简单恐龙识别系统的知识表示
实验3:搜索算法求解8数码问题
实验4:字句集消解实验
实验5:简单恐龙识别系统的产生式推理
实验6:蚁群算法在TSP问题中的实现
实验7:粒子群优化算法实验
实验8:遗传算法在TSP问题中的实现
实验9:BP神经网络实验

更多推荐

实验1:猴子摘香蕉问题的Python编程实现