陳雄達(dá)-數(shù)學(xué)軟件介紹-專2015-數(shù)模講座102_第1頁
陳雄達(dá)-數(shù)學(xué)軟件介紹-專2015-數(shù)模講座102_第2頁
陳雄達(dá)-數(shù)學(xué)軟件介紹-專2015-數(shù)模講座102_第3頁
陳雄達(dá)-數(shù)學(xué)軟件介紹-專2015-數(shù)模講座102_第4頁
陳雄達(dá)-數(shù)學(xué)軟件介紹-專2015-數(shù)模講座102_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)學(xué)軟件介紹-LINGO同濟大學(xué)陳雄達(dá)2015年9月5日提綱LINGO語言簡單的例子規(guī)劃建模的幾個技巧競賽實例LINGO軟件建立及求解線性、非線性、整數(shù)規(guī)劃僅需要提供模型,不需要算法模型包括:目標(biāo)函數(shù),極大化或者極小化決策變量,類型約束條件,等式或不等式混合泳接力隊的選拔如何選拔隊員組成4

100米混合泳接力隊?

甲乙丙丁戊蝶泳1’06”857”21’18”1’10”1’07”4仰泳1’15”61’06”1’07”81’14”21’11”蛙泳1’27”1’06”41’24”61’09”61’23”8自由泳58”653”59”457”21’02”4混合泳接力隊的選拔目標(biāo)函數(shù)若選擇隊員i參加泳姿j的比賽,記xij=1,否則記xij=0

約束條件每人最多入選泳姿之一

每種泳姿有且只有1人混合泳接力隊的選拔Model:Min=66.8*x11+57.2*x12+78.0*x13+70.0*x14+67.4*x15

+75.6*x21+66.0*x22+67.8*x23+74.2*x24+71.0*x25

+87.0*x31+66.4*x32+84.6*x33+69.6*x34+83.8*x35

+58.6*x41+53.0*x42+59.4*x43+57.2*x44+62.4*x45;x11+x12+x13+x14+x15=1;x21+x22+x23+x24+x25=1;x31+x32+x33+x34+x35=1;x41+x42+x43+x44+x45=1;x11+x21+x31+x41<=1;x12+x22+x32+x42<=1;x13+x23+x33+x43<=1;x14+x24+x34+x44<=1;x15+x25+x35+x45<=1;@bin(x11);@bin(x12);@bin(x13);@bin(x14);@bin(x15);@bin(x21);@bin(x22);@bin(x23);@bin(x24);@bin(x25);@bin(x31);@bin(x32);@bin(x33);@bin(x34);@bin(x35);@bin(x41);@bin(x42);@bin(x43);@bin(x44);@bin(x45);End混合泳接力隊的選拔Model:!Arelayteamassignmentproblem;SETS:MAN/J,Y,B,D,W/;STYLE/Butterfly,Back,Breast,FreeLancer/;JOIN(STYLE,MAN):SPEED,INCLUDE;ENDSETSMIN=@SUM(JOIN(I,K):SPEED(I,K)*INCLUDE(I,K));@FOR(MAN(K):@SUM(STYLE(I):INCLUDE(I,K))<=1);@FOR(STYLE(I):@SUM(MAN(K):INCLUDE(I,K))=1);@FOR(JOIN:@BIN(INCLUDE));DATA:SPEED=66.857.278.070.067.475.666.067.874.271.087.066.484.669.683.858.653.059.457.262.4;ENDDATAEndLINGO基本語法注釋行以感嘆號(!)開始,并顯示為綠色關(guān)鍵字和函數(shù)顯示為藍(lán)色其它為黑色每一個Lingo語句以分號(;)結(jié)束變量名以字母(a-z)開始,且忽略大小寫區(qū)別點擊Solve或者按Ctrl+s求解(萬一出錯會有出錯報告),

