《遗传算法C语言源代码(一元函数和二元函数)》由会员分享,可在线阅读,更多相关《遗传算法C语言源代码(一元函数和二元函数)(15页珍藏版)》请在人人文库网上搜索。

1、C语言遗传算法代码以下为遗传算法的源代码,计算一元代函数的代码和二元函数的代码以+为分割线分割开来,请自行选择适合的代码,使用时请略看完代码的注释,在需要更改的地方更改为自己需要的代码。+一元函数代码+#include #include#include#include#define POPSIZE 1000#define maximization 1#define minimization 2#define cmax 100#define cmin 0#define length1 20#define chromlength length1 /染色体长度/注意,你是求最大值还是求最小值int 。

2、functionmode=minimization;/变量的上下限的修改开始 float min_x1=-2;/变量的下界 float max_x1=-1;/变量的上界/变量的上下限的修改结束 int popsize; /种群大小int maxgeneration; /最大世代数double pc; /交叉率double pm; /变异率struct individualchar chromchromlength+1;double value; double fitness; /适应度;int generation; /世代数int best_index;int worst_index;str。

3、uct individual bestindividual; /最佳个体struct individual worstindividual; /最差个体struct individual currentbest;struct individual populationPOPSIZE;/函数声明 void generateinitialpopulation(); void generatenextpopulation();void evaluatepopulation();long decodechromosome(char *,int,int);void calculateobjectvalu。

4、e();void calculatefitnessvalue();void findbestandworstindividual();void performevolution();void selectoperator();void crossoveroperator();void mutationoperator();void input();void outputtextreport();void generateinitialpopulation( ) /种群初始化int i,j;for (i=0;i0.0)temp=cmin+populationi.value;elsetemp=0.。

5、0;else if (functionmode=minimization)if(populationi.valuebestindividual.fitness)bestindividual=populationi;best_index=i;else if (populationi.fitness=currentbest.fitness)currentbest=bestindividual;void performevolution() /演示评价结果if (bestindividual.fitnesscurrentbest.fitness)currentbest=populationbest_。

