




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Lingo超經(jīng)典案例大全LINGO是Linear Interactive and General Optimizer的縮寫,即“交互式的線性和通用優(yōu)化求解器”。Lingo超強(qiáng)的優(yōu)化計算能力在很多方面(線性規(guī)劃、非線性規(guī)劃、線性整數(shù)規(guī)劃、非線性整數(shù)規(guī)劃、非線性混合規(guī)劃、二次規(guī)劃等)比matlab、maple等強(qiáng)得多,Lingo編程簡潔明了,數(shù)學(xué)模型不用做大的改動(或者不用改動)便可以直接采用Lingo語言編程,十分直觀。Lingo模型由4個段構(gòu)成:(1)集合段(sets endsets);(2)數(shù)據(jù)段(data enddata); (3)初始
2、段(init endinit);(4)目標(biāo)與約束段。Lingo的五大優(yōu)點:1. 對大規(guī)模數(shù)學(xué)規(guī)劃,LINGO語言所建模型較簡潔,語句不多;2. 模型易于擴(kuò)展,因為FOR、SUM等語句并沒有指定循環(huán)或求和的上下限,如果在集合定義部分增加集合成員的個數(shù),則循環(huán)或求和自然擴(kuò)展,不需要改動目標(biāo)函數(shù)和約束條件;3. 數(shù)據(jù)初始化部分與其它部分語句分開,對同一模型用不同數(shù)據(jù)來計算時,只需改動數(shù)據(jù)部分即可,其它語句不變;4. “集合”是LINGO有特色的概念,它把實際問題中的事物與數(shù)學(xué)變量及常量聯(lián)系起來,是實際問題到數(shù)學(xué)量的抽象,它比C語言中的數(shù)組用途更為廣泛。 5. 使用了集合以及FOR、SUM等
3、集合操作函數(shù)以后可以用簡潔的語句表達(dá)出常見的規(guī)劃模型中的目標(biāo)函數(shù)和約束條件,即使模型有大量決策變量和大量數(shù)據(jù),組成模型的語句并不隨之增加 一、求解線性整數(shù)規(guī)劃、非線性整數(shù)規(guī)劃問題:1.線性整數(shù)規(guī)劃:model:max=x1+x2;x1+9/14*x2<=51/14;-2*x1+x2<=1/3;gin(x1);gin(x2);end求得x1=3,x2=1,最大值為4.運用matlab求時可以發(fā)現(xiàn)有兩組解:x1=3,x2=1和x1=2,x2=2。通過驗證也可知這兩組解均滿足。Lingo的一個缺陷是:每次只能輸出最優(yōu)解中的一個(有時不只一個)。那么,怎樣求得其他解呢?一個辦法是
4、將求得的解作為約束條件,約束x1不等于3,x2不等于1,再求解。如下:model:max=x1+x2;x1+9/14*x2<=51/14;-2*x1+x2<=1/3;gin(x1);gin(x2);abs(x1-3)>0.001;abs(x2-1)>0.001;end求得x1=2,x2=2.若再次排除這組解,發(fā)現(xiàn)Lingo解不出第三組解了,這時我們可以斷定:此優(yōu)化模型有兩組解:x1=3,x2=1和x1=2,x2=2.求解模型時需注意:Lingo中,默認(rèn)變量均為非負(fù);輸出的解可能是最優(yōu)解中的一組,要判斷、檢驗是否還有其他解(根據(jù)具體問題的解的情況或用排除已知最優(yōu)解的約束條
5、件法)。2、非線性整數(shù)規(guī)劃:model:sets:row/1.4/:b;col/1.5/:c1,c2,x;link(row,col):a;endsetsdata:c1=1,1,3,4,2;c2=-8,-2,-3,-1,-2;a=1 1 1 1 11 2 2 1 62 1 6 0 00 0 1 1 5;b=400,800,200,200;enddata max=sum(col:c1*x2+c2*x);for(row(i):sum(col(j):a(i,j)*x(j)<b(i);for(col:gin(x);for(col:bnd(0
6、,x,99);End求得:x1=50,x2=99,x3=0,x4=99,x5=20.最大值為51568。這里,我們看不出是否還有其他解,需要將已知的最優(yōu)解排除掉。利用1的方法分別可得到其他解:x1=48,x2=98,x3=1,x4=98,x5=19.最大值為50330。x1=45,x2=97,x3=2,x4=97,x5=18.最大值為49037。x1=43,x2=96,x3=3,x4=96,x5=17.最大值為47859。x1=40,x2=95,x3=4,x4=95,x5=16.最大值為46636。.發(fā)現(xiàn)x1,x2,x4,x5均單調(diào)減少,x3單調(diào)增加。最大值越來越小??梢院唵闻袛嗟谝唤M為最優(yōu)的
7、。當(dāng)然,能夠一一檢驗最好。 二、最優(yōu)選擇問題某鉆井隊要從10個可供選擇的井位中確定5個鉆井探油,使總的鉆探費用為最小。若10個井位的代號為s1,s2,.,s10,相應(yīng)的鉆探費用c1,c2,.,c10為5,8,10,6,9,5,7,6,10,8.并且井位選擇上要滿足下列限制條件:(1) 或選擇s1和s7,或選擇鉆探s9;(2) 選擇了s3或s4就不能選s5,或反過來也一樣;(3) 在s5,s6,s7,s8中最多只能選兩個.試建立這個問題的整數(shù)規(guī)劃模型,確定選擇的井位。取0-1變量s_i,若s_i=1,則表示選取第i個井,若s_i=0,則表示不選取第i個井。建立數(shù)學(xué)模型如下:model:
8、sets:variables/1.10/:s,cost;endsetsdata:cost=5 8 10 6 9 5 7 6 10 8;enddatamin=sum(variables:cost*s);(s(1)+s(7)-2)*(s(9)-1)=0;s(3)*s(5)+s(4)*s(5)=0;sum(variables(i)|i#ge#5#and#i#le#8:s(i)<=2;sum(variables:s)=5;for(variables:bin(s);end求得: &
9、#160; Total solver iterations: 26 Variable
10、60; Value Reduced Cost S( 1)
11、; 1.000000 -4.000000 S( 2) &
12、#160; 1.000000 0.000000 S( 3)
13、0; 0.000000 2.000000 S( 4) &
14、#160; 1.000000 -2.000000 S( 5)
15、60;0.000000 0.000000 S( 6)
16、1.000000 -1.000000 S( 7) 1.000000
17、 0.000000 S( 8) 0.000000
18、60; 0.000000 S( 9) 0.000000
19、 2.000000 S( 10) 0.000000
20、160; 0.000000 Objective value: 31.00000即選擇井S1,S2,S4,S6,S7以達(dá)到最小費用31. 三、
21、路徑和最短問題:設(shè)平面上有N個點,求一點,使得這個點到所有點距離之和最小。這里,取N=8。數(shù)據(jù)點是15的隨機(jī)數(shù)。Lingo:model:sets:position/1.8/:x,y;ab/1/:a,b;endsetsdata:text('E:matlab7.0workdata.txt')=x,y;!讀入到matlab的工作空間中;text('E:matlab7.0workdata1.txt')=a,b;enddatax(1)=1+4*rand(0.12345);y(1)=1+4*rand(0.25);for(position(i)|i#ge#2:x(i)=1+4
22、*rand(x(i-1);!隨機(jī)產(chǎn)生15中的8個點;for(position(i)|i#ge#2:y(i)=1+4*rand(y(i-1);objmin=sum(position(i):sqrt(x(i)-a(1)2+(y(i)-b(1)2);!目標(biāo)函數(shù);bnd(1,a(1),5);bnd(1,b(1),5);endmatlab:clear;clc;close all;load('data.txt');load('data1.txt');hold on;plot(data1(1),data1(2),'o','MarkerSize'
23、,15,'MarkerFaceColor','r');plot(data(:,1),data(:,2),'or','MarkerSize',15,'MarkerFaceColor','b');set(gcf,'Color','w');set(gca,'FontSize',16)grid off;data1=repmat(data1,8,1);P=data1(:,1)'data(:,1)'Q=data1(:,2)'data(:,2
24、)'plot(P,Q,'g','LineWidth',2);xlabel('x');ylabel('y');title('Solving the problem of the minimun distance of tne sum of all the blue points towards the being known red point.');gtext('The minimun distance is ',num2str(10.2685),'.','FontS
25、ize',16,'Color','r');三、運輸+選址問題: 某公司有6個建筑工地,位置坐標(biāo)為(ai, bi) (單位:公里),水泥日用量di (單位:噸)i 1 2 3
26、 4 5 6a 1.25 8.75 0.5
27、60; 5.75 3 7.25b 1.25 0.75 4.75
28、; 5 6.5 7.75d 3 5
29、 4 7 6 11(1)現(xiàn)有2料場,位于A (5, 1), B (2, 7),記(xj,yj),j=1,2,
30、60;日儲量ej各有20噸。假設(shè)料場和工地之間有直線道路,制定每天的供應(yīng)計劃,即從A, B兩料場分別向各工地運送多少噸水泥,使總的噸公里數(shù)最小。取決策變量c_ij表示i工地從j料場運來的水泥量。模型(線性模型)為:model:sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25 8.75 0.5 5.75 3 7.25;b=1.25 0.75 4.75 5 6.5 7.75;d=3 5 4 7 6 11;x=5 2;y=1 7;e=20 20;enddataobjmin=sum(lin
31、k(i,j):c(i,j)*sqrt(a(i)-x(j)2+(b(i)-y(j)2);!目標(biāo)函數(shù);for(demand(i):sum(supply(j):c(i,j)=d(i);for(supply(j):sum(demand(i):c(i,j)<=e(j);end求得:C( 1, 1) 3.000000 C( 1, 2)
32、; 0.000000 C( 2, 1) 5.000000 C( 2, 2) 0.0
33、00000 C( 3, 1) 0.000000 C( 3, 2) 4.000000
34、; C( 4, 1) 7.000000 &
35、#160; C( 4, 2) 0.000000
36、60; C( 5, 1) 0.000000
37、; C( 5, 2) 6.000000 C( 6, 1)
38、; 1.000000 C( 6, 2) 10.00000
39、; Objective value: 136.2275(2) 改建兩個新料場,需要確定新料場位置(xj,yj)和運量cij ,在其它條件不變下使總噸公里數(shù)最小。模型一樣,未知量變?yōu)榱蠄鑫恢?xj,yj)和運量cij ,變?yōu)榉蔷€性優(yōu)化問題。model:sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25 8.75 0.5 5.75 3 7.2
40、5;b=1.25 0.75 4.75 5 6.5 7.75;d=3 5 4 7 6 11;e=20 20;enddatainit:x=5 2;y=1 7;endinitobjmin=sum(link(i,j):c(i,j)*sqrt(a(i)-x(j)2+(b(i)-y(j)2);!目標(biāo)函數(shù);for(demand(i):sum(supply(j):c(i,j)=d(i);for(supply(j):sum(demand(i):c(i,j)<=e(j);for(supply:free(x);free(y);end求得:C( 1, 1)
41、0; 3.000000 C( 1, 2) 0.000000
42、0; C( 2, 1) 0.000000
43、 C( 2, 2) 5.000000 C( 3, 1)
44、 4.000000 C( 3, 2)
45、160;0.000000 C( 4, 1) 7.000000
46、160; C( 4, 2) 0.000000
47、0; C( 5, 1) 6.000000
48、 C( 5, 2) 0.000000
49、160; C( 6, 1) 0.000000
50、0; C( 6, 2) 11.00000 (x1,y1)=(3.254884,5.652331) (x2,y2)=(7.250000,7.750000)Objective value: 85.26604四、路徑最短問題:如上圖,求從S到T
51、的最短路徑。設(shè)d(x,y):城市x與城市y之間的直線距離;L(x):城市S到城市x的最優(yōu)行駛路線的路長。模型為:min L(x)+d(x,y)L(S)=0 model:sets:city/S,A1,A2,A3,B1,B2,C1,C2,T/:L;road(city,city)/S,A1 S,A2 S,A3 A1,B1 A1,B2 A2,B1 A2,B2 A3,B1 A3,B2 B1,C1 B1,C2 B2,C1 B2,C2 C1,T C2,T/:d;endsetsdata:d=6 3 36 5 8 6 7 46 7 8 95 6;L=0,6,3,3,;enddatafor(city(j
52、)|j#gt#index(city,S):L(j)=min(road(i,j):L(i)+d(i,j);end求得最短路徑為20. 五、指派問題(0-1規(guī)劃問題):四個人完成4項任務(wù)所用的時間如下,問如何指派任務(wù)使得完成所有任務(wù)的時間最短? 任務(wù) t1 t2 t3 t4人員m1
53、; 2 15 13 4 m2 10 4 14 15 m3
54、 9 14 16 13 m4 7 8 11
55、; 9 c_ij:表示第i個人完成第j項任務(wù)所用的時間;決策變量x_ij:若第i個人選擇第j項任務(wù)則x_ij=1;否則,x_ij=0;模型為:model:sets:task/1.4/:t;man/1.4/:m;link(man,task):c,x;endsetsdata:c=2 15 13 410 4 14 159 14 16 137 8 11 9;enddataobjmin=sum(link:c*x);for(task(j):sum(man(i):x(i,j)=1);for(man(i):sum(task(j):x(i,j)=1);for(link:bin(x);end求
56、得:最優(yōu)指派為:m1-t4,m2-t2,m3-t1,m4-t3最優(yōu)值為:28。 六、裝配線平衡模型(0-1規(guī)劃問題)11 件任務(wù)(AK)分配到 4 個工作站(14),任務(wù)的優(yōu)先次序如下圖,每件任務(wù)所花費的時間如下表。目標(biāo)是為每個工作站分配加工任務(wù),盡可能使每個工作站執(zhí)行相同的任務(wù)量,其最終裝配線周期最短。任務(wù) A B C D E F G H I J K時間
57、45 11 9 50 15 12 12 12 12 8 9 T(i):為完成第i項任務(wù)需要的時間。 SETS:TASK/ A B C D E F G H I J K/: T; !任務(wù)集合,有一個完成時間屬性 T;PRED( TASK, TASK)/ A,B B,C C,F C,G F,
58、J G,JJ,K D,E E,H E,I H,J I,J /; !任務(wù)之間的優(yōu)先關(guān)系集合(A 必須完成才能開始 B,等等);STATION/1.4/; ! 工作站集合;TXS( TASK, STATION): X;! X 是派生集合 TXS 的一個屬性。如果 X(I,K)1,則表示第 I 個任務(wù)指派給第 K 個工作站完成;ENDSETSDATA:T
59、;= 45 11 9 50 15 12 12 12 12 8 9; !任務(wù) A B C D E F G H I J K 的完成時間;ENDDATAFOR( TASK( I): SUM( STATION( K): X( I, K) = 1); !每一個
60、作業(yè)必須指派到一個工作站;FOR( PRED( I, J): SUM( STATION( K): X(I, K)-SUM( STATION( K): X(J, K) )>=0) !對于每一個存在優(yōu)先關(guān)系的作業(yè)對(I,J)來說,I先J后安排;FOR( STATION( K):SUM( TXS( I, K): T( I) * X(
61、 I, K) <= CYCTIME); !對于每一個工作站來說,其花費時間必須不大于裝配線周期;MIN = CYCTIME; !目標(biāo)函數(shù)是最小化轉(zhuǎn)配線周期;FOR( TXS: BIN( X); !指定 X(I,J) 為 0/1 變量;END 解得最短周期為50.分配情況為:A-1,B-3,C-4,D-2,E-3,F(xiàn)-4,G-4,H-3,I-3,J-4,K-4.七、選址問題某海島上有12個主要的居民點,每個居民點的位置(用
62、平面坐標(biāo)x,y表示,距離單位:km)和居住的人數(shù)(r)如下表所示?,F(xiàn)在準(zhǔn)備在海島上建一個服務(wù)中心為居民提供各種服務(wù),那么服務(wù)中心應(yīng)該建在何處?x 0 8.20 0.50 5.70 0.77 2.87 4.43 2.58 0.72 9.76 3.19 5.55y 0 0.50 4.90 5.00 6.49 8.76 3.26 9.32 9.96 3.16 7.20 7.88r 600 1000 800 1400 1200 700 600 800 1000 1200 1000 1100設(shè)建在(a,b)處最合理。建立模型:MODEL:SETS:VAR/1.12/:X,Y,R;ENDSETSDATA:
63、X=0 8.20 0.50 5.70 0.77 2.87 4.43 2.58 0.72 9.76 3.19 5.55;Y=0 0.50 4.90 5.00 6.49 8.76 3.26 9.32 9.96 3.16 7.20 7.88;R=600 1000 800 1400 1200 700 600 800 1000 1200 1000 1100;ENDDATAMIN=SUM(VAR:SQRT(X-A)2+(Y-B)2)*R);END求得:(a,b)=(3.601028,6.514223),最小值為:44236.04。 八、婚配問題:10對年齡相當(dāng)?shù)那嗄?,任意一對男女青年配對的概率p
64、ij見下表。試給出一個配對方案,使總的配對概率最大。 w1 w2 w3 w4 w5
65、w6 w7 w8 w9 w10m1 0.5828 0.2091 0.4154 0.21
66、40 0.6833 0.4514 0.6085 0.0841 0.1210 0.2319m2 0.4235 0.3798 0.3050 0.6435 0.2126&
67、#160; 0.0439 0.0158 0.4544 0.4508 0.2393m3 0.5155 0.7833 0.8744 0.3200 0.8392 0.027
68、2 0.0164 0.4418 0.7159 0.0498m4 0.3340 0.6808 0.0150 0.9601 0.6288 0.3127 0.1
69、901 0.3533 0.8928 0.0784m5 0.4329 0.4611 0.7680 0.7266 0.1338 0.0129 0.5869 0
70、.1536 0.2731 0.6408m6 0.2259 0.5678 0.9708 0.4120 0.2071 0.3840 0.0576 0.6756
71、;0.2548 0.1909m7 0.5798 0.7942 0.9901 0.7446 0.6072 0.6831 0.3676 0.6992 0.8656 0.8439m8&
72、#160;0.7604 0.0592 0.7889 0.2679 0.6299 0.0928 0.6315 0.7275 0.2324 0.1739m9 0.5298
73、; 0.6029 0.4387 0.4399 0.3705 0.0353 0.7176 0.4784 0.8049 0.1708m10 0.6405 0.0503 &
74、#160;0.4983 0.9334 0.5751 0.6124 0.6927 0.5548 0.9084 0.9943取xx_ij為0-1型決策變量。模型為:model:sets:man/m1.m10/;woman/w1.w10/;link(man,woman):p,x;endsetsdata:p=
75、0.5828 0.2091 0.4154 0.2140 0.6833 0.4514 0.6085 0.0841 0.1210 0.2319 0.4235
76、 0.3798 0.3050 0.6435 0.2126 0.0439 0.0158 0.4544 0.4508 0.2393 0.5155
77、 0.7833 0.8744 0.3200 0.8392 0.0272 0.0164 0.4418 0.7159 0.0498 0.3340 0.6808
78、 0.0150 0.9601 0.6288 0.3127 0.1901 0.3533 0.8928 0.0784 0.4329 0.4611
79、 0.7680 0.7266 0.1338 0.0129 0.5869 0.1536 0.2731 0.6408 0.2259 0.5678
80、0.9708 0.4120 0.2071 0.3840 0.0576 0.6756 0.2548 0.1909 0.5798 0.7942 0.9901
81、 0.7446 0.6072 0.6831 0.3676 0.6992 0.8656 0.8439 0.7604 0.0592 0.7889
82、 0.2679 0.6299 0.0928 0.6315 0.7275 0.2324 0.1739 0.5298 0.6029 0.4387 0.4399
83、 0.3705 0.0353 0.7176 0.4784 0.8049 0.1708 0.6405 0.0503 0.4983 0.9334
84、 0.5751 0.6124 0.6927 0.5548 0.9084 0.9943;enddatamax=prod(man(i):sum(woman(j):p(i,j)*x(i,j);for(woman(j):sum(link(i,j):x(i,j)=1);for(man(i):sum(link(i,j):x(i,j)=1);for(link:bin(x);end求解結(jié)果:m1-w5,m2-w8,m3-w2,m4-w4,m5-w7,m6-w3,m7-w6,m8-w1,m9-w9,m10-w10.最大值為0.055. 九、護(hù)士
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國衛(wèi)星導(dǎo)航市場發(fā)展趨勢及競爭格局預(yù)測與投資風(fēng)險評估
- 地稅七一活動方案
- 夜間訓(xùn)練活動方案
- 夏天診所開診活動方案
- 大學(xué)產(chǎn)學(xué)研活動方案
- 產(chǎn)學(xué)研一體化廠房租賃合同補(bǔ)充協(xié)議
- 餐飲門面租賃合同租賃保證金繳納與退還規(guī)則
- 殘疾人車輛無償借用服務(wù)合同
- 地推活動爆款活動方案
- 大班班級生日會活動方案
- 2025屆福建省廈門市名校數(shù)學(xué)七下期末質(zhì)量檢測試題含解析
- 北京社工考試題及答案
- DB62T 3081-2022 綠色建筑工程驗收標(biāo)準(zhǔn)
- 2023-2024學(xué)年山東省青島市西海岸高一下學(xué)期期末學(xué)業(yè)水平檢測數(shù)學(xué)試題(解析版)
- 食品供應(yīng)商協(xié)議合同模板
- 揚州市儀征市2024-2025學(xué)年三下數(shù)學(xué)期末質(zhì)量檢測試題含解析
- 2025中國臺灣薪酬指南
- 口服給藥安全警示教育
- 江蘇征兵業(yè)務(wù)培訓(xùn)課件
- 黃金飾品購銷合同(2025版)
- 2025年北京市第一次普通高中學(xué)業(yè)水平合格性考試歷史試題(原卷版+解析版)
評論
0/150
提交評論