MATLAB工具箱遺傳算法使用方法

案例求下列函數的最小值:

MATLAB工具箱遺傳(chuan) 算法使用方法

約束條件如下:

MATLAB工具箱遺傳(chuan) 算法使用方法

MATLAB工具箱遺傳(chuan) 算法使用方法MATLAB工具箱遺傳(chuan) 算法使用方法的取值範圍為(wei) :-100~100

MATLAB工具箱遺傳(chuan) 算法使用方法MATLAB工具箱遺傳(chuan) 算法使用方法的取值範圍為(wei) :0~10

MATLAB代碼

1.首先創建函數optimization.m

%首先要先不等式轉換為(wei) 標準形式

%f:目標函數

%A,b:線性不等式約束

%lb,ub:決(jue) 策變量上下界

%c,ceq:非線性不等式約束與(yu) 非線性等式約束

%目標函數一定要轉換為(wei) min類型的

%如果是max類型,需要把係數全部取負,並且將最後的結果*-1,得到正確的結果

functionf=optimization(x)

f=(x(1)-2)^2+(x(2)-1)^2+(x(3)-7)^2 +(x(4)-9)^2

end

%保存一下

2.開始編寫(xie) 約束條件變量

%%看看A和b

%min f(x) = (x1-2)^2+(x2-1)^2+(x4-9)^2

%x1-2x2+x3-x4+1>=0

%2x1+x2-2x3+x4+5>=0

%x1^2/4-x2^2+x3-x4^2+1>=0

%x1^2+x2-x3+x4=99

%x1,x2的取值範圍為(wei) -100~100

%x3,x4的取值範圍為(wei) 0~10

A= [-1 2 -1 1;-2 1 2 -1]; % 因為(wei) 原式是>=,同樣也需要轉換成<=的形式

b= [-1;5]; % b是線性不等式約束的右側(ce) 的值,因為(wei) 移過去再乘以-1,所以相當於(yu) 沒變

%%Aeq和beq

%本約束條件中未出現線性等式約束,所以可賦值為(wei) 空

Aeq= [];

beq= [];

%%lb和ub

%決(jue) 策變量的上下界

lb= [-100 -100 0 0]; % 表示x1~x4的最小值分別為(wei) -100-100 0 0

ub= [100 100 10 10];

%%c和ceq

%非線性不等式約束和非線性等式約束我們(men) 也要放進一個(ge) 專(zhuan) 門的函數裏麵

3.編寫(xie) 非線性不等式約束和非線性等式約束代碼函數myfun

function[c,ceq] = myfun(x)

%c是非線性不等式約束

c= -1*(1/4*x(1)^2-x(2)^2+x(3)-x(4)^2+1); % 轉換成小於(yu) 等於(yu)

%ceq是非線性等式約束

ceq= x(1)^2+x(2)-x(3)+x(4)-99;

%如果c和ceq不止一個(ge) ,那麽(me) 可以寫(xie) 成矩陣的形式:類似A= [-1 2 -1 1;-2 1 2 -1];

End

4.執行一下約束條件變量,如下圖:

MATLAB工具箱遺傳(chuan) 算法使用方法

5.在命令行中輸入optimtool打開遺傳(chuan) 算法工具箱。

遺傳(chuan) 算法工具箱操作

  1. 首先選擇遺傳算法

MATLAB工具箱遺傳(chuan) 算法使用方法

  1. fitness function是目標函數
  2. Number of variables:變量的個數
  3. Integer variable indices:可取整數的變量的下標,這裏沒有可以取變量的整數

在工具箱中輸入內(nei) 容如下:

MATLAB工具箱遺傳(chuan) 算法使用方法

  1. 作圖可以勾選前三個,把display to command window 改為迭代

MATLAB工具箱遺傳(chuan) 算法使用方法

然後點擊Start:

MATLAB工具箱遺傳(chuan) 算法使用方法

點擊start之後會(hui) 出現下麵這個(ge) 圖:

MATLAB工具箱遺傳(chuan) 算法使用方法

在這裏由於(yu) 迭代次數太少導致從(cong) 圖中看不出什麽(me) 明顯的結果。然後在start下麵的表格內(nei) ,有最優(you) 值和各個(ge) 變量的值。

MATLAB工具箱遺傳(chuan) 算法使用方法

然後最優(you) 值和其變量的值已經解出來了,可以多求幾次求平均值,都是可以的。

遺傳(chuan) 算法工具箱不允許規劃類方程中,同時出現線性約束和整型約束的,否則特別容易得到無解,甚至不能運行。

【競賽報名/項目谘詢+微信:mollywei007】

上一篇

2022年澳大利亞AMC難度B(G5-6)試卷解答評析!

下一篇

不做誌願活動沒法順利畢業?一文讀懂美高誌願者活動

你也可能喜歡

  • 暫無相關文章!

評論已經被關(guan) 閉。

插入圖片
返回頂部