導航:首頁 > 源碼編譯 > matlab遺傳演算法函數優化

matlab遺傳演算法函數優化

發布時間:2022-09-27 11:27:30

⑴ 用matlab做遺傳演算法解決優化問題時候的約束處理

對於類似a+b+c+d+e=1的約束,只能是盡量隨機又均勻地生成若干點,作為初始,來探索這個五維空間。對於a至d採用隨機生成的方式,e的值用1去減,如此可保證約束成立。同時生成a至d的方式要盡量合理,以保證e的期望值和分布狀態合理。

⑵ matlab上的遺傳演算法函數優化

殺雞焉用牛刀。用for循環就可以了。
for x1=-2.048:0.001:2.048;
for x2=-2.048:0.001:2.048;
f1=100*(x1^2-x2)^2+(1-x1)^2;
if x1+2.048<0.00001 && x2+2.048<0.00001
f2=f1;
end
if f1>f2
f2=f1;
end
end
end
fprintf('max=%.4f',f2)

⑶ 基於Matlab的函數優化遺傳演算法程序

新建一個函數
_f.m
function
f=_f(x)
f=0.5-((sin(sqrt(x(1)^2+x(2)^2)))^2-0.5)/(1+0.001*(x(1)^2+x(2)^2)^2)
然後用fmins函數尋找極值。
x
=
fmins('_f',
[0
0],
[2
2]);
另外你的語句中有錯,少寫了一個括弧,你再自己檢查一下。

⑷ 本人剛學MATLAB遺傳演算法工具箱,請大家幫我看一下這個簡單一元函數優化錯誤的原因及怎樣修改。

由於有代溝,所以plot中的variable是36*20的,而I對應的ObjV是40*1的,所以I可能取40個值,但variable只有36行,所以出錯。在「gen=gen+1;%代計數器增加」後加variable=bs2rv(Chrom,FieldD),你調試一下試試。

⑸ 各位誰擅長遺傳演算法呀,我這有個函數得用遺傳演算法編一下,進行最優化求解的過程,最好是用Matlab。

% 主程序
%遺傳演算法主程序
%Name:genmain.m
%author:楊冪

clear
clf
%%初始化
popsize=50; %群體大小
chromlength=30; %字元串長度(個體長度)
pc=0.6; %交叉概率
pm=0.1; %變異概率
pop=initpop(popsize,chromlength); %隨機產生初始群體
%%開始迭代
for i=1:20 %20為迭代次數
[objvalue]=calobjvalue(pop); %計算目標函數
fitvalue=calfitvalue(objvalue); %計算群體中每個個體的適應度
[newpop]=selection(pop,fitvalue); %復制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pm); %變異
[bestindivial,bestfit]=best(pop,fitvalue); %求出群體中適應值最大的個體及其適應值
y(i)=max(bestfit);%儲存最優個體適應值
n(i)=i;
pop5=bestindivial;%儲存最優個體
%解碼
x1(i)=decodechrom(pop5,1,chromlength/2)*2/32767;
x2(i)=10+decodechrom(pop5,chromlength/2+1,chromlength/2)*10/32767;
pop=newpop;%將新產生的種群作為當前種群
end
%%繪圖
figure(1)%最優點變化趨勢圖
i=1:20;
plot(y(i),'-r*')
xlabel('迭代次數');
ylabel('最優個體適應值');
title('最優點變化趨勢');
legend('最優點');
grid on

figure(2)%最優點分布圖
[X1,X2]=meshgrid(0:0.1:2,10:0.1:20);
Z=X1.^2+X2.^2;
mesh(X1,X2,Z);
xlabel('自變數x1'),ylabel('自變數x2'),zlabel('函數值f(x1,x2)');
hold on
plot3(x1,x2,y,'ro','MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5)
title('最優點分布');
legend('最優點');
hold off

[z index]=max(y); %計算最大值及其位置
x5=[x1(index),x2(index)]%計算最大值對應的x值
z

⑹ matlab上的遺傳演算法函數優化

用ga函數,ga函數就是遺傳演算法的函數,它的調用格式為:
x
=
ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon,options)
fitnessfcn就是待優化函數,nvars為變數個數,然後後面的lb是下界,ub是上界,你這個問題就需要這4個位置的參數,其他位置的參數用[]代替就行,由於ga函數默認是求待優化函數的最小值,所以要想求最大值需要把待優化函數取負,即編寫為
function
y=myfun(x)
y=-x.*sin(10*pi.*x)-2;
把這個函數存為myfun.m,然後在命令行里敲
x=ga(@myfun,1,[],[],[],[],[1],[2])
會返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.8506
由於遺傳演算法的原理其實是在取值范圍內隨機選擇初值然後進行遺傳,所以可能每次運行給出的值都不一樣,比如再運行一次會返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.6507
這個具體原因需要參考遺傳演算法的有關資料

