图搜索算法(一):图搜索的一般算法

本文介绍了图搜索技术在人工智能领域的应用,详细解释了树式搜索和线式搜索的区别,并给出了图搜索的一般算法流程。此外,还探讨了盲目搜索与启发式搜索的不同策略。
部署运行你感兴趣的模型镜像

一、引言

图搜索技术时人工智能中的核心技术之一,并且在其他场合也有着非常广泛的应用。这里的图称为状态图,指由节点和有向(带权)边所做成的网络,每个节点即状态。按照搜索的方式不同,图搜索一般分为树式搜索和线式搜索。两者最大的区别就在于搜索过程中所记录的轨迹不同,顾名思义,树式搜索记录的是一颗搜索树,而线式搜索是一条折线。我们一般用一个Closed表的数据结构来记录搜索节点,对于树式搜索来说,Closed表存储的正是一颗不断成长的搜索树,而线式搜索存储的则是一条不断伸长的折线,如果能找到目标节点的话,它本身就是搜索的路径。而树式搜索需要通过目标节点进行回溯,直至初始节点,从而找到路径。

二、树式搜索的一般算法

对于树式搜索算法,我们需要将待考察的节点放在一起,并做某种排列,以控制搜索顺序,实现某种策略。因此,使用一个Open表的数据结构来记录当前待考察的节点。(这是可回溯线式搜索和深度优先搜索的区别)。

下面给出Open表和Closed表的数据结构:


Open表
节点父节点编号
  
  
Closed表
编号节点父节点编号
   
   
下面给出图搜索一般算法:

GRAPHSEARCH:

(1)建立一个只含有起始节点S的搜索图G,图中每个节点有一个指向其父节点的指针, S的这一指针为一特殊值(如0), 并把S放入未扩展节点表OPEN中.

(2)建立已扩展的节点表CLOSED,初始时该表为空.

(3)LOOP:若OPEN表为空,则失败退出.

(4)把OPEN表中的第一个节点移出,放入CLOSED表中,  称其为n节点.

(5)若n为目标节点,则成功退出. 问题的解是沿指针 追踪G中从n到S的路径而得到的.

(6)扩展节点n, 生成不是n的祖先的那些后继节点的集合M.如果没有后继节点,则转LOOP.

(7)把那些不在G中的M的成员作为n的后继节点加入G,并设置一个通向n的指针,把它们加入OPEN表. 对已在G中的M的成员,调整有关指针.

(8)按某种方式, 重排OPEN表.

(9)转LOOP.

三、基于一般图搜索算法的搜索策略

    根据搜索策略的不同,图搜索算法一般分为两大类:盲目搜索和启发式搜索。顾名思义,盲目搜索是一种无向导的搜索,穷举所有可能的状态,这种算法实现简单,但效率很低;启发式搜索是根据具体的问题,在搜索的过程中产生启发性的信息,指导搜索过程,启发式搜索能极大提高搜索效率,并且有可能得到问题的最优解。

之所以有这样的搜索策略的区分,是因为在图搜索一般算法中的Open表设计造成的,Open表是待考察的节点状态,那么考察Open表中节点的顺序,便指导了整个搜索的顺序,从而产生了不同的搜索策略。以常见的盲目搜索算法:广度优先算法和深度优先算法为例,不难想象,广度优先算法中的Open表是一个队列,即先进先出,那么后加入的节点永远都是后扩展的节点,即深度小的节点永远都是优先扩展的,因为他们是先加入Open表的。而深度优先算法的Open表是一个栈结构,即后进先出,扩展总是沿着一条线纵深扩展,再回溯的。

对启发式搜索,又根据所依据的估价值不同,分为基于代价函数g(x)的搜索,基于启发函数h(x)的搜索,和基于估价函数f(x) = g(x)+h(x)的搜索(A算法和A*算法)。





您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值