版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Lingo12軟件培訓(xùn)教案Lingo主要用于求解線性規(guī)劃,整數(shù)規(guī)劃,非線性規(guī)劃,V10以上版本可編程。例1 一個(gè)簡(jiǎn)單的線性規(guī)劃問題!exam_1.lg4 源程序max = 2*x+3*y; st_1 x+y<350;st_2 x<100; 2*x+y<600; !決策變量黙認(rèn)為非負(fù); <相當(dāng)于<=; 大小寫不區(qū)分 當(dāng)規(guī)劃問題的規(guī)模很大時(shí),需要定義數(shù)組(或稱為矩陣),以及下標(biāo)集(set)下面定義下標(biāo)集和對(duì)應(yīng)數(shù)組的三種方法,效果相同::r1 = r2 = r3, a = b = c.sets: r1/1.3/:a; r2 : b;r3 : c;link2(r1,r2)
2、: x;link3(r1,r2,r3): y;endsetsdata: ALPHA = 0.7; a=11 12 13 ; r2 = 1.3; b = 11 12 13; c = 11 12 13; enddata例2 運(yùn)輸問題計(jì)算6 個(gè)發(fā)點(diǎn)8 個(gè)收點(diǎn)的最小費(fèi)用運(yùn)輸問題。產(chǎn)銷單位運(yùn)價(jià)如下表。 B1B2B3B4B5B6B7B8產(chǎn)量A16267425960A24953858255A35219743351A47673927143A52395726541A65522814352銷量3537223241324338解: 設(shè)決策變量 = 第i個(gè)發(fā)點(diǎn)到第j個(gè)售點(diǎn)的運(yùn)貨量,i=1,2,m; j=1,2,n;
3、記為 =第i個(gè)發(fā)點(diǎn)到第j個(gè)售點(diǎn)的運(yùn)輸單價(jià),i =1,2,m; j=1,2,n記 =第i個(gè)發(fā)點(diǎn)的產(chǎn)量, i=1,2,m; 記 =第j個(gè)售點(diǎn)的需求量, j=1,2,n. 其中,m = 6; n = 8.設(shè)目標(biāo)函數(shù)為總成本,約束條件為(1)產(chǎn)量約束;(2)需求約束。于是形成如下規(guī)劃問題:把上述程序翻譯成LINGO語言,編制程序如下: !exam_2.lg4 源程序model: !6發(fā)點(diǎn)8收點(diǎn)運(yùn)輸問題;sets: rows/1.6/: s; !發(fā)點(diǎn)的產(chǎn)量限制; cols/1.8/: d; !售點(diǎn)的需求限制; links(rows,cols): c, x; !運(yùn)輸單價(jià),決策運(yùn)輸量;endsets !-;
4、 data: s = 60,55,51,43,41,52; d = 35 37 22 32 41 32 43 38; c = 6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata!-;min = sum(links: c*x); !目標(biāo)函數(shù)=運(yùn)輸總成本; for(rows(i): sum(cols(j): x(i,j)<=s(i) ); ! 產(chǎn)量約束;for(cols(j):sum(rows(i): x(i,j)=d(j) ); !需
5、求約束;end例3 把上述程序進(jìn)行改進(jìn),引進(jìn)運(yùn)行子模塊和打印運(yùn)算結(jié)果的語句:!exam_3.lg4 源程序model: !6發(fā)點(diǎn)8收點(diǎn)運(yùn)輸問題;sets: rows/1.6/: s; !發(fā)點(diǎn)的產(chǎn)量限制; cols/1.8/: d; !售點(diǎn)的需求限制; links(rows,cols): c, x; !運(yùn)輸單價(jià),決策運(yùn)輸量;endsets!=;data: s = 60,55,51,43,41,52; d = 35 37 22 32 41 32 43 38; c = 6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2
6、3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata!=;submodel transfer:min = cost; ! 目標(biāo)函數(shù)極小化;cost = sum(links: c*x); !目標(biāo)函數(shù):運(yùn)輸總成本; for(rows(i): sum(cols(j): x(i,j) < s(i) ); ! 產(chǎn)量約束;for(cols(j):sum(rows(i): x(i,j) > d(j) ); !需求約束;endsubmodel!=;calc: solve(transfer); !運(yùn)行子模塊(解線性規(guī)劃); divert('transfer_out.t
7、xt');!向.txt文件按自定格式輸出數(shù)據(jù); write('最小運(yùn)輸成本=',cost,newline(1),'最優(yōu)運(yùn)輸方案x='); for(rows(i): write(newline(1);writefor(cols(j): ' ',format(x(i,j),'3.0f') ) ); divert(); !關(guān)閉輸出文件; endcalc end 打開transfer_out.txt文件,內(nèi)容為:最小運(yùn)輸成本=664最優(yōu)運(yùn)輸方案x= 0 19 0 0 41 0 0 0 1 0 0 32 0 0 0 0 0 11 0
8、 0 0 0 40 0 0 0 0 0 0 5 0 38 34 7 0 0 0 0 0 0 0 0 22 0 0 27 3 0例4 data段的編寫技巧(1):從txt文件中讀取原始數(shù)據(jù) !exam_3.lg4 源程序中的data也可以寫為:data: s = file('transfer_data.txt'); d = file('transfer_data.txt'); c = file('transfer_data.txt'); enddata其中,transfer_data.txt的內(nèi)容為:!transfer.lg4程序的數(shù)據(jù);!產(chǎn)量約束
9、s= ;60,55,51,43,41,52 !需求約束d= ;35 37 22 32 41 32 43 38 !運(yùn)輸單價(jià)c= ;6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3 !注:字符是數(shù)據(jù)分割符,若無此符,視所有數(shù)據(jù)為一個(gè)數(shù)據(jù)塊,只賦給一個(gè)變量;例5 lingo程序的的3種輸入和3種輸出方法;!exam_5.lg4的源程序;sets: rows/1.3/: ; cols/1.4/: ; link(rows,cols): a, b, mat1, mat2;e
10、ndsetsdata: b = 1,2,3,45,6,7,89,10,11,12; !程序內(nèi)輸入;a = file('a.txt'); !外部txt文件輸入; mat1 = ole('d:lingo12data.xls',mat1); !EXcel文件輸入;enddatacalc: text('a_out.txt') = a; !列向量形式輸出數(shù)據(jù); for(link: mat2 = 2*mat1); ole('d:lingo12data.xls') = mat2 ;!把mat2輸出到xls文件中的同名數(shù)據(jù)塊; !向.txt文件按
11、自定格式輸出數(shù)據(jù)(參照前例);Endcalc例6 程序段中的循環(huán)和選擇結(jié)構(gòu)舉例!exam_6.lg4的源程序;sets: rows/1.5/:; cols/1.3/:; links(rows,cols):d;endsetsdata: d=0 2 3 4 3 2 1 3 2 4 7 2 2 1 6;enddatacalc: i=1; while(i#le#5: a = d(i,1);b = d(i,2); c = d(i,3); ifc(a#eq#0: write('infeasible!',newline(1); else delta = b2-4*a*c; sqrt = sq
12、rt(if(delta#ge#0, delta,-delta); ifc(delta#ge#0: write('x1=',(-b+sqrt)/2/a,' x2=',(-b-sqrt)/2/a,newline(1); else write('x1=',-b/2/a,'+',sqrt/2/a,'i', 'x2=',-b/2/a,'-',sqrt/2/a,'i',newline(1); ); ); i=i+1; );endcalc本程序中的循環(huán)結(jié)構(gòu)也可以用for(rows(
13、i): 程序體);進(jìn)行計(jì)算。例7 指派問題 (n人n任務(wù)費(fèi)用最?。〣1B2B3B4B5B6A1626742A2495385A3521974A4767392A5239572A6552281解: 設(shè)決策變量=1或0, 表示第i個(gè)人是否完成第j項(xiàng)任務(wù),i,j=1,2,n; 記 =第i個(gè)人完成第j項(xiàng)任務(wù)的費(fèi)用,i,j =1,2,n; n = 6.設(shè)目標(biāo)函數(shù)為總費(fèi)用,約束條件為(1)每人只完成一項(xiàng)任務(wù);(2)每項(xiàng)任務(wù)只由一人完成。于是形成如下規(guī)劃問題:!exam_7.lg4的源程序;model: !6人6任務(wù)指派問題;sets: rows/1.6/: ; !6人6任務(wù); links(rows,rows)
14、: c, x; !費(fèi)用和決策變量;endsets !-; data: c = 6 2 6 7 4 2 4 9 5 3 8 5 5 2 1 9 7 4 7 6 7 3 9 2 2 3 9 5 7 2 5 5 2 2 8 1; enddata!=;submodel appointment:min = cost; ! 目標(biāo)函數(shù)極小化;cost = sum(links: c*x); !目標(biāo)函數(shù):總費(fèi)用; for(rows(i): sum(rows(j): x(i,j) = 1 ); !每人完成一項(xiàng) ;for(rows(j):sum(rows(i): x(i,j)= 1 ); !每項(xiàng)由一人完成; for
15、(links: bin(x); !0-1變量約束;endsubmodelsubmodel binVar:for(links: bin(x); !0-1變量約束;endsubmodel!=;calc: solve(appointment,binVar); !運(yùn)行子模塊(解線性規(guī)劃); divert('appointment_out.txt');!向.txt文件按自定格式輸出數(shù)據(jù); write('最小指派費(fèi)用=',cost,newline(1),'分配方案x='); for(rows(i): write(newline(1); writefor(ro
16、ws(j): ' ',format(x(i,j),'3.0f') ) ); divert(); !關(guān)閉輸出文件; endcalc end例8 多目標(biāo)規(guī)劃轉(zhuǎn)化為單目標(biāo)規(guī)劃問題舉例把上述運(yùn)輸問題稍加修改,考慮到運(yùn)輸量可以要取整數(shù),就變成整數(shù)規(guī)劃問題,而且運(yùn)輸問題除了成本最小一個(gè)目標(biāo)以外,有時(shí)也要考慮各發(fā)點(diǎn)的運(yùn)輸量盡量均衡作為另一個(gè)目標(biāo)。本程序處理的方法一是兩目標(biāo)加權(quán)平均,方法二是只選一個(gè)目標(biāo),另一個(gè)目標(biāo)轉(zhuǎn)化為約束,從而把多目標(biāo)改為單目標(biāo)。!exam_8.lg4 源程序;model: !6發(fā)點(diǎn)8收點(diǎn)運(yùn)輸問題;sets: rows/1.6/: s; !發(fā)點(diǎn)的產(chǎn)量限制;
17、cols/1.8/: d; !售點(diǎn)的需求限制; links(rows,cols): c, x; !運(yùn)輸單價(jià),決策運(yùn)輸量;endsets!=;data: s = 60,55,51,43,41,52; d = 35 37 22 32 41 32 43 38; c = 6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata!=;submodel obj_1:min = minCost; ! 目標(biāo)函數(shù)極小化;minCost = sum(links:
18、c*x); !目標(biāo)函數(shù):運(yùn)輸總成本; endsubmodelsubmodel obj_2:min = objValue; objValue = 0.4*obj1+0.6*obj2; ! 二目標(biāo)加權(quán)平均;obj1 = sum(links: c*x); !目標(biāo)函數(shù)1:運(yùn)輸總成本; obj2 = max1-min1; !目標(biāo)函數(shù)2:發(fā)點(diǎn)運(yùn)輸量極差; for(links(i,j): sum(cols(j): x(i,j) < max1 ; sum(cols(j): x(i,j) > min1 ; );endsubmodelsubmodel obj_3:min = obj2; obj2 =
19、max1-min1; !目標(biāo)函數(shù):發(fā)點(diǎn)運(yùn)輸量極差;for(links(i,j): sum(cols(j): x(i,j) < max1 ; sum(cols(j): x(i,j) > min1 ; ); cost1 = sum(links: c*x); !運(yùn)輸總成本; cost1 < 1.05*minCost; !運(yùn)輸總成本約束; endsubmodelsubmodel subject_to_1:for(rows(i): sum(cols(j): x(i,j) < s(i) ); ! 產(chǎn)量約束;for(cols(j):sum(rows(i): x(i,j) > d
20、(j) ); !需求約束;endsubmodelsubmodel subject_to_2: for(links: gin(x); !整數(shù)約束;endsubmodel!=;calc:solve(obj_1, subject_to_1, subject_to_2); !運(yùn)行子模塊(解線性整數(shù)規(guī)劃);divert('intModel_out.txt');write(newline(2),'整數(shù)規(guī)劃的最小運(yùn)輸成本=',minCost,newline(1),'最優(yōu)運(yùn)輸方案x=');for(rows(i): write(newline(1);writefo
21、r(cols(j): ' ', format(x(i,j), '3.0f') ) );divert(); pause(); solve(obj_2, subject_to_1, subject_to_2); !運(yùn)行子模塊(解線性整數(shù)規(guī)劃); divert('intModel_out.txt', 'a');!向.txt文件追加輸出數(shù)據(jù); write(newline(2),'二目標(biāo)加權(quán)平均最小值=',objValue,newline(1),'最優(yōu)運(yùn)輸方案x=');for(rows(i): write(n
22、ewline(1);writefor(cols(j): ' ', format(x(i,j), '3.0f') ) );divert(); pause(); solve(obj_3, subject_to_1, subject_to_2); !運(yùn)行子模塊(解線性整數(shù)規(guī)劃); divert('intModel_out.txt', 'a');!向.txt文件追加輸出數(shù)據(jù); write(newline(2),'成本約束時(shí)極差最小值=',obj2,newline(1),'成本約束時(shí)運(yùn)輸量最平均方案x=');
23、for(rows(i): write(newline(1);writefor(cols(j): ' ', format(x(i,j), '3.0f') ) );divert();endcalc end本例中的運(yùn)輸量均衡指標(biāo),可以用方差表示,但變成非線性規(guī)劃問題,只能求出局部最優(yōu)解,而線性規(guī)劃的最優(yōu)解是全局最優(yōu)解。例9 雜例1model: !費(fèi)波那契數(shù)列; !exam_9.lg4 源程序;sets: II/1.100/: Fi; !費(fèi)波那契數(shù)列; endsets!=;submodel myProc: Fi(1) = 1; Fi(2) = 1;for(II(i)|(
24、i#ge#3)#and#(i#le#n):Fi(i)=Fi(i-1)+Fi(i-2) );endsubmodel!=;calc: n = 10; solve(myProc); divert('Fibo_out.txt'); writefor(II(k)|k#le#n: 'Fi(',format(k, '2.0f'),')=', format(Fi(k), '3.0f'),newline(1) ); divert(); endcalc end例10 雜例2sets: II/1.3/:; links(II,II):a,
25、x;endsetsdata: a = 1,2,3 2,1,4 3,2,2;enddatasubmodel fMin: !求函數(shù)的極值,極小值點(diǎn); min = z2+4*z+3; free(z);endsubmodelsubmodel fzero: !解方程,求函數(shù)的零點(diǎn); cos(y) = y; bnd(0,y,5);endsubmodelsubmodel get_invMat: !解矩陣方程,求逆陣; for(II(i): for(II(j): sum(II(k):a(i,k)*x(k,j) = if(i#eq#j,1,0); for(links:free(x);endsubmodelcal
26、c:solve(fMin);solve(fzero);solve(get_invMat);endcalcLingo編程語言參考:LINGO 有9 種類型的函數(shù): 1 基本運(yùn)算符:包括算術(shù)運(yùn)算符、邏輯運(yùn)算符和關(guān)系運(yùn)算符 2 數(shù)學(xué)函數(shù):三角函數(shù)和常規(guī)的數(shù)學(xué)函數(shù) 3 金融函數(shù):LINGO提供的兩種金融函數(shù) 4 概率函數(shù):LINGO提供了大量概率相關(guān)的函數(shù) 5 變量界定函數(shù):這類函數(shù)用來定義變量的取值范圍 6 集操作函數(shù):這類函數(shù)為對(duì)集的操作提供幫助 7 集循環(huán)函數(shù):遍歷集的元素,執(zhí)行一定的操作的函數(shù) 8 數(shù)據(jù)輸入輸出函數(shù):允許模型和外部數(shù)據(jù)源相聯(lián)系,進(jìn)行數(shù)據(jù)輸入輸出 9 輔助函數(shù):各種雜類函數(shù)1.
27、基本運(yùn)算符 1.1 算術(shù)運(yùn)算符 、 、 、 、1.2 邏輯運(yùn)算符: #not# 否定該操作數(shù)的邏輯值,not是一個(gè)一元運(yùn)算符 #eq# 若兩個(gè)運(yùn)算數(shù)相等,則為true;否則為flase #ne# 若兩個(gè)運(yùn)算符不相等,則為true;否則為flase #gt# 若左邊的運(yùn)算符嚴(yán)格大于右邊的運(yùn)算符,則為true;否則為flase #ge# 若左邊的運(yùn)算符大于或等于右邊的運(yùn)算符,則為true;否則為flase #lt# 若左邊的運(yùn)算符嚴(yán)格小于右邊的運(yùn)算符,則為true;否則為flase #le# 若左邊的運(yùn)算符小于或等于右邊的運(yùn)算符,則為true;否則為flase #and# 僅當(dāng)兩個(gè)參數(shù)都為true
28、 時(shí),結(jié)果為true;否則為flase #or# 僅當(dāng)兩個(gè)參數(shù)都為false 時(shí),結(jié)果為false;否則為true 1.3 關(guān)系運(yùn)算符 “=”、“<=”和“>=”, LINGO 中還能用“<”表示小于等于關(guān)系, 2.2 數(shù)學(xué)函數(shù) 三角函數(shù) sin(x),sinh(x), asin(x), asinh(x),cos(x),cosh(x), acos(x), acosh(x), tan(x),tanh(x), atan(x), atanh(x), atan2(x)abs(x) 返回x 的絕對(duì)值 exp(x) 返回常數(shù)e 的x 次方 floor(x) 返回去掉小數(shù)部分后的整數(shù) lo
29、g(x) 返回x 的自然對(duì)數(shù) log10(x) 返回x 的以10為底的對(duì)數(shù) lgm(x) 返回x的gamma 函數(shù)的自然對(duì)數(shù) mod(m,n) 返回用n整除m的余數(shù).,如mod(5,3)返回2;pi() 返回圓周率pow(x,y) 返回x的y次冪sign(x) 如果x<0 返回-1;否則,返回1smax(x1,x2,xn) 返回x1,x2,xn 中的最大值 smin(x1,x2,xn) 返回x1,x2,xn 中的最小值 sqr(x) 返回x的平方.sqrt(x) 返回x的平方根.2. 3 金融函數(shù) fpa(I,n) 返回如下情形的凈現(xiàn)值:?jiǎn)挝粫r(shí)段利率為I, 連續(xù)n個(gè)時(shí)段支付,每個(gè)時(shí)段支付
30、單位費(fèi)用。若每個(gè)時(shí)段支付x單位的費(fèi)用,則凈現(xiàn)值可用x乘以 fpa(I,n)算得。fpl(I,n) 返回如下情形的凈現(xiàn)值:?jiǎn)挝粫r(shí)段利率為I,第n 個(gè)時(shí)段支付單位費(fèi)用。 2.4 概率函數(shù)norminv(p,mu,sigma) N(mu,sigma2)分布函數(shù)的反函數(shù)norminv(p,mu,sigma) N(0,1)分布函數(shù)的反函數(shù)pbn(p,n,x) 二項(xiàng)分布的累積分布函數(shù)。當(dāng)n和(或)x不是整數(shù)時(shí),用線性插值法進(jìn)行計(jì)算。 pcx(n,x) 自由度為n的2分布的累積分布函數(shù)。 peb(a,x) 當(dāng)?shù)竭_(dá)負(fù)荷為a,服務(wù)系統(tǒng)有x個(gè)服務(wù)器且允許無窮排隊(duì)時(shí)的Erlang 繁忙概率。 pel(a,x) 當(dāng)?shù)?/p>
31、達(dá)負(fù)荷為a,服務(wù)系統(tǒng)有x個(gè)服務(wù)器且不允許排隊(duì)時(shí)的Erlang 繁忙概率。 pfd(n,d,x) 自由度為n和d 的F 分布的累積分布函數(shù)。pfs(a,x,c) 當(dāng)負(fù)荷上限為a,顧客數(shù)為c,平行服務(wù)器數(shù)量為x時(shí),有限源的Poisson 服務(wù)系統(tǒng)的等待或返修顧客數(shù)的期望值。a是顧客數(shù)乘以平均服務(wù)時(shí)間,再除以平均返修時(shí)間。(或)x不是整數(shù)時(shí),采用線性插值進(jìn)行計(jì)算。 phg(pop,g,n,x) 超幾何(Hypergeometric)分布的累積分布函數(shù)。pop表示產(chǎn)品總數(shù),g是正品數(shù)。從所有產(chǎn)品中任意取出n(npop)件。pop,g,n和x都可以是非整數(shù),這時(shí)采用線性插值進(jìn)行計(jì)算。 ppl(a,x)
32、Poisson 分布的線性損失函數(shù),即返回max(0,z-x)的期望值,其中隨機(jī)變量z服從均值為a的Poisson 分布。 pps(a,x) 均值為a的Poisson 分布的累積分布函數(shù)。當(dāng)x不是整數(shù)時(shí),采用線性插值進(jìn)行計(jì)算。psl(x) 單位正態(tài)線性損失函數(shù),即返回max(0,z-x)的期望值,其中隨機(jī)變量z 服從標(biāo)準(zhǔn)正態(tài)分布。 psn(x) 標(biāo)準(zhǔn)正態(tài)分布的累積分布函數(shù)。 ptd(n,x) 自由度為n的t 分布的累積分布函數(shù)。 qrand(seed) 產(chǎn)生服從(0,1)區(qū)間的擬隨機(jī)數(shù)。 rand(seed) 返回0 和1 間的偽隨機(jī)數(shù), 2.5 變量界定函數(shù) 變量界定函數(shù)實(shí)現(xiàn)對(duì)變量取值范圍的
33、附加限制,共4 種:bin(x) 限制x 為0 或1 bnd(L,x,U) 限制LxU free(x) 取消對(duì)變量x 的默認(rèn)下界為0 的限制,即x 可以取任意實(shí)數(shù) gin(x) 限制x 為整數(shù) 在默認(rèn)情況下,LINGO 規(guī)定變量是非負(fù)的,也就是說下界為0, 上界為+。free 取消了默認(rèn)的下界為0 的限制,使變量也可以取負(fù)值。bnd 用于設(shè)定一個(gè)變量的上下界,它也可以取消默認(rèn)下界為0 的約束。 semic(L,x,U), 半連續(xù)約束。約束x或者取0或者取L,U內(nèi)數(shù)據(jù)。2. 6 集操作函數(shù) in(set_name,primitive_index_1 ,primitive_index_2,) 如果
34、元素在指定集中,返回1;否則返回0。 index(set_name, primitive_set_element) 該函數(shù)返回在集set_name 中原始集成員primitive_set_element 的索引。如果set_name被忽略,那么LINGO 將返回與primitive_set_element 匹配的第一個(gè)原始集成員的索引。如果找不到,則產(chǎn)生一個(gè)錯(cuò)誤。 wrap(index,limit) 該函數(shù)返回j=index-k*limit,其中k 是一個(gè)整數(shù),取適當(dāng)值保證j 落在區(qū)間1,limit 內(nèi)。該函數(shù)相當(dāng)于index 模limit 再加1 。該函數(shù)在循環(huán)、多階段計(jì)劃編制中特別有用。
35、size(set_name) 該函數(shù)返回集set_name 的成員個(gè)數(shù)。在模型中明確給出集大小時(shí)最好使用該函數(shù)。它的使用使模型更加數(shù)據(jù)中立,集大小改變時(shí)也更易維護(hù)。 2.7 集循環(huán)函數(shù) 集循環(huán)函數(shù)遍歷整個(gè)集進(jìn)行操作。其語法為 function(setname(set_index_list)|conditional_qualifier:expression_list); function 相應(yīng)于下面羅列的五個(gè)集循環(huán)函數(shù)之一;setname 是要遍歷的集;set_index_list 是集索引列表;conditional_qualifier 是用來限制集循環(huán)函數(shù)的范圍,當(dāng)集循環(huán)函數(shù)遍歷集的每個(gè)成員
36、時(shí),LINGO 都要對(duì)conditional_qualifier進(jìn)行評(píng)價(jià),若結(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_lis t,那么在expression_list 中引用的所有屬性的類型都是setname 集。for 該函數(shù)用來產(chǎn)生對(duì)集成員的約束。基于建模語言的標(biāo)量需要顯式輸入每個(gè)約束,不過for 函數(shù)允許只輸入一個(gè)約束,然后LINGO 自動(dòng)產(chǎn)生每個(gè)集成員的約束。 sum 該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)式的和。 prod 該函數(shù)返回遍歷指定的集成員的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年工業(yè)自動(dòng)化設(shè)備維護(hù)保養(yǎng)及系統(tǒng)升級(jí)合同3篇
- 健康行業(yè)營(yíng)銷趨勢(shì)總結(jié)
- 2024年家庭成員財(cái)產(chǎn)分配協(xié)議范本3篇
- 流媒體技術(shù)課程設(shè)計(jì)
- 描寫端午節(jié)活動(dòng)隨筆
- 接待方案合集六篇
- 搬遷方案集錦九篇
- 海水淡化課程設(shè)計(jì)
- 挖薯機(jī)課程設(shè)計(jì)
- 教育書籍讀后感
- 排列3,3D終極教程
- 高中政治必修二 1.1《公有制為主體 多種所有制經(jīng)濟(jì)共同發(fā)展》集體備課課件
- 鹽化工產(chǎn)業(yè)鏈
- GB∕T 12234-2019 石油、天然氣工業(yè)用螺柱連接閥蓋的鋼制閘閥
- DB62∕T 3176-2019 建筑節(jié)能與結(jié)構(gòu)一體化墻體保溫系統(tǒng)應(yīng)用技術(shù)規(guī)程
- 消費(fèi)者行為學(xué)50年:演化與顛覆
- T∕CTES 1035-2021 透明質(zhì)酸鈉紡織品 保濕性能的檢測(cè)與評(píng)價(jià)
- 煙草設(shè)備ppt課件
- 二氧化碳可降解塑料生產(chǎn)項(xiàng)目建議書
- 屋面彩鋼板檁條安裝施工方案
- EBZ220A掘進(jìn)機(jī)幻燈片
評(píng)論
0/150
提交評(píng)論