`
sonyfe25cp
  • 浏览: 203848 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

代价树的广度优先搜索

阅读更多
背景:如图是5城市之间交通路线图,A城市是出发地,E城市是目的地,两城市间的交通费用(代价)如图中数字所示,求从A到E的最小费用路线。

解法:采用 代价树的广度优先搜索
理论:

1. 首先根据交通图,画出代价图

代价图 如图2:



2. 开始搜索

oepn表存放刚刚生成的节点。
closed表存放将要扩展的节点或已经扩展过的节点。

open表结构:
[代价]|[节点]|[父节点]

closed表结构:
[序号]|[节点]|[父节点]



1) 把A放入 open表

open表:
0| A | 0      
Closed表: 空

2) 把A从open表放入closed表

open表: 空            
closed表:
1 | A | 0

3) 扩展A,得C1,B1,放入open表
C1的代价:3
B1的代价:4

Open表:
3 | C1 | A 
4 | B1 | A
closed表:
1 | A | 0


4) 把C1从open表放到closed表

Open表:
4 | B1 | A 
closed表:
1 | A | 0
2 | C1 | A

C1不是目标节点,于是继续扩展

5) 把C1扩展得到 D1,放入open表
D1的代价:3+2=5
B1的代价:4

open表:
4 | B1 | A
5 | D1 | C1
closed表:
1 | A  | 0
2 | C1 | A

6) 把B1从open放入closed表

open表:
5 | D1 | C1  
closed表:
1 | A  | 0
2 | C1 | A
3 | B1 | A
B1不是目标节点,于是继续扩展

7) 扩展B1得D2,E1,放入Open表
D2的代价:4+4=8
E1的代价:4+5=9

open表:
5 | D1 | C1 
8 | D2 | B1            
9 | E1 | B1            
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A


8) 把D1从open表放入closed表

open表:
8 | D2 | B1 
9 | E1 | B1            
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A
4 | D1 | C1

D1不是目标节点,于是继续扩展

9) 把D1扩展得到E2,B2,放入open表
E2的代价:3+2+3=8
B2的代价:3+2+4=9
D2的代价:8
E1的代价:9

open表:
8 | E2 | D1 
8 | D2 | B1            
9 | B2 | D1            
9 | E1 | B1             
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A
4 | D1 | C1

10) 把E2从open表放入closed表

                             
open表:
8 | D2 | B1           
9 | B2 | D1            
9 | E1 | B1            
closed表:
1 | A | 0
2 | C1 | A
3 | B1 | A
4 | D1 | C1
5 | E2 | D1                           
E2 是目标节点,搜索结束。

则搜索路径 A - C1 - D1 -E2
即:A - C - D - E


















  • 大小: 22.4 KB
  • 大小: 36.2 KB
分享到:
评论

相关推荐

    代价树的广度优先搜索 带有open表和closed表的显示

    代价树的广度优先搜索 带有open表和closed表的显示

    人工智能代价树的广度优先搜索

    通过广度优先搜索结合open表和close表,搜索最短路径。还包括一些图的经典算法和数据结构。深度遍历等~

    罗马尼亚问题,从Arad到Bucharest结果,深度优先搜索(DFS);迭代加深的搜索(IDS);A*搜索;一致代价搜索(UCS);

    在这个问题中,我们可以应用几种不同的搜索算法来寻找最优路径,包括深度优先搜索(DFS)、迭代加深的搜索(IDS)、A*搜索以及一致代价搜索(UCS)。 1. 深度优先搜索(DFS): DFS是一种盲目搜索策略,它沿着树或...

    bashuma.rar_bashuma _八数码_八数码 深度_有界 深度优先 搜索 八数码 难题_深度优先搜索

    通常,深度优先搜索(DFS)是遍历图或树结构的一种方法,它沿着树的深度尽可能深地搜索,直到找到目标节点或者回溯到没有更多分支的情况。在八数码难题中,深度优先搜索可能会导致无限循环,因为某些状态可能会被...

    python深度,广度,三种启发式搜索解决八数码问题

    我们将依次讨论深度优先搜索(DFS)、宽度优先搜索(BFS)以及启发式搜索策略,如A*算法,并结合图形化界面来直观展示搜索过程。 一、八数码问题简介 八数码问题是一个在3x3的网格上移动数字,目标是通过最少的步数...

    人工智能:2-4启发式搜索.pdf

    2. **动态规划法(改进的代价树广度优先搜索)**: - 目的:解决重复节点问题,避免多次访问同一节点导致的资源浪费。 - 方法:对于到达同一节点的不同路径,仅保留成本最低的一条路径。 3. **代价树的深度优先...

    广度优先算法、最佳优先算法、A*算法寻路程序

    最后,A*(A-star)算法是最佳优先搜索的一种优化,它同时考虑了从起始节点到当前节点的实际代价(即路径代价)和到目标的估计代价(即启发式代价)。A*算法的核心在于它的评估函数F(n) = g(n) + h(n),其中g(n)是从...

    搜索算法(广度深度优先,分支界限,A*算法等)

    本篇文章将深入探讨几种常见的搜索算法:广度优先搜索(BFS)、深度优先搜索(DFS)、爬山算法、束搜索、最佳优先算法、分支界限以及A*算法。 1. **深度优先搜索(DFS)** - DFS是一种递归的搜索策略,它沿着路径...

    八数码三种算法实现(启发式、广度优先、深度优先)

    深度优先搜索是一种递归策略,它尽可能深地探索树的分支。在遇到死胡同时,DFS会回溯到前一个状态,尝试其他分支。DFS通常使用栈来存储待处理的状态。虽然DFS不保证找到最短路径,但在解决八数码问题时,如果结合...

    PST优先搜索树原理及在Linux内核中的应用浅析.pdf

    《PST优先搜索树原理及在Linux内核中的应用浅析》 PST(Priority Search Tree),也称为优先搜索树,是一种特殊的树形数据结构,它结合了最大堆和基数树的特点,常用于高效的数据检索。本文将深入探讨PST的基本原理...

    算法-搜索- 广度优先搜索(BFS).rar

    BFS与深度优先搜索(DFS)的比较:** - **DFS**:从起始节点开始,沿着一条路径尽可能深地探索,直到达到叶子节点,然后回溯。 - **区别**:DFS可能陷入死循环,而BFS不会;DFS更容易找到最深的路径,BFS找到最短的...

    搜索算法解决九宫重排问题

    首先,广度优先搜索是一种用于遍历或搜索树或图的算法。在九宫重排问题中,我们可以将每个可能的九宫格状态视为一个节点,每一步操作(比如改变一个格子的数字)作为边,从初始状态开始,BFS会按照“先来后到”的...

    基于vs2008和directx9的深度优先和广度游戏算法完整示例.zip

    本资源提供了一个基于Visual Studio 2008(VS2008)和DirectX 9的深度优先(Depth-First Search, DFS)与广度优先(Breadth-First Search, BFS)算法的完整示例。这两个算法常用于解决图或网络中的路径搜索问题,...

    uPath:在2D环境中使用深度优先搜索,广度优先搜索和启发式搜索(A *)进行Unity的寻路

    本教程将聚焦于在2D环境中应用三种主要的寻路算法:深度优先搜索(DFS)、广度优先搜索(BFS)和启发式搜索中的A*算法,所有这些都使用C#语言实现。我们将详细探讨每种算法的基本原理以及它们在uPath框架中的应用。 ...

    第8章 广度优先搜索.ppt

    4. 效率问题:目标节点越深,搜索的节点数量可能呈指数增长,因此在某些情况下,深度优先搜索(DFS)可能是更好的选择。 在八数码问题中,BFS生成了一棵搜索树,其中每个节点代表一个状态,数字表示扩展的顺序。通过...

    A*算法和基于深度优先的八数码问题

    而"EightNumberDeep"则可能表示应用深度优先搜索的实现,虽然简单,但搜索效率通常不如A*算法。 总的来说,A*算法和深度优先搜索在解决八数码问题时各有优劣。A*算法通过有效的启发式函数提供更高效的搜索,而DFS则...

    人工智能状态空间搜索策略56.pptx

    * 推销员旅行问题:使用代价树的宽度优先搜索和深度优先搜索求解推销员旅行问题 * 全局最佳优先搜索:使用全局最佳优先搜索八数码问题 五、状态空间搜索策略的知识表示法 状态空间搜索策略对应的知识表示法包括: ...

    人工智能状态空间搜索策略.ppt

    - 代价树的深度优先搜索(Depth-First Cost Search, DFCS):同理,以代价为依据进行深度优先搜索。 5.3 启发式搜索策略 启发式搜索策略利用了估价函数来指导搜索,使得搜索方向更接近目标。关键概念包括启发信息和...

    状态空间搜索策略教材.pptx

    代价树的深度优先搜索(Cost-DFS)在代价树中沿着一条路径尽可能深地探索,同时记录回溯路径上的累积代价。当达到叶子节点或回溯时,会比较不同路径的总代价,选择代价最低的解决方案。 **四皇后问题** 是状态空间...

    三种主流寻路方式(A星,广度,深度)

    本篇文章将详细探讨三种主流的寻路方法:A*(A星)算法、广度优先搜索(Breadth-First Search, BFS)以及深度优先搜索(Depth-First Search, DFS),并结合提供的压缩包文件中的代码资源进行分析。 首先,A*算法是...

Global site tag (gtag.js) - Google Analytics