(启发式搜索)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人工智能技术报告
启发式搜索
产生背景:
何谓启发式搜索算法在说它之前先提提状态空间搜索。

状态空间搜索,如果按专业点的说法就是将问题求解过程表现为从初始状态到目标状态寻找这个路径的过程。

通俗点说,两点之间求一线路,这两点是求解的开始和问题的结果,而这一线路不一定是直线,可以是曲折的。

由于求解问题的过程中分枝有很多,主要是求解过程中求解条件的不确定性,不完备性造成的,使得求解的路径很多这就构成了一个图,我们说这个图就是状态空间。

问题的求解实际上就是在这个图中找到一条路径可以从开始到结果。

这个寻找的过程就是状态空间搜索。

常用的状态空间搜索有深度优先和广度优先。

广度优先是从初始状态一层一层向下找,直到找到目标为止。

深度优先是按照一定的顺序前查找完一个分支,再查找另一个分支,以至找到目标为止。

这两种算法在数据结构书中都有描述,可以参看这些书得到更详细的解释。

前面说的广度和深度优先搜索有一个很大的缺陷就是他们都是在一个给定的状态空间中穷举。

这在状态空间不大的情况下是很合适的算法,可是当状态空间十分大,且不预测的情况下就不可取了。

他的效率实在太低,甚至不可完成。

在这里就要用到启发式搜索了。

定义:
启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。

这样可以省略大量无谓的搜索路径,
可以有不同的效果。

我们先看看估价是如何表示的。

启发中的估价是用估价函数表示的,如:f(n) = g(n) + h(n)其中f(n) 是节点n的估价函数,g(n)是在状态空间中从初始节点到n节点的实际代价,h(n)
是当h(n) >> g(n)时,可以省略g(n),而提高效率。

这些就深了。

算法举例
启发算法有:蚁群算法,遗传算法、模拟退火算法等蚁群算法是一种来自大自然的随机搜索寻优方法,是生物界的群体启发式行为,现己陆续应用到组合优化、人工智能、通讯等多个领域。

蚁群算法的正反馈性和协同性使其可用于分布式系统,隐含的并行性更使之具有极强的发展潜力。

从数值仿真结果来看,它比目前风行一时的遗传算法、模拟退火算法等有更好的适应性。

分析:蚁群算法
蚁群算法(ant colony optimization,ACO),又称蚂蚁算法,指的是一种源于自然现象的算法,也是一种meta heuristic,即与具体问题关系不大的优化算法,也就是它是一种用来在图中寻找优化路径的机率型技术。

蚂蚁觅食原理:
自然界中,蚂蚁这种视盲生物,在没有任何先知经验的情况下总能找到从其巢穴到食物源的最佳路径,甚至在该路径上放置障碍物之后,
它们仍然能很快重新找到新的最佳路线。

这是因为在蚂蚁个体之间是通过一种称为信息素的物质进行信息传递的。

蚂蚁在运动过程中,不但能够在它所经过的路径上留下该物质,而且能够感知这种物质的存在及其强度,并朝着该物质强度高的方向移动,为此指导自己的运动方向。

因此,由大量蚂蚁组成的蚁群集体行为表现出一种信息正反馈现象。

在一定时间内较短路径通过的蚂蚁要多于较长路径,而某一路径上走过的蚂蚁越多,则后来的蚂蚁选择该路径的概率就越大。

t=0,20只蚂蚁出发;t=1,路径1、2各10只蚂蚁;t=4,到达食物源;t=5,相遇,路径1、2各5只;t=8,前5只到达巢穴;t=9是前5只蚂蚁面再次临选择,此时AB轨迹数20,AC轨迹数15。

蚁群算法的应用领域
由于蚁群算法对图的对称性以及目标函数无特殊要求,因此,可以解决各种对称、非对称问题,线性非线性问题。

其本质是图上寻优,蚁群算
法已经成功地运用于求解旅行商(TSP)问题、调度问题、图形着色、机
器人路径规划、数据挖掘、聚类分析、机器学习与推理、网络路由、无线网络配置、频率分配、数字滤波、二次分配、序列求序、武器-目标配置
及各种组合优化问题,并取得了较好的结果;广泛应用于电力、通信、化工、交通、机器人、冶金等多个领域中。

算例(TSP)
旅行商问题(TSP):给定n个城市和两个两个城市之间的距离,要求确定一条经过各个城市一次当且仅当一次的最短路径。

即要求确定一条长度最短Haimilton回路。

第一步、初始化(蚁周算法)
将m只蚂蚁随机放到n个城市,每只蚂蚁的禁忌表为蚂蚁当前所在城市,各边信息初始化为c。

禁忌表体现了人工蚂蚁的记忆性,使得蚂蚁不会走重复道路,提高了效率。

第二步、构造路径
在t时刻,蚂蚁k从城市i转移到城市j的概率为:
为边(i,j)的轨迹强度,
为边(i,j)的能见度,为,
轨迹的相对重要程度,(0,5)
能见度的相对重要程度(1,5)。

第三步、更新信息
在所有蚂蚁找到一条合法路径后对信息进行更新。

ρ(0 <ρ<1)表示边上信息素的蒸发系数(0.1,0.9),0.7最优。

1-ρ表示信息素的持久性系数,
表示第k只蚂蚁在本次迭代中留在边(i,j)上的信息素,
Q表示蚂蚁所留轨迹为正常数(10,10000),
L k表示第k只蚂蚁在本次周游中所走过的路径的长度和。

第四步、输出结果
若迭代次数小于预定的迭代次数且无退化行为(找到的都是相同的解)则转步骤二,
否则,输出目前的最优解。

蚁群算法仍有很多方面值得深入研究:
(1)目前大部分改进蚁群算法的普适性不强,同时其模型也不能直接应用于实际优化问题。

因此,对通用的蚁群算法普适性模型的研究值得深入下去。

(2)同其他几种仿生优化算法相比较,蚁群算法没有坚实的数学基础。

具备坚实的数学理论基础,将使蚁群算法得到更加广泛的应用。

因此,这方面也值得深入研究。

(3)蚁群算法以其他算法之间的比较研究还处于起步阶段,与其他算法之间融合机制和策略仍有待进一步的探讨。

(4)仿生硬件是并行计算环境下的产物,蚁群算法的硬件实现是仿生硬件研究领域中的一个新分支,还存在许多问题需要解决。

(5)目前蚁群算法的应用领域大多是静态组合优化问题,如何使其应用于动态组合优化问题和连续优化问题也是一个研究方向。

总之,蚁群算法是一种很有前途的一种算法,也是一个很值得研究的领域。

随着对其研究的不断深入,其应用也将更加广泛,其理论将更加成熟。

参考文献:
[1]《算法艺术与信息学竞赛》刘汝佳黄亮著
[2]《算法导论》
[3] 蚁群算法及其应用研究赵天男; 王晓红软件导刊2010(6)
[4] 蚁群算法的研究及应用进展张祖琼电脑知识与技术2009(9)。

相关文档
最新文档