日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多目标遗传算法优化

發布時間:2025/3/13 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多目标遗传算法优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
function MultiGA()
%% 遺傳算法求解多目標優化案例
%% 將原多目標函數改寫為f1=(x^2+y^2)/4;f2=x(1-y)+10;
% 運用線性疊加法,F=a*f1(x)+b*f2(x) ?,a+b=1
% 總目標函數改寫為 ?f=0.6*(x^2+y^2)/4+0.4*(x*(1-y)+10); ?
popse=100; ?% 種群數目
maxgen=50; ?% 最大迭代次數
preci=20; ? % 編碼長度
gap=0.95; ? % 代溝大小
px=0.7; ? ? % 交叉概率
pm=0.01; ? ?%變異概率
lbx=1; ? ? ?% 變量下界
lby=1;
ubx=4; ? ? ?% 變量上界
uby=2;
trace=zeros(3,maxgen); ?% 定義尋優結果的初始值
FieldD=[preci preci;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; % 區域描述器
chrom=crtbp(popse,preci*2); ?% 創建隨機種群
% 優化
gen=0;
pop=bs2rv(chrom,FieldD); ? ?% 進制轉換
X=pop(:,1);Y=pop(:,2);
objv=0.15*(X.^2+Y.^2)+0.4*(X.*(1-Y)+10); ?% 目標函數
while gen < maxgen
? ? fitnv=ranking(-objv);
? ? selch=select('sus',chrom,fitnv,gap); ? ?% 選擇 ‘sus’表示為隨機遍歷抽樣
? ? selch=recombin('xovmp',selch,px); ? ? ? % 重組 ?‘xovmp’表示多點交叉
? ? selch=mut(selch,pm);
? ? pop=bs2rv(selch,FieldD); ? ? ? ? ? ? ? ? % 子代個體進行進制轉換
? ? X=pop(:,1);Y=pop(:,2);
? ? objvsel=0.15*(X.^2+Y.^2)+0.4*(X.*(1-Y)+10);
? ? [chrom,objv]=reins(chrom,selch,1,1,objv,objvsel);
? ? pop=bs2rv(chrom,FieldD);
? ? gen=gen+1;
? ? [Y,I]=max(objv);
? ? trace(1:2,gen)=pop(I,:);
? ? trace(3,gen)=Y;
end
%% 畫出求解結果
figure(1)
plot3(trace(1,:),trace(2,:),trace(3,:),'b'); ?% 畫出每代最優點
xlabel('x')
ylabel('y')
zlabel('f')
figure(2)
plot(1:maxgen,trace(3,:)); ?
xlabel('迭代次數')
ylabel('最優解')
bestz=trace(3,end);
bestX=trace(1,end);
bestY=trace(2,end);
fprintf(['最優解:\n X=',num2str(bestX),'\n Y=',num2str(bestY),'\n z=',num2str(bestz)])

總結

以上是生活随笔為你收集整理的多目标遗传算法优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。