导航:首页 > 源码编译 > 启发式图搜索算法

启发式图搜索算法

发布时间:2024-08-19 02:30:40

A. 启发式搜索算法的产生背景

何谓启发式搜索算法
在说它之前先提状态空间搜索。状态空间搜索,如果按专业点的说法就是将问题求解过程表现为从初始状态到目标状态寻找这个路径的过程。通俗点说,两点之间求一线路,这两点是求解的开始和问题的结果,而这一线路不一定是直线,可以是曲折的。由于求解问题的过程中分枝有很多,主要是求解过程中求解条件的不确定性,不完备性造成的,使得求解的路径很多这就构成了一个图,我们说这个图就是状态空间。问题的求解实际上就是在这个图中找到一条路径可以从开始到结果。这个寻找的过程就是状态空间搜索。
常用的状态空间搜索有深度优先和广度优先。深度优先是从初始状态一层一层向下找,直到找到目标为止。广度优先是按照一定的顺序前查找完一个分支,再查找另一个分支,以至找到目标为止。这两种算法在数据结构书中都有描述,可以参看这些书得到更详细的解释。
前面说的广度和深度优先搜索有一个很大的缺陷就是他们都是在一个给定的状态空间中穷举。这在状态空间不大的情况下是很合适的算法,可是当状态空间十分大,且不预测的情况下就不可取了。他的效率实在太低,甚至不可完成。在这里就要用到启发式搜索了。

B. 启发式搜索是什么

启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。我们先看看估价是如何表示的。
启发中的估价是用估价函数表示的,如:
f(n) = g(n) + h(n)
其中f(n) 是节点n的估价函数,g(n)实在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。在这里主要是h(n)体现了搜索的启发信息,因为g(n)是已知的。如果说详细点,g(n)代表了搜索的广度的优先趋势。但是当h(n) >> g(n)时,可以省略g(n),而提高效率。
启发算法有: 蚁群算法,遗传算法、模拟退火算法等
蚁群算法是一种来自大自然的随机搜索寻优方法,是生物界的群体启发式行为,现己陆续应用到组合优化、人工智能、通讯等多个领域。蚁群算法的正反馈性和协同性使其可用于分布式系统,隐含的并行性更使之具有极强的发展潜力。从数值仿真结果来看,它比目前风行一时的遗传算法、模拟退火算法等有更好的适应性。

C. 启发式搜索算法定义

启发式搜索算法是一种在状态空间探索过程中,通过评估每个搜索节点的价值,以寻找最佳路径至目标的方法。这种策略旨在减少无意义的搜索路径,从而提升效率。核心在于对节点位置的估价,这是决定搜索性能的关键因素。

估价在启发式搜索中通常通过估价函数来表示,例如f(n),它由两部分组成:g(n)和h(n)。f(n)是对节点n的总体评估,g(n)是从初始节点到n的实际代价,这部分是已知的,反映了搜索的广度优先特性。而h(n)则是从n到目标节点的估计代价,这部分体现了搜索的启发性信息,因为它是未知的,但对搜索策略至关重要。

当h(n)远大于g(n)时,我们可以忽略g(n)的影响,更侧重于利用启发式信息h(n),这将有助于提高搜索效率。这种策略在处理复杂问题时尤其有效,因为它允许搜索算法跳过部分路径,直接寻找最有希望接近目标的节点。深入理解这个原理,可以帮助我们设计出更高效的搜索算法。

D. 启发式算法

什么是算法?从枚举到贪心再到启发式(上)
目标 :要优化的东西
决策 :根据目标做出的决策
约束 :进行决策时必须遵循的条件
算例 :问题参数的具体化

枚举法 :将问题所有的解一一枚举出来,挨个去评价,选出最好的那个
1.枚举法能够找到问题的最优解
2.枚举法求解时间随问题规模增长而呈爆炸式增长

贪心法 :利用“构造”的方式生成解,速度相对而言会非常快,同时不会随着问题规模的增长而大幅度增加,是平缓的线性增长
什么是算法?从枚举到贪心再到启发式(下)
启发式算法 :在一个合理的求解资源范围内(合理的时间,合理的内存开销等)求得一个较为满意的解。目前主要包括邻域搜索和群体仿生两大类。
解空间 :所有该问题的解的集合,包括可行解和不可行解
局部搜索 :不完全遍历解空间,只选择一部分进行遍历,进而大大降低搜索需要的资源。为了提高局部搜索的质量,大部分局部搜索算法都会在搜索的时候不断地抓取多个区域进行搜索,直到满足算法终止条件。
邻域 :在邻域结构定义下的解的集合,它是一个相对的概念,即邻域肯定是基于某个解产生的
邻居解 :邻域内某个解的称呼
邻域结构 :定义了一个解的邻域
邻域结构的设计在启发式算法中非常重要,它直接决定了搜索的范围,对最终的搜索结构有着重要的影响,直接决定了最终结果质量的好坏
搜索过程

不断重复步骤2-步骤5,直到满足终止条件,最后输出全局最优解

所有的启发式找到的都是满意解,不能说是最优解(即便真的是),因为它遍历的是解空间的局部。
一般情况下,启发式算法的时间是随着问题规模增长而呈线性增长的
干货 | 想学习优化算法,不知从何学起?
邻域搜索类
迭代局部搜索算法
模拟退火算法
变邻域搜索算法
禁忌搜索
自适应大邻域搜索
群体仿生类
遗传算法
蚁群算法
粒子群算法
人工鱼群算法
算法应用
禁忌搜索算法求解带时间窗的车辆路径问题
基于树表示法的变邻域搜索算法求解考虑后进先出的取派货旅行商问题
变邻域搜索算法求解Max-Mean dispersion problem
遗传算法求解混合流水车间调度问题

阅读全文

与启发式图搜索算法相关的资料

热点内容
智慧医疗方面最优算法 浏览:920
服务器ban掉了是什么意思 浏览:394
vvo手机拍的视频在哪个文件夹 浏览:838
华为防火墙cli命令手册 浏览:895
于正新剧玉楼春在什么App播放 浏览:127
学习社会经验下载什么app 浏览:475
php发布站程序 浏览:204
源码编译ntfs内核模块 浏览:120
r11s手机管家没有加密 浏览:781
怎么看电脑连接哪个服务器 浏览:191
二手服务器设备欺诈如何解决 浏览:877
单片机服务器安装win10 浏览:658
胸椎压缩性骨折伤残 浏览:954
mt怎么解压文件 浏览:41
达芬奇项目服务器有什么用 浏览:854
自制怎么捏都可以复原的解压球 浏览:615
qq软件管理怎么加密 浏览:740
手机使用代码编程器 浏览:939
单片机四位99秒表制作流程图 浏览:617
压缩包软件如何安装 浏览:768