《遗传算法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. java代码例子_Java与C++两大语言比较
  2. 在数据准备区中允许使用的数据结构有哪些, 各有什么优点?
  3. 小鼠皮肤组织细胞悬液制备流程
  4. 64位ubuntu安装交叉编译器出现的问题。nuc972工程中的问题
  5. Effective前端5:减少前端代码耦合
  6. 今天的这天晚上的飞鸽传书
  7. Linux运维需要掌握的技能 (转)
  8. Powershell中禁止执行脚本解决办法
  9. c4d计算机丢失api-ms,遭遇 mssvc.exe svcUpdate.exe IESeven.dll DBSeven.dll病毒第2/3页
  10. 学习PyQt5(四):PyQt5的控件Spacers
  11. JavaEE初阶-计算机是如何工作的
  12. 邮箱地址采集的10个经典方法
  13. RabbitMQ — RabbitMQ使用以及原理解析
  14. 树莓派的ssh连接配置
  15. [0CTF 2016]piapiapia php反序列化字符串逃逸
  16. Big Faceless Java Pdf报表生成器控件介绍
  17. “术业有专攻”和“功夫在行外”--笑来
  18. Docker 从入门到精通
  19. Pico4VR一体机游戏资源下载安装教程,Pico4无线串流PCVR游戏教程pico4串流游戏下载
  20. 【原理】理解JavaScript中的上下文-对象字面量

热门文章

  1. oracle12c linux安装教程
  2. 禾川plc编程软件_HCP Works(禾川PLC编程工具)V2.26.01.92013 免费版
  3. WPS 破解宏 安装VBA VBA for WPS
  4. 电视盒子 android tv6,【亲测】S905L/S905L-B安卓TV6.0通刷固件
  5. Java常用到的快捷键
  6. php 验证手机号码(海外手机号)
  7. Microsoft Office (Visio)安装与激活
  8. ARM汇编指令集与机器码
  9. Arduino用作usb转ttl串口调试工具
  10. CentOS7 完全卸载MySQL