6、index;elsepopulationworst_index=currentbest;void selectoperator() /比例选择算法int i,index;double p,sum=0.0;double cfitnessPOPSIZE;struct individual newpopulationPOPSIZE;for(i=0;icfitnessindex)index+;newpopulationi=populationindex;for(i=0;i#include#include#include#define POPSIZE 500#define maximization 1#。

7、define minimization 2#define cmax 100#define cmin 0#define length1 20#define length2 20#define chromlength length1+length2 /染色体长度/-求最大还是最小值int functionmode=maximization;/-/-变量上下界float min_x1=0;float max_x1=3;float min_x2=1;float max_x2=5;/-int popsize; /种群大小int maxgeneration; /最大世代数double pc; /交叉率do。

8、uble pm; /变异率struct individualchar chromchromlength+1;double value; double fitness; /适应度;int generation; /世代数int best_index;int worst_index;struct individual bestindividual; /最佳个体struct individual worstindividual; /最差个体struct individual currentbest;struct individual populationPOPSIZE;/函数声明 void gene。

9、rateinitialpopulation(); void generatenextpopulation();void evaluatepopulation();long decodechromosome(char *,int,int);void calculateobjectvalue();void calculatefitnessvalue();void findbestandworstindividual();void performevolution();void selectoperator();void crossoveroperator();void mutationoperat。

10、or();void input();void outputtextreport();void generateinitialpopulation( ) /种群初始化int i,j;for (i=0;i0.0)temp=cmin+populationi.value;elsetemp=0.0;else if (functionmode=minimization)if(populationi.valuebestindividual.fitness)bestindividual=populationi;best_index=i;else if (populationi.fitness=currentb。

11、est.fitness)currentbest=bestindividual;void performevolution() /演示评价结果if (bestindividual.fitnesscurrentbest.fitness)currentbest=populationbest_index;elsepopulationworst_index=currentbest;void selectoperator() /比例选择算法int i,index;double p,sum=0.0;double cfitnessPOPSIZE;struct individual newpopulationP。

12、OPSIZE;for(i=0;icfitnessindex)index+;newpopulationi=populationindex;for(i=0;ipopsize; i+)populationi=newpopulationi;void crossoveroperator() /交叉算法int i,j;int indexPOPSIZE;int point,temp;double p;char ch;for (i=0;ipopsize;i+)indexi=i;for (i=0;ipopsize;i+)point=rand()%(popsize-i);temp=indexi;indexi=in。

13、dexpoint+i;indexpoint+i=temp;for (i=0;ipopsize-1;i+=2)p=rand()%1000/1000.0;if (ppc)point=rand()%(chromlength-1)+1;for (j=point; jchromlength;j+)ch=populationindexi.chromj;populationindexi.chromj=populationindexi+1.chromj;populationindexi+1.chromj=ch;void mutationoperator() /变异操作int i,j;double p;for 。

14、(i=0;ipopsize;i+)for(j=0;jchromlength;j+)p=rand()%1000/1000.0;if (ppm)populationi.chromj=(populationi.chromj=0)?1:0;void input() /数据输入 /printf(初始化全局变量:n);/printf( 种群大小(50-500):);/scanf(%d, &popsize);popsize=200;if(popsize%2) != 0)/printf( 种群大小已设置为偶数n);popsize+;/printf( 最大世代数(100-300):);/scanf(%d, &m。

15、axgeneration);maxgeneration=200;/printf( 交叉率(0.2-0.99):);/scanf(%f, &pc);pc=0.9;/printf( 变异率(0.001-0.1):);/scanf(%f, &pm);pm=0.003;void outputtextreport()/数据输出int i;double sum;double average;sum=0.0;for(i=0;ipopsize;i+)sum+=populationi.value;average=sum/popsize;printf(当前世代=%dn当前世代平均函数值=%fn当前世代最优函数值=。

16、%fn,generation,average,populationbest_index.value);void main() /主函数 int i;long temp1,temp2;double x1,x2;generation=0;input();generateinitialpopulation();evaluatepopulation();while(generationmaxgeneration)generation+;generatenextpopulation();evaluatepopulation();performevolution();outputtextreport();。

17、printf(n);printf( 统计结果: );printf(n);/printf(最大函数值等于:%fn,currentbest.fitness);printf(其染色体编码为:);for (i=0;ichromlength;i+)printf(%c,currentbest.chromi);printf(n); temp1=decodechromosome(currentbest.chrom,0,length1);temp2=decodechromosome(currentbest.chrom,length1,length2);x1=(max_x1-min_x1)*temp1/(1024*1024-1)+min_x1;x2=(max_x2-min_x2)*temp2/(1024*1024-1)+min_x2;printf(x=%lf,y=%lfn,x1,x2);/-修改函数printf(最大值=%fn,x1*x1+sin(x1*x2)-x2*x2);/。

