matlab優化工具箱中遺傳演算法的問題

2021-03-04 05:03:10 字數 1731 閱讀 2909

1樓:花生瓜子火腿腸

ga就是在窮舉不可能完成時,用一種方式找到最優解

ga工具的完整形式如下表示內

[x,fval,exitflag,output,population,scores] =

ga(fitnessf**,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是執行方式。這兩個可以寫函式自己完成,也可預設

函式預設計算最小值,計算最大值要加負號

非線性約束條件的寫法

function [c,ceq]=nonlcon(x) 定義函式自變數是x,x可以是一列矩陣

c=; c表示非線性等式約束,以為沒有,所以為空

ceq=[x(1)-2*(x(2))^2;

x(1)+x(2) ] ceq是非線性不等式約束,預設ceq<=0,ceq可以為一列矩陣.

>>

為什麼matlab優化工具箱的遺傳演算法每次優化的結果都不一樣

2樓:匿名使用者

為什麼matlab優化工具箱的遺傳演算法每次優化的結果都不一樣?這是因為演算法的初值是隨機的,所以重複計算就會有差錯。為了保證計算結果,可以每次重啟matlab軟體後執行程式,這樣得到結果就基本一致了。

用matlab優化工具箱自帶的遺傳演算法(只能找到近似最優解)時,往往重複計算很多次都不能得到最優解

3樓:匿名使用者

要想得到較精確的最優解,可以通過設定function tolerance的誤差值,constraint tolerance的誤差值。

使用matlab遺傳演算法工具箱能不能解決組合優化問題?還有使用工具箱方便還是自己程式設計方便呢?

4樓:足球先生

1、要看你組合優化bai是屬於哪種問題du

,一般的組zhi合優化都是混合整數線dao

性或非線版性的,那麼就不行了權

用遺傳演算法工具箱求解一個多目標優化問題,現在需要一個matlab程式,求高人指點

5樓:匿名使用者

用遺傳演算法工具箱求解一個多目標優化問題的步驟:

1、根據題意,建立自定義目標函

專數,ga_fun1(x)

2、在命令視窗中,屬輸入

>> optimtool %呼叫遺傳演算法工具箱

3、在遺傳演算法工具箱介面中,分別對fitness function框內輸入@ga_fun1();a框內輸入[1,1,1];b框內輸入16;aeq框內輸入;beq框內輸入;lower框內輸入[0,0,0];upper框內輸入;

4、單擊start。得到x=4.508 y=2.513 z=1.912值。

用matlab優化工具箱自帶的遺傳演算法(只能找到近似最優解)時,往往重複計算很多次都不能得到最優解

要想得到較精確的最優解,可以通過設定function tolerance的誤差值,constraint tolerance的誤差值。為什麼matlab優化工具箱的遺傳演算法每次優化的結果都不一樣 為什麼matlab優化工具箱的遺傳演算法每次優化的結果都不一樣?這是因為演算法的初值是隨機的,所以重複計...

如何呼叫MATLAB遺傳演算法工具箱

直接在命令視窗裡邊輸入gatool就行了,用遺傳演算法還可以使用ga函式,具體使用格式可以在help系統裡看ga,你還可以按照如下步驟開啟遺傳演算法工具箱 1,開啟matlab,2點選左下方的start按鈕 3,點toolboxes,開啟後選擇genetic algorithm and direct...

如何使用matlab中的工具箱

1 我們首先給出對應的擬合資料 x 1 100 y 2 x 一條直線。2 然後我們這裡先畫版出這條直線,直觀感受權下。3 接著我們在命令視窗輸入 cftool 4 我們會看到此時,系統會顯示cftool工具箱。5 然後選擇擬合的資料,當然我們這裡擬合的是二維資料。只需要輸入2個資料來源。6 然後選擇...