- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
01背包遗传算法代码说明
01背包遗传算法
一、算法说明:
遗传算法是具有“生成+检测”的迭代的搜索算法。它的基本处理流程如图所示。
初始化种群
评估种群中个体适应度
选 择
编 码
交 叉
变 异
演 化
使用基本遗传算法解决0- 1背包问题的程序步骤如下
1: 设置种群的规模、交叉概率、突变概率、背包最大载重等常数
2: 设置物品的重量和价值
3: 调用初始化种群模块
3- 1: 按照一定的种群规模和染色体长度以基因为单位用随机产生的0- 1对个体赋值
3- 2: 调用计算适应度函数
4: 以最大进化代数为循环终止条件开始进行循环
4- 1: 调用产生新一代个体的函数
4- 1- 1: 调用选择函数
4- 1- 2: 调用交叉函数
4- 1- 3: 调用变异函数
4- 1- 4: 调用计算适应度函数
5: 调用计算新一代种群统计数据函数
6: 调用输出新一代统计数据函数
7: 返回到第四步, 直至循环结束
结果分析
蓝色字表示 输出结果
运行时间表示 算法复杂度
1)数据集一:物体总个数为30时
物品价值: 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
物品重量: 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 25 30
背包容量 1000
-----------------------------
最优值 2984.000000
对应重量 995.000000
线性解: 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0
运行时间: 16 ms
2)数据集二:物体总个数为50时
物品价值: 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
物品重量: 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 25 30 45 30 60 50 20 65 20 25 30 10 20 25 15 10 10 10 4 4 2 1
背包容量 1000
-----------------------------
最优值 3010.000000
对应重量 993.000000
线性解: 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0
运行时间: 31 ms
3)数据集三:物体总个数为60时
物品价值: 597 596 593 586 581 568 567 560 549 548 547 529 529 527 520 491 482 478 475 475 466 462 459 458 454 451 449 443 442 421 410 409 395 394 390 377 375 366 361 347 334 322 315 313 311 309 296 295 294 289 285 279 277 276 272 248 246 245
文档评论(0)