lingo軟件及視頻-教程wonderfulLINGO基本使用方法_第1頁
lingo軟件及視頻-教程wonderfulLINGO基本使用方法_第2頁
lingo軟件及視頻-教程wonderfulLINGO基本使用方法_第3頁
lingo軟件及視頻-教程wonderfulLINGO基本使用方法_第4頁
lingo軟件及視頻-教程wonderfulLINGO基本使用方法_第5頁
免費預(yù)覽已結(jié)束,剩余149頁可下載查看

下載本文檔

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

文檔簡介

LINGO入在LINGO中使用集LINGO的主要菜單命LINGO命令窗LINGO入在LINGO入在LINGO中使用集LINGO的主要菜單LINGO命令窗安裝文(安 文(安裝完成前,在出現(xiàn)的框(如圖)可通過“LINGO|Options|FileFormat”命令修改缺省第一次運行時提示輸 ,如圖 兩兩種命令模

(這里主要介紹這種模式命令行模式:僅在命令窗口(CommandWindow)下操作,通過輸入行命令驅(qū)動LINGO運行。從LINDO從LINDOLINGO9.0LINDO相比,LINGO軟件主要具有兩大優(yōu)點 ?LINGO軟件的主窗口(用當(dāng)前光的位

當(dāng)前時LINGOLINGO都是可以用任何文本器打開和編輯.LTF:LINGO命令文件.LGR:LINGO報告文件.LTX:LINDO格式的模型文件.MPS:示MPS(數(shù)學(xué)規(guī)劃系統(tǒng))格式的模型文件在LINGO中使在LINGO中使用LINDO模在O中可以直接使用O語法編寫的優(yōu)化模型(即優(yōu)化程序)。作為一個最簡單的例子,在名為M0201.X的模型文件中保存了一個O模型,我們現(xiàn)在看看如何用O把它打開。①選擇菜單命令可以看到“打開文件”框。(如②打開“EXAM0201.LTX”文件(如下圖選擇(Ctrl+S)”來運行在LINGO中使用LINDO在LINGO中使用LINDO④運行程序的LINGO報告窗口(如下圖Variables(變量數(shù)Variables(變量數(shù)量變量總數(shù)(Total)非線性變量數(shù)(Nonlinear)整數(shù)變量數(shù)(Integer)非線性約束個數(shù)(Nonlinear)Nonzeros(非零系數(shù)數(shù)量總數(shù)(Total)非線性項系數(shù)個數(shù)(Nonlinear)GeneratorMemoryUsed(K內(nèi)存使用ElapsedRuntime(求解花費的時間運行狀態(tài)窗

當(dāng)前模型的類型PIQP,NLP,INLP,PINLP(以I開頭表IP,以PI開頭表示當(dāng)前解的狀:"GlobalOptimum","LocalOptimum","Feasible",Infeasible“(不可行),目前為止迭代次

運行狀態(tài)窗

使用的特殊求解程序B-and-B(分枝定界算法Global(全局最優(yōu)求解程序Multistart(用多個初始點求解的程序目前為止找到的可解的最佳目標(biāo)函數(shù)((程序狀框有效步

特殊求解程序當(dāng)前運行步數(shù)運行狀態(tài)窗變量就不認(rèn)為是決策變量而是固定變量,不列入統(tǒng)計中;只含有固定變量的約束也不列入約束統(tǒng)計中。LINGO早期版LINGO早期版本對LINDO的兼容問在LINGO9.0以前的版本中不能直接用File|Open命令打開LINDO模型,但由FILE|IMPORTLINDOFILE(F12)命令可以直接把LINDO的模型文件轉(zhuǎn)化成LINGO模型運行后屏幕上會顯示將目標(biāo)函數(shù)的表示方式從“MAX”變成了“ST”(SubjectTo)在LINGO模型中不需要,被刪除在系數(shù)與變量之間增加運算符“*”(即乘號不能省略每行(目標(biāo)、約束和說明語句)后面增加一個分號約束的名字被放到“[]”中,不放在右半括號“)”前LINGO中模型以“MODEL:”開始,以“END結(jié) x22直接用LINGOx22

98x1277x2

10.3x1

2x2

x1x2

x12x2

x1,x2

件,因此語句的順序并不LIGO中函數(shù)一律需要以“@開頭,其中整型變量函數(shù)(I、I)和上下界限定函數(shù)E、B、)與IO中令類似。而且1變量函數(shù)是B函數(shù)。運行菜單命令最大利潤最大利潤WINDOW|“BestObj”與問題的上界“ObjBound” LINGO的基本用法的幾點注意過32LINGO入在LINGO中使用LINGO入在LINGO中使用集LINGO的主要菜單命LINGO命令窗集合的基本用法和LINGOti條帆船,每條船的生產(chǎn)費用為400。如果加班生產(chǎn)問題的模型(可以看出是問題的模型(可以看出是LP模型目標(biāo)函數(shù)是所有費用的約束條件主要有兩個

{400RP(I)450OP(I)20INV(II能力限制

RP(I)40,

產(chǎn)品數(shù)量的平衡方程INV(I)

INV

1)RP(I)OP(I)DEM(I),

加上變量的非負(fù)如正常產(chǎn)量就要有RP1,RP2,RP3,RP44個變量等。12341234集合1234LINGOLINGOLP模型在LINGO中的一個典型輸入方以“MODEL

集合定義部分始以“END”束

(“SETS:”“ENDSETS”定義集合及其屬給出優(yōu)化目和約 @SUM(集合(下標(biāo)):關(guān)于集合的屬性的表達(dá)式本例中目標(biāo)函數(shù)也可以等價地@SUM(QUARTERS(i):400*RP(i)+450*OP(i)+20*INV(i)標(biāo))都要求和,所以可以將下標(biāo)i省去。約束約束的定義方@FOR(集合(下標(biāo)):關(guān)于集合的屬性的約束關(guān)系式這個語句可以簡化成“@FOR(QUARTERS:RP<40);”為了區(qū)別i=1和i=2,3,4,把i=1時的約束關(guān)系式單獨);”而對=,,對應(yīng)的約束,對下標(biāo)集合的元素(下標(biāo)增加了一個邏輯關(guān)系式“#T1(這個限制條件與集合之間有一個豎線“”分開,稱為過濾條件)。Than的字首字母縮寫)問題的求解:運行菜單命全局最優(yōu)最小成本

注:由于輸入中沒有給出行名,所以行名是系統(tǒng)自動按照行號1-選擇菜單命令“LO|nateplyodl(l+)”,可以得到展開形式的模型如圖,可以看到完整的模型,也能確定行號行號放在方括號“中,且數(shù)字前面帶有下劃線“_”。最好在輸入模型時用戶主動設(shè)定約束的行名(即約束名),使“[]”中,置于約束之前。后面將結(jié)合具體例子介紹在使用集合的情況下如何設(shè)置行名(1)集合段(SETS):以SETS:”開始,(1)集合段(SETS):以SETS:”開始,如上例中定義了集合arters(含義是季節(jié)),它包含四個元素即四個季節(jié)指標(biāo)(1,2,3,4),每個季節(jié)都有需求(M)、正常生產(chǎn)量(P)、加班生產(chǎn)量(P)、庫存量()等屬性(相當(dāng)于數(shù)組,數(shù)組下標(biāo)由arters元素決定)。一旦這樣的定義建立起來,如果arters的數(shù)量不是4而是100,只需擴(kuò)展其元素為1,100,每個季節(jié)仍然都有M,,O,V這樣的屬性(這些量的具體數(shù)值如果是常量,則可在數(shù)據(jù)段輸入;如果是未知數(shù),則可在初始段輸入初值)。當(dāng)arers的數(shù)量不是4而是1000時,沒有必要把,2,100全部一個一個列出來,而是可以如下定義arters集合:“arters/1..1000/:DEM,R,O,INV;”,“1..1000”的意思就是從1到1000的所有整數(shù)。上例中定義的目標(biāo)函數(shù)與quarters的元素數(shù)目是4或結(jié)束,對集合的屬性(數(shù)組)輸入必要的常數(shù)數(shù)據(jù)格式為:“attribute(屬性)=value_list(常數(shù)列表賦值也可以寫成“DEM=40607525;”。句。但這僅能用于對單個變量賦值,輸入語句格式為:“變量名=?;”。在模型中數(shù)據(jù)段寫上語句:”A=在求解時LINDO系統(tǒng)給出提示界面,等待用戶輸入變量A的數(shù)值。當(dāng)然,時的約束語句INV(1)=10+RP(1)+OP(1)-也應(yīng)該改寫成INV(1)=A+RP(1)+OP(1)-這樣,模型就可以計算任意初始庫存量(而不僅僅只能計算初始庫存量為的情況了NT:以“I:”開始,“EIIT”結(jié)束,對集合的屬性()定義初值(是迭代算法,所以用戶如果能給出一個比較好的迭代初)。“attribute(屬性)=value_list(常數(shù)列表);”計算段(CALC):以“CALC:”開始,例如上例,如果希望得到全年的總需求和季度平均需求,可以增加這個段T_DEM@SUM(quarters !總需求A_DEMT_DEM@size(quarters);平均需求在計算段中也可以使用集合函數(shù)(其中函數(shù)ize(arters)表示集合arters的元素個數(shù),這里也就是4)。這時,變量_M的值就是總需求,_M的值就是平均需求(如果需要的話,這兩個變量就可以在程序的其它地方作為常數(shù)使用了)。注:上面的兩個語句不能交換順序,因為計算_M必須要用到_M的值。此外,在計算段中只能直接使用賦值語句,而不能包含需要經(jīng)過解方程或經(jīng)過求解優(yōu)化問題以后才能決定的變量。例建筑工地的位置(用平面坐標(biāo)a,b表示,距離單位:于P5,1),Q(2,7),日儲量各有20噸。從A,B兩料場分別123456a3b5d35476ii記工地的位置為(a,bii

,水泥日用量為d

i位置為(xy),日儲量 i

j

;從料

向工地ic運送量為 c

cij

xxji2 yji2 j 2

cijj66cij

diej

j1,

2,,c使用現(xiàn)有臨時料場時,決策變量只c

c

非負(fù)),所以這是LP模型;當(dāng)為建料場選址時決策變量

ij

xjyj,由于目標(biāo)函f

x,

是非線性的 所以在新建料場時是P模型。先解P模型,而把現(xiàn)有臨時料場的位置作為初始解告訴 利用集合的概念,可以定義需求點DEMAND和供應(yīng)SUPPLY兩個集合,分別有6個和2個元素(下標(biāo))。但c策變量(運送量 有關(guān)系的。該如何定義這樣的屬性cij于二維數(shù)組。它的兩個下標(biāo)分別來自集合cij成的新的集合,然后將定義成這個新集合的屬性cij輸入程

定義了三個集合,其中表示集合LINK中的元素就是集合和SUPPLY的元素組合成的有序二元組從數(shù)學(xué)上看LINK是DEMAND和SUPPLY的卡兒積,也就是因此,其屬性C也就是一個6*2的矩陣(或說是含有12個元素的二維數(shù)組) 來的集合,稱為基本集合(primaryset),而把LINK這種基于其它 集合稱為派生集合(derivedset)。由于是DEMAND和SUPPLY生成了派生集合LINK,所以DEMAND和SUPPLY稱為LINK的父集合。輸入輸入程同理,數(shù)據(jù)段中對常數(shù)數(shù)組A,B的賦值語句也可以A,B=1.251.258.750.750.54.755.75536.57.25初始

INGO對數(shù)據(jù)是按列賦值語句的實際賦值順序X=(5,2),Y=(1,7),而不X=(5,1),等價寫法“X=5,2;并且對目標(biāo)行([OBJ])兩類約(DEMAND_CON

(這里包含了派生集合)合函數(shù)M和的用法。所以在約束的最后(模型的“E”語句上面的一行)用reeX、Y的非負(fù)限制局部最優(yōu)解X(1)=7.249997X(2)=5.695940,Y(1)=7.749998Y(2)=4.928524,C(略),最小運量=89.8835(噸公里)問問題:最小運量89.8835是不是全局最是用“LINGO|Options”菜單命令打開選項框,在“GlobalSolver”選項卡上選擇“UseGlobalSolver激問題問題:最小運量89.8835為減少計算工作量,對X,Y此時目標(biāo)函數(shù)值的下界新建料場的位置工地太遠(yuǎn),至少最小值決定的矩

Bound=85.2638)與目前得到的計算結(jié)可以認(rèn)為是模型的最后結(jié) 7示附注:如果要把料廠P(5,1),Q(2,7)的位置看把初始段的“XY=5,1,2,7;”語句移到示些屬性(數(shù)組)只在笛卡兒積的一個真子集合上定義,這例(最短路問題)在 從一個城市到另一個城市的最短路.下圖表示的是公路網(wǎng),節(jié)點表里).那么,貨車從城市S出發(fā)到達(dá)城市T,如何選擇行駛路線,使所經(jīng)過的路程最短

5

7 A2687

8

分 分S633A2685768956T74B2C2假設(shè)從S到T的最優(yōu)行駛路線P經(jīng)過城市C1則P中從S到C1的假設(shè)P經(jīng)過城市C2,則P中從S到C2的也一定是從S到C2的最行駛路線因此,為得到從S到T的最優(yōu)行駛路線,只需要先求出從S到的最優(yōu)行駛路線,就可以方便地得到從S到T的最優(yōu)行駛路線同樣,為了求出從S到Ck(k=1,2)的最優(yōu)行駛路線,只需要先求出從到Bj(j=1,2)的最優(yōu)行駛路線為了求出從S到Bj(j=1,2)的最優(yōu)行駛路線,只需要先求出從S到Ai(i=1,2,3)的最優(yōu)行駛路線而S到Ai(i=1,2,3)的最優(yōu)行駛路線是很容易得到的(實際上,此例中S到Ai(i=1,2,3)只有唯一的道路)分 分S633A2685768956T74B2C2此例中可把從S到T的行駛過程分成4個階段,S→Ai(i=1,2或3Ai→Bj(j=1或2Bj→Ck(k=1或2CkT.記LS

LX

minLY

Y,

X

2本例的計本例的計 5

57 A2687

8

LB1minLA16,LA28,LA3710

LA3LB2minLA15,LA26,LA347

LA3L

minL

6,LB

815

LB

LC2minLB17,LB29

LB2LTminLC15,LC2620

LC1所以從S到T的最優(yōu)行駛路線的路長為20進(jìn)一步分析以上求解過程,可以得到從S到T的最優(yōu)行駛路線為S→A3→B2→C1→本例本例的LINGO求“CITIES”(城市):一個基本集合(元素通過枚舉給出L:CITIES對應(yīng)的屬性變量(我們要求的最短路長”(道路):由ITIES(請),由于只有一部分城市之間有道路相連,所以不應(yīng)該把它定義成稠密集合,將其元素通過枚舉給出,這就是一個稀疏集合。D:稀疏集合ROADS對應(yīng)的屬性變量(給定的距離在數(shù)據(jù)段對進(jìn)行賦值,只有(0已知,后面的值為空(但位置必須留出來,即逗號“,”一個也不能少,否則會出錯)。如果這個語句直接寫成“0;”,語法上看也是對的,但其含義是所有元素的取值全部為0,所以也會與題意不符本例的LINGO求

雖然集合中的元素不是數(shù)字,但當(dāng)它以)的形式出現(xiàn)在循環(huán)中時,引用下標(biāo)卻實際上仍是正整數(shù),也就是說指的正是元素在集合中的位置(順序),一般稱為元素的索引()。在or循環(huán)中的過濾條件里用了一個函數(shù)“e”,其作用是返回一個元素在集合中的索引值,這里e(1(即元素在集合中的索引值為1),所以邏輯關(guān)系式“##i(”可以可以直接等價地寫成“##1”。這里()實際上還是i()的簡寫,即返回在集合中的索引值。得到最優(yōu)行駛路線為S→A3→B2→C1→T)。例某班例某班8名同學(xué)準(zhǔn)備分成4隊(每隊兩人)前往4地區(qū)進(jìn)行社 。這8名同學(xué)兩兩之間組隊的效率-9342156--173521---44292----1552-----876------23-------4分分用MATCH(Si,Sj)=1表示同學(xué)Si,Sj)in

IJ

MATCH(J,K)}JI或KMATCH(J,K)

I

問題的LINGO求

“S1..S8”等價于寫成“S1S2S3S5S6S7S8它沒有相關(guān)的屬性列PAIRS的屬性BEET的賦值方式,“IO按照列的順序?qū)傩宰兞康腏#EQ#I##K#EQ#I”##(或者)”連接的一個復(fù)合的邏輯關(guān)系式,連接由“#EQ#(等于)”#O#”的運算級別低于“#E#”,所以這個邏輯式中沒有必要使用括號指定運算次序。LINGOLINGOTT 變量

學(xué)生最佳的組隊方式是最優(yōu)解的 量的報 集集合的不同類型及其關(guān)集派生集 基本集稀疏集 稠密集元素列表

元素過濾

直接列舉

隱式列舉基本集合的定義格式為(方括號“中的內(nèi)容是可選項可以沒setname[/member_list/][:將所有元素全部列出,元間用逗號或空格分開),也可以采用1,2,3,4,字符-Car101,car102,…,日期(星期)MON,TUE,WED,THU,年份-OCT2001,DEC2001,的基本集的用(匹配問序用(匹配問

型帆的船源生的 源配程問序 列表點派生集合的定義格式為(方括號“[]”中的內(nèi)容是可選項setname(parent_set_list)[/member_list/][:父集合列表中的集合(set1,set2,…,等)稱為派生集合LINGO入在LINGOLINGO入在LINGO中使用集LINGO的主要菜單LINGO命令窗 +(加法^求冪)(TRUE(ALSE兩個值(稱為“邏輯值”),LINGO1代表TRUE,其他值()。LING()邏輯運算符有9種,可以分成兩類:(),#OR#),#NOT#非)#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(),#T#(),#LE#),也就是它們操作的對象本身必須是兩個數(shù),計算得到的結(jié)果優(yōu)先最 最運算—(負(fù)號^*/+—(減法#EQ##NE##GT##GE##LT##LE#<=>在LINGO中建立優(yōu)化模型時可以大量的函數(shù),這些函數(shù)以”@”打頭LINGO中包括相當(dāng)豐富的數(shù)學(xué)函數(shù),這些函數(shù)的用法非常簡單,下面一一列@EXP(X):指數(shù)函數(shù),返回

@LGM(X):返回X的伽瑪(gamma)函數(shù)的自然對數(shù)值(當(dāng)X為整數(shù)時LGM(XLOG(X-1)??;當(dāng)X不為整數(shù)時,采用線性插值得到@SIGN(X):符號函數(shù),返回X的符號值(X<0時返回-1,X 集合上的元素(下標(biāo))進(jìn)行循環(huán)操作的函數(shù),一般用法如下:@function(setnameset_index_list)[|conditionexpression_list);function集合函數(shù)名,FOR、MAX、MIN、PROD、SUMSetnameset_index_list集合索引列表(不需使用索引時可以省略Condition用邏輯表達(dá)式描述的過濾條件(expression_list一個表達(dá)式(對@FOR @INDEX([set_name,]給出元素primitiv_st_elment在集合t_nam中的索引值即按定義集合時元素出現(xiàn)順序的位置t_nm,LN并返回索引值。如果沒有找到該元素,則出錯。注Set_name的索引值是正整數(shù)且只能位于1例:定義一個集合(GIRLS)和男孩集合(BOYS)GIRLS/DEBBIE,SUE,ALICE/;BOYS/BOB,JOE,SUE,FRED/;都有SUE,GIRLS在BOYS前定義,調(diào)用@INDEX(SUE)將返2,相當(dāng)于@INDEX(GIRLS,SUE)。要孩中名為SUE的小孩的索引,應(yīng)該使用@INDEX(BOYS,SUE),返3。@IN(set_name,primitive_index_1[,primitive_index_2由索引primitive_index_1[,primitive_index_2...]所對應(yīng)元素,則返回1(邏輯值“真”),否則返回0(邏輯值“假”)。索“&1”、STUDENTS/ZHAO,QIAN,SUN,LI/:;PASSED(STUDENTS)/QIAN,SUN/:;FAILED(STUDENTS)|#NOT#@IN(PASSED,@IN(set_name,primitive_index_1[,primitive_index_2A/B/XYC(A,B)/1,X1,Z2,Y3,X/:;X=@IN(C,@INDEX(A,2),@INDEX(B,系(除了同名外),所以不會出現(xiàn)。 此函數(shù)對N<1無定當(dāng)I位于區(qū)間[1,N]內(nèi)時直接返回I;一般地,返回IK*N其中J位于區(qū)間[1NK為整數(shù)@WRAP(I,N@MOD(I,N)。此函數(shù)可以用來防止集合的索引值越界@SIZE返回數(shù)據(jù)集set_name中包含元素的個數(shù) 對變量的取值范圍附加限制,共有以下四@BND(L,XU):限制LXU意@BIN(X):限制X為0或1。注意LINDO中令I(lǐng)NT,但LINGO中這個函數(shù)的名字卻不是@FREE(X):取消對X的符號限制(即可取負(fù)數(shù)、或正數(shù)@GIN(X):限制X為整 用于計算凈現(xiàn)值,包括以下兩個函@FPA(I,N)返回如下情形下總的凈現(xiàn)值:單位時段NN

I

())I。())I。@FPL(I,N)返回如下情形下總的凈現(xiàn)值:單位時段

1 。1 。 @PSN(X):標(biāo)準(zhǔn)正態(tài)分布函數(shù),即返回標(biāo)準(zhǔn)正態(tài)分布的分布數(shù)在X點的取值@PSL(X):標(biāo)準(zhǔn)正態(tài)線性損失函數(shù),即返回MAX(0,Z-X)的期望值,其中Z為標(biāo)準(zhǔn)正態(tài)隨量。S(,X:oisson分布函數(shù),即返回均值為的oisson分布的分布函數(shù)在點的取值(當(dāng)計算)。@PPL(A,X):Poisson分布的線性損失函數(shù),即返回MAX(0,Z-X)的期望值,其中Z為均值為A的Poisson隨量。B,N,):二項分布函數(shù),即返回參數(shù)為(,)的二項分布的分布函數(shù)在點的取值(當(dāng)和(或)不是整數(shù)時,采用線性插值進(jìn)行計算)。 @PHG(POP,G,N,X):超幾何(Hypergeometric)分布的分布數(shù)。也就是說,返回如下概率:當(dāng)總共有POP個球,其中G是白球時,那么隨機地從中取出N個球,白球不超過X個的當(dāng)POP,G,N和(或)X不是整數(shù)時,采用線性@PEL(A,X):當(dāng)?shù)竭_(dá)負(fù)荷(強度)為A,服務(wù)系統(tǒng)有X個服務(wù)EB(,X:當(dāng)?shù)竭_(dá)負(fù)荷(強度)為,服務(wù)系統(tǒng)有個服務(wù)器且允許無窮排隊時的Erlag繁忙概率。S,C):當(dāng)負(fù)荷上限為,顧客數(shù)為,并行服務(wù)器數(shù)量為時,有限源的oisson服務(wù)系統(tǒng)的等待或返修顧客數(shù)的期望值。(當(dāng)和(或)不是整數(shù)時,采用線性插值進(jìn)行計算)。 ,X:自由度為和的分布的分布函數(shù)在點的取值。@PCX(N,X):自由度為N的分布的分布函數(shù)在X@PTD(N,X):自由度為N的t分布的分布函數(shù)在X點的取值@QRAND(SEED):返回0與1(SEED為,缺省時取當(dāng)前計算機時間為)。該函數(shù)只能用在數(shù)據(jù)段,擬均勻隨機數(shù)可以認(rèn)為是“超均勻”的隨機(quasandomunifomnubs)”請進(jìn)一步參閱LINO的使用手冊。@RAND(SEED):返回0與1之間的一個偽均勻隨機數(shù)(SEED 當(dāng)前模型其他ASCII碼文件中的數(shù)據(jù)或@ODBC提供LINGO與ODBC(OpenDataBaseConnection, 提供LINGO與OLE(ObjectLinkingandEmbeding)接@POINTERN)在Windows下使用LINGO的動態(tài)連接庫DLL,E'filna']) 用于數(shù)據(jù)段中將答結(jié)送文文件filna中,當(dāng)省略fina時,結(jié)果送到標(biāo)準(zhǔn)的輸出設(shè)備(通常就是屏幕)。ina中可以帶有文件路徑,沒有指定路徑時表示在當(dāng)前 ,如果這個文件已經(jīng)存在,將會被覆蓋。 @ITERS()只能在程序的數(shù)據(jù)段使用,調(diào)用時不需要任何參數(shù),@TEXT()=將迭代次數(shù)顯示在屏幕上@NEWLINE(n)在輸出設(shè)備上輸出n@STRLEN(string)返回字串“string”的長度,@STRLEN(123)返回值為3@NAME(var_or_row_refernce)返回變量名或行例 !C表示顧客的集合;ROAD(WH,C):X;!ROAD表示倉庫到顧!X表示某個倉庫對某個顧客供貨數(shù)@TEXT()=@WRITEFOR(ROAD(I,J)X(I,J)#GT#0:@NAME(X),'',X,@NEWLINE(1));@NAME(var_or_row_refernce)返回變量名或行輸出結(jié)果示意如下(這里沒有詳細(xì)交待屬性X當(dāng)前的取值X(WH1,2X(WH1,X(WH1,1X(WH2,X(WH2,X(WH3,數(shù)組元素”XWH1,C1)、XWH2,C4)即屬性加上相應(yīng)的下標(biāo)(集合元素)(用LO|nat命令可以看到約束展開后的情況),即也應(yīng)該是帶有相應(yīng)的下標(biāo)(集合元素)的。@WRITE(obj1objn])只能在數(shù)據(jù)段中使用,輸出一系列結(jié)果(obj1,…,objn),其中obj1,…,objn等可以是變量(但不能@TEXT()=@WRITE('Ais',A,',Bis',B,',A/Bis',其中,B是該模型中的變量,在屏幕上輸出,B以及B的值。假設(shè)計算結(jié)束時,B=5,則輸出為:Ais10,Bis5,A/BisEOR(tna[(t_indx_li|onditionobjn]) 函數(shù)E在循環(huán)情況下的推廣,輸出集合上定義的屬性對應(yīng)的多個變量的取值。例:(這里WH,C,X含義同上@TEXT(@WRITEFOR(ROADI,J)|XI,J)GT#0:‘從倉',WH(I),到顧客CJ),'XIJ),',@NEWLINE(對應(yīng)的輸出效果示意如下從倉庫WH1到顧C12從倉庫WH3到顧C3供貨21

*: 在@WRITE和@WRITEFFOR函數(shù)中,可以使用符號“*”表示將一個字符串重復(fù)多次,用法是將“*在一個正整數(shù)nLEAD=@TEXT上班人數(shù)圖示@TEXT()=@WRITEFOR(DAY(D):LEAD*'',DAY(D),'',ON_DUTY(D),'',ON_DUTY(D)*'+',@NEWLINE(1));程序執(zhí)行的效果示意如下(DAY表示一周,ON_DUTY表示每天上班人數(shù)上班人數(shù)圖MON20SUN13

注:這里省略了分輸出結(jié) @FORMAT(value,在E和TEO函數(shù)中,ORT對數(shù)值設(shè)定輸出格式。valu表示輸出的值,forat_dipto格式描述符表示輸出格式。格式描述符的含義與語言中的格式描述類似,如“12.2f表示十進(jìn)制數(shù),總共12位,其中有2位小數(shù)。@DUAL(@DUAL(variable)返回解答中variable的判別數(shù)(reducedcost);@DUAL(row)將返回約束行row的對偶()價格(dualprices)。@TEXT()=@WRITEFOR(SET1(I):X(I),@DUAL(X(I),@NEWLINE(@RANGED(性分析中的allowabledecrease)。@RANGEU(性分析中的allowableincrease)。 返回LINGO求解模型結(jié)束后的最后狀態(tài)GlobalOptimum(全局最優(yōu)Infeasible(不可行Unbounded(Undetermined(不確定Interrupted(用戶人為終止了程序的運行InfeasibleorUnbounded(通常需要關(guān)閉“預(yù)處理”選項重新求解模型,以確定究竟是不可行還是LocalOptimum(局部最優(yōu)LocallyInfeasible(局部不可行Cutoff(目標(biāo)函數(shù)達(dá)到了指定的誤差水平NumericError(約束中遇到了無定義的數(shù)學(xué)操作 其他函 @IF(logical_conditiontrue_result, 當(dāng)輯表達(dá)式logical_condition的結(jié)果為真時,返true_result,否則返回false_resultLINGO入在LINGO中使用LINGO入在LINGO中使用集LINGO的主要菜單LINGO命令窗打印打印文

(Alt+O)顯示解(Alt+O)顯示解

選項設(shè)選項設(shè)保存文保存文剪剪恢復(fù)操

窗口后窗口后平鋪窗模型圖 文件(File)主菜 File|ExportMPSFormat(MPS格式):是IBM公司制定的一MPIFormat(MPI格式):是LINDO公司制定的File|UserDatabase彈出框,用戶輸入用戶使用數(shù)據(jù)庫時需要驗證的用戶名(UserID)和(Password),這些信息在使用@ODBC()函數(shù)數(shù)據(jù)庫時要用到。Edit|PasteEdit|Paste和Edit|PasteSpecial“Edit|Paste(粘貼命令)”僅用于剪貼板中的內(nèi)容是“Edit|PasteSpecial…(特殊粘貼命令)”可以用于剪貼板中的內(nèi)容不是文本的情形,可以其它應(yīng)用程序這時用“Edit|PasteSpecial…”是很方便的。Edit|MatchEdit|MatchEdit|PasteEdit|PasteEdit|SelectEdit|Select彈出框,控制顯示字“Edit|SelectFont”菜單命Edit|InsertEdit|InsertNew其它應(yīng)用程序中生成的整個對象或?qū)ο蟮?。前面介紹過的“Edit|PasteSpecial…”與此類似,但“Paste里令是整個對象或?qū)ο蟮摹T谀P痛翱谥羞x擇一個外部對象的,然后選擇“Edit|Links()”命令,則彈出一個框,可以修改這個外部對象的屬性。Edit|ObjectEdit|Object在模型窗口中選擇一個或嵌入對象(OLE),然后選擇“Edit|ObjectProperties(對象屬性)”命令,則彈出一個框,displayoftheobject:對象的顯示theobject'ssource對象的源typeofupdateautomaticormanual):修改方式(自動或人工修openingalinktotheobject:打開對象的一個updatingtheobjectbreakingthelinktotheobject:斷開對象的LINGO|LOOK(模型顯示LINGO|LOOK(模型顯示句)按順序。將彈出一個框,在框中選LINGO|GenerateLINGO|Generate和LL單(顯示的內(nèi)(ViewAl), 窗

LINGO|Options命

退 LINGO|Options|Interface(LINGO|Options|Interface(界面)選

和信息;(缺省值為不進(jìn)行填充

(缺省是10-狀態(tài)欄:如果選擇該項,則LINGO系統(tǒng)主窗口最下面一行簡潔輸出:如果選擇該選項狀態(tài)欄:如果選擇該項,則LINGO系統(tǒng)主窗口最下面一行簡潔輸出:如果選擇該選項則LINGO系統(tǒng)對求解結(jié)果告等將以簡潔形式輸出;則以詳細(xì)形式輸:如果選該選項,則顯;否則顯變?yōu)閘ng格式(純文本

缺省為1000IGO模型窗口中將IO關(guān)鍵此顯示為蘭色,注釋為綠色,其他為黑色,超過0時,整個文件不再區(qū)分顏色。

大值為um(缺省為800);

文件時,處LINGO|Options|GeneralLINGO|Options|GeneralSolver(通用求解程序)選項 "Themodelgeneratorranoutofmemory"對偶計算可能的設(shè)置:None:不計算任何對偶信息Prices:計算對偶價格(缺省設(shè)置PricesandRanges:計算對偶價格并分析敏感性;Prices,OptOnly:只計算最優(yōu)行的對偶價格

運行限制運行限制固定變量的歸結(jié)、簡化固定變量的歸結(jié)、簡化:求解前對固定變量的歸結(jié)程度(度NoneNotwithglobalandmultistart模型的重新生成:控制重新生成模型的頻率,有三種可能的設(shè)置Onlywhentextchanges:只有當(dāng)模型的文本修改后才再生成模型Whentextchangesorwithexternalreferences:當(dāng)模型的文本修改或模型有外 時(缺省設(shè)置Always:每當(dāng)有需要時SolverDecides:若變量數(shù)小于等于12個,則盡可能全部線性化;否則None:不做任何線性及二進(jìn)制變量與連續(xù)變量的乘積項做線性High:同上,此外對邏輯運算符#LE#,#EQ#,#GE#,#NE#做線性線性化的大M系數(shù):置線性化的大M系(缺省值為

檢查數(shù)據(jù)和模型中的名稱否重復(fù)使用:選擇該

項,LINGO將檢

LINGO|OPTIONS|LinearLINGO|OPTIONS|LinearSolver(線性求解程序)選項Dual對偶單純形(即內(nèi)點法

On:檢SolverDecides:(缺省設(shè)置SolverDecides:LINGO自動決(缺省設(shè)置基變量的策略下降最多的出基量Steepest-Edge:陡邊策略,下降最多的出基量Steepest-Edge:陡邊策略,對所可能的變量進(jìn)行試,找到使目標(biāo)SolverDecides:LINGO自動決定(缺省設(shè)置)Partial:LINGO對一部分可能的出基變量進(jìn)行嘗試出基變冷啟動時:設(shè)置LINGO|Debug命令調(diào)試所使用的程序(冷啟動的含義是當(dāng)前基開始,而是從頭開始運行)。有四種可能的設(shè)置SolverDecides:LINGO自動選擇算法(缺省設(shè)置PrimalSimplex:原始單純形DualSimplex:對偶單純形 (即內(nèi)點法調(diào)試時采的求解程

熱啟動時同冷啟動(熱啟動的含義當(dāng)前基開始運行

LINGO|OPTIONS|NonlinearLINGO|OPTIONS|NonlinearSolver(非線性求解程序)選項(缺省值為10-(缺省值為10-初始非線性可性誤差限:控模型中約束滿

SolverDecides:LINGO自動選擇(缺省設(shè)置,目前就是2.0版

SolverDecides:LINGO自動選擇(缺省設(shè)置) Forwarddifferences:前向差分法計算數(shù)值導(dǎo)數(shù)策

該選項,LINGO項,LINGO將判別模型 點法中);否則不判(缺省值該選項,LINGO在每次SLP(SuccessiveLP,逐

策最陡邊策略:選擇該選項LINGOLINGO|OPTIONS|IntegerLINGO|OPTIONS|IntegerPre-Solver(整數(shù)預(yù)處理程序)選項(缺省值為3,搜索一個好的

啟發(fā)式方

數(shù)解 探測水平(級別):控制采用探(Probing)技術(shù)的級別(探測能夠SolverDecides:LINGO自動決定約束的割(平面

1-7:探測級別逐步升高約束的(平面

RootOnly:僅根節(jié)點增加割(平面)AllNodes:所有節(jié)點均增加割(平面)

次數(shù)(缺省值對其他節(jié)點次數(shù)(缺省值對其他節(jié)點LINGO|OPTIONS|IntegerLINGO|OPTIONS|IntegerSolver(整數(shù)求解程序)選項Both:LINGO自決定(缺省

分 控制分枝策略中先對哪些變量進(jìn)分枝,有兩種選擇LINGODecides:Binary:二進(jìn)制(0-變量優(yōu)

被認(rèn)為是整數(shù)。缺省值為8*10-整LINGODecides:LINGO自動選擇算法(缺省)DualSimplex:對偶單純形法 法(即內(nèi)點法)

種可能的設(shè)置(同熱LPLP最優(yōu) 目標(biāo)函數(shù)的相對誤差限:當(dāng)前目標(biāo)函數(shù)值與最優(yōu)值的

節(jié)點選擇:控制如何選擇節(jié)點的分枝解,有以下選項LINGODecides:LINGO自動選(缺省設(shè)置DepthFirst:按深度優(yōu)WorstBound:選擇具 界的節(jié)BestBound:選擇具有最好的界的節(jié)

值(LINGO|OPTIONS|GlobalLINGO|OPTIONS|GlobalSolver(全局最優(yōu)求解程序)選項全局最優(yōu)求全局最優(yōu)求解程使用全局最優(yōu)解程序:選擇程序,通常只到局部最優(yōu)設(shè)定變量的上缺省值為設(shè)置這個界的三種用范圍None:所有變量都不用這個上界All:所有變量都使這個上界按絕對值控兩類誤差

全局最優(yōu)求解程全局最優(yōu)求解程策AbsoluteWidth(絕對寬度)LocalWidth(局部寬度)GlobalWidth(全局寬度)GlobalDistance(全局距離策Violation(絕 Rel(Relative)Violation(相 DepthFirst(深度優(yōu)先)WorstBound(具有 多初始點求程多初始點求程(缺省設(shè)置,對小規(guī)模NLP問為5次,對大規(guī)模問題不使用多求解程序Off:不使用多點求解程N(>1的正整數(shù))

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論