實驗四求解非線性規(guī)劃模型_第1頁
實驗四求解非線性規(guī)劃模型_第2頁
實驗四求解非線性規(guī)劃模型_第3頁
實驗四求解非線性規(guī)劃模型_第4頁
實驗四求解非線性規(guī)劃模型_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上 數(shù)學建模 實驗指導書姓名:吳家猛 班號:AP08055 學號:AP五邑大學數(shù)學物理系二八年八月印刷實驗4 指導書實驗項目名稱:求解非線性規(guī)劃模型所屬課程名稱:數(shù)學建模實驗計劃學時:2學時一、 實驗目的掌握數(shù)學軟件Lingo用集合步和循環(huán)語句等編程求解非線性規(guī)劃模型。二、 實驗內容和要求(一) 實驗內容(鋼管下料模型)某鋼管零售商從鋼管廠進貨,將鋼管按照顧客的要求切割后售出,從鋼管廠進貨時原料鋼管都是168米?,F(xiàn)有顧客需要968根12米、848根23米、1253根28米和988根35米的鋼管。1. 因為零售商如果采用不同切割模式太多,將會導致生產(chǎn)過程復雜化,從而增加生

2、產(chǎn)成本,所以該零售商規(guī)定采用的切割模式不超過3種。請你確定下料方案。2. 若該零售商規(guī)定采用的切割模式不超過4種。請你重新確定下料方案。3. 思考題在上面下料問題中若不限制切割模式的數(shù)量,請你確定下料方案。(二) 要求 有問題分析、數(shù)學模型、Lingo的求解程序、程序的運行結果和所有問題的回答。三、 實驗主要儀器設備和材料 每人一臺計算機,要求已安裝Lingo 8.0以上版本。四、 實驗方法、步驟及結果測試 (1)模型建立: 決策變量: 由于不同切割模式不超過3種,可以用表示按照第i模式(i=1,2,3)切割的原料,顯然它們應當是非負整數(shù),設所使用的第i種切割模式下每根原料鋼管生產(chǎn)12米,23

3、米,28米和38米的鋼管分別為. 決策目標:切割原料鋼管的總根數(shù)最少,目標為 Min 約束條件 為滿足客戶的需求,應有 每一種切割模式必須可行,合理,所以每根原料鋼管的成品量不能超過168米,也不能少于157米,于是有: 為了把模型求解的范圍縮小,我們再假設第一種全部用來切割12米的,一根可以切割14根,第二種全部用來切割23米的,一根可以切割7根,第三種一根可以用來切割4根28和1根35米的故最多要用70+122+988=1180根,又假設每根完全用完,沒有剩余量,則最少要用根,故有 模型求解:將構成的模型輸入LINGO中,程序如下:Title 鋼管下料 - 最小化鋼管根數(shù)的LINGO模型;

4、SETS: NEEDS/1.4/:LENGTH,NUM; ! 定義基本集合NEEDS及其屬性LENGTH,NUM;CUTS/1.3/:X; ! 定義基本集合CUTS及其屬性X;PATTERNS(NEEDS,CUTS):R; ! 定義派生集合PATTERNS(這是一個稠密集合)及其屬性R;ENDSETSDATA:LENGTH=12 23 28 35;NUM=968 848 1253 988;C=168;ENDDATAmin=SUM(CUTS(I): X(I) );!目標函數(shù);FOR(NEEDS(I): SUM(CUTS(J): X(J)*R(I,J) ) NUM(I) ); !滿足需求約束;FO

