- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
遗传算法求解背包问题程序实现
一、背包问题描述
背包问题是著名的NP完备类困难问题,对这个问题的求解前人已经研究出了不少的经典的方法,对该问题确实能得到很好的结果。近年来蓬勃发展起来的遗传算法已被广泛地应用于优化领域,其全局最优性、可并行性、高效性在函数优化中得到了广泛地应用遗传算法克服了传统优化方法的缺点,借助了大自然的演化过程,是多线索而非单线索的全局优化方法,采用的是种群和随机搜索机制.本程序将遗传算法应用于背包问题。
二、实验程序1、编程语言:C++2、开发环境:MicrosoftVisualStudio20053、程序整体流程:
步1初始化过程1确定种群规模scale、杂交概率^。、变异概率,”、染色体长度泌N及最大进化代数maxgen。
1.2取x1(0)=u(0,1),x2(0)=u(0,1),…,xchN(0)=u(0,1),其中函数u(0,1)表示随机地产生数0或1,则x(0)=(x1(0),x2(0),-,xN(0)).
若不满足约束条件,则拒绝接受.由(1.2)重新产生一个新的染色体;如果产生的染色体可行,则接受它作为种群的一名成员,经过有限次抽样后,得到scale个可行的染色体方(0),j=1,2,…,M,^xj(0)的染色体编码为订(0),并记为u(0)=(v1(0),…,vchN(0)).
1.3计算各个染色体的适值4置k=0步2选择操作1采用转轮法选择下一代。.
步3杂交变异操作1事先定义杂交操作的概率pc,为确定杂交操作的父代,利=1到M重复以下过程:从[0,1]中产生随机数r,若,vpc,则选择cT(k)作为一个父代.
3.2产生两个〃,N]上的随机整数i、j,变异的结果为染色体刃(k)的第i位基因的值变为其翁位基因的值,同样将染色体的以(k)第j位基因的值变为其第i位基因的值.
3.3检验该染色体的可行性,若可行则作为变异的结果;如不可行,重复3.2直至该染色体可彳亍.
3.4事先定义变异概率pm,对经过杂交操作的中间个体进行变异操作:,如果rpm,则选择vin(k)作为变异的父代.
3.5产生一个〃,N]上的随机整数i,及随机地产生数0或1,记为b,变异的结果为染色体vi〃(k)的第i位基因的值变为b.
3.6检验该染色体的可行性,若可行则作为变异的结果:如不可行,重复3.5直至该染色体可行.
7计算新个体的适应值,并把它们同时放回,和步2选择操作中剩余的个体一起构成新一代种群u(k+1)={v1(k+1),v2(k+1),,vM(k+1)}.
步4终止检验如果达到最大进化代数morge〃则终止演化,否则置k:=k+1,转步2.
4、程序流程图
输出结果文件
3
M
output.txt
输出结果
结束/
程序流程图5、程序代码1)主程序代码:
KnapsacksProblem.cpp文件#includeGAonKP.h#includeiostreamusingnamespacestd;voidmain(){
FILE*fp;〃种群规模〃背包允许最大财宝质量〃杂交概率〃变异概率CGAonKP
〃种群规模
〃背包允许最大财宝质量
〃杂交概率
〃变异概率
doubleMaxWeight;
doublepc;
doublepm;
intmaxgen;//最大进化代数
charfilename[256];
cout遗传算法解决背包问题程序使用说明:endl;
cout”1、该背包问题采用遗传算法endl;
cout”2、-1编码的方法,其中代表选中所对应的物品,代表不选中该物品endl;
cout3、背包允许最带重量,种群规模(解空间大小),;
cout杂交概率,变异概率,最大进化代数需自己给;
cout定,程序会提示输入endl;
cout”4、程序提供一个输入示例endl;
cout5、输入文件可加单行或多行注释endl;
cout例如:#添加单行注释内容#endl;
cout例如:#添加多行注释内容”endl;
cout添加多行注释内容#endl;
cout6、输入文件头位置需指定物品个数为int型数据。物品重量,和物品价值为double型endl;
cout7、程序运行结果会输出到output.txt文件中endl;
coutendl;
coutendl;
cout如果你想使用示例文件进行演示请输入Yendl;
cout如果你想使用示例文件进行演示请输入Nendl;
cinfilename;
if(filename[0]==Y)
{if(!(fp=fopen(example.txt”,r))){cout请确认example.txt是否背删除了!endl;}cout演示文件中example.txt的输入参数:endl;cout背包允许最带重量:endl;cout种群规模:endl;cout
您可能关注的文档
最近下载
- 《高等数学基础》课件——第四章 导数的应用(含课程思政元素).pptx VIP
- 职域行销BBC模式开拓流程-企业客户营销技巧策略-人寿保险营销实战-培训课件.pptx VIP
- 第三单元第三课《气韵生动》课件 人教版(2024)初中美术八年级上册.pptx VIP
- ek-220说明书中文版.pdf VIP
- 2025年天津市专业技术人员公需考试试题-为中国式现代化提供强大动力和制度保障——党的二十届三中全会暨《中共中央关于进一步全面深化改革、推进中国式现代化的决定》总体解读.docx VIP
- 16949全套程序文件及表单(全套质量手册、程序文件、表单).doc
- DB34_T 5197-2025 水利信息化项目验收规程.docx
- 2026年日历表(A4纸一页打印、可编辑).pdf VIP
- 医美整形顾客管理存量增长运营方式.pptx VIP
- POA课程市公开课一等奖省赛课微课金奖PPT课件.pptx VIP
原创力文档


文档评论(0)