哈工大優化演算法

2022-12-08 22:57:02 字數 3376 閱讀 8141

上機實驗報告

課程名稱:靜態優化演算法及軟體實現

課程時間: 2023年夏

授課教師: 李傳江

學生姓名: 王旭東

學生班級: 1204101

學生學號: 1120410124

所在組別: group 04

聯絡**: 133

選作附加題: 否

哈爾濱工業大學航天學院

2023年6月

group 4

c=[1 -2 1 0]';

a=[2 -1 4 0;-1 2 -4 0];

b=[8 4]';

aeq=[1 1 -2 1];

beq=[10];

lb=[0 0 0 0 0]; [x,fval,exitflag,output]=linprog(c,a,b,aeq,beq,lb)

x = 0.0000

12.0000

5.0000

8.0000

fval =

-19.0000

exitflag =

1output =

iterations: 5

algorithm: 'large-scale: interior point'

cgiterations: 0

message: 'optimization terminated.'

mathematic:

linearprogramming[,,,},,,}]

linearprogramming[,,,},,,}]

該問題是在約束條件下求解目標函式的最小值,其中約束條件均為線性約束條件,分別有等式約束和不等式約束,因而在matlab中採用linprog函式,在mathematic中採用linearprogramming函式。在matlab中呼叫函式格式如上**,最後求得最優解向量為[0 12 5 8]』,最優解函式值為fval= -19,返回的exitflag=1,表示找到了函式的最優解,output選項中 iterations=5,表示迭代次數為5次。在mathematic中呼叫格式如上,得到的最優解和使用matlab得到的解一樣,如果在呼叫時在數值後加上『.

』,返回值如上,返回小數解。

function [c ceq]=mycon(x)

c=x(1)+x(2)^2-1;

ceq=;

endx0=[-2;1];

fun=@(x)-x(1)*x(2);

options=optimset('algorithm','active-set','display','iter');

a=[-1 -1];

b=[0];

[x,fmin,exitflag]=fmincon(fun,x0,a,bmycon,options)

max line search directional first-order

iter f-count f(x) constraint steplength derivative optimality procedure

0 3 -0.25 -0.25

1 6 -0.390625 0.01562 1 -0.707 0.25

2 9 -0.386768 0.004716 1 -0.00982 0.0771 hessian modified twice

3 12 -0.385164 0.0004566 1 0.0279 0.00333

4 15 -0.3849 1.148e-007 1 0.764 0.000193

x = 0.6667

0.5774

fmin =

-0.3849

exitflag =

5mathematic:

minimize[,]

}該問題中目標函式是非線性的,而且在約束條件中,既有線性約束又有非線性約束,因而在matlab中採用fmincon函式,非線性約束在函式mycon中定義,目標函式採用控制代碼呼叫,初始點設定為[-2 1]』函式的執行結果如上所示,x=[0.6667 0.5774]』,返回的函式最小值是-0.

3749。在mathematic中使用函式minimize能夠較簡單求出函式的最優解。但是比較兩種函式的返回結果可以發現兩者的結果並不完全一樣。

3.matlab

c=[-4.5 -3.8 -9.5 2 1.5]';

a=[4 6 12 -8 1;5 4 12 3 -8;1 1 1 0 0];

b=[20 15 2]';

[x,fval,exitflag]=bintprog(c,a,b,,)

x = 1

0101fval =

-12.5000

exitflag =

1mathematic

nmaximize[ integers},]

}該問題是典型的0,1約束問題,設六個變數分別代表六個城市

如果在某個城市建立經銷點則將其值賦值為1,反之為0。所求目標函式為工廠的總收益表示為:4.

5x+3.8y+9.5z-2u-1.

5v,約束條件一共有三個,分別是應投資金的總額不應超過20萬元,應投的總人力不應超過15,以及應投的裝置不應超過兩套,將三個約束條件分別用以下表示式表示:-8u+4 x+6y+13z 20,3u-8v+5x+4y+12z 15,x+y+z 2。則這個優化問題就轉變為在3個線性約束條件下的線性目標函式求最值的0,1規劃模型。

所求目標函式為線性的,所以在matlab中使用bintprog函式,在mathematic中使用nmaximize函式,目標函式是4.5x+3.8y+9.

5z-2u-1.5v。使用matlab時將係數取反,變為求目標函式的最小值,得到最優解向量為[1 0 1 0 1]』;函式的最小值是-12.

5,返回值exitflag=1,所以最優解為分別在a,c,e建立經銷店,在b,d不建立經銷店,此時的總收益最大為,12.5萬元。同樣的,雖然在中沒有直接用於0,1規劃的函式,但是可以對各個變數的取值範圍加以限定,使其只能在0和1之中取值,例如以上**0 z 1&& integers,就能夠實現此目的,求得的函式結果和使用matlab的結果一致。

創新訓練課程的心得體會:

通過這次夏季小學期的創新訓練的學習,我對於使用matlab,以及軟體求解各種的靜態最優化問題有了初步的認識和學習,對於線性函式,非線性函式,線性約束,非線性約束的最優化求解函式,以及函式的呼叫方法,以及對於結果的分析過程也有了很好的基礎。同時對於各種的求解函式的內部演算法也有了一定程度的了解,能夠熟練掌握實際最優化問題的建模以及求解方法。

建議:這種的課程使我們學生能夠對於某一方面進行系統的學習,能夠加深學習的深度,以及對於函式、軟體的使用的靈活程度。所以我希望以後會繼續有這樣的專題性課程開放。

實習報告 哈工大

harbin institute of technology 院系 電子與資訊工程學院 班級 1005301班 姓名 學號 指導教師 實習時間 2013年 7月 哈爾濱工業大學 在大學三年中我們學習了很多專業課的知識,具備了一定的理論基礎。為了對衛星遙感和影象處理等專業領域方面有更好的認識和掌握,我...

哈工大素質講座報告

harbin institute of technology 文化素質教育報告 報告名稱 敲開名企之門 班級 1208105 姓名 殷琪 學號 1120810529 哈爾濱工業大學 素質講座 敲開名企之門 1120810529殷琪 2012年各大高校校園招聘浪潮逐漸退去,這其中湧現出不少求職成功案例...

哈工大開題報告

畢業設計 開題報告 題目 院 系 專業學生 學號班號 指導教師 開題報告日期 哈爾濱工業大學教務處制 2005年9月 說明一 開題報告應包括下列主要內容 1 課題 及研究的目的和意義 2 國內外在該方向的研究現狀及分析 3 主要研究內容 4 研究方案及進度安排,預期達到的目標 5 為完成課題已具備和...