人工智能之遗传算法求解01背包问题实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能之遗传算法求解0/1背包问题实验报告
Pb03000982 王皓棉
一、问题描述:
背包问题是著名的NP完备类困难问题, 在网络资源分配中有着广泛的应用,已经有很多人运用了各种不同的传统优化算法来解决这一问题,这些方法在求解较大规模的背包问题时,都存在着计算量大,迭代时间长的弱点。而将遗传算法应用到背包问题的求解,则克服了传统优化方法的缺点,遗传算法是借助了大自然的演化过程,是多线索而非单线索的全局优化方法,采用的是种群和随机搜索机制。
遗传算法(GA)是一类借鉴生物界自然选择和自然遗传机制的随机化的搜索算法,由美国J.Holland教授提出,其主要特点是群体搜索策略、群体中个体之间的信息交换和搜索不依赖于梯度信息。因此它尤其适用于处理传统搜索方法难于解决的复杂和非线性问题,可广泛应用于组合优化,机器学习,自适应控制,规划设计和人工生命领域。
GA是一种群体型操作,该操作以群体中的所有个体为对象。选择,交叉和变异是遗传算法的三个主要算子,他们构成了遗传算法的主要操作,使遗传算法具有了其它传统方法所没有的特性。遗传算法中包含了如下五个基本要素:1 .参数编码,2.初始群体的设置,3.适应度函数的设计, 4.遗传操作设计,5.控制参数设定,这个五个要素构成可遗传算法的核心内容。
遗传算法的搜索能力是由选择算子和交叉算子决定,变异算子则保证了算法能够搜索到问题空间的每一个点,从而使其具有搜索全局最优的能力.而遗传算法的高效性和强壮性可由Holland提出的模式定理和隐式并行性得以解释。
二、实验目的:
通过本实验,可以深入理解遗传算法,以及遗传算法对解决NP问题的作用。
三、算法设计:
1、确定种群规模M、惩罚系数 、杂交概率c p、变异概率m P、染色体长度n及最大
max.
进化代数gen
x=1表
2、采用二进制n维解矢量X作为解空间参数的遗传编码,串T的长度等于n,
i
x=0表示不装入背包。例如X={0,1,0,1,0,0,1}表示第2,4,7示该物件装入背包,
i
这三个物件被选入包中。
3、适应度函数
适应度函数的建立是解决背包问题的关键,按照利用惩罚函数处理约束条件的方法,可以构造背包问题的适应度函数如下:
000
11,()(),n
n i i i i i i n n n i i i i i i i i i T w T w c f T T w T w c T w c α=====⎧≤⎪⎪=⎨⎪-->⎪⎩∑∑∑∑∑ 其中0
n
i i
i T w =∑是背包问题的目标函数值,α是惩罚系数。 4、交叉操作
判断染色体是否为活的染色体,若为活的染色体,则将染色体进行交叉,一般采用一点交叉方式,交叉概率为C P ,具体操作是在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新个体。
5、变异操作
染色体变异采用位点变异的方式。变异概率为m P ,使其变异后的适应度至少大于或等于其原适应度,否则重新选择变异位进行变异,如此重复三次,若适应度值没有提高,则变异失败。
四、实验数据
设w={253,245,243,239,239,239,238,238,237,232,231,231,230,229,
228,227,224,217,213,207,203,201,195,194,191,187,187,177,175,171,169,168,166,164,161,160,158,150,149,147,141,140,139,136,135,132,128,126,122,120,119,116,116,114,111,110,
105,105,105,104,103,93,92,90,79,78,77,76,76,75,73,62,
62,61,60,60,59,57,56,53,53,51,50,44,44,42,42,38,36,34,28,27,24,22,18,12,10,7,4,4,1,1};
C=6666;
取惩罚系数10.1=α,交叉概率88.0=c P ,变异概率:0088.0=m P ,群体规模为PopSize=100
五、实验结果: