总的来说就是广撒网,选择性捕捞(代码在最下方,理论知识到处都有,代码才是最实在的)
遗传算法用途
主要用于寻找目标函数最优解(最大,最小值)
相对退火法,遗传算法更有可能跳出局部最优解,得到全局最优解
遗传算法核心思想(代码的核心四个部分)
遗传算法是仿照了达尔文的生物进化概念:“物竞天择,适者生存”

选择:选择更适合生存者,淘汰劣势者。

交叉:下一代获得父母的基因片段,以得到更加优良的基因。

变异:光靠父母的基因不一定能够生存下来,环境等影响会造成基因的变异,使得其能跳出父母基因的限制,得到更适合生存的基因。

经过这样一轮轮的选择,优良的基因(自变量)就被选择出来了。

概率选择:自然界中,越适应的个体就越有可能繁殖后代。但是也不能说适应度越高的就肯定后代越多,只能是从概率上来说更多。对于上述三点“选择,交叉,变异”,遗传算法并不是(并不是劣势者就一定会被淘汰)常规的算法那种得到的值比其他值差就淘汰,而是给一个概率(谁说劣势者就一定会灭亡,它也有生存下去的可能,只是生存的几率低罢了),这个概率取决于个体的适应度大小(优化算法中即所得到的目标函数大小),这里使用轮盘赌来进行选择

适者生存下来的概率大些,但概率小的也不见得不能生存下来。你可以想象一下,我们转动轮盘,轮盘停下来的时候,指针会随机地指向某一个个体所代表的区域,那么非常幸运地,这个个体被选中了(很明显,适应度评分越高的个体被选中的概率越大)。

添加概率选择后,算法便多了可选择性,有了更多的可能,更容易跳出局部最优解。

下图是遗传算法的结构图

其中,GEN是当前代数;M是种群规模,i代表种群数量。

编码处理
如果对代码比较熟练的,上面的介绍应该已经有一个大概的了解了。接下来主要是遗传算法转换成代码的一些细节处理。

遗传算法对于我们来说,主要是想使用一个输入得到一个函数的最优解,所以在这里输入的选择是怎么样的呢?
为了契合生物进化这个概念,对于输入应该进行一个编码,因为大多数遗传算法都使用二进制编码进行运算,所以此文只讨论二进制编码作为输入。
对于一个简单函数:y=x1+x2求最大值, 有两组解x1={1,3,4,2,5},x2={2,4,1,5,3}
当然我们可以直接看出第五个解x1=5,x2=3是最优解,
用二进制进行编码,例如5=0101,3=0011,那么总体编码可以写为01010011。编码只是一种形式,计算还是要以对应的数字进行计算。
想想1在计算机的二进制形式是什么?如果八位来表示的话,是不是就是0000 0001;8是不是就是0000 1000;以此类推,那么我们这里也是这样,把对应的x值换算成这种编码形式,我们这里可以看到x的范围是0-5吧,如果按照计算机这样的方式是不是到0000 0101这里就完事了?想想这样多短,前面五位都没有用上多浪费呀,那么要想都用上怎么办呢?也很简单,我们把0000 0001不认为是1不就可以了吗?因为1111 1111是255,那么如果说每一份为1/255的话,那么0000 0001不就是1/255了吗?这个时候1怎样表示了?不就是1111 1111吗?好了我们把范围扩大一些吧,每一份不是1/255,而是1/255*5,那么这个时候最大值是多少?是不是5,恩,这样x编码的范围就在0-5之间了。
对于精确到多少位小数,这会影响二进制编码位数的选择
明显地,一定长度的二进制编码序列,只能表示一定精度的浮点数。譬如我们要求解精确到六位小数,由于区间长度为2 – (-1) = 3 ,为了保证精度要求,至少把区间[-1,2]分为3 × 106等份。又因为
所以编码的二进制串至少需要22位。(具体情况具体分析)
代码:目标函数
matlab输入下列代码运行:
fplot(@(x)4.*cos(2.*x).*sin(6.*x)+10.*sin(5.*x).*sin(3.*x)-3.*abs(x-5)+10,[0 10]);

自己定义所需目标函数。
总共八个m文件

初始种群:initpop.m
%初始化种群大小
%输入变量:
%popsize:种群大小
%chromlength:染色体长度-->>转化的二进制长度
%输出变量:
%pop:种群
function pop=initpop(popsize,chromlength)
pop = round(rand(popsize,chromlength));
%rand(3,4)生成3行4列的0-1之间的随机数
% rand(3,4)

% ans =

%     0.8147    0.9134    0.2785    0.9649
%     0.9058    0.6324    0.5469    0.1576
%     0.1270    0.0975    0.9575    0.9706
%round就是四舍五入
% round(rand(3,4))=
% 1 1 0 1
% 1 1 1 0
% 0 0 1 1
%所以返回的种群就是每行是一个个体,列数是染色体长度
主函数:main.m
function main()
clear;
clc;
%种群大小
popsize=100;
%二进制编码长度
chromlength=10;
%交叉概率
pc = 0.6;
%变异概率
pm = 0.001;
%初始种群
pop = initpop(popsize,chromlength);

for i = 1:100
    %计算适应度值(函数值)
    objvalue = cal_objvalue(pop);
    fitvalue = objvalue;
    %选择操作
    newpop = selection(pop,fitvalue);
    %交叉操作
    newpop = crossover(newpop,pc);
    %变异操作
    newpop = mutation(newpop,pm);
    %更新种群
    pop = newpop;
    objvalue = cal_objvalue(pop);
    fitvalue = objvalue;
    %寻找最优解
    [bestindividual,bestfit] = best(pop,fitvalue);
    x2 = binary2decimal(bestindividual);
    x1 = binary2decimal(newpop);
    y1 = cal_objvalue(newpop);
    if mod(i,10) == 0
        pause(1);
        figure(1);
        cla;
        fplot(@(x)4.*cos(2.*x).*sin(6.*x)+10.*sin(5.*x).*sin(3.*x)-3.*abs(x-5)+10,[0 10]);
        hold on;
        plot(x1,y1,'*');
        title(['迭代次数为n=' num2str(i)]);
    end
end
fprintf('The best X is --->>%5.2f\n',x2);
fprintf('The best Y is --->>%5.2f\n',bestfit);
选择函数:selection.m
function main()
clear;
clc;
%种群大小
popsize=100;
%二进制编码长度
chromlength=10;
%交叉概率
pc = 0.6;
%变异概率
pm = 0.001;
%初始种群
pop = initpop(popsize,chromlength);

for i = 1:100
    %计算适应度值(函数值)
    objvalue = cal_objvalue(pop);
    fitvalue = objvalue;
    %选择操作
    newpop = selection(pop,fitvalue);
    %交叉操作
    newpop = crossover(newpop,pc);
    %变异操作
    newpop = mutation(newpop,pm);
    %更新种群
    pop = newpop;
    objvalue = cal_objvalue(pop);
    fitvalue = objvalue;
    %寻找最优解
    [bestindividual,bestfit] = best(pop,fitvalue);
    x2 = binary2decimal(bestindividual);
    x1 = binary2decimal(newpop);
    y1 = cal_objvalue(newpop);
    if mod(i,10) == 0
        figure;
        fplot(@(x)4.*cos(2.*x).*sin(6.*x)+10.*sin(5.*x).*sin(3.*x)-3.*abs(x-5)+10,[0 10]);
        hold on;
        plot(x1,y1,'*');
        title(['迭代次数为n=' num2str(i)]);
        %plot(x1,y1,'*');
    end
