给出例子中为什么这么移动
时间: 2024-03-13 17:43:38 浏览: 39
2个窗口移动的例子
在上述例子中,IDA∗ 算法搜索的过程如下:
1. 深度限制为0,起点S的代价f(S) = g(S) + h(S) = 0 + 9 = 9,开始从S开始搜索。
```
S 0 0 0 0 0
1 1 0 1 1 0
0 1 0 0 1 0
0 1 1 1 1 0
0 0 0 0 1 G
```
2. 搜索到(1,0)节点,它的代价f(1,0) = g(1,0) + h(1,0) = 1 + 8 = 9,小于深度限制,可以继续搜索。
```
S * 0 0 0 0
1 1 0 1 1 0
0 1 0 0 1 0
0 1 1 1 1 0
0 0 0 0 1 G
```
3. 搜索到(1,1)节点,它的代价f(1,1) = g(1,1) + h(1,1) = 2 + 7 = 9,小于深度限制,可以继续搜索。
```
S * * 0 0 0
1 1 0 1 1 0
0 1 0 0 1 0
0 1 1 1 1 0
0 0 0 0 1 G
```
4. 搜索到(2,1)节点,它的代价f(2,1) = g(2,1) + h(2,1) = 3 + 6 = 9,小于深度限制,可以继续搜索。
```
S * * * 0 0
1 1 0 1 1 0
0 1 0 0 1 0
0 1 * 1 1 0
0 0 0 0 1 G
```
5. 搜索到(3,1)节点,它的代价f(3,1) = g(3,1) + h(3,1) = 4 + 5 = 9,小于深度限制,可以继续搜索。
```
S * * * * 0
1 1 0 1 1 0
0 1 0 0 1 0
0 1 * * 1 0
0 0 0 0 1 G
```
6. 搜索到(3,2)节点,它的代价f(3,2) = g(3,2) + h(3,2) = 5 + 4 = 9,小于深度限制,可以继续搜索。
```
S * * * * *
1 1 0 1 1 0
0 1 0 0 1 0
0 1 * * 1 0
0 0 * 0 1 G
```
7. 搜索到(3,3)节点,它的代价f(3,3) = g(3,3) + h(3,3) = 6 + 3 = 9,小于深度限制,可以继续搜索。
```
S * * * * *
1 1 0 1 1 0
0 1 0 0 1 0
0 1 * * * 0
0 0 * * 1 G
```
8. 搜索到(3,4)节点,它的代价f(3,4) = g(3,4) + h(3,4) = 7 + 2 = 9,小于深度限制,可以继续搜索。
```
S * * * * *
1 1 0 1 1 0
0 1 0 0 1 0
0 1 * * * 0
0 0 * * * G
```
9. 搜索到(4,4)节点,它的代价f(4,4) = g(4,4) + h(4,4) = 8 + 1 = 9,小于深度限制,可以继续搜索。
```
S * * * * *
1 1 0 1 1 0
0 1 0 0 1 0
0 1 * * * 0
0 0 * * * *
```
10. 搜索到(4,5)节点,它是终点G,返回最短路径S->(1,0)->(1,1)->(2,1)->(3,1)->(3,2)->(3,3)->(3,4)->(4,4)->G,路径长度为9,代价为9。
因此,在这个例子中,IDA*算法从起点S开始,按照启发函数h(n)的估计值,通过迭代加深的方式,逐步增加搜索深度,直到找到终点G为止。
阅读全文