⑺ MATLAB中用遺傳演算法優化模糊控制的隸屬函數,模糊控制是用的模糊工具箱,優化結果怎樣連接模糊工具箱呢

(1)模糊統計法: 模糊統計法的基本思想是對論域U上的一個確定元素vo是否屬於論域上的一個可變動的清晰集合A3作出清晰的判斷.對於不同的試驗者,清晰集合 A3可以有不同的邊界,但它們都對應於同一個模糊集A.模糊統計法的計算步驟是:在每次統計中, vo是固定的,A3的值是可變的,作 n次試驗,其模糊統計可按下式進行計算 v0對 A 的隸屬頻率 = v0∈A 的次數 / 試驗總次數 n 隨著 n的增大,隸屬頻率也會趨向穩定,這個穩定值就是 vo對A 的隸屬度值.這種方法較直觀地反映了模糊概念中的隸屬程度,但其計算量相當大. (2)例證法: 例證法的主要思想是從已知有限個μA的值,來估計論域 U 上的模糊子集 A 的隸屬函數.如論域 U代表全體人類,A 是「高個子的人」.顯然 A 是一個模糊子集.為了確定μA,先確定一個高度值 h,然後選定幾個語言真值(即一句話的真實程度)中的一個來回答某人是否算「高個子」.如語言真值可分為「真的」、「大致真的」、「似真似假」、

⑻ MATLAB遺傳演算法編程(多目標優化)

多目標是通過分布性 和非劣解來進行評價的

⑼ MATLAB遺傳演算法工具箱優化變數定義問題

你定義的目標函數有問題。應把h1、h2、h3看成一個變數組,即h=[h1,h2,h3],即
function y=Fitfun1(h)
y=25*h(1)+50*h(2)-10*h(3) %為了說明問題,把函數表達式寫成該形式
如還不能理解,最好把具體問題貼出來,包括其約束條件,以便我們幫助你。

⑽ matlab遺傳演算法工具箱優化結果數值

ga就是在窮舉不可能完成時,用一種方式找到最優解
ga工具的完整形式如下表示
[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] =
GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)
X是最優自變數
FVAL是求得的最優值
其他以此是推出標志,結構體,終止時的總群,終止時種群函數值
後半部分以此是目標函數,目標函數自變數個數
A和b是線性約束不等式AX〈b
Aeq和beq是一對線性等式約束,AeqX=beq
lb是X值下限,ub是X值下限
NONLCON是非線性約束函數 options是運行方式。這兩個可以寫函數自己完成,也可默認
函數默認計算最小值,計算最大值要加負號

閱讀全文

與matlab遺傳演算法函數優化相關的資料

熱點內容
程序員轉金融IT 瀏覽:832
黑馬程序員培訓效果如何 瀏覽:908
本地集成編譯 瀏覽:528
韓國電影哪個app可以看 瀏覽:701
玖月授權什麼app什麼梗 瀏覽:785
怎麼使用伺服器上的ip地址是什麼情況 瀏覽:750
手機密碼加密後怎麼解密 瀏覽:343
華為雲的伺服器的ip地址怎麼訪問不 瀏覽:367
webstormvue在線實時編譯生效 瀏覽:184
3225pdf 瀏覽:171
java中的常用類 瀏覽:394
安卓手機oppo反向色調怎麼開 瀏覽:138
羅志祥pdf 瀏覽:224
美國戰爭pdf 瀏覽:243
任務欄右擊如何顯示常用文件夾 瀏覽:100
海克斯康三次元編程 瀏覽:748
什麼app可以上門喂貓 瀏覽:889
老程序員抓彈幕 瀏覽:655
刷地鐵卡應該下個什麼app 瀏覽:154
安卓版谷歌瀏覽器為什麼用不了 瀏覽:505