彈出解答窗口LINGO中的集合集合:同樣類型的變量,可以理解為向量需要在使用之前定義好簡單的例子SETS:

Trucks/TR1..TR27/:Capacity;ENDSETS語法:類型名/下標(biāo)/:變量名列表;LINGO中的集合衍生出的復(fù)雜集合SETS:

Product/XY/;

Machine/LM/;

Make(ProductMachine)/XL,XM,YM/;ENDSETSLINGO中的循環(huán)@FOR(Trucks(T):Capacity(T)<=3000);對于每一個Trucks類型的下標(biāo)T,Capacity(T)<=3000;TOTALHAUL=@SUM(Trucks(J):Capacity(J));對于每一個Trucks類型的下標(biāo)T,Capacity(T)的總和為TOTALHAUL;TOTALHAUL4=@SUM(Trucks(J)|J#LE#4:Capacity(J));對于每一個Trucks類型的不大于4的下標(biāo)T,Capacity(T)的總和為TOTALHAUL4;LINGO中的數(shù)據(jù)SETS:SET1/A,B,C/:X,Y;ENDSETSDATA:X=1,2,3;Y=4,5,6;ENDDATALINGO中的變量類型除非另有說明,Lingo中的變量皆為非負(fù);Lingo中有四種變量聲明可以覆蓋之前的類型:@GIN非負(fù)整數(shù)@BIN0/1變量@FREE實型變量,無非負(fù)要求@BND有界變量,例如

@BND(-1,X,1);LINGO中的數(shù)學(xué)函數(shù)@ABS(X)絕對值@SIGN(X)符號函數(shù)@EXP(X)指數(shù)函數(shù)@LOG(X)自然對數(shù)@SIN(X)正弦函數(shù)@COS(X)余弦函數(shù)@TAN(X)正切函數(shù)@FLOOR(X)朝零取整@LGM(X)

log((x-1)!)@SMAX(X1,X2,...,XN)最大值@SMIN(X1,X2,...,XN)最小值LINGO中的邏輯運算運算優(yōu)先級#NOT#最高^*/+-#EQ##NE##GT##GE##LT##LE##AND##OR#>=<=最低雜項函數(shù)語法:

@IF(LOGICAL_CONDITION,True_value,False_value)Model:

MIN=COST;

COST=XCOST+YCOST;

XCOST=@IF(X#GT#0,100,0)+2*X;

YCOST=@IF(Y#GT#0,60,0)+3*Y;

X+Y>=30;

@Free(X);@Free(Y);

End例:值班表問題某醫(yī)院需要聘請護士值夜班,每個護士連續(xù)值五個夜班,休息兩天,周而復(fù)始。據(jù)統(tǒng)計,每天晚上需要值夜班的護士人數(shù)最少為18(周一),16,15,16,19,14,12(周日).如何重新安排可使得須值夜班的護士總?cè)藬?shù)達(dá)到最少?例:值班表問題從周i開始值夜班的護士人數(shù)為

xi,記周

i

所需人數(shù)

ni,則minz=x1+x2+x3+x4+x5+x6+x7s.t.x1+x4+x5+x6+x7>=n1x1+x2+x5+x6+x7>=n2x1+x2+x3+x6+x7>=n3x1+x2+x3+x4+x7>=n4x1+x2+x3+x4+x5>=n5x2+x3+x4+x5+x6>=n6x3+x4+x5+x6+x7>=n7

xi>=0,xi為整數(shù)例:值班表問題model:

sets:

days/mon,tue,wed,thu,fri,sat,sun/:need,start;

endsets

min=@sum(days:start);

@for(days(i):

@sum(days(j)|(j#gt#i+2)#or#(j#le#i#and#j#gt#i-5):start(j))>=need(i);

);

@for(days:@gin(start));data:

need=18,16,15,16,19,14,12;enddataend例:值班表問題model:

sets:

days/mon,tue,wed,thu,fri,sat,sun/:need,start;

endsets

min=@sum(days:start);

@for(days(i):@sum(days:start)

-start(@wrap(i+1,7))-start(@wrap(i+2,7))

>=need(i);

);

@for(days:@gin(start));data:

need=18,16,15,16,19,14,12;enddataend規(guī)劃建模的幾個技巧1.背包問題

n

件物品,第

j

件價值為

cj,重量為wj

如何選擇裝入一個容重為K

的背包,使其具有最大價值?

xj=1或者0,表示第j件是否裝入背包中。

規(guī)劃建模的幾個技巧2.選址問題

假設(shè)某工廠有m

個客戶,現(xiàn)規(guī)劃中有n

個售后服務(wù)站備選地址。

j

個售后服務(wù)站的固定費用為cj,而它向第

i

個客戶提供服務(wù)的代價為

dij.

在這n個售后服務(wù)站備選地址中選擇若干個,指定各自的客戶服務(wù)對象,使其總費用最低。規(guī)劃建模的幾個技巧其它

a)對于0/1變量xi,x1+x2+x4=1,{x1,x2,x4}中恰好有一個為1;

x1+x2+x4<=1,{x1,x2,x4}中至多有一個為1;

x2<=x4,如果2號入選,則4號必入選;

x2=x4,2號4號,要么同時選,要么都不選

b)約束ax>=b

和cx>=d

至少有一個成立(其中a,c,x>=0),

ax>=yb,cx>=(1-y)d,y=0or1.c)約束aix>=bi

