下面的代码是求y=x*sin(10*pi*x)+2 (-1<=x<=2)的(近似)最大值,但稍作修改即可求其他函数的最值。 View Code
其中第一列为染色体编号,第二列到第六列为随机产生的0和1组成的二进制编码,第七列为二进制编码代表的十进制的值。 适应度函数 一般情况下,染色体(也叫个体,或一个解)的适应度函数为目标函数的线性组合。本文直接以目标函数作为适应度函数。即每个染色体的适应度值就是它的目标函数值,f(x)=x2 + 5。 选择算...
遗传算法求解函数极值C语言代码#include "stdio.h" #include "stdlib.h" #include "conio.h" #include "math.h" #include "time.h" #define num_C 12 //个体的个数,前6位表示x1,后6位表示x2 #define N 100 //群体规模为100 #define pc 0.9 //交叉概率为0.9...
(整理)遗传算法求解函数极值C语言代码#include "stdio.h" #include "stdlib.h" #include "conio.h" #include "math.h" #include "time.h" #define num_C 12 //个体的个数,前6位表示x1,后6位表示x2 #define N 100 //群体规模为100 #define pc 0.9 //交叉概率为0.9 #define pm 0.1 //变异概率...
其中x1,x2,x3,x4,x5是0~0.9*PI之间的实数。该函数的最小值为2,当x1,x2,x3,x4,x5都取PI/2时得到。 使用C语言实现的遗传算法求解代码如下: /** 遗传算法求解函数的最优值问题 * 参考自《MATLAB智能算法30个案例分析》 * 本例的寻优函数为:f = -5*sin(x1)*sin(x2)*sin(x3)*sin(x4)*sin(x5...
本部分主要为了了解遗传算法的应用,选择一个复杂的二维函数来进行遗传算法优化。函数显示为y=10*sin(5*x)+7*abs(x-5)+10,这个函数图像为: 怎么样,还是有点复杂的吧,当然你还可以任意假设和编写,只要符合就可以。那么现在问你要你一下求出最大值你能求出来吗?(这个貌似可以,很容易看出来---如何再复杂一点...
每个变量有M个取值范围)寻找函数取值最大或最小的点,可以通过寻找优化函数的全局最小值或最大值来...
遗传算法求函数极值算是遗传算法的一种最简单的应用,这里就介绍一种简单的,全文基本翻译自codeproject的一篇文章,作者为Luay Al-wesi,软件工程师。例子中的函数为y = -x2+ 5 ,大家可以将其改为其他复杂一些的函数,比如说f=x+10sin(5x)+7cos(4x)等。本篇文章适合遗传算法初学者阅读,大牛请绕道,呵呵。文...
首先要有一个目标函数,如:y=x1^2-1+x2^3,变量个数,如 2 再有不等式、等式、边界约束 ,如无则为[]用命令求最小值点:[x,fva]=ga(@y,2,A,b,Aeq,beq,Lb,Ub)