end
fprintf('The best X is --->>%5.2f\n',x2);
fprintf('The best Y is --->>%5.2f\n',bestfit);
交叉函数:crossover.m
%交叉变换
%输入变量:pop:二进制的父代种群数,pc:交叉的概率
%输出变量:newpop:交叉后的种群数
function [newpop] = crossover(pop,pc)
[px,py] = size(pop);
newpop = ones(size(pop));
for i = 1:2:px-1
    if(rand<pc)
        cpoint = round(rand*py);
        newpop(i,:) = [pop(i,1:cpoint),pop(i+1,cpoint+1:py)];
        newpop(i+1,:) = [pop(i+1,1:cpoint),pop(i,cpoint+1:py)];
    else
        newpop(i,:) = pop(i,:);
        newpop(i+1,:) = pop(i+1,:);
    end
end
变异函数:mutation.m

%函数说明
%输入变量:pop:二进制种群,pm:变异概率
%输出变量:newpop变异以后的种群
function [newpop] = mutation(pop,pm)
[px,py] = size(pop);
newpop = ones(size(pop));
for i = 1:px
    if(rand<pm)
        mpoint = round(rand*py);
        if mpoint <= 0
            mpoint = 1;
        end
        newpop(i,:) = pop(i,:);
        if newpop(i,mpoint) == 0
            newpop(i,mpoint) = 1;
        elseif newpop(i,mpoint) == 1
            newpop(i,mpoint) = 0;
        end
    else
            newpop(i,:) = pop(i,:);
    end
end
二进制转十进制:binary2decimal.m
%二进制转化成十进制函数
%输入变量:
%二进制种群
%输出变量
%十进制数值
function pop2 = binary2decimal(pop)
[px,py]=size(pop);
for i = 1:py
    pop1(:,i) = 2.^(py-i).*pop(:,i);
end
%sum(.,2)对行求和,得到列向量
temp = sum(pop1,2);
pop2 = temp*10/1023;
目标函数:cal_objvalue.m
%计算函数目标值
%输入变量:二进制数值
%输出变量:目标函数值
function [objvalue] = cal_objvalue(pop)
x = binary2decimal(pop);
%转化二进制数为x变量的变化域范围的数值
objvalue=4.*cos(2.*x).*sin(6.*x)+10.*sin(5.*x).*sin(3.*x)-3.*abs(x-5)+10;

选择最优个体:best.m
%求最优适应度函数
%输入变量:pop:种群,fitvalue:种群适应度
%输出变量:bestindividual:最佳个体,bestfit:最佳适应度值
function [bestindividual bestfit] = best(pop,fitvalue)
[px,py] = size(pop);
bestindividual = pop(1,:);
bestfit = fitvalue(1);
for i = 2:px
    if fitvalue(i)>bestfit
        bestindividual = pop(i,:);
        bestfit = fitvalue(i);
    end
end
效果图如下

最终结果:

动态图显示代码
将主函数替换成下述代码,即可生成一个gif动态图显示

for i = 1:100
    %计算适应度值(函数值)
    objvalue = cal_objvalue(pop);
    fitvalue = objvalue;
    %选择操作
    newpop = selection(pop,fitvalue);
    %交叉操作
    newpop = crossover(newpop,pc);
    %变异操作
    newpop = mutation(newpop,pm);
    %更新种群
    pop = newpop;
    objvalue = cal_objvalue(pop);
    fitvalue = objvalue;
    %寻找最优解
    [bestindividual,bestfit] = best(pop,fitvalue);
    x2 = binary2decimal(bestindividual);
    x1 = binary2decimal(newpop);
    y1 = cal_objvalue(newpop);
