求解释一段遗传算法matlab代码% Pair and mateprob=flipud([1:keep]’/sum([1:keep])); % weights chromosomesodds=[0 cumsum(prob(1:keep))’]; % probability distribution[1:sum([1:keep]是指1到keep的和么?[0 cumsum(prob(1:keep))’]又是什

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 12:51:06
求解释一段遗传算法matlab代码% Pair and mateprob=flipud([1:keep]’/sum([1:keep])); % weights chromosomesodds=[0 cumsum(prob(1:keep))’]; % probability distribution[1:sum([1:keep]是指1到keep的和么?[0 cumsum(prob(1:keep))’]又是什

求解释一段遗传算法matlab代码% Pair and mateprob=flipud([1:keep]’/sum([1:keep])); % weights chromosomesodds=[0 cumsum(prob(1:keep))’]; % probability distribution[1:sum([1:keep]是指1到keep的和么?[0 cumsum(prob(1:keep))’]又是什
求解释一段遗传算法matlab代码
% Pair and mate
prob=flipud([1:keep]’/sum([1:keep])); % weights chromosomes
odds=[0 cumsum(prob(1:keep))’]; % probability distribution
[1:
sum([1:keep]是指1到keep的和么?
[0 cumsum(prob(1:keep))’]又是什么意思?

求解释一段遗传算法matlab代码% Pair and mateprob=flipud([1:keep]’/sum([1:keep])); % weights chromosomesodds=[0 cumsum(prob(1:keep))’]; % probability distribution[1:sum([1:keep]是指1到keep的和么?[0 cumsum(prob(1:keep))’]又是什
先看这个结构里面的这些函数都是干什么用的,prob,概率.[1:keep],这里应该能大概看出来keep是整数,1:keep 等价于1:1:keep,比如1:10,就是1,2,3,4,5,6,7,8,9,10.步长为1,从1到keep.
右上角的',这个符号,表示转置,比如1:10,是一个1行10列的矩阵,通过转置变成10行一列.
其中,sum([1:keep]),表示对这个矩阵(从1到keep求和),但是这个语句 prob=flipud([1:keep]'/sum([1:keep]));
里面总觉得缺少了一个..prob=flipud([1:keep]'./sum([1:keep])); 这样看来应该才能运行,我没尝试,在command window里面直接做是可以的,但是在脚本文件里面做,可能会报错.这个和矩阵运算有关,暂且放在这里.
然后到外部,这样我们知道了在第一行flipud()函数体里面,实际上是在用1到keep的每一个数,除以1到keep的和值,得到一个长度为keep的矩阵.值得注意的是,这个矩阵的和值为1,在下面会用到这一点.
然后flipud()函数的作用,是把矩阵倒置,比如[1,3,4,5],使用flipud()之后变成[5,4,3,1].注意,这个操作和sort()函数不同,这个只是把以前的顺序倒置,并不排序.
从这里大概可以看出来,其实这个keep的值,等于chromosomes,染色体数量.这样,对于不同的染色体,配对概率就不一样了.从这里可以看出来,染色体配对概率应该是第一条最高,然后依次递减.
然后计算或然率,cumsum(),进行累加求和,比如matlab中给出的例子,我们用[1,2 ,3] 也可以写作1:3,来说,cumsum之后的结果是[1, 3, 6],也就是从第一个开始加和,一直加到这一项.这一点,非常类似高斯函数积分的感觉.用来计算概率cumulative distribution.
然后odd变量,把0加在了cumsum结果的前面,比如刚刚的例子[0 cumsum([1, 2, 3])],就变成了[0, 1, 3,6].
注意这个地方他又转置了一次,因为在第一行计算prob的时候,他把一个行向量,转换成了列向量,然后现在要把0加在头上,所以在进行cumsun()运算的时候,又把结果从列向量转换成了行向量.
仅从这两行代码里面,就大概只能看出这个意思了.
不过简单一说,现在看不出来这个遗传算法的核心是什么样的,一般的神经网络里面只有连锁交换定律的应用,一般没有基因分离定律的应用.看这个样子,这是分离出来然后自由配对的做法,应该是比较高端的东西吧.

MATLAB遗传算法求多元函数最大值代码 matlab实现遗传算法各个程序解释 求解释一段遗传算法matlab代码% Pair and mateprob=flipud([1:keep]’/sum([1:keep])); % weights chromosomesodds=[0 cumsum(prob(1:keep))’]; % probability distribution[1:sum([1:keep]是指1到keep的和么?[0 cumsum(prob(1:keep))’]又是什 求遗传算法的matlab程序 matlab 遗传算法 染色体为实数的交叉和变异的代码怎么写啊 qr算法求对称矩阵特征值的matlab代码 在matlab中如何用遗传算法求极值 用简单遗传算法求最大值,matlab程序如何写? 怎样用matlab实现遗传算法 matlab遗传算法求函数极小值!f(x,y) =-2.113-0.1326x+10.49y+0.1505x^2-2.924x*y+10.11y^2 ;x(0,0.1);y(18,36);我要matlab代码 matlab遗传算法工具箱里用的是哪种遗传算法 matlab求不定积分代码 遗传算法MATLAB程序问题begininitialize p(0);t=0;while (t matlab 这里有一段代码,求加注释解释意思:logx=log10(1:length(y));logy=log10(y);[p,S] = polyfit(logx,logy,1);%一次线性拟合gamma=p(1);%这个是算什么y0=p(2);%这个是算什么Output = polyval(p,logx);%这个是算什么Correla 遗传算法中罚函数的应用谁能给我一段罚函数的代码?我的代码老是出现问题, 请问如何用matlab遗传算法编程? 遗传算法求最短路径的matlab程序, matlab 遗传算法哪位大哥大姐给俺具体解释下这遗传算法 怎么操作的啊?本人感激不尽!把本人所有的分数给大家!