遗传算法求方程最大值.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法求方程最大值

源代码: /* 遗传算法应用举例————函数最大值问题的求解:f(x)=x*x(0=x=31) 课程名称:人工智能 专业:计算机软件理论 */ class Chromosome //染色体类的定义 { int geneString[]=new int[5];//基因位串 int fitness=0;//适应度 double chooseProbability=0.0;//选择概率 double accumulatedProbability=0.0;//积累概率 int chooseNumber=0;//估计选中次数 public void initGene(int a[])//给基因位串赋初值 { for(int i=0;i5;i++) { this.geneString[i]=a[i]; } } } class GA { int s1[]={0,1,1,0,1}; int s2[]={1,1,0,0,0}; int s3[]={0,1,0,0,0}; int s4[]={1,0,0,1,1}; //初始化种群规模为4,产生初始化种群基因位串编码 Chromosome C1=new Chromosome(); Chromosome C2=new Chromosome(); Chromosome C3=new Chromosome(); Chromosome C4=new Chromosome(); GA() { C1.initGene(s1); C2.initGene(s2); C3.initGene(s3); C4.initGene(s4); //实例化染色体类,产生4给染色体 } public String change(int a[]) { char b[]=new char[5]; for(int i=0;i5;i++) if(a[i]==0) b[i]=0; else b[i]=1; String s=new String(b); return s; }//转换字符串 public int fValue(int a[]) { int sum=0; for(int i=0;i5;i++) { sum=sum+a[4-i]*(int)Math.pow(2.0,(double)i); } return sum; } //基因位串换算成十进制编码值 public void fitnessCal() { C1.fitness=fValue(C1.geneString)*fValue(C1.geneString); C2.fitness=fValue(C2.geneString)*fValue(C2.geneString); C3.fitness=fValue(C3.geneString)*fValue(C3.geneString); C4.fitness=fValue(C4.geneString)*fValue(C4.geneString); } //求出每个染色体的适应度 public void chooseProCal() { double sum=0.0; sum=C1.fitness+C2.fitness+C3.fitness+C4.fitness; C1.chooseProbability=C1.fitness/sum; C2.chooseProbability=C2.fitness/sum; C3.chooseProbability=C3.fitness/sum; C4.chooseProbability=C4.fitness/sum; } //计算每个染色体的选择概率 public void accumulatedProCal() { C1.accumulatedProbability=C1.chooseProbability; C2.accumulatedProbability=C1.accumulatedProbability+C2.chooseProbability; C3.accumulatedProbability=C2.accumulatedProbability+C3.chooseProbability; C4.accumulatedProbability=C3.accumulatedProbability+C4.chooseProbability; } //计算每个染色体的积累概率 public void chooseNumC

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档