%     if mod(i,10) == 0
        pause(1);
        figure(1);
        cla;
        fplot(@(x)4.*cos(2.*x).*sin(6.*x)+10.*sin(5.*x).*sin(3.*x)-3.*abs(x-5)+10,[0 10]);
        hold on;
        
        plot(x1,y1,'*');
        title(['迭代次数为n=' num2str(i)]);
        frame=getframe(gcf);
        imind=frame2im(frame);
        [imind,cm] = rgb2ind(imind,256);
        if i==1
            imwrite(imind,cm,'test.gif','gif', 'Loopcount',inf,'DelayTime',1e-4);
        else
            imwrite(imind,cm,'test.gif','gif','WriteMode','append','DelayTime',1e-4);
        end
%     end
end
fprintf('The best X is --->>%5.2f\n',x2);
fprintf('The best Y is --->>%5.2f\n',bestfit);
如果觉得麻烦,可在我的下载中直接下载代码

www.mendeley.com/catalogue/a38dca3a-e01b-3e8d-bb41-d23e86055a26/
www.mendeley.com/catalogue/c5e131da-571b-3abf-a2be-2b80358366b8/
www.mendeley.com/catalogue/76d26687-e94e-3de3-856c-d2e9764394ee/
www.mendeley.com/catalogue/029e4150-4b7e-35e5-9c7a-9fc16960f8fa/
www.mendeley.com/catalogue/9075095c-5d0f-3e43-97ec-5273880c56d3/
www.mendeley.com/catalogue/0bfdc865-4125-3abf-98be-d3d061d38d4c/
www.mendeley.com/catalogue/511d2b16-7e9f-32b3-9bcf-ce2349d4f84a/
www.mendeley.com/catalogue/c4601ba7-fcf0-3444-a700-637674544f5a/
www.mendeley.com/catalogue/6a441b5a-0bf5-33c0-b30a-a38a4c05d155/
www.mendeley.com/catalogue/f979ffb9-ab4f-30da-90b1-ccd1a96c12b5/
www.mendeley.com/catalogue/32164ae9-79ec-3af8-88c6-133239dd96e0/
www.mendeley.com/catalogue/c5791631-8af4-341c-a51a-7e9bd0c7613b/
www.mendeley.com/catalogue/579e85f0-6493-3224-9336-22830976d048/
www.mendeley.com/catalogue/eceabef6-c124-3a0c-a1b8-5b1843868146/
www.mendeley.com/catalogue/a904b421-f69a-3fec-a2e7-c71abfd38b5b/
www.mendeley.com/catalogue/e3f4b418-9ef2-3adc-b6aa-cd28ac30907b/
www.mendeley.com/catalogue/da6e78d3-6745-3ff5-b832-d04243a277e3/
www.mendeley.com/catalogue/203c4a70-21aa-35f4-ac30-56ffdc5761b3/
www.mendeley.com/catalogue/fa999044-cee1-36c0-b6cc-de6eb884c619/
www.mendeley.com/catalogue/e6c3c1b3-abb9-31ee-808a-91e6ffcd9e76/
www.mendeley.com/catalogue/1bd51bd9-2faf-38f3-bf67-467379e0a954/
www.mendeley.com/catalogue/ddfec329-7cab-38c1-9843-4fd6595bf5fa/
www.mendeley.com/catalogue/933bebb5-673a-32d4-9fe0-3efb64d2e124/
www.mendeley.com/catalogue/a5a75299-b7e4-3d99-9671-eed2ade749cb/
www.mendeley.com/catalogue/d772d2b1-ebbe-356e-a961-965bcac502a3/
www.mendeley.com/catalogue/c1b2bcb1-3f02-367e-b322-f78deb7ef031/
www.mendeley.com/catalogue/494d08aa-87eb-39f6-a69f-708ad5e6376d/
www.mendeley.com/catalogue/70649513-6226-3f0d-803d-0cf17256931e/
www.mendeley.com/catalogue/1bc3eb79-eff0-3be8-8067-07a796b22f66/
www.mendeley.com/catalogue/86a1ee88-d0c1-32df-b51b-f4f3d86bfe2d/
www.mendeley.com/catalogue/9073b965-5b52-3fed-80c6-e27348866182/
www.mendeley.com/catalogue/db3075e8-f9b1-33b4-8eb2-4f3c7e8fa1d9/
www.mendeley.com/catalogue/9077ca59-79ee-3797-b43a-2b19d1ff5a64/
www.mendeley.com/catalogue/cbd12003-2110-3696-bab2-351ac0779642/
www.mendeley.com/catalogue/3ccfef9a-d1ca-30c8-98c4-acf1052ee0de/
www.mendeley.com/catalogue/e2c499eb-04fb-3b97-adf4-d1fb7db2e941/
www.mendeley.com/catalogue/01d801c6-53c8-352f-bf69-979274da3973/
www.mendeley.com/catalogue/ccf113fb-f7f4-3c8e-861d-c6662df7ba74/
www.mendeley.com/catalogue/aa52cabd-4bd0-3b37-984c-52c0eddf294d/
www.mendeley.com/catalogue/47ea905d-dfe8-3181-bad8-748fd75d4b0b/
www.mendeley.com/catalogue/c2b71bb9-f58e-363e-921d-0470ea9e9111/
www.mendeley.com/catalogue/98a33604-eb0e-3ac2-95aa-9759281d9690/
www.mendeley.com/catalogue/e9502ff0-3925-3d79-8f06-7d74848f7f35/
www.mendeley.com/catalogue/f2dee751-5d11-3ab3-a6ca-c4bcfa3f5519/
www.mendeley.com/catalogue/edf7d816-f78e-3ca2-9031-ea56d24b5e5d/
www.mendeley.com/catalogue/5a82644b-6502-302d-8cb8-a508fe65b56a/
www.mendeley.com/catalogue/903c4efe-1dd0-3590-82aa-539376010abc/
www.mendeley.com/catalogue/0040f8db-ee3f-300b-b49c-47c8e7678929/
www.mendeley.com/catalogue/4cc5b6f5-55ce-3ae3-af9d-8bb75bd560cd/
www.mendeley.com/catalogue/8099bb92-3f17-3bd4-8fd8-5cadd10fd1b6/
www.mendeley.com/catalogue/7205adfa-6fff-364d-a66c-15e3507c2ed0/
www.mendeley.com/catalogue/4dc0cd8b-5d04-3228-8315-4b239d6829a5/
www.mendeley.com/catalogue/bc631ba2-cfbc-368d-924b-43b21072e4b7/
www.mendeley.com/catalogue/61854be7-4939-3e3d-ab2b-8e0b39245104/
www.mendeley.com/catalogue/01deb5cf-ba8c-3e07-8315-2b94420c863f/
www.mendeley.com/catalogue/a3417667-e8cb-3575-bf8c-bfaabf0cb68e/
www.mendeley.com/catalogue/898f4a01-43e8-3a59-b16a-4e5b1daeb9eb/
www.mendeley.com/catalogue/5f41ef87-e634-302f-8eea-964d0f680e07/
www.mendeley.com/catalogue/9c065c82-dded-3b27-bf0b-6a337d8e37e9/
www.mendeley.com/catalogue/df3dfbd8-e069-3295-9fe4-736252d65429/
www.mendeley.com/catalogue/96662808-b302-329b-a678-b74826ad3833/
www.mendeley.com/catalogue/3fc2aea9-d8d6-3bfa-bc65-0304ddec0ed2/
www.mendeley.com/catalogue/acfbaa35-498a-34f8-926f-d24cc86fbb7a/
www.mendeley.com/catalogue/e4942787-9a50-34d2-8c35-36152b11e582/
www.mendeley.com/catalogue/fc2e0e4e-262c-3166-9fe7-43a20984c84d/
www.mendeley.com/catalogue/c24a121d-97cb-3284-a56d-85f29589a8fe/
www.mendeley.com/catalogue/ca7aef15-899f-3ff0-8b02-fc156d8d5f6c/
www.mendeley.com/catalogue/37a1c68c-4b1f-3658-8f63-e5c1d80113a2/
www.mendeley.com/catalogue/220adbfb-c09f-3f69-9541-c9f6045fe837/
www.mendeley.com/catalogue/8a78ca63-8336-3e7b-a146-8b32c003fcf2/
www.mendeley.com/catalogue/411fe5cb-39b1-3ea4-bf9a-c9798fdf9a46/
www.mendeley.com/catalogue/cee737ff-6c68-3eaf-8c35-eb8f02ea43ea/
www.mendeley.com/catalogue/68975845-faec-3825-b5d3-f873c878b56b/
www.mendeley.com/catalogue/8171ef07-881a-3adf-af14-290c7467bcdf/
www.mendeley.com/catalogue/36987253-9e92-36b1-a29e-b95cbc1e8a28/
www.mendeley.com/catalogue/82a58f7d-1874-3686-b065-17f65bef3ea5/
www.mendeley.com/catalogue/df262a88-d61b-3acd-9fdb-3fe34df089e2/
www.mendeley.com/catalogue/72bed5ff-50ac-3cc7-99bf-f2f8928dc544/
www.mendeley.com/catalogue/191f9018-962d-3f04-8890-690b7208716b/
www.mendeley.com/catalogue/7812e40d-e1b7-3bc9-a682-a72d054c2350/
www.mendeley.com/catalogue/8ad9baae-cd93-38bf-8140-92a24047feac/
www.mendeley.com/catalogue/1d175a80-7c43-32fa-a502-03d521bf1444/
www.mendeley.com/catalogue/84f08e7e-8faa-368d-a255-d5aedbb834ea/
www.mendeley.com/catalogue/ce170254-f29d-377c-87d1-f50513604ddb/
www.mendeley.com/catalogue/ae40f5fa-7662-3fb1-a2eb-62436b46bcc8/
www.mendeley.com/catalogue/c0e29cff-43bf-331c-aecd-415b4ee4a3ed/
www.mendeley.com/catalogue/6c821afb-eb7c-3537-b2b9-7cced6e8920d/
www.mendeley.com/catalogue/18864af9-a4b8-3326-b467-11f8cdfa5785/
www.mendeley.com/catalogue/2ef29706-14b7-3000-842c-dbad3ba590c2/
www.mendeley.com/catalogue/f3b9a2e6-9312-32a8-8256-0a9412b43e76/
www.mendeley.com/catalogue/08b13dac-aa4d-38f2-acbf-8a783605d57b/
www.mendeley.com/catalogue/7871276d-510f-32b5-b9fd-550b393f3dce/
www.mendeley.com/catalogue/c3d9dddc-1037-3dac-bbd8-1dea6abec868/
www.mendeley.com/catalogue/9c56e981-eeba-38f7-bb32-95fde6234d4c/
www.mendeley.com/catalogue/e232471b-62c7-3932-8d14-19a08a6fc50e/
www.mendeley.com/catalogue/632548e5-2bcb-3ad9-a272-2af372bdbab7/
www.mendeley.com/catalogue/622e006c-735c-3d23-963c-7f226c5c06dd/
www.mendeley.com/catalogue/9dae6bee-d70e-3fee-b4d5-fd3c5d7948be/
www.mendeley.com/catalogue/85fe0166-55ba-34df-9aaf-1072504450d9/
www.mendeley.com/catalogue/66ea2dee-c990-35ec-bbae-a1808520cb31/
www.mendeley.com/catalogue/9d006e82-f28c-3abc-97c6-6f5b9101a8ca/
www.mendeley.com/catalogue/1bf1b9b8-b21a-342e-9c1f-ea2cd15e8027/
www.mendeley.com/catalogue/c5378199-ea87-3423-b9bc-c448750dfda9/
www.mendeley.com/catalogue/04d61a79-8d75-3207-a931-ee9b38875e91/
www.mendeley.com/catalogue/ffad1375-3162-307d-848a-0277454376b6/
www.mendeley.com/catalogue/3eb66992-8e90-31cc-922a-eb628fcefdff/
www.mendeley.com/catalogue/f54eb685-521a-3f43-b89b-75b775fad7c4/
www.mendeley.com/catalogue/641eca51-c1c1-32c1-b904-709eab8e542e/
www.mendeley.com/catalogue/b3433abb-acbe-32e7-84c3-858809cbc28e/
www.mendeley.com/catalogue/0f10bee0-0de1-38ea-b261-340dfc1c21a0/
www.mendeley.com/catalogue/9d3d22b9-3857-386f-9895-2cf11c6ba6ab/
www.mendeley.com/catalogue/054a4ddb-5c8e-3712-bb7b-409ae323ab9c/
www.mendeley.com/catalogue/b70596b2-1546-3a97-9375-d878d7347272/
www.mendeley.com/catalogue/979b607e-04e6-3859-a288-74d6c8467b0f/
www.mendeley.com/catalogue/a58f4ee0-8327-3776-a2f1-7eb56aae3695/
www.mendeley.com/catalogue/84d7aaa3-91e7-3120-b8bb-0081c5a4bbf3/
www.mendeley.com/catalogue/3f5f4981-741b-3e90-bcad-d9cfdfb09ca9/
www.mendeley.com/catalogue/80c15e6e-f928-30fc-9b87-fef7621a538b/
www.mendeley.com/catalogue/7f13fe17-1be7-3e56-9bc3-315b16abc04d/
www.mendeley.com/catalogue/efd6ec63-7b1d-3322-b5cd-0b1f3529cda2/
www.mendeley.com/catalogue/10a8a43b-714f-3dcd-844f-ae33aa67f9a2/
www.mendeley.com/catalogue/86622e86-f194-3d47-ba5f-5c5fb22dc7ee/
www.mendeley.com/catalogue/44a485ab-5950-3651-bf1b-d82491f1aced/
www.mendeley.com/catalogue/441aa549-9ff9-32f6-a75d-9241e79ef818/
www.mendeley.com/catalogue/975e05a8-a4a5-3e06-a1f9-c5b7ccf9d5b7/
www.mendeley.com/catalogue/e9b59272-3fd6-3aaf-ad5e-b293b459b970/
www.mendeley.com/catalogue/2a7c29b8-7362-3868-9bf8-a6f7040bd6c1/
www.mendeley.com/catalogue/30caf506-9caf-340c-8554-7e1a7ccb645e/

