人工智能的迷宫问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 题目:给出下面的迷宫图,找出走出迷宫的路径。

sg

s0

s1

s2

s3

s4s5s6

s7s8s9

2.算符与状态空间 迷宫算符:左右上下 状态空间:

3.求解的状态空间图

4.给出各类表

5.程序代码

trace

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(StateY,No4)),fail.

step56(_,_):-!.

equal(X,X).

repeat.

repeat:-repeat.

resulting(N):-

closed(N,X,M),asserta(res(X)),resulting(M). resulting(_):-res(X),write(X),nl,fail. resulting(_):-!.

rule(X,Y):-road(X,Y).

road(s0,s7).

road(s7,s8).road(s7,s4). road(s8,s7). road(s8,s9). road(s8,s5).

road(s4,s5). road(s4,s1). road(s4,s7). road(s9,s8). road(s9,s6).

road(s5,s4). road(s5,s6). road(s5,s2).

road(s5,s8).

road(s1,s2). road(s1,s4). road(s6,s5).

road(s6,sg).

road(s6,s3).road(s6,s9).

road(s2,s1).road(s2,s3).

road(s2,s5).road(sg,s6).

road(s3,s2).road(s3,s6).

6.运行结果

相关文档
最新文档