人工智能
迷宫问题
学院信息工程学院
专业计算机科学与技术
班级
学生姓名
学号
任课老师
题目:迷宫问题
迷宫算符:上、下、右、左。
状态空间图求解的状态空间图
OPEN表和 CLOSED表:
程序:
DOMAINS
state=symbol
DATABASE-mydatabase
open(state,integer)
closed(integer,state,integer)
res(state)
mark(state)
fail_
PREDICATES
solve
search(state,state)
result
searching
step4(integer,state)
step56(integer,state)
equal(state,state)
repeat
resulting(integer)
rule(state,state)
road(state,state)
GOAL
solve.
CLAUSES
solve:-search(s0,sg),result.
search(Begin,End):-retractall(_,mydatabase),
assert(closed(0,Begin,0)),
assert(open(Begin,0)),
assert(mark(End)),repeat,searching,!.
result:-not(fail_),retract(closed(0,_,0)),closed(M,_,_),
resulting(M),!.
result:-beep,write("sorry don't find a road!").
searching:-open(State,Pointer),
retract(open(State,Pointer)),closed(No,_,_),No2=No+1,
asserta(closed(No2,State,Pointer)),!,step4(No2,State).
searching:-assert(fail_).
step4(_,State):-mark(End),equal(State,End).
step4(No3,State):-step56(No3,State),!,fail.
step56(No4,StateX):-
rule(StateX,StateY),
not(open(StateY,_)),
not(closed(_,StateY,_)),
assertz(open(State
人工智能迷宫问题 来自淘豆网m.daumloan.com转载请标明出处.