線性規劃問題是在一組線性約束條件的限制下,求一線性目標函式最大或最小的問題。在解決實際問題時,把問題歸結成乙個線性規劃數學模型是很重要的一步,但往往也是困難的一步,模型建立得是否恰當,直接影響到求解。而選適當的決策變數,是我們建立有效模型的關鍵之一。
一般線性規劃問題的(數學)標準型為
可行解滿足約束條件(4)的解x=(x1,x…,x,),稱為線性規劃問題的可行解,而使目標函式(3)達到最大值的可行解叫最優解。
可行域所有可行解構成的集合稱為問題的可行域,記為r。
求解線性規劃的matlab解法
單純形法是求解線性規劃問題的最常用、最有效的演算法之一。這裡我們就不介紹單純形法,有興趣的讀者可以參看其它線性規劃書籍。下面我們介紹線性規劃的matlab解法。
matlab中線性規劃的標準型為
基本函式形式為linprog(c,a,b),它的返回值是向量x的值。還有其它的一些函式呼叫形式(在matlab指令窗執行 help linprog 可以看到所有的函式呼叫形式),如:
[x,fval]=linprog(c,a,b)
[x,fval]=linprog(c,a,b,aeq,beq,lb,ub)
[x,fval]=linprog(c,a,b,aeq,beq,lb,ub,x0,options)
這裡fval返回目標函式的值,lb和ub分別是變數x的下界和上界,xo是x的初始值,options 是控制引數。
eg:求解線性規劃問題
其matlab程式如下:
f = [-2;-3;5] ;
a = [-2,5,-1;1,3,1] ;
b = [-10;12] ;
aeq = [1,1,1] ;
beq = 7 ;
%s = [0;0;0] ;
%s2 = [3;3;3] ;設定上邊界,x1,x2,x3<=3 用的時候將其加在zeros(3,1)後面
[x,y] = linprog(f,a,b,aeq,beq,zeros(3,1)) ;%zeros(3,1)生成三行一列的0矩陣,可用s將其換
x,y = -y
其lingo程式如下
model :
sets:
row/1..2/:b ;
col/1..3/:c,x ;
links(row,col):a ;
endsets
data:
c = 2 3 -5 ;
a = -2 5 -1 1 3 1 ;
b = -10 12 ;
enddata
max = @sum(col:c*x) ;
@ for(row(i):@sum(col(j):a(i,j)*x(j))
@ sum(col:x) = 7 ;
end
UOJ 179 線性規劃 線性規劃
這是一道模板題。這個題現在標程掛了。哪位哥哥願意提供一下靠譜的標程呀?本題中你需要求解乙個標準型線性規劃 有 nn 個實數變數 x1,x2,xn x1,x2,xn 和 m m 條約束,其中第 i i 條約束形如 nj 1aijxj bi j 1naijxj bi。此外這 n n 個變數需要滿足非負性...
UOJ 179 線性規劃 線性規劃
這是一道模板題。這個題現在標程掛了。哪位哥哥願意提供一下靠譜的標程呀?本題中你需要求解乙個標準型線性規劃 有 nn 個實數變數 x1,x2,xn x1,x2,xn 和 m m 條約束,其中第 i i 條約束形如 nj 1aijxj bi j 1naijxj bi。此外這 n n 個變數需要滿足非負性...
非線性規劃
1.基本形式和求解模式。2.掌握凸函式和凸規劃的概念及性質。3.掌握0.618法。4.無約束優化的最優性質,熟練運用最速下降法和共軛方法。約束最優化的性質,懲罰函式。minf x s.t gi x 0 i 1,2,ph j x 0,j 1,2 q可行域為 x x r n gi x 0,i 1,2,p...