基于遗传算法的0-1背包问

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

The
end!
解决背包问题的一般方法


贪心 --求解时计算复杂度降低了很多。 --难以得到最优解,有时所得解与最优解相差 甚远。 因此, 我们可以探索使用遗传算法解决物件 数较多的背包问题。
运行结果及分析


Байду номын сангаас
实例数据:
Weight={80,82,85,70,72, 70,66,50,55,25, 50,55,40,48,50, 32,22,60,30,32, 40,38,35,32,25, 28,30,22,50,30, 45,30,60,50,20, 65,20,25,30,10 20,25,15,10,10, 10, 4, 4, 2, 1} Profit={220,208,198,192,180, 180,165,162,160,158, 155,130,125,122,120, 118,115,110,105,101, 100,100, 98, 96, 95, 90, 88, 82, 80, 77, 75, 73, 72, 70, 69, 66, 65, 63, 60, 58, 56, 50, 30, 20, 15, 10, 8, 5, 3, 1}

生物的进化是以集团的形式共同进行的,这样的一个团 体称为群体(Population),或称为种群。 组成群体的单个生物称为个体(Individual), 每一个个体对其生存环境都有不同的适应能力,这种适

应能力称为个体的适应度(Fitness)。
遗传算法简介


遗传算法是模拟生物在自然环境下的遗传和进化过程 而形成的一种自适应全局优化概率搜索方法。 它最早由美国密西根大学的H.Holland教授提出,起源 于60年代对自然和人工自适应系统的研究; 1967年,Bagley发表了关于遗传算法应用的论文,在 其论文中首次使用“遗传算法( Genetic Algorithm” 一词。 70年代 De Jong基于遗传算法的思想在计算机上进行 了大量的纯数值函数优化计算实验。 在一系列研究工作的基础上,80年代由Goldberg进行 归纳总结,形成了遗传算法的基本框架。
解决背包问题的一般方法


解决背包问题一般是采取动态规划、递归回溯 法和贪心方法。 动态规划 --可以把困难的多阶段决策变换为一系列相互 联系比较容易的单阶段问题。 --用数值方法求解时会随着状态变量的个数呈 指数级的增长。
解决背包问题的一般方法

递归回溯 --算法思想简单, 完全遍历搜索空间,肯定能 找到问题的最优解。 --由于此问题解的总组合数有 2n多个,因此, 随着物件数 n 的增大,其解的空间将以 2n级 增长,当 n 大到一定程度上,用此算法解决背 包问题是不现实的。
处理流程



交叉:定义参数Pc 作为交叉操作的概率,由 选择得到的两个个体以概率 Pc交换各自的部 分染色体,得到新的两个个体; 变异:定义参数Pm 作为变异操作的概率,由 交叉得到每个个体中的每个基因值都以概率 Pm进行变异; 演化:经过选择、交叉和变异操作,得到一个 新的种群,对上述步骤经过给定的循环次数( maxgen)的种群演化,遗传算法终止。
基于遗传算法的0-1背包问 题的求解
研究背景及意义

组合优化问题的求解方法研究成为了当前众多科学关 注的焦点。
– –
内在的复杂性有着重要的理论价值。 现实生活中广泛的应用。
但是,往往由于问题的计算量远远超出了计算机在有效时间 内的计算能力,使问题的求解变为异常的困难。

对于NP完全问题,如何求解其最优解或是近似最优解 成为科学的焦点之一。
算法思路
可能性解---群体中的个体(染色体) 染色体---编码成串 目标函数---个体评价---适应值 算法将根据适应度值进行它的寻优过程。 遗传算法的寻优过程: 选择---杂交---变异


参数事先选择:
种群的大小、染色体长、交叉概率、变异概率、 最大进化代数等。

在试验中参数一般选取如下:
种群大小N= 20~100 交叉概率 Pc= 0.4 ~0.9, 变异概率Pm = 0.001~0.1 最大进化代maxgen = 100~500
处理流程
处理流程


编码:将解空间的解数据进行二进制编码,表达为遗 传空间的基因型串(即染色体)结构数据,如将数据 9编码为“1001”; 初始化种群:定义整数pop_size作为染色体的个数, 并且随机产生pop_size个染色体作为初始种群; 评估种群中个体适应度:评价函数对种群中的每个染 色体(chromosome)求得其个体适应度 ; 选择:选择把当前群体中适应度较高的个体按某种规 则或者模型遗传到下一代种群中,这里所用的规则是 :染色体在种群中被选择的可能性与其个体的适应度 的大小成正比;




如何选择物品使在背包容量限制之内所装物品价值最大?
运行结果及分析
算法结果比较
算法
动态规划 贪心法
总价值
3082 3095
总重量
1000 996
遗传算法
3103
1000
总结与展望


遗传算法在求解背包问题上显示了超出想象、 良好的搜索能力,它具有收敛快、搜索速度快 的特点,在试验中取得了比动态规划、贪心法 等更好的求解效果。 然而在一般情况下,使用遗传算法解决背包问 题时,得到问题的近似解也不能满足逼近最优 解的要求。如何改进基本遗传算法使它所求得 的解逼近最优解,成为当前研究的重要问题。
2. 交叉:有性生殖生物在繁殖下一代时,同源 染色体之间通过交叉而重组。 3. 变异:在进行细胞复制时,以很小的概率, 产生某些复制差错,从而使 DNA发生某种变异, 产生出新的染色体,表现出新的性状。
遗传算法的生物学基础


进化
适者生存,不适者消亡。自然界中的生物,根据优胜劣汰 的原则,不断地进化。
研究背景及意义


遗传算法成为组合优化问题的近似最优解的一 把钥匙。 它是一种模拟生物进化过程的计算模型,作为 一种新的全局优化搜索算法,它以简单、鲁棒 性强、适应并行处理以及应用范围广等特点, 奠定了作为21世纪关键智能计算的地位。
遗传算法的生物学基础
生物的遗传方式:
1.复制:父代的遗传物质DNA被复制到下一代。
0/1背包问题描述



已知n个物品的重量(weight)及其价值(或 收益profit)分别为Wi>0和Pi>0 ,背包的容量 (contain)假设设为Ci>0 ,如何选择哪些物 品装入背包可以使得在背包的容量约束限制之 内所装物品的价值最大? 目标函数: max f(x1,x2,...xn)=∑CiXi S.t ∑WiXi≤Pi (*) 其中Xi∈﹛0,1﹜(i=1,2,...n) 其中Xi为决策变量,1表示装入,0表示不装入
相关文档
最新文档