⑴ MATLAB自帶的GA工具箱,有誰知道麻煩告訴一下!求教!!!
請問matlab6.5 gaot工具箱和matlab7.0自帶工具箱使用起來有區別嗎?多謝了matlab7.0自帶的工具箱版本未必都是7.0,我的這台電腦裝的也是6.5,看看
⑵ Optimization Tool中的fitness function怎麼定義
a.打開工具箱。在Solver里選擇
ga
-Genetic
Algorithm
b.
編寫fitness
function:
建立一個.m文件,比如fitness.m
代碼:
function
[y]
=
fitness(
x
)
y
=
0.5*x(1)^2
+
x(2)^2
-x(1)*x(2)
-2*x(1)
-6*x(2);
end
就這么簡單就可以了。x表示的是輸入值,y是要最小化的值。
c.
在Optimization
Tool
里的fitnessfunction
:
寫上
@fitness
number
of
variables
里寫上2,表示輸入向量(注意理解向量)里只有二個值。
A和b分別是線性不等約束條件的矩陣系數A和向量b;Aeq和beq分別是線性等式約束條件的矩陣系數Aeq和向量beq;LB和UB分別為nvars個帶求解變數的上下限向量。注意:這裡面的向量都是列向量哦!其他參數可以參考matlab的help。
然後點start,結果就跑出來了
(這個y的函數還有上下限,就不寫了,如果去matlab上就自己選一個簡單點的吧)
⑶ MATLAB的遺傳演算法工具箱GA是怎麼用的
把這些文件裝載工具箱的文件夾路徑下,在把MATLAB讀的路徑設置在那裡,直接輸入文件名和需要輸入的內容就行了。
⑷ 急急急 MATLAB ga函數的使用
1. 沒問題,就是最後最好加分號不然輸出全亂了
2. [c,ce]=ga(@shishi,2,[],[],[],[],[],[],@nonl)
3. ga(函數句柄,變數個數,不等式約束系數矩陣,不等式約束常量向量,等式約束系數矩陣,等式約束常量向量,變數上限,變數下限,非線性約束)
系數矩陣格式知道吧 x1 + 2x2 <= 3
2x1 + 3x2 <= 4
改成矩陣就是
[1 2;2 3] 和 [3;4]
上下限是長度為變數個數的向量
0 <= x1 <= 2
0 <= x2 <= 3
就是[0;0] [2;3]
等式約束也一樣的
例子:
http://..com/question/158457462.html
葯房有兩種復合維生素制劑,甲種每粒含維生素A、B各1g,D、E各4g和C5g,乙種每粒含維生素A 3g,B 2g,D 1g,E 3g和C 2g,一顧客每天需攝入維生素A不超過18g、B不超過13g、D不超過24g和E至少12g,問
(1)每天應服兩種維生素各多少才能滿足需要而且盡可能攝入較多的維生素C?
方程:
max 5x + 2y
x + 3y <= 18
x + 2y <= 13
4x + y <= 24
4x + 3y >= 12
x >= 0
y >= 0
MATLAB:
f = @(x) -5*x(1)-2*x(2);
A = [1 3;1 2;4 1;-4 -3;];
b = [18;13;24;-12];
[x fval] = ga(f, 2, A, b, [], [], [0;0])
輸出
Optimization terminated: average change in the fitness value less than options.TolFun.
x =
5.0002 4.0001
fval =
-33.0009
非線性約束函數有兩個返回值
[c ceq] =
其中c是不等式約束(小於零)的返回值 比如要表示x1^2 + x2^2 <= 0
就是c = x(1)^2 + x(2)^2;
表示大於零加個負號就行了
有多個的話寫成列向量形式
ceq表示等式約束,格式一樣的
沒有的話
就等於[]
c = []; 或 ceq = [];
例子不用了吧,你的例子是正確的
它表示
x1 >= 0
x2 >= 0
x1 -1 <= 0
x2 - 1 <= 0
x1 + x2 - 1 <= 0
(其實這都是不必要的,完全可以改寫成線性的系數)
⑸ 遺傳演算法GA工具箱 的二進制bitstring相關選項怎麼設置
既然你用工具箱算,是二進制還是bit string沒啥區別,你也看不到。
bounds指的是變數的版取值范圍,比如y = x1 +x2,
其中權1<x1<5,3<x2<4,那lower就該填1,3,upper填5,4.
integer variable indices用於整形變數,比如你的x1范圍是從[1,9],但是是1.2.3.4.5.6.7.8.9,而不是2.36,3.36這樣的浮點值。
⑹ 如何使用MATLAB遺傳演算法GUI對y=f(x)進行參數估計
去圖書館借本書 好像是 北京理工大學出版的,我看過程序很詳細,特別是適應函數的編寫書上都有很詳細的講解,你不就是要用遺傳演算法擬合數據嘛,書里找個例子就行了
⑺ matlab中的ga工具箱的custom怎麼用我的自變數是10個整數變數,請問怎麼約束,急,在線等。。
matlab中的ga工具箱的custom怎麼用?我的自變數是10個整數變數,請問怎麼約束,急,在線等。。
lyfit()版函數可以權輸出多項式的系數,即擬合的函數表達式,你可以help polyfit一下
希望我可以幫助到你
⑻ matlab遺傳演算法工具箱求解多元函數顯示輸入參數數目不足求解答,非常感謝
錯誤的主要原因是你寫的函數有問題。函數應該這樣來表示:
function y = Test1(x)
a=x(1);b=x(2);
y=a+b;
end
使用優化工具箱,選擇ga,運行可以得到如下結果
⑼ 求matlab遺傳演算法工具箱GA Toolbox。。並求解釋如下
GA自己寫一個就好了,也挺簡單的。
雖然很多函數都能知道表達式,但是仍然版有很多函數不能用倒權數來求解,所以要知道空間的極值和最值就必須用遍歷的方法。然而對於實數范圍內或者大規模數據的離散數據情況下,遍歷畫圖的方法會耗費很大的計算復雜度,因為你並不知道是在參數范圍的邊緣還是中間有最值,有多少個最值也不知道。GA就提供了一種基於種群的搜索優化方法,可以快速的收斂到優秀的解的個體,但是要防止陷入局部最優。
簡而言之就是遍歷的搜索方法要用時10小時完成的事情,GA快速優化可能1分鍾或者10分鍾搞定,佔用內存也少。
⑽ matlab遺傳演算法工具箱應用問題.在適應度函數處應該輸入什麼約束條件怎麼輸入
這個ga工具箱只能解決簡單的線性約束問題,你的約束條件是非線性約束,所以你還是要使用gatbx菲爾德大學的那個工具箱,你的問題帶有不等式約束,轉化為無約束的拉格朗日對偶問題求解