




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、邏輯運(yùn)算符(Logical Operator)#NOT#否定 #EQ#相等#NE#不等#AND#并且#OR#或者#GT#大于#GE#大于等于#LT#小于#LE#小于等于問題:某公司有60萬元資金,計(jì)劃投資甲、乙兩個(gè)項(xiàng)目,按要求對(duì)項(xiàng)目甲的投資不小于對(duì)項(xiàng)目乙投資的倍,且對(duì)每個(gè)項(xiàng)目的投資不能低于5萬元,對(duì)項(xiàng)目甲每投資1萬元可獲得0.4萬元的利潤(rùn),對(duì)項(xiàng)目乙每投資1萬元可獲得0.6萬元的利潤(rùn),問如何分配資金在兩個(gè)項(xiàng)目上才可獲得最大利潤(rùn)?求解步驟:1.定義決策變量;2.目標(biāo)函數(shù);3.約束條件。求解方法:圖解法(變量少時(shí))、單純形法、大M法、對(duì)偶單純形法等。教材實(shí)例:決策變量往往很少。
2、大規(guī)模線性規(guī)劃問題:決策變量多有幾十、成百上千以致更多個(gè)? 書寫目標(biāo)函數(shù)足夠長(zhǎng),約束條件足夠多?max=0.4*x+0.6*y;x+y<=60;x>=2/3*y;x>=5;y>=5;LINGO全稱是Linear INteractive and General Optimizer的縮寫-交互式的線性和通用優(yōu)化求解器。L linear programming. I- integer programming.N-non-linear programming.LINGO Comprehensive modeling language and solvers for l
3、inear, non-linear, and integer programming. Lingo軟件簡(jiǎn)介美國(guó)芝加哥(Chicago)大學(xué)的林納斯·施拉格(Linus Schrage)教授于1980年前后開發(fā), 后來成立 LINDO系統(tǒng)公司(LINDO Systems Inc.)。 網(wǎng)址: 主要產(chǎn)品:· What'sBest! Excel add-in for linear, integer, and non-linear modeling. · LINGO Comprehensive modeling language and sol
4、vers for linear, non-linear, and integer programming. (Lingo 14.0 Thur, 2nd May 2013)· Lindo API Powerful callable library of optimization solvers and routines. · Solver Suite An introductory bundle of What'sBest!, LINGO and Lindo API.LINGO 9.0(2005年推出)和LINDO6.1是美國(guó)LINDO系統(tǒng)公司開發(fā)
5、的一套專門用于求解最優(yōu)化問題的軟件包。LINDO用于求解線性規(guī)劃和二次規(guī)劃問題,LINGO除了具有LINDO的全部功能外,還可以用于求解非線性規(guī)劃問題,也可以用于一些線性和非線性方程(組)的求解,等等。LINGO和LINDO軟件的最大特色在于可以允許優(yōu)化模型中的決策變量是整數(shù)(即整數(shù)規(guī)劃),而且執(zhí)行速度很快(比matlab強(qiáng))LINGO實(shí)際上還是最優(yōu)化問題的一種建模語言,包括許多常用的函數(shù)可供使用者建立優(yōu)化模型時(shí)調(diào)用,易于方便地輸入、求解和分析大規(guī)模最優(yōu)化問題。速度快和容易使用讓LINDO Systems Inc 公司成為求解最佳化模型軟件的領(lǐng)導(dǎo)供貨商。線性、非線性和整數(shù)規(guī)劃的求解程序已經(jīng)被全
6、世界數(shù)千萬的公司用來做最大化利潤(rùn)和最小化成本的分析。應(yīng)用的范圍包含生產(chǎn)線規(guī)劃、運(yùn)輸、財(cái)務(wù)金融、投資分配、資本預(yù)算、混合排程、庫(kù)存管理、資源配置等領(lǐng)域。優(yōu)化模型介紹 實(shí)際問題中的優(yōu)化模型Min/Max z=f(x), x=(x1,.,xn)T s.t. g i(x)0,i=1,2,.,mx1,.,xn0其中 x決策變量, f(x)目標(biāo)函數(shù), gi(x) 0約束條件數(shù)學(xué)規(guī)劃分類:連續(xù)規(guī)劃線性規(guī)劃(LP): Linear programming二次規(guī)劃(QP): Quadratic programming非線性規(guī)劃(NLP): Non Linear Programming 整數(shù)規(guī)劃(IP):Inte
7、ger Programming 0-1整數(shù)規(guī)劃、一般整數(shù)規(guī)劃、 純整數(shù)規(guī)劃(PIP)、混合整數(shù)規(guī)劃(MIP)note:LP, QP, ILP, IQP, PILP, PIQP, NLP, INLP, PINLP.MATLAB命令:linprog(線性規(guī)劃), bintprog(0-1整數(shù)規(guī)劃)牢記:Lingo默認(rèn)所有決策變量都非負(fù),故變量非負(fù)條件可以不必輸入。一些例子例1.解多項(xiàng)式方程: 求方程 x4+8x3 -10=0的根。(P154 Matlab求的結(jié)果1.0344,系數(shù)向量+系統(tǒng)函數(shù)調(diào)用)x4+8*x3-10=0;例2.解線性方程組:(P170 Matlab求的結(jié)果 【0.9958,0.
8、9579,0.7916】,系數(shù)矩陣+常數(shù)列向量+Jacobi迭代函數(shù))10*x1-x2=9;-x1+10*x2-2*x3=7;-2*x2+10*x3=6;例3.解不定方程組:中國(guó)古代算書張丘建算經(jīng)中有一道著名的百雞問題:公雞每只值5 文錢,母雞每只值3 文錢,而3 只小雞值1 文錢。用100 文錢買100 只雞,問:這100 只雞中,公雞、母雞和小雞各有多少只?(有四組解,1、2、3重循環(huán),或全由矩陣運(yùn)算+find函數(shù)完成)cocks+hens+chicks=100;5*cocks+3*hens+chicks/3=100;例4.無條件極值:設(shè) 求函數(shù)f在(0.5,0.5,0.5)附近的最小值。
9、(P178 Matlab求的結(jié)果為最小值點(diǎn)<0.5,1.0,1.0>,最小值為4, 函數(shù)定義+fminsearch函數(shù)調(diào)用)min=x+y2/x/4+z2/y+2/z;或min=x+y2/x/4+z2/y+2/z;init: x=0.5; y=0.5; z=0.5;endinit例5.條件極值:求解有約束最優(yōu)化問題。(P179 Matlab求的結(jié)果為最優(yōu)值點(diǎn)<0.3394,0.3303>,最優(yōu)值為0.2456, 目標(biāo)函數(shù)定義+約束條件定義+最優(yōu)參數(shù)設(shè)置+fmincon函數(shù)調(diào)用)min=0.4*x2+x12+x22-x1*x2+x13/30;x1+0.5*x2>=0
10、.4;0.5*x1+x2>=0.5;例6.如何在LINGO中求解如下的LP問題:min=2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600;例7.如何在LINGO中求解如下的IQP問題:max=98*x1+277*x2-x12-0.3*x1*x2-2*x22;x1+x2<=100;x1<2*x2;gin(x1);gin(x2);課堂練習(xí):利用lingo求解求解方程x3-5x2+3x+6=0在x=1和x=4附近的根。求解方程組 。求解約束條件:x1-x2+x34和x1+x35下 -10x1-20x2-30x3的極大值。利用集合求
11、解上面最后一題sets: a/1,2,3/:x;!集合元素為數(shù)字;endsetsmax=-10*x(1)-20*x(2)-30*x(3); x(1)-x(2)+x(3)>=4; x(1)+x(3)>=5;!sets:poultry/cocks,hens,chicks/:John;!集合元素為單詞;endsetsJohn(1)+John(2)+John(3)=100;5*John(1)+3*John(2)+John(3)/3=100;!不用集合函數(shù)寫代碼時(shí)要用序號(hào)表示下標(biāo)變量;學(xué)好Lingo需要掌握的幾個(gè)重要方面· 基本語法結(jié)構(gòu)· 掌握集合(SETS)的應(yīng)用
12、83; 正確閱讀求解報(bào)告· 正確理解求解狀態(tài)窗口· 學(xué)會(huì)設(shè)置基本的求解選項(xiàng)(OPTIONS)一、Lingo基本語法1、定義目標(biāo)函數(shù)為MIN=. 或 MAX=.2、以一個(gè)分號(hào)“;”結(jié)尾 除SETS, ENDSETS, DATA , ENDDATA, END之外3、變量可以放在約束條件右端,也可放在約束條件的左端。4、默認(rèn)假定各變量非負(fù)。5、注釋:“!”6、<、>等同于、建模(或?qū)懘a)時(shí)需要注意的幾個(gè)問題 1、盡量使用實(shí)數(shù)優(yōu)化,減少整數(shù)約束和整數(shù)變量2、盡量使用光滑優(yōu)化,減少非光滑約束的個(gè)數(shù) 如:盡量少使用絕對(duì)值、符號(hào)函數(shù)、多個(gè)變量求最大/最小值、四舍五入、取整函
13、數(shù)等3、盡量使用線性模型,減少非線性約束和非線性變量的個(gè)數(shù) (如x/y <5 改為x<5y)4、合理設(shè)定變量上下界,盡可能給出變量初始值 5、模型中使用的參數(shù)數(shù)量級(jí)要適當(dāng) (如小于103)Lingo運(yùn)算符及其優(yōu)先級(jí)算術(shù)運(yùn)算符關(guān)系運(yùn)算符+ - * / <(=) = >(=)v 用于構(gòu)造目標(biāo)與約束條件邏輯運(yùn)算符(Logical Operator)#NOT#否定 #EQ#相等#NE#不等#AND#并且#OR#或者#GT#大于#GE#大于等于#LT#小于#LE#小于等于EQual,Greater Than,Greater-than-or-Equal-to,
14、Less Than,Less-than-or-Equal-tov 用于集合過濾條件結(jié)果:FALSE TRUE優(yōu)先級(jí)最高優(yōu)先級(jí)最低#NOT#(負(fù)號(hào))* /+(減法)#EQ# #NE# #GT# #GE# #LT# #LE#AND# #OR#< = >v 先左后右,先括號(hào)內(nèi),后括號(hào)外Lingo內(nèi)部函數(shù)”標(biāo)準(zhǔn)數(shù)學(xué)函數(shù):abs(x) 返回x的絕對(duì)值sin(x) 返回x的正弦值,x采用弧度制cos(x) 返回x的余弦值tan(x) 返回x的正切值exp(x) 返回常數(shù)e的x次方log(x) 返回x的自然對(duì)數(shù)mod( x,y) 返回x被y除的余數(shù)sign(x) 如果x<0返回-1;否則x
15、=0,返回0;再否則返回1floor(x) 返回x的整數(shù)部分。當(dāng)x>=0時(shí),返回不超過x的最大整數(shù);當(dāng)x<0時(shí),返回不低于x的最小整數(shù)。smax(x1,x2,xn) 返回x1,x2,xn中的最大值smin(x1,x2,xn) 返回x1,x2,xn中的最小值sqrt( x) 返回x的平方根變量界定函數(shù)變量界定函數(shù)實(shí)現(xiàn)對(duì)變量取值范圍的附加限制,共4種:bin(x) 限制x為0或1bnd(L,x,U) 限制LxUfree(x) 取消對(duì)變量x的默認(rèn)下界為0的限制,即x可以取任意實(shí)數(shù)gin(x) 限制x為整數(shù)在默認(rèn)情況下,LINGO規(guī)定變量是非負(fù)的,也就是說下界為0,上界為+。free取消了
16、默認(rèn)的下界為0的限制,使變量也可以取負(fù)值。bnd用于設(shè)定一個(gè)變量的上下界,它也可以取消默認(rèn)下界為0的約束。集合操作函數(shù)LINGO提供了幾個(gè)函數(shù)幫助處理集。 1in(set_name,primitive_index_1 ,primitive_index_2,)如果元素在指定集中,返回1;否則返回0。2wrap(index,limit) !纏繞該函數(shù)返回j=index-k*limit,其中k是一個(gè)整數(shù),取適當(dāng)值保證j落在區(qū)間1,limit內(nèi)。該函數(shù)相當(dāng)于mod(index,limit)+1。該函數(shù)在循環(huán)、多階段計(jì)劃編制中特別有用。例如:wrap(1,7)為1 wrap(3,7)為3 wrap(7,
17、7)為7 wrap(8,7)為1 !減去7的某個(gè)倍數(shù) 問 wrap(20,7)為?3size(set_name)該函數(shù)返回集set_name的成員個(gè)數(shù)。在模型中明確給出集大小時(shí)最好使用該函數(shù)。它的使用使模型更加數(shù)據(jù)中立,集大小改變時(shí)也更易維護(hù)。集循環(huán)函數(shù)集循環(huán)函數(shù)遍歷整個(gè)集進(jìn)行操作。其語法為function(setname(set_index_list)|conditional_qualifier:expression_list);function相應(yīng)for、sum、max、min之一;setname是要遍歷的集;set_ index_list是集索引列表;例如:一維的或二維的conditio
18、nal_qualifier是用來限制集循環(huán)函數(shù)的范圍,當(dāng)集循環(huán)函數(shù)遍歷集的每個(gè)成員時(shí),LINGO都要對(duì)conditional_qualifier進(jìn)行判斷,若結(jié)果為真,則對(duì)該成員執(zhí)行function操作,否則跳過,繼續(xù)執(zhí)行下一次循環(huán)。expression_list是被應(yīng)用到每個(gè)集成員的表達(dá)式列表,當(dāng)用的是for函數(shù)時(shí),expression_list可以包含多個(gè)表達(dá)式,其間用逗號(hào)隔開。這些表達(dá)式將被作為約束加到模型中。當(dāng)使用其余的三個(gè)集循環(huán)函數(shù)時(shí),expression_list只能有一個(gè)表達(dá)式。如果省略set_index_list,那么在expression_list中引用的所有屬性的類型都是se
19、tname集。222222222222222222222222222222222222222222222222221for該函數(shù)用來產(chǎn)生對(duì)集成員的約束?;诮UZ言的標(biāo)量需要顯式輸入每個(gè)約束,不過for函數(shù)允許只輸入一個(gè)約束,然后LINGO自動(dòng)產(chǎn)生每個(gè)集成員的約束。例 產(chǎn)生序列1,4,9,16,25model:sets: number/1.5/:x;endsets for(number(I): x(I)=I2);end2sum該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)式的和。例 求向量5,1,3,4,6,10前5個(gè)數(shù)的和。model:data: N=6;enddatasets: number/1.N
20、/:x;endsetsdata: x = 5 1 3 4 6 10;enddata s=sum(number(I) | I #le# 5: x); );!此處不能寫成I <=5;end3min和max返回指定的集成員的一個(gè)表達(dá)式的最小值或最大值。例 求向量5,1,3,4,6,10前5個(gè)數(shù)的最小值,后3個(gè)數(shù)的最大值。model:data: N=6;enddatasets: number/1.N/:x;endsetsdata: x = 5 1 3 4 6 10;enddata minv=min(number(I) | I #le# 5: x); maxv=max(number(I) | I
21、#ge# N-2: x);!倒數(shù)3個(gè);end問:求下標(biāo)為偶數(shù)的元素的最大值?111111111111111111111111111111111111111111111111111111111111111111輸入和輸出函數(shù)text函數(shù)該函數(shù)被用在數(shù)據(jù)部分用來把解輸出至文本文件中。它可以輸出集成員和集屬性值。status()返回LINGO求解模型結(jié)束后的狀態(tài):0 Global Optimum(全局最優(yōu))1 Infeasible(不可行)2 Unbounded(無界)3 Undetermined(不確定)4 Feasible(可行)5 Infeasible or Unbounded(通常需要關(guān)閉“
22、預(yù)處理”選項(xiàng)后重新求解模型,以確定模型究竟是不可行還是無界)6 Local Optimum(局部最優(yōu))7 Locally Infeasible(局部不可行,盡管可行解可能存在,但是LINGO并沒有找到一個(gè))8 Cutoff(目標(biāo)函數(shù)的截?cái)嘀当贿_(dá)到)9 Numeric Error(求解器因在某約束中遇到無定義的算術(shù)運(yùn)算而停止) 通常,如果返回值不是0、4或6時(shí),那么解將不可信,幾乎不能用。該函數(shù)僅被用在模型的數(shù)據(jù)部分來輸出數(shù)據(jù)。例model:min=sin(x);data: text()=status();!text('c:tt.txt')=x;enddatainit: x=3;
23、endinit部分計(jì)算結(jié)果為: Local optimal solution found at iteration: 33 Objective value: -1.000000 6 Variable Value Reduced Cost X 4.712388 0.000000結(jié)果中的6就是status()返回的結(jié)果,表明最終解是局部最優(yōu)的。Lingo條件判斷函數(shù)IF(logical_condition, true_result, false_result)例 求解最優(yōu)化問題min=fx+fy; fx=if(x #gt# 0, 100,0)+2*x; !不能寫成x >0; fy
24、=if(y #gt# 0,60+3*y,2*y); x+y>=30;隨機(jī)數(shù)qrand(seed) 純小數(shù)產(chǎn)生服從(0,1)區(qū)間的擬隨機(jī)數(shù)(均勻分布)。qrand只允許在模型的數(shù)據(jù)部分使用,它將用擬隨機(jī)數(shù)填滿集屬性。通常,聲明一個(gè)m×n的二維表,m表示運(yùn)行實(shí)驗(yàn)的次數(shù),n表示每次實(shí)驗(yàn)所需的隨機(jī)數(shù)的個(gè)數(shù)。例DATA: M = 4; N = 2; SEED = 1234567; ENDDATA SETS: ROWS /1.M/; COLS /1.N/; TABLE( ROWS, COLS): X; ENDSETS DATA: X = qRAND( SEED);!此函數(shù)只能用在data段
25、 ENDDATA如何查錯(cuò)、排錯(cuò)?200多個(gè)錯(cuò)誤代碼Model Debugging: LINGO|Debuginfeasible 和 unbounded models:sufficient 和 necessary 例:infeasible model:model:Row1Max=3*X+7*Y;Row2X+2*Y<=3;Row32*X+Y<=2;Row40.55*X+Y>=4;end例:unbounded model:model:Row1Max=3*X+7*Y+Z;Row2X+2*Y>=3;Row32*X+Y-Z<=2;end習(xí)題1. 用Lingo求解下列線性規(guī)劃: (1)max z=6x1-2x2-10x3+8x4,2.求解下列二次規(guī)劃:(下述步驟Lingo->Options->Nonlinear Solver->Quadratic Recognition 進(jìn)行設(shè)置可得全局最優(yōu)解)3.用Lingo求解下列方程組的所有實(shí)數(shù)解:(1)(有兩組解)Variable Value X -0.9817137 Y 0.1903991Variable Value X 0.356
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供貨茶葉合同范本
- 包裝食品配送合同范例
- 合作擔(dān)保合同范例
- 合租合同范本
- 化肥合作協(xié)議合同范本
- 廠房使用合同范例
- 人工勞務(wù)合同范本封皮
- 個(gè)人汽車采購(gòu)合同范本
- 企業(yè)業(yè)務(wù)合同范本
- 合同范本征求意見
- 【講座培訓(xùn)】《中小學(xué)教育懲戒規(guī)則(試行)》解讀課件
- 中科大《無機(jī)化學(xué)》課件1氣體、液體和溶液的性質(zhì)
- 復(fù)婚合同協(xié)議書模板
- U8-EAI二次開發(fā)說明
- 2006 年全國(guó)高校俄語專業(yè)四級(jí)水平測(cè)試試卷
- 浙江省勞動(dòng)保障監(jiān)察員培訓(xùn)監(jiān)察執(zhí)法程序(林琳)
- 新人教版數(shù)學(xué)四年級(jí)下冊(cè)全冊(cè)表格式教案
- 閩教版(2020版)六年級(jí)下冊(cè)信息技術(shù)整冊(cè)教案
- 二手房買賣合同正式版空白
- 食品銷售經(jīng)營(yíng)者食品安全管理制度(零售)
- 通信電源-概述ppt課件
評(píng)論
0/150
提交評(píng)論