人工智能--关于遗传算法求最优路径的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
新技术专题文献综述
(之一)
专题:关于遗传算法求最优路径的设计与实现
班级:******
学号:**********
姓名: ***
指导教师: ***
计算机科学与技术专业制
关于遗传算法求最优路径的设计与实现
摘要遗传算法在许多优化问题中都有成功的应用但其本身也存在一些不足如何改善遗
传算法的搜索能力和提高算法的收敛速度使其更好地解决实际问题是各国学者一直探索的主要课题之一
引言遗传算法是一种在搜索过程中自动获取和积累有关搜索空间知识,并自适应地控
制搜索过程,从而得到最优解或近似最优解的通用搜索算法, 可广泛应用于求解一些非线性、多目标函数的最优化问题。
设计了基于遗传算法求解最优路径问题的方法, 并讨论了以Visual Studio 2005为开发环境的实现要点。
遗传算法, 是一种借鉴生物界自然选择和自然遗传机制的随机化搜索算法, 由美国J. H. Hollad教授提出, 其主要特点是群体搜索策略和群体中个体之间的信息交换。
该算法尤其适用于处理传统搜索方法难以解决的复杂和非线性问题, 可广泛用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域[ 1]。
顾名思义, 遗传算法是一个择优汰劣的过程。
一般情况下, 只要某寻优问题能够按照一定规则设计出适宜于遗传操作的编码群体和适应度函数, 该问题就能应用遗传算法进行求解。
遗传算法的基本思想
遗传算法是从代表问题可能潜在的解集的一个种群开始的。
种群的每一个体, 都对应于问题的某个解, 称之为染色体。
因此, 该算法的第一步就是实现从问题领域解的形式到染色体形式的映射, 即编码[ 2]。
由于仿照基因编码的过程很复杂, 在实际中往往会进行简化, 如简单常用的二进制编码法。
按照某种编码方法, 生成一定规模的个体的工作, 称之为初始种群。
适应度函数用来验证某一个体的适应能力。
显然, 适应度越高的个体对应的解越符合优化准则, 越有可能得到保留, 进入下一代组成新的群体。
遗传算法在进化搜索时基本不利用外部信息,仅依据种群中每一个体的适应度值。
因此适应度函数的选取至关重要, 直接决定算法的收敛速度以及能否找到最优解。
适应度函数的设计要结合求解问题的要求而定, 通常是目标函数本身, 也可能需要作一定的变换, 以更好地适宜遗传操作。
遗传算法依照适者生存和优胜劣汰的原理, 通过逐代演化产生出越来越好的近似解。
在每一代,根据在问题域中个体的适应能力挑选适应度高的个体, 并借助类似于自然遗传学的遗传算子进行组合交叉和变异操作, 产生出代表新的解集的种群。
这个过程必然会导致种群向自然进化一样, 后生代比前代更加适应环境( 更加接近最优解) 。
末代种群的最优个体经过解码, 就可作为问题的最优解或近似最优解[ 3]。
由此可见, 遗传操作主要有选择、交叉、变异三种。
遗传算法以是否符合优化准则作为终止条件的。
终止条件要根据具体情况来确定, 通常采用以下准则之一来进行判断: 1) 种群中个体的最大适应度超过预先设定值;2) 种群中个体的平均适应度超过预先设定值;3) 世代数超过预先设定值[ 4]。
应用遗传算法求最优路径的设计与实现
假设某区域的交通网络如图所示, 以此为例说明如何运用遗传算法寻求节点V0到节点V15的最优路径。
该问题的数学模型可描述如下:
P= min(p1, p2, p3, !, pm) (1)
pk=∀ni=1∀nj =1Cij #sign(i, j , k), (k=1, 2, 3, !, m)(2)
sign(i, j, k)=1, i ∃ pk 且j ∃ pk0, i pk 或j pk (3)
Pk为起止节点之间某一条路径的权值; Cij 表示带权邻接矩阵; sign(i, j , k)用来判断节点i 与节点j 是否在路径pk中连通。
同一节点间的加权距离为0; 无通路的两节点间的距离为% , 编程时可用一个相当大的值来代替。
遗传算法可定义为一个8元组:GA=(C, E, P0, M, , , , T) (4)
式中: C为个体的编码方法; E为个体的适应度评价函数; P0为初始群体; M为群体大小; 为选择算子; 为交叉算子; 为变异算子; T为算法终止条件。
下面逐一确定各个参数。
1) 个体编码
采用二进制编码方法。
用16位二进制数表示一条路径, 也即进行遗传操作的一个染色体。
如果第i 个节点包含于该路径中, 则将染色体的第i 位设为1, 否则设为0。
如0100101010010110表示路径V1V4V6V8V11V13V14。
2) 适应度函数
适应度函数既是衡量染色体对环境适应性的指标, 也是反映实际问题的目标函数。
求解最短路径是目标函数的最小问题, 可采用界限构造法作相应的变换。
一般情况下, 评估一条路径是否最优主要考虑的是路程是否最短、耗时是否最少。
因此, 可以设定一个最大时间Tmax 为约束, 将每条路径的节省时间作为适应度函数, 即:
Fit(f (x))=Tmax- pk, 当Tmax>pk0, 其它 (5)
3) 遗传操作
(1)选择操作
为保证算法效能, 遗传算法的种群大小一般在20~100之间。
此例中, 设定种群大小为24。
为确保算法具有全局最优收敛性, 将选择操作分两步进行。
首先, 将种群中适应度(Fi )最好的个体直接复制到下代个体中; 然后通过轮盘赌方法对剩余个体进行选择, 获取另外11个下代个体。
在对某代群体轮盘赌选择之前, 需要计算个体的选择概率。
选择概率的常用分配方法有两种: 按比例的适应度分配和基于排序的适应度分配。
在此选用前者, 其思想是利用比例于各个个体适应度的概率决定其子孙遗留的可能性。
由此, 可计算出每一个体的累积概率, 为[ 0, 1] 之间的23个区间。
轮盘赌选择法类似于博彩游戏中的轮盘赌。
因为要进行11次选择, 相当于转动轮盘11次以产生11个[ 0, 1] 之间的随机数。
该随机数所在区间代表的个体即为选中个体, 进入下一代种群。
在程序设计时, 可以通过随机产生一个[ 0, 1] 间的数random, 若random<∀ji=1Ei∀23i=1Ei时, 则个体j 被选中。
( 2) 交叉操作
将选出的12个体两两成组, 通过单点交叉产生12个新个体, 从而组成规模为24的新一代种群。
如优选出的两个个体编码为:
0100101∣010010110
1101100∣110110101
随机选择交叉点为7, 则新个体编码为:
0100101∣110110101
1101100∣010010110
( 3) 变异操作
个体必须按照变异概率进行变异操作。
当一次遗传操作随机产生的变异概率大于时, 随选择一个个体及其变异位置, 使该位置的二进制数翻转。
在此例中, 变异操作的意义为在某条路径中增加或剔除某个节点。
变异操作的目的是保持种群的多样性, 防止出现非成熟过早收敛。
但变异概率不能太大, 否则遗传算法就会退化为随机搜索[ 6]。
一般把设定在. 001~0. 1之间。
算法的实现虽然繁琐, 但难度不大, 只是参数较多, 需要不断调整才能得到预期结果。
在VisualStudio 2005中, 利用. NET框架的Bitarray类能够方便地实现个体的二进制编码及相应的操作。
结合Random( ) 函数, 可以完成初始种群的生成。
程序的运行流程如图2所示。
不断进行遗传操作, 直到满足终止条件输出最优解。
根据具体问题的不同可选择不同的操作方式和概率数值, 以达到最佳效果。
在本例中, 设置终止进化代数为20, Tmax 为100, 变异概率为0. 1。
在试运行该模块时, 从5开始逐一递增进化代数, 得出经过约17次遗传操作, 算法能找到并基本稳定于1100 111000010011, 即V0V1V4V5V6V11V14V15。
结语
遗传算法是一种在搜索过程中自动获取和积测, 从而判断是不是影响核心关注行为运行的流程, 横切关注的存在可能会改变正常运行的流程。
所以活动图会很准确的描述横切行为与核心行为的协作过程。
高级活动图中的连接点是一种可以很好的表达面向方面中联结点的模型元素, 连接点用一个空心圆表示。
当核心关注运行到连接点的时候,核心关注行为被中断, 系统控制权转到横切关注之内。
参考文献:
[1] Mahoney M, Bader A, ElradT, et al. Using Aspect toAbstract andModularizeStatecharts[C]//The5thAs pect OrientedModeling WorkshopinConjunctionWithUML. 2004Lisbon,Portugal, 2004,10
[2] AldawudO, ElradT Bader A. UML profile foraspect orientedsoftware development[ C]/ / position paper forthe Third international workshop on Aspect Oriented modeling,2003
[3] S. Clarke, R. J. Walker. Composition Patterns: AnApproach to Designing Reusable Aspects[ C] // Pro ceedings of the 23, International Conference on Soft ware Engineering, Toronto, Canada, IEEEComputerSocitety,2001, 5
[4] Robert E. Filman, TzillaElrad, Siobhan Clarke, et al.i面向方面的软件开发[ M]. 莫倩, 王凯, 译. 北京: 机械工业出版社, 2006
[5] Craig Larman. UML 和模式应用[ M]. 第三版. 李洋,郑, 等译.北京: 机械工业出版社
[6] 杨敬中, 戎玫.面向方面的软件系统动态交互行为建模[ J] .计算机工程与科学, 2007,29(11) :137~ 139。