至少有

k

個成立(其中ai,x>=0),aix>=yibi

,yi=0or1,y1+

y2

+…+

yn>=k.

d)x

只能取離散值{a1,…,

am},

x=y1

a1

+

y2

a2

+…+

ym

am

,yi=0or1,y1+y2+…+

ym=1.競賽實例:儲藥柜的優(yōu)化(2014D)競賽實例:儲藥柜的優(yōu)化競賽實例:儲藥柜的優(yōu)化為保證藥品在儲藥槽內(nèi)順利出入,要求藥盒與兩側(cè)豎向隔板之間、與上下兩層橫向隔板之間應(yīng)留2mm間隙藥盒在儲藥槽內(nèi)推送過程中不會出現(xiàn)并排重疊、側(cè)翻或水平旋轉(zhuǎn)在忽略橫向和豎向隔板厚度的情況下,建立數(shù)學(xué)模型,給出下面幾個問題的解決方案。1.藥房內(nèi)的盒裝藥品種類繁多,藥盒尺寸規(guī)格差異較大,附件1中給出了一些藥盒的規(guī)格。請利用附件1的數(shù)據(jù),給出豎向隔板間距類型最少的儲藥柜設(shè)計方案,包括類型的數(shù)量和每種類型所對應(yīng)的藥盒規(guī)格。競賽實例:儲藥柜的優(yōu)化藥品編號長(mm)高(mm)寬(mm)1120762421257220312576214917115512572216120852071173726…………1919624525競賽實例:儲藥柜的優(yōu)化假設(shè)題目所給的數(shù)據(jù)準(zhǔn)確無誤藥盒不變形橫向與豎向隔板厚度忽略不計假設(shè)藥盒的長、寬、高與儲藥柜的長、寬、高一一對應(yīng)?藥盒在傳送中只考慮重疊、側(cè)翻、水平旋轉(zhuǎn)(不考慮前后翻轉(zhuǎn))競賽實例:儲藥柜的優(yōu)化決策變量:豎向隔板類型總數(shù)為n,各間距為xj,

yij=0,1表示藥品i不/要放入槽j目標(biāo):計算隔板類型數(shù)固定時,豎向隔板間距最大值條件:藥盒在槽內(nèi)順利移動不出現(xiàn)重疊不出現(xiàn)側(cè)翻不出現(xiàn)水平旋轉(zhuǎn)

溫馨提示

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

評論

0/150

提交評論