matlab智能演算法pdf
你好
像這樣的求最小值,可以用很多演算法,可以用命令窗口編程,或者利用優化工具箱。對於初學者,可以利用optimization toolbox裡面演算法,只要自己寫一個目標函數就可以了。
一般的有約束多變數函數都可以通過fmincon函數求解得到,但是如果初始值選取不恰當也可以可以陷入局部最優。全局最優搜索能力比較強的可能屬智能演算法了,如遺傳演算法等等下面我採用fmincon函數嘗試求解:
目標函數寫好好,保存為funmint.m文件,函數如下;
functionZ=funmint(x)
x1=x(1);
x2=x(2);
x3=x(3);
x4=x(4);
S1=x(5);
S2=x(6);
eg=64.11-0.043-0.49*x2-0.06*x3-0.075*x4-3.258e-4*x1*x2+9.712e-5*x1*x3...
+2.781e-4*x1*x4-4.738e-5*x2*x3-1.212e-3*x2+6.053e-4*x3*x4+...
7.775e-4*x1^2+1.125e-3*x2^2-8.665e-4*x3^2+5.89e-3*x4^2;
sd=-6.02953+0.03583*x1+0.067595*x2-2.90115e-3*x3-0.053463*x4-1.7325e-4*x1*x2+...
1.1525e-4*x1*x3-7.4375e-5*x1*x4-6.3375e-5*x2*x3+4.03125e-4*x2*x4-...
3.16562e-4*x3*x4+3.625e-6*x1^2-1.07375e-4*x2^2-2.68437e-5*x3^2-3.27344e-4*x4^2;
Z=sd+1e7*abs(-eg+0.0518*sd+S1)+1e7*abs(0.1-eg-0.0518*sd+S2);
在命令窗口中輸入下面這些求解代碼:
clear
lb=[60235402100];
ub=[802558029InfInf];
x0=[7024560251010];
options=optimset('Algorithm','active-set');
[x,fval]=fmincon(@funmint,x0,[],[],[],[],lb,ub,[],options)
可以得到一個最小值,以及對應的6個變數如下:
x=[62.9860 244.9435 74.5278 21.3001 1.8670 2.0691]
最小值為:
fval=3.4326
當然你也可以換用其他函數,只要把fmincon換了就可以。優化函數結構都差不多。
希望對你有幫助!
❷ 什麼是智能優化演算法
群體智能優化演算法是一類基於概率的隨機搜索進化演算法,各個演算法之間存在結構、研究內容、計算方法等具有較大的相似性。因此,群體智能優化演算法可以建立一個基本的理論框架模式:
Step1:設置參數,初始化種群;
Step2:生成一組解,計算其適應值;
Step3:由個體最有適應著,通過比較得到群體最優適應值;
Step4:判斷終止條件示否滿足?如果滿足,結束迭代;否則,轉向Step2;
各個群體智能演算法之間最大不同在於演算法更新規則上,有基於模擬群居生物運動步長更新的(如PSO,AFSA與SFLA),也有根據某種演算法機理設置更新規則(如ACO)。
(2)matlab智能演算法pdf擴展閱讀
優化演算法有很多,經典演算法包括:有線性規劃,動態規劃等;改進型局部搜索演算法包括爬山法,最速下降法等,模擬退火、遺傳演算法以及禁忌搜索稱作指導性搜索法。而神經網路,混沌搜索則屬於系統動態演化方法。
優化思想裡面經常提到鄰域函數,它的作用是指出如何由當前解得到一個(組)新解。其具體實現方式要根據具體問題分析來定。
❸ 您好,請問能否發一份完整的《圖論演算法及其MATLAB實現pdf》 感謝!