整數規劃
非線性規劃
二次規劃
將線性規劃問題的一般形式轉化為標準形式:
1.若為maxf(x),則化為-maxf(x)
2.將不等式約束化為等式約束:
(1)若gi(x)<=bi,轉為gi(x)+xk=bi
(2)若gi(x)>=bi,轉為gi(x)-xk=bi
3.將任意變數轉為非負變數(即xi>=0)
4.將負的限定係數轉為正值(ax=b,若b為負值,則等式兩邊均乘以-1)
e.g.
minf(x)=-4x1-x2
s.t.
-x1+2x2
<=4
2x1+3x2
<=12
x1-x2
<=3
x1,x2>=0
解:
用m函式形式求解
a=[-1,2,1,0,0;2,3,0,1,0;1,-1,0,0,1]
c=[-4,-1,0,0,0]
b=[4,12,0]
[x,mf]=******mthd0(a,c,b,[3 4 5])
執行結果如下;
x= 4.2000 1.2000
mf=-18.0000
matlab的優化工具箱裡有現成函式linprog
minf(x)
s.t.(不等式約束)ax<=b
(等式約束)aeqx=beq
lb<=x<=ub
基本格式
[x,fval]=linprog(f,a,b,aeq,beq,lb,ub)
e.g.
minf(x)=-2x1-x2+3x3-5x4
s.t.
x1+2x2+4x3-x4
<=6
2x1+3x2-x3+x4
<=12
x1+x3+x4
<=4
x1,x2,x3,x4>=0
解:
f=[-2 -1,3,-5]
a=[1 2 4 -1;2 3 -1 1;1 0 1 1]
b=[[6 12 4]
lb=[0 0 0 0]
[x,fval]=linprog(f,a,b,,,lb)
輸出結果如下:
x=0.0000
2.6667
0.0000
4.0000
fval=-22.6667
利用動態規劃解決連乘問題
動態規劃過程是 每次決策依賴於當前狀態,又隨機引起狀態的轉移。乙個決策序列就是在變化的狀態中產生,所以,這種多階段最優化決策解決問題的過程稱為動態規劃。給定n個矩陣 a1,a2,an 其中ai與ai 1是可乘的,i 1,2 n 1。如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數...
數學建模 matlab解決線性規劃問題
在人們的生產實踐中,經常會遇到如何利用現有資源來安排生產,以取得最大經濟效 益的問題。此類問題構成了運籌學的乙個重要分支一數學規劃,而線性規劃 linear programming,lp 則是數學規劃的乙個重要分支。自從1947年g.b.dantzig 提出求解線 性規劃的單純形方法以來,線性規劃在...
matlab解決有約束的線性規劃問題
在 matlab解決有約束的二次規劃問題 中,提到了線性規劃問題 linear programming 而線性規劃問題實際與二次規劃問題十分相似,現在在matlab中實現求解 這是用於求解問題的linprog 函式文件 同樣使用乙個例子說明這個函式的呼叫方法 例 求解如下線性規劃問題 分析 對比幫助...