遗传蚁群算法解决背包问题ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步骤7 对矩阵B、A1和A2按适应值大小进行降序排列,选取前k条个体组成 A1
步骤8 保留此代中的最优值 步骤9 判断是否满足结束条件(g>G),若满足则输出最优结果,否则转步
骤3
.
算法策略
(1)交叉操作(步骤 5(2))中,交叉的第一个个体由交叉概率Pc决定 ,交叉的第二个个体为与第一个个体海明距离(两个码字的对应比特取值不 同的比特数称为这两个码字的海明距离)最大的个体,交叉起始位置为两个 个体第一个不相同的基因位 X,交叉的基因位个数在 1和(n-X)(n为物 品个数,即染色体的长度)之间随即产生。这样可以最大限度地产生新个体 ,增加种群的多样性。
步骤4 判断k是否小于m/4,若是,则k=m/4,否则k=3×m/4-2×
(g-1)
步骤5 对k个蚂蚁使用遗传算法寻优 (1)复制矩阵A1(B=A1) (2)根据交叉概率Pc对A1进行交叉操作 (3)根据变异概率Pm对A1进行变异操作 (4)对所求得的不可行解进行修复操作
算法2中只需修改步骤4 步骤4 判断k是否大于3×m/4,若 是则k=3×m/4,否则k=m/4+2× (g-1)。
(2)变异操作(步骤 5(3))中,变异的基因位个数随机产生,每个基 因位变异的概率由当代种群中每个基因位上1 和 0 的比例之差的绝对值决定 ,差值越大变异概率越小,相反差值越小变异概率越大。把每个基因位变异 的概率按照从大到小的循序排列,根据随机产生的基因位个数选取要变异的 前几个基因位进行变异操作。此种变异操作方式尽可能地确保算法寻得的最 优解为全局最优解。
其中,xj= 1表示物品 j 被选中,xj= 0 表示物品 j 没有被选中。
.
改进的遗传蚁群混合算法的混合方式
现实中,自然界的蚂蚁分工是十分明确的,大约有1/4蚂蚁是专门寻找新 食物源的,受其启发,我们提出了一种新混合方式:挑选部分优秀人工蚂蚁采 用遗传算法寻优,并利用此结果对蚂蚁系统进行信息素的全局更新,指引蚁群 向最优方向寻优;剩余蚂蚁采用蚁群算法寻优,并利用此结果对蚁群系统进行 信息素的局部更新,指引下一个蚂蚁的寻优方向。这样,一方面利用遗传算法 中的交叉、变异操作产生新个体,扩大种群的多样性,增强算法的全局搜索能 力,另一方面利用蚁群算法提高寻优精度。为了描述自然界中蚂蚁群根据环境 的改变而做出调整的特性,该算法中采用两种不同寻优方式的蚂蚁数目随迭代 次数自适应改变。
(5)进行全局信息素更新
.
算法步骤
步骤6 对(m-k)个蚂蚁使用蚁群算法寻优 (1)初始化 Allowed=[1 :CodeL] ,Tabu=[] ,Over=[] A2=zeros((m-k),CodeL) (2)判断Allowed是否为空,若为空时转步骤6(-6),若不为空 则转步骤6(-3) (3)求Allowed中所有物品被选择的概率 (4)蚂蚁i按物品被选择的概率以轮盘赌的方法Allowed中选 择一个物品j (5)更新Allowed、Tabu和Over (6)进行局部信息素更新 (7)判断(m-k)个蚂蚁是否全部搜索完毕,若全部搜索完毕, 则转步骤7,否则转步骤6(-1)
.
算法步骤
采用 上述中遗传蚁群的混合方式,设计了两种算法(算法1中k值从 3×m/4逐渐减小到m/4,算法2中k值从m/4逐渐增加到3×m/4)。
算法流程(算法1):
步骤1 参数初始化
步骤2 随机生成矩阵A1(k,CodeL),并对其按适应值大小进
行降序排列
◆ 步骤3 对迭代次数循环(g=g+1)
主要内容
1背包问题数学模型 Nhomakorabea2
算法的混合方式概述
3
算法步骤
4
算法策略
5
仿真结果分析
6
结论
.
背包问题数学模型
通常,0/1背包问题被描述为:有一个背包和 n 件物品,其 中背包所能承受的最大重量为 C,物品 j 的重量为 Wj,价值为 Pj,求解 0/1背包问题的目标是从 n 件物品中选择部分物品装入 背包,在满足所选物品的总重量不超过C的情况下,使得装入背包 的物品的总价值最大。
.
算法步骤 —各个参数含义
A1:采用遗传算法寻优的个体集 A2:采用蚁群算法寻优所得的解集 Allowed:蚂蚁i下一次允许选择的物品序号集 Tabu:蚂蚁i已经选择的物品序号集 Over:下一次选择时 Allowed 中不满足约束条件的物品序
号集 G:最大迭代次数 M:蚂蚁总个数 K:进行遗传算法寻优的蚂蚁个数 CodeL:物品数目
改进型遗传蚁群混合算法求解 0/1背包问题
报告人:宋玲 地 点:计算机院软工实训室 时 间:2013年11月15日
研究背景
背包问题(Knapsack Problems)是运筹学中的一个典型的优化难 题,对背包问题的研究具有极其重要的理论和现实意义。实际生活中, 资源分配、投资决策、装载问题、网络资源分配等问题都可归纳为背包 问题。目前,已经出现许多种求解背包问题的优化算法。其中遗传算法 是一种基于自然选择和群体遗传机理的搜索算法,模拟了自然选择和自 然遗传过程中的繁殖、杂交和突变现象。它属于随机搜索算法,具有较 强的全局搜索能力,但遗传算法中的个体对于每次的选择不存在反馈信 息,因此遗传算法的收敛速度较慢,而且优化精度不高。蚁群算法在求 解 0/1背包问题时,主要通过物品上的信息素进行选择,一个物品上的 信息素越高,被选择的概率就越大。蚁群算法采用正反馈机制,能够快 速地收敛到问题的局部最优解,但存在全局搜索能力较低、搜索时间较 长等缺点。由于两种算法各有利弊,近年来,许多学者致力于两种算法 的混合研究。本文提出了一种基于两者新的混合方式的算法,来求解0/1 背包问题。
算法的具体过程为:在每次迭代过程中,蚂蚁数固定为m,挑选k只优秀 的蚂蚁采用遗传算法寻优,寻优结束进行全局信息素更新,其余蚂蚁采用蚁群 算法寻优,寻优结束进行局部信息素更新。一代寻优结束后,m只蚂蚁寻得的 解和上一代的前 k个解共同参与排序,排序后的前k个解作为下一次迭代中遗 传算法的初始种群。为保证蚂蚁的寻优能力和寻优效率,k值随进化代数自适 应变化,并且对k值采用上下限策略,k的取值在区间[1/4,3/4]之间。
相关文档
最新文档