人工智能(2)——搜索问题

1. 内容

状态空间的搜索问题

搜索方式:

  1. 盲目搜索:深度优先搜索;宽度优先搜索
  2. 启发式搜索:A*算法

2. 深度优先搜索

皇后问题:

PS:本处选用4*4网格,放置4个皇后,使每个皇后横、竖、斜都不在一条直线。采用深度

人工智能(2)——搜索问题_第1张图片

操作步骤:

()——((1,1));

((1,1))——((1,1)(2,3));

((1,1)(2,3))——((1,1));

((1,1))——((1,1)(2,4));

((1,1)(2,4))——((1,1)(2,4)(3,2));

((1,1)(2,4)(3,2))——((1,1)(2,4));

((1,1)(2,4))——((1,1));

((1,1))——();

()——((1,2));

((1,2))——((1,2)(2,4));

((1,2)(2,4))——((1,2)(2,4)(3,1));

((1,2)(2,4)(3,1))——((1,2)(2,4)(3,1)(4,3));

以上基于递归回溯

伪代码:

DEPTH - FIRST - SEARCH(DATA)
1. IF TERM(DATA) RETURN NIL;
2. IF DEADEND(DATA) RETURN FAIL;
3. RULEFS := APPRULES(DATA)
4. LOOP: IF NULL(RULETURN) FAIL
5.          R := FIRST(RULES)
6.          RULES := TAIL(RULES);
7.		    RDATA := GEN(R, DATA);
8.		    PATH := Depth-First-Search(RDATA);
9.		    IF PATH = FAIL GO LOOP;
10.      	RETURN CONS(R, PATH);   

 

 

你可能感兴趣的:(人工智能)