遗传算法(GA)附Matlab代码(copy能用)寻优算法相关推荐

  1. nlm算法matlab代码_遗传算法GA的MATLAB代码

    MATLAB 实现算法代码: GA (遗传算法)--整数编码 function [BestGene,aa] = GA(MaxGeneration,GeneSize,GeneNum,pcross,pmu ...

  2. 【有序充电】基于遗传算法对电动汽车有序充电进行优化附Matlab代码

    1 简介 为了保证小区电动汽车充电时变压器不过载,提出基于遗传算法的小区电动汽车有序充电控制方法.在综合考虑用户充电需求的基础上,以不改变变压器供电容量和"削峰填谷"为目标,采用蒙 ...

  3. 多目标优化 | NSGA-Ⅲ(中篇,附MATLAB代码)

    目录 常规归一化操作 种群个体的自适应归一化操作 计算种群理想点 转换种群目标函数值 计算每个坐标轴对应的极值点 计算超平面与坐标轴的截距 归一化种群目标函数值 种群自适应归一化操作伪代码 NSGA- ...

  4. MATLAB应用实战系列NSGA-II多目标优化算法原理及应用实例(附MATLAB代码)

    前言 NSGA-Ⅱ是最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准. NSGA-Ⅱ算法是 Srinivas 和 D ...

  5. a*算法matlab代码_NSGAII多目标优化算法讲解(附MATLAB代码)

    小编今天为大家讲解NSGA-II多目标优化算法,提到多目标优化,大家可能第一个就想到NSGA-II算法,今天小编就带领大家解开NSGA-II的神秘面纱. NSGA-II全称是快速非支配排序遗传算法,这 ...

  6. 惩罚函数外点matlab,禁忌搜索算法求解带时间窗的车辆路径问题(惩罚函数版 附MATLAB代码)...

    本周应小伙伴要求继续学习TS求VRPTW,不过这次通过使用惩罚约束的形式允许解违反时间窗约束和容量约束,不过要给违反约束的解加以惩罚. 这次我们的目标函数就不单单只有车辆总行驶距离了,还要包括当前解中 ...

  7. 数学规划模型总结(附MatLab代码)

    数学规划模型总结(附MatLab代码) 概述 定义 一般形式 分类 线性规划(linear programming) 非线性规划(nonlinear programming) 整数规划(integer ...

  8. 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码

    1 简介 视网膜图像里的血管是可以被观察到的一类微血管,并且它是无创伤的,而其分布位置也属于深度部位[5].其分布.结构和形态特征的变化能在一定程度上反映病变的程度.而白血病.糖尿病以及高血压等疾病都 ...

  9. 四维空间的二维线框投影可视化(附matlab代码)

    四维空间的二维线框投影可视化(附matlab代码) 1 三维空间在2维屏幕上的投影 1.1平行投影 1.2透视投影 2 四维空间在2维屏幕上的投影 2.1 四维空间与三维空间的一些区别 2.2 四维空 ...

  10. 数字水印进阶篇——基于DWT-SVD的数字水印(附matlab代码)

    引言 之前写过一篇介绍空间域LSB的数字水印算法,有需要的朋友可以看看 数字水印入门篇--空间域LSB的数字水印(附matlab代码) 因空间域的数字水印是通过直接在图像上改变像素的方式来隐藏水印信息 ...

最新文章

  1. android:activity的生命周期及它们之间的传值
  2. 题目1470:调整方阵
  3. Zookeeper知识梳理
  4. DIV+CSS布局参考站点
  5. matlab球心投影,球心投影
  6. c# task添加顺序_关于c#:Task和async等待所需的指导
  7. Python 命令行非阻塞输入
  8. 再见,Navicat!这个 IDEA 的兄弟,真香!
  9. 图像语义分割 —利用Deeplab v3+训练VOC2012数据集
  10. 创业者应该思考智能硬件能为灾难做什么
  11. springboot利用拦截器和过滤器获取post请求参数
  12. 物理学的过去、现在与未来
  13. python-selenium  自动化弹幕
  14. 手把手带你使用EFR32 -- 土壤湿度传感器变身第二形态,以 ZigBee 形态出击
  15. Qt中添加资源文件及资源文件的使用
  16. 浅谈心电信号处理(3)-- 心电滤波简述
  17. NLP-统计词频之处理停用词
  18. s7填表指令att_S7-200PLC 表操作指令
  19. WampServer是干什么的
  20. django下载 中文名 文件

热门文章

  1. 深度学习训练(优化)参数的玄学解释
  2. android 字体的切换,Android为整个应用切换第三方字体
  3. 安装串口方法cp2102 usb to uart
  4. flink中UDF函数
  5. 什么是具有舆论属性或者社会动员能力的算法推荐服务提供者
  6. 在本地计算机无法启动t6,急急急急用友T6启动服务显示依存服务或组无法启动105...
  7. html5 first child,:first-child | CSS属性参考
  8. Android开发——蓝牙通信实现
  9. adobe cc 系列产品更改默认安装路径方法
  10. 示波器表笔旁边的夹子是什么_教你如何使用示波器的探头(校准、夹子和接线)...