① MATLAB用遺傳演算法ga求最大值中的最小值
MATLAB用遺傳演算法ga求含有最大值的最小值問題,可以這樣處理:由於最大值問題的反問題就是最小值問題,所以 max=-min。因此,你的問題就可以改寫為
min ( min -(3*x1+4*x2+...))
② 遺傳演算法:matlab中ga函數參數options該怎麼設置
options可以不寫有默認設置。
options是一個結構體要用函數gaoptimset()設置。
options=gaoptimset()然後把options填到ga()裡面。
gaoptimset('屬性名1',數值1,'屬性名2',數值2......)。
常用設置:
③ 遺傳演算法的優缺點
1、早熟。這是最大的缺點,即演算法對新空間的探索能力是有限的,也容易收斂到局部最優解。
2、大量計算。涉及到大量個體的計算,當問題復雜時,計算時間是個問題。
3、處理規模小。目前對於維數較高的問題,還是很難處理和優化的。
4、難於處理非線性約束。對非線性約束的處理,大部分演算法都是添加懲罰因子,這是一筆不小的開支。
5、穩定性差。因為演算法屬於隨機類演算法,需要多次運算,結果的可靠性差,不能穩定的得到解。
大致這些,lz可查閱相關專業書籍!
④ 遺傳演算法 matlab自帶ga函數
c=[246];%c為目標函數系數
fun_1=@(x)dot(c,x');%y為適應度函數值,求兩向量的數量積
A=[10-1;-1-20;-100];%A為AX<=b的系數矩陣
b=[10;-1;0];%b為AX<=b的常數項
Aeq=[011];%AeqX=beq的系數矩陣
beq=12;%AeqX=beq的常數項
[x,y]=ga(fun_1,3,A,b,Aeq,beq)