C语言调用多元函数,遗传算法C语言源代码(一元函数和二元函数)相关推荐

  1. 二元函数求最小值 c语言,遗传算法C语言源代码(一元函数和二元函数)

    <遗传算法C语言源代码(一元函数和二元函数)>由会员分享,可在线阅读,更多相关<遗传算法C语言源代码(一元函数和二元函数)(15页珍藏版)>请在人人文库网上搜索. 1.C语言遗 ...

  2. 511遇见易语言调用API制作易语言模块

    类模块 集模块 免注册 免查杀模块 多线程模块 创建调用 模块方法名称 视频源码链接 类模块集模块API调用(最新推荐) 易语言模块API视频教程类模块集模块API调用 大漠免注册免查杀类模块(最新推 ...

  3. c语言调用c 方法,C语言代码中调用C++代码的方法示例

    由于历史原因,以及不同开发人员的技术偏好,C语言和C++语言都有一些独有的非常有价值的项目,因而两种语言的互操作,充分利用前人造的轮子是一件非常有价值的事情. C++代码调用C代码很简单,只要分别在包 ...

  4. c语言调用python3_linux下c语言调用python方法问题

    //c语言多线程调python,必须加上红色字体,因为python本身不是线程安全的 PyObject* callPython(char* cpModelPath) { if(cpModelPath ...

  5. c语言调用视频播放软件,C语言播放视频

    想必大家都想用C语言进行简单的视频播放,感觉貌似很难的样子,现在告诉大家既不用C++也不用MFC,只需要一个API函数MCIWndCreate()即可,具体参数内容参考MSDN.下面给出简单的例子,想 ...

  6. c语言调用linux脚本,C语言执行shellcode的五种方法

    //C语言执行shellcode的五种方法 #include #include //data段可读写 #pragma comment(linker, "/section:.data,RWE& ...

  7. C语言调用dbf文件,C语言直接读取FOXBASE的DBF文件.pdf

    C语言直接读取FOXBASE的DBF文件 维普资讯 1◇-l 1(Bs I 据 的读取 . 一 . 问题的提出 表 1 DBF文件的文件参数表 FOXBAsE有时在与外界进行数据交换 .提高数据 位置 ...

  8. c语言调用json编程,c语言开发JSON - wangxuwei的个人空间 - OSCHINA - 中文开源技术交流社区...

    安装json-c 库 $ sudo apt-get install libjson0-dev libjson0 代码json_test.c #include #include #include #in ...

  9. c语言调用tuxedo步骤,c语言入门之BCB客户端tuxedo开发实例

    tuxedo 的函数很多,所有应用都使用其中子集.这些函数子集包含在开发 包中一定的动态库中.下面以 tpinit,tpcall,tpterm,tpfree,tpalloc,Fget32,Fchg32 ...

  10. 函数图像变换的规律,以一元函数和二元函数为例来说明,对多元函数同样适用。

    规律: (1)1.1 自变量x乘以一个大于1的数,图像沿x轴压缩,因为现在x不需要走得那么远,y就能达到原来的函数值:1.2 x乘以一个(0,1)之间的数,图像沿x轴伸展,因为现在x需要走得更远,y才 ...

最新文章

  1. 哪个才是解决回归问题的最佳算法?线性回归、神经网络还是随机森林?
  2. 自主互助四环节之计算机教案,自主互助学习型课堂的实施方案
  3. Glassfish3 asadmin 常用命令
  4. springboot开启redis共享session设置过期时间
  5. OpenGL Texture Coordinates纹理坐标的实例
  6. C++确定对象被使用前已先被初始化
  7. 奥鹏教育计算机试题,最新奥鹏教育《计算机基础》模拟试卷附答案(11页)-原创力文档...
  8. 快速撑握C#知识点之类的数据成员
  9. 使用wireshark分析tcp报文
  10. 开关三极管的导通和截止条件
  11. jQuery双指放大缩小页面内容
  12. 小团队管理核心(一)
  13. Router-view
  14. 【Python】Jupyter Notebook介绍、安装及使用教程
  15. POJ 2125 Destroying The Graph Acwing 2325. 有向图破坏(拆点+最小权点覆盖集)
  16. Android开发自定义View之仿米家APP双色灯控制UI:做一个智能家居产品的简单智能灯UI !(附带Demo)
  17. 笔记本计算机风扇声音大怎么办,怎么解决笔记本风扇声音大 笔记本风扇声音大解决办法【图文】...
  18. 2022最新阿里云国际注册教程-不用绑定paypal注册
  19. 总计2171个BTC被盗,这个钱包漏洞的受害者越来越多
  20. nginx负载均衡之一致性Hash方式

热门文章

  1. 《廖雪峰python3教程》| 书评 + 学习笔记干货
  2. sas9.4安装教程
  3. idea 添加格式化json插件GsonFormat 和快速解析第三方返回json数据
  4. SC-RoadDeepNet学习笔记
  5. python笔试题目及答案_python笔试题(附带答案)
  6. 如何解决飞秋FeiQ绑定端口错误
  7. Java语言实现人脸识别
  8. 网站转换APP源代码/WebAPP源代码/网站生成APP源代码/Flutter项目/带控制端
  9. App制作开发工具源代码搭建网站转app网站
  10. Jquery 取色器