5、R(CUTS(J): SUM(NEEDS(I): LENGTH(I)*R(I,J) ) C -MIN(NEEDS(I):LENGTH(I)+1 ); !合理切割模式約束;SUM(CUTS(I): X(I) ) 600; SUM(CUTS(I): X(I) ) X(I+1) ); !人為增加約束;FOR(CUTS(J): GIN(X(J) ) ;FOR(PATTERNS(I,J): GIN(R(I,J) );end輸出結果為:Local optimal solution found at iteration: Objective value: 603.0000 Model Title: 鋼管下料

6、 - 最小化鋼管根數(shù)的LINGO模型 Variable Value Reduced Cost C 168.0000 0. LENGTH( 1) 12.00000 0. LENGTH( 2) 23.00000 0. LENGTH( 3) 28.00000 0. LENGTH( 4) 35.00000 0. NUM( 1) 968.0000 0. NUM( 2) 848.0000 0. NUM( 3) 1253.000 0. NUM( 4) 988.0000 0. X( 1) 389.0000 1. X( 2) 144.0000 1. X( 3) 70.00000 1. R( 1, 1) 2. 0

7、. R( 1, 2) 0. 0. R( 1, 3) 3. 0. R( 2, 1) 2. 0. R( 2, 2) 0. 0. R( 2, 3) 1. 0. R( 3, 1) 1. 0. R( 3, 2) 6. 0. R( 3, 3) 0. 0. R( 4, 1) 2. 0. R( 4, 2) 0. 0. R( 4, 3) 3. 0. Row Slack or Surplus Dual Price 1 603.0000 -1. 2 20.00000 0. 3 0. 0. 4 0. 0. 5 0. 0. 6 0. 0. 7 0. 0. 8 4. 0. 9 11.00000 0. 10 11.0000

8、0 0. 11 7. 0. 12 3. 0. 13 577.0000 0. 14 245.0000 0. 15 74.00000 0.由運算得出的數(shù)據(jù)可以知道: 總使用原料鋼管的總根數(shù)為603根,第一種切割模式下一根原料鋼管切割成2根12米、2根23米、1根28米和2根35米;第二種切割模式下一根原料鋼管切割成6根28米;第三種切割模式下一根原料鋼管切割成3根12米、1根23米和3根35米。(2)模型建立: 決策變量: 由于不同切割模式不超過4種,可以用表示按照第i模式(i=1,2,3、4)切割的原料,顯然它們應當是非負整數(shù),設所使用的第i種切割模式下每根原料鋼管生產(chǎn)12米,23米,28米和3

9、8米的鋼管分別為. 決策目標:切割原料鋼管的總根數(shù)最少,目標為 Min 約束條件 為滿足客戶的需求,應有 每一種切割模式必須可行,合理,所以每根原料鋼管的成品量不能超過168米,也不能少于157米,于是有: 為了把模型求解的范圍縮小,我們再假設第一種全部用來切割12米的,一根可以切割14根,第二種全部用來切割23米的,一根可以切割7根,第三種一根可以用來切割4根28米和1根35米的,第四種一根可以用來切割1根28米和4根35米的,故最多要用70+122+313+170=675根,又假設每根完全用完,沒有剩余量,則最少要用根,故有 模型求解:將構成的模型輸入LINGO中,程序如下:Title 鋼

10、管下料 - 最小化鋼管根數(shù)的LINGO模型;SETS: NEEDS/1.4/:LENGTH,NUM; ! 定義基本集合NEEDS及其屬性LENGTH,NUM;CUTS/1.4/:X; ! 定義基本集合CUTS及其屬性X;PATTERNS(NEEDS,CUTS):R; ! 定義派生集合PATTERNS(這是一個稠密集合)及其屬性R;ENDSETSDATA:LENGTH=12 23 28 35;NUM=968 848 1253 988;C=168;ENDDATAmin=SUM(CUTS(I): X(I) );!目標函數(shù);FOR(NEEDS(I): SUM(CUTS(J): X(J)*R(I,J)

11、) NUM(I) ); !滿足需求約束;FOR(CUTS(J): SUM(NEEDS(I): LENGTH(I)*R(I,J) ) C -MIN(NEEDS(I):LENGTH(I)+1 ); !合理切割模式約束;SUM(CUTS(I): X(I) ) 600; SUM(CUTS(I): X(I) ) X(I+1) ); !人為增加約束;FOR(CUTS(J): GIN(X(J) ) ;FOR(PATTERNS(I,J): GIN(R(I,J) );輸出結果為:Local optimal solution found at iteration: Objective value: 601.000

12、0 Model Title: 鋼管下料 - 最小化鋼管根數(shù)的LINGO模型 Variable Value Reduced Cost C 168.0000 0. LENGTH( 1) 12.00000 0. LENGTH( 2) 23.00000 0. LENGTH( 3) 28.00000 0. LENGTH( 4) 35.00000 0. NUM( 1) 968.0000 0. NUM( 2) 848.0000 0. NUM( 3) 1253.000 0. NUM( 4) 988.0000 0. X( 1) 243.0000 1. X( 2) 208.0000 1. X( 3) 134.00

13、00 1. X( 4) 16.00000 1. R( 1, 1) 0. 0. R( 1, 2) 4. 0. R( 1, 3) 0. 0. R( 1, 4) 9. 0. R( 2, 1) 0. 0. R( 2, 2) 4. 0. R( 2, 3) 0. 0. R( 2, 4) 1. 0. R( 3, 1) 1. 0. R( 3, 2) 1. 0. R( 3, 3) 6. 0. R( 3, 4) 0. 0. R( 4, 1) 4. 0. R( 4, 2) 0. 0. R( 4, 3) 0. 0. R( 4, 4) 1. 0. Row Slack or Surplus Dual Price 1 60

14、1.0000 -1. 2 8. 0. 3 0. 0. 4 2. 0. 5 0. 0. 6 0. 0. 7 0. 0. 8 0. 0. 9 2. 0. 10 11.00000 0. 11 11.00000 0. 12 11.00000 0. 13 9. 0. 14 3. 0. 15 19.00000 0. 16 35.00000 0. 17 74.00000 0. 18 118.0000 0.由計算結果可知:總使用原料鋼管的總根數(shù)為601根,第一種切割模式下一根原料鋼管切割成1根28米、4根35米;第二種切割模式下一根原料鋼管切割成4根12米、4根23米、1根28米;第三種切割模式下一根原料鋼管

15、切割成6根28米;第四種切割模式下一根原料鋼管切割成9根12米、1根23米、1根35米。(3)思考題:由于不限制切割模式的種類,故需要算出總切割模式總數(shù),用C+程序來計算。 在MicrosoftVisualC+6.0中輸入以下程序:#includeusing namespace std;int c=0,sum;/sum表示滿足客戶要求所用的原料鋼管的根數(shù)的上限;int i,j,k,l; /某種模式時,i表示切割12米的根數(shù),j表示切割23米的根數(shù),k表示切割28米的根數(shù),l表示切割35米的根數(shù),int a,e; int d1,d2,d3,d4;int sumi=0,sumj=0,sumk=0,

16、suml=0;int main() e=(12*968+23*848+28*1253+35*988)/168-1; /需要鋼管原料的下限 for(l=0;l5;l+) for(k=0;k7;k+) for(j=0;j8;j+) for(i=0;i=157&a=168) c=c+1; /符合條件的模式數(shù)量值 sumi=sumi+i; sumj=sumj+j; sumk=sumk+k; suml=suml+l; cout 第c種模式:切割i根12米的, j根23米的,k根28米的,l根35米的;d2) if(d1d3) if(d1d4)sum=d1*c; else sum=d4*c;else if(d3d4) sum=d3*c; else sum=d4*c;else if(d2d3)if(d2d4) sum=d2*c;else sum=d4*c; else if(d3d4) sum=d3*c; else sum=d4*c; cout 總共有c種模式endl; /總模式有的總值cout需要鋼管原料的下限為:eendl;co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論