版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、12LINGO與LINDO比較LINGO除具有LINDO的全部功能外,還可用于求解非線性規(guī)劃問題LINGO包含了內(nèi)置的建模語(yǔ)言,允許以簡(jiǎn)練,直觀的方式描述較大規(guī)模的優(yōu)化問題,模型中所需的數(shù)據(jù)可以以一定格式保存在獨(dú)立的文件中在LINGO中使用LINDO模型在9.0版本中可從FILE/OPEN直接打開,選擇文件類型(LTX)在8.0版本中,要通過FILE/IMPORT LINDO FILE命令直接把LINDO模型文件轉(zhuǎn)化成LINGO模型從LINDO到LINGO的轉(zhuǎn)化實(shí)質(zhì):1)將目標(biāo)函數(shù)的表達(dá)式從MAX變成了MAX=2)ST在LINGO中不再需要3)在每個(gè)系數(shù)與變量之間增加了運(yùn)算符*4)每行(目標(biāo),
2、約束和說明語(yǔ)句)后面增加了一個(gè)分號(hào)5)約束的名字被放到了一對(duì)方括號(hào) 中,而不是放在右半括號(hào)之前6)LINGO中模型以MODEL:開始,以END結(jié)束,對(duì)簡(jiǎn)單的模型,這兩個(gè)語(yǔ)句也可以省略3單單 位位 銷地銷地 運(yùn)運(yùn)價(jià)價(jià) 產(chǎn)地產(chǎn)地 B1B2B3B4B5B6B7B8產(chǎn)量產(chǎn)量 (capacity)A16 2 6 7 4 2 5 9 60 A24 9 5 3 8 5 8 2 55 A35 2 1 9 7 4 3 3 51 A47 6 7 3 9 2 7 1 43 A52 3 9 5 7 2 6 5 41 A65 5 2 2 8 1 4 3 52 銷量銷量(damand) 35 37 22 32 41 32
3、 43 38 例子:求解6個(gè)發(fā)貨點(diǎn)到8個(gè)接收點(diǎn)的最小費(fèi)用運(yùn)輸問題的最優(yōu)方案。產(chǎn)/銷/單位運(yùn)價(jià)如下表思考:變量設(shè)置/目標(biāo)函數(shù)/約束條件4)8,.,2 , 1, 6,.,2 , 1(jiBjAixBjAicijij的銷售量,在為的單位運(yùn)價(jià),到為設(shè)8,.,2 , 1, )(6,.,2 , 1),(xcmin61816181ijijjjdemandxiicapacityxziijjijij銷量約束:產(chǎn)量約束:約束條件:目標(biāo)函數(shù):5model: sets: a/a1.a6/: capacity; b/b1.b8/: demand; links(a,b): c, x; endsets min=sum(li
4、nks: c*x); for(b(J): sum(a(I): x(I,J)=demand(J); for(a(I): sum(b(J): x(I,J)=capacity(I); data: capacity=60 55 51 43 41 52; demand=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 endLINGO編編程程6 LINGO WINDOWS命令 外層是主框架窗口
5、,包含了所有菜單命令和工具條,其它所有的窗口將被包含在主窗口之下。在主窗口內(nèi)的標(biāo)題為L(zhǎng)INGO Model LINGO1的窗口是LINGO的默認(rèn)模型窗口,建立的模型都都要在該窗口內(nèi)編碼實(shí)現(xiàn)。文件菜單(File Menu) 1 新建(New) 2 打開(Open) 3 保存(Save) 4 另存為(Save As) 5 關(guān)閉(Close) 6 打印(Print) 7 打印設(shè)置(Print Setup) 8 打印預(yù)覽(Print Preview) 9 輸出到日志文件(Log Output) 用于生成一個(gè)日志文件,它存儲(chǔ)接下來在“命令窗口”中輸入的所有命令。 10提交LINGO命令腳本文件(Take
6、 Commands) 11. 兩種輸出格式(Export File)12引入LINDO文件(Import Lindo File) 13退出(Exit) 7 LINGO WINDOWS命令 編輯菜單(Edit Menu) 1 恢復(fù)(Undo) 2 剪切(Cut) 3 復(fù)制(Copy) 4 粘貼(Paste) 5 特殊粘貼.(Paste Special。) 與上面的命令不同,它可以用于剪貼板中的內(nèi)容不是文本的情形。 6 全選(Select All) 7 匹配小括號(hào)(Match Parenthesis) “Match Parenthesis” 可以為當(dāng)前選中的開括號(hào)查找匹配的閉括號(hào)。 8 粘貼函數(shù)(
7、Paste Function) 從編輯菜單中選用“Paste Function”命令可以將LINGO的內(nèi)部函數(shù)粘貼到當(dāng)前插入點(diǎn)。選擇字體字形大小顏色效果等(Select Font) 8LINGO菜單菜單 1 求解模型(Slove) 將當(dāng)前模型送入內(nèi)存求解。 2 求解結(jié)果(Solution)指定查看當(dāng)前內(nèi)存中求解結(jié)果的那些內(nèi)容。 3 查看(Look)只在命令窗口下才能使用,現(xiàn)實(shí)模型內(nèi)容,并對(duì)所有行按順序編號(hào)4 靈敏性分析(Range,Ctrl+R) 靈敏性分析是在求解模型時(shí)作出的,因此在求解模型時(shí)靈敏性分析是激活狀態(tài),但是默認(rèn)是不激活的。為了激活靈敏性分析,運(yùn)行LINGO|Options,選擇G
8、eneral Solver Tab, 在Dual Computations列表框中,選擇Prices and Ranges選項(xiàng)。靈敏性分析會(huì)耗費(fèi)相當(dāng)多的求解時(shí)間5 模型的通常形式(Generate)可以創(chuàng)建當(dāng)前模型的代數(shù)形式(非線性量前系數(shù)用(?)顯示)模型的矩陣形式(icture)按照矩陣形式以圖形方式顯示模型(非線性項(xiàng)的系數(shù)以黑色顯示為?線性項(xiàng)系數(shù)為正時(shí)顯示為藍(lán)色,為負(fù)時(shí)顯示為紅色)選項(xiàng)(Options) 可以改變一些影響LINGO模型求解時(shí)的參數(shù)。該命令將打開一個(gè)含有7個(gè)選項(xiàng)卡的窗口,你可以通過它修改LINGO系統(tǒng)的各種參數(shù)和選項(xiàng)。修改完以后,你如果單擊“Apply(應(yīng)用)”按鈕,則新的
9、設(shè)置馬上生效;如果單擊“OK(確定)”按鈕,則新的設(shè)置馬上生效,并且同時(shí)關(guān)閉該窗口。如果單擊“Save(保存)”按鈕,則將當(dāng)前設(shè)置變?yōu)槟J(rèn)設(shè)置,下次啟動(dòng)LINGO時(shí)這些設(shè)置仍然有效。單擊“Default(缺省值)”按鈕,則恢復(fù)LINGO系統(tǒng)定義的原始默認(rèn)設(shè)置(缺省設(shè)置)。 LINGO WINDOWS命令 9窗口菜單(Windows Menu) 1 命令行窗口(Open Command Window)有兩種命令模式:模式和命令行模式在命令行窗口中可以獲得命令行界面,在“:”提示符后可以輸入LINGO的命令行命令。 2 狀態(tài)窗口(Status Window) 如果在編譯期間沒有表達(dá)錯(cuò)誤,那么LIN
10、GO將調(diào)用適當(dāng)?shù)那蠼馄鱽砬蠼饽P汀?LINGO WINDOWS命令 10 LINGO WINDOWS命令 命令行命令1 LINGO信息 Cat 顯示所有命令類型 Com 按類型顯示所用LINGO命令 Help 顯示所需命令的簡(jiǎn)要幫助信息 Mem 顯示內(nèi)存變量的信息 2 輸入(Input) model 以命令行方式輸入一個(gè)模型 take 執(zhí)行一個(gè)文件的命令正本或從磁盤中讀取某個(gè)模型文件 3 顯示(Display) look 顯示當(dāng)前模型的內(nèi)容 genl 產(chǎn)生LINGO兼容的模型 gen 生成并顯示整個(gè)模型 hide 為模型設(shè)置密碼保護(hù) pause 暫停屏幕輸出直至再次使用此命令 4 文件輸出(F
11、ile Ouput) div 將模型結(jié)果輸出到文件 svrt 將模型結(jié)果輸出到屏幕 save 將當(dāng)前模型保存到文件 smps 將當(dāng)前模型保存為MPS文件 11命令行窗口5 求解模型(Solution) go 求解當(dāng)前模型 solu 顯示當(dāng)前模型的求解結(jié)果 6 編輯模型(Problem Editing) del 從當(dāng)前模型中刪除指定的某一行或某兩行之間(包括這兩行)的所有行 ext 在當(dāng)前模型中添加幾行 alt 用新字符串替換掉某一行中、或某兩行之間的所有行中的舊字符串 7 退出系統(tǒng)(Quit) 8 系統(tǒng)參數(shù)(System Parameters) page 以“行”為單位設(shè)置每頁(yè)長(zhǎng)度 ter 以
12、簡(jiǎn)略方式輸出結(jié)果 ver 以詳細(xì)方式輸出結(jié)果 wid 以“字符”為單位設(shè)置顯示和輸出寬度 set 重新設(shè)置默認(rèn)參數(shù)(SET parameter_nameSET parameter_name | | parameter_index parameter_valueparameter_index parameter_value )freeze 保存當(dāng)前參數(shù)設(shè)置,以備下一次重新啟動(dòng)LINGO系統(tǒng)時(shí)還是這樣的設(shè)置 time 顯示本次系統(tǒng)的運(yùn)行時(shí)間 LINGO WINDOWS命令 12 LINGO WINDOWS命令 狀態(tài)窗口變量框(Variables) Total顯示當(dāng)前模型的全部變量數(shù),Nonline
13、ar顯示其中的非線性變量數(shù),Integers顯示其中的整數(shù)變量數(shù)約束(Constraints)框 Total顯示當(dāng)前模型擴(kuò)展后的全部約束數(shù),Nonlinear顯示其中的非線性約束數(shù)。非線性約束是該約束中至少有一個(gè)非線性變量。如果一個(gè)約束中的所有變量都是定值,那么該約束就被剔除出模型(該約束為真),不計(jì)入約束總數(shù)中。 非零(Nonzeroes)框 Total顯示當(dāng)前模型中全部非零系數(shù)的數(shù)目,Nonlinear顯示其中的非線性變量系數(shù)的數(shù)目。 內(nèi)存使用(Generator Memory Used,單位:K)框 顯示當(dāng)前模型在內(nèi)存中使用的內(nèi)存量??梢酝ㄟ^使用LINGO|Options命令修改模型的最
14、大內(nèi)存使用量。 已運(yùn)行時(shí)間(Elapsed Runtime)框 顯示求解模型到目前所用的時(shí)間,它可能受到系統(tǒng)中別的應(yīng)用程序的影響。 13域名域名 含義含義 可能的顯示可能的顯示 Model Class 當(dāng)前模型的類型當(dāng)前模型的類型LP,QP,ILP,IQP,PILP, PIQP,NLP,INLP,PINLP (以(以I開頭表示開頭表示IP,以,以PI開頭表開頭表示示PIP)State 當(dāng)前解的狀態(tài)當(dāng)前解的狀態(tài) Global Optimum, Local Optimum, Feasible, Infeasible(不可行)(不可行), Unbounded(無(wú)界)(無(wú)界), Interrupted
15、(中斷)(中斷), Undetermined(未確定)(未確定) Objective 當(dāng)前解的目標(biāo)函數(shù)值當(dāng)前解的目標(biāo)函數(shù)值 實(shí)數(shù)實(shí)數(shù) Infeasibility 當(dāng)前約束不滿足的總量(不是不滿足的約當(dāng)前約束不滿足的總量(不是不滿足的約束的個(gè)數(shù))束的個(gè)數(shù)) 實(shí)數(shù)(即使該值實(shí)數(shù)(即使該值=0,當(dāng)前解也,當(dāng)前解也可能不可行,因?yàn)檫@個(gè)量中沒可能不可行,因?yàn)檫@個(gè)量中沒有考慮用上下界形式給出的約有考慮用上下界形式給出的約束)束) Iterations 目前為止的迭代次數(shù)目前為止的迭代次數(shù) 非負(fù)整數(shù)非負(fù)整數(shù) 求解器狀態(tài)(Solver Status)框 顯示當(dāng)前模型求解器的運(yùn)行狀態(tài)。域的含義如下 LINGO
16、WINDOWS命令 14 LINGO WINDOWS命令 域名域名 含義含義 可能的顯示可能的顯示 Solver Type 使用的特殊求解程序使用的特殊求解程序 B-and-B (分枝定界法)(分枝定界法) Global (全局最優(yōu)求解)(全局最優(yōu)求解) Multistart(用多個(gè)初始點(diǎn)求(用多個(gè)初始點(diǎn)求解)解) Best Obj 目前為止找到的可行解的最佳目標(biāo)函目前為止找到的可行解的最佳目標(biāo)函數(shù)值數(shù)值 實(shí)數(shù)實(shí)數(shù) Obj Bound 目標(biāo)函數(shù)值的界目標(biāo)函數(shù)值的界 實(shí)數(shù)實(shí)數(shù) Steps 特殊求解程序當(dāng)前運(yùn)行步數(shù):特殊求解程序當(dāng)前運(yùn)行步數(shù): 分枝數(shù)(對(duì)分枝數(shù)(對(duì)B-and-B程序);程序); 子
17、問題數(shù)(對(duì)子問題數(shù)(對(duì)Global程序);程序); 初始點(diǎn)數(shù)(對(duì)初始點(diǎn)數(shù)(對(duì)Multistart程序)程序)非負(fù)整數(shù)非負(fù)整數(shù) Active 有效步數(shù)有效步數(shù) 非負(fù)整數(shù)非負(fù)整數(shù) 擴(kuò)展求解器狀態(tài)(Extended Solver Status)框 顯示LINGO中幾個(gè)特殊求解器的運(yùn)行狀態(tài)。包括分枝定界求解器(Branch-and- Bound Solver)、全局求解器(Global Solver)和多初始點(diǎn)求解器(Multistart Solver)。該框中的域僅當(dāng)這些求解器運(yùn)行時(shí)才會(huì)更新。域的含義如下命令內(nèi)容結(jié)束15LINGO有兩種類型的集:原始集和派生集。 一個(gè)原始集是由一些最基本的對(duì)象組成的
18、。原始集是基本的對(duì)象,不能再被拆分成更小的組分 一個(gè)派生集是用一個(gè)或多個(gè)其它集來定義的,也就是說,它的成員來自于其它已存在的集。 一個(gè)模型可以沒有集部分,或有一個(gè)簡(jiǎn)單的集部分,或有多個(gè)集部分。一個(gè)集部分可以放置于模型的任何地方,但是一個(gè)集及其屬性在模型約束中被引用之前必須定義了它們 LINGO中的集16語(yǔ)法: setname/member_list/:attribute_list; 注意:用“”表示該部分內(nèi)容可選。Setname是集的名字,集名字必須嚴(yán)格符合標(biāo)準(zhǔn)命名規(guī)則:以拉丁字母或下劃線(_)為首字符,其后由拉丁字母(AZ)、下劃線、阿拉伯?dāng)?shù)字(0,1,9)組成的總長(zhǎng)度不超過32個(gè)字符的字符
19、串,且不區(qū)分大小寫。 注意:該命名規(guī)則同樣適用于集成員名和屬性名等的命名。 Member_list是集成員列表。如果集成員放在集定義中,那么對(duì)它們可采取顯式羅列和隱式羅列兩種方式。如果集成員不放在集定義中,那么可以在隨后的數(shù)據(jù)部分定義它們。attribute_ list 可以指定一個(gè)或多個(gè)集成員的屬性,屬性之間必須用逗號(hào)隔開。 定義原始集定義原始集17 當(dāng)顯式羅列成員時(shí),必須為每個(gè)成員輸入一個(gè)不同的名字,中間用空格或逗號(hào)擱開,允許混合使用。 例定義一個(gè)名為students的原始集,它具有成員John、Jill、Rose和Mike,屬性有sex和age: sets: students/John
20、Jill, Rose Mike/: sex, age; endsets 當(dāng)隱式羅列成員時(shí),不必羅列出每個(gè)集成員??刹捎萌缦抡Z(yǔ)法: setname/member1.memberN/: attribute_list; 這里的member1是集的第一個(gè)成員名,memberN是集的最末一個(gè)成員名。LINGO將自動(dòng)產(chǎn)生中間的所有成員名。定義原始集定義原始集18隱式成員列表格式隱式成員列表格式 示例示例 所產(chǎn)生集成員所產(chǎn)生集成員 1.n 1.5 1,2,3,4,5 StringM.StringN Car2.car14 Car2,Car3,Car4,Car14 DayM.DayN Mon.Fri Mon,T
21、ue,Wed,Thu,Fri MonthM.MonthN Oct.Jan Oct,Nov,Dec,Jan MonthYearM.MonthYearN Oct2001.Jan2002 Oct2001,Nov2001,Dec2001,Jan2002LINGO也接受一些特定的首成員名和末成員名,用于創(chuàng)建一些特殊的集。定義原始集定義原始集19 集成員不放在集定義中,而在隨后的數(shù)據(jù)部分來定義。 sets: students:sex,age; endsets data: students,sex,age= John 1 16 Jill 0 14 Rose 0 17 Mike 1 13; enddata 注
22、意:在集部分只定義了一個(gè)集students,并未指定成員。在數(shù)據(jù)部分羅列了集成員John、Jill、Rose和Mike,并對(duì)屬性sex和age分別給出了值。 定義原始集定義原始集20定義派生集定義派生集 語(yǔ)法定義一個(gè)派生集: setname(parent_set_list)/member_list/:attribute_list; setname是集的名字。parent_set_list是已定義的集的列表,多個(gè)時(shí)必須用逗號(hào)隔開。如果沒有指定成員列表,那么LINGO會(huì)自動(dòng)創(chuàng)建父集成員的所有組合作為派生集的成員。派生集的父集既可以是原始集,也可以是其它的派生集。 sets: product/A B
23、/; machine/M N/; week/1.2/; allowed(product,machine,week):x; endsets 21定義派生集定義派生集 成員列表被忽略時(shí),派生集成員由父集成員所有的組合構(gòu)成,這樣的派生集成為稠密集。 如果限制派生集的成員,使它成為父集成員所有組合構(gòu)成的集合的一個(gè)子集,這樣的派生集成為稀疏集。 同原始集一樣,派生集成員的聲明也可以放在數(shù)據(jù)部分。一個(gè)派生集的成員列表有兩種方式生成:顯式羅列;設(shè)置成員資格過濾器。 當(dāng)采用方式時(shí),必須顯式羅列出所有要包含在派生集中的成員,并且羅列的每個(gè)成員必須屬于稠密集。使用前面的例子,顯式羅列派生集的成員: allowed
24、(product,machine,week)/A M 1,A N 2,B N 1/; 如果需要生成一個(gè)大的、稀疏的集,可以把這些邏輯條件看作過濾器,把使邏輯條件為假的成員從稠密集中過濾掉。用豎線(|)來標(biāo)記一個(gè)成員資格過濾器的開始。 22sets: students/John,Jill,Rose,Mike/:sex,age; linkmf(students,students)|sex(&1) #eq# 1 #and# sex(&2) #eq# 0: friend; !男學(xué)生和女學(xué)生的友好程度大于0.5的集; linkmf2(linkmf) | friend(&1,&am
25、p;2) #ge# 0.5 : goodfriend; endsets data: sex,age =1 16 0 14 0 17 0 13; friend = 0.3 0.5 0.6; enddata 定義派生集定義派生集 23LINGO中的集集合派生集合基本集合稀疏集合稠密集合元素過濾法元素列表法直接列舉法隱式列舉法集合內(nèi)容結(jié)束24模型的數(shù)據(jù)部分和初始部分模型的數(shù)據(jù)部分和初始部分 數(shù)據(jù)部分以關(guān)鍵字“data:”開始,以關(guān)鍵字“enddata”結(jié)束。在這里,可以指定集成員、集的屬性。其語(yǔ)法如下: object_list = value_list; 對(duì)象列(object_list)包含要指定值
26、的屬性名、要設(shè)置集成員的集名,用逗號(hào)或空格隔開。一個(gè)對(duì)象列中至多有一個(gè)集名,而屬性名可以有任意多。如果對(duì)象列中有多個(gè)屬性名,那么它們的類型必須一致。 數(shù)值列(value_list)包含要分配給對(duì)象列中的對(duì)象的值,用逗號(hào)或空格隔開。注意屬性值的個(gè)數(shù)必須等于集成員的個(gè)數(shù)。sets: set1/A,B,C/: X,Y; endsets data: X=1,2,3; Y=4,5,6; enddata 等價(jià)地可以寫成:sets: set1/A,B,C/: X,Y; endsets data: X,Y=1 4 2 5 3 6; enddata 25模型的數(shù)據(jù)部分和初始部分模型的數(shù)據(jù)部分和初始部分 參數(shù)參數(shù)
27、 在數(shù)據(jù)部分也可以指定一些標(biāo)量變量。當(dāng)一個(gè)標(biāo)量變量在數(shù)據(jù)部分確定時(shí),稱之為參數(shù)。 data: X = .085; enddata 也可以同時(shí)指定多個(gè)參數(shù)。 data: X, Y = .085 .03; enddata 26模型的數(shù)據(jù)部分和初始部分模型的數(shù)據(jù)部分和初始部分 實(shí)時(shí)數(shù)據(jù)處理實(shí)時(shí)數(shù)據(jù)處理 在某些情況,模型中的某些數(shù)據(jù)并不是定值,我們把這種情況稱為實(shí)時(shí)數(shù)據(jù)處理。LINGO可以通過在本該放數(shù)的地方輸入一個(gè)問號(hào)(?)。 data: X,Y = .085 ?; enddata 每一次求解模型時(shí),LINGO都會(huì)提示為參數(shù)Y輸入一個(gè)值。在WINDOWS操作系統(tǒng)下,將會(huì)接收到一個(gè)對(duì)話框,直接輸入一個(gè)
28、值再點(diǎn)擊OK按鈕,LINGO就會(huì)把輸入的值指定給Y,然后繼續(xù)求解模型。 除了參數(shù)之外,也可以實(shí)時(shí)輸入集的屬性值,但不允許實(shí)時(shí)輸入集成員名。 27模型的數(shù)據(jù)部分和初始部分模型的數(shù)據(jù)部分和初始部分 指定屬性為一個(gè)值指定屬性為一個(gè)值 可以在數(shù)據(jù)聲明的右邊輸入一個(gè)值來把所有的成員的該屬性指定為一個(gè)值。sets: days /MO,TU,WE,TH,FR,SA,SU/:needs; endsets data: needs = 20; enddata LINGO將用20指定days集的所有成員的needs屬性。sets: days /MO,TU,WE,TH,FR,SA,SU/:needs,cost; en
29、dsets data: needs cost = 20 100; enddata 28數(shù)據(jù)部分的未知數(shù)值數(shù)據(jù)部分的未知數(shù)值 有時(shí)只想為一個(gè)集的部分成員的某個(gè)屬性指定值,而讓其余成員的該屬性保持未知,以便讓LINGO去求出它們的最優(yōu)值。 在數(shù)據(jù)聲明中輸入兩個(gè)相連的逗號(hào)表示該位置對(duì)應(yīng)的集成員的屬性值未知。兩個(gè)逗號(hào)間可以有空格。 sets: years/1.5/: capacity; endsets data: capacity = ,34,20,; enddata 屬性capacity的第2個(gè)和第3個(gè)值分別為34和20,其余的未知。 模型的數(shù)據(jù)部分和初始部分模型的數(shù)據(jù)部分和初始部分 29模型的初始
30、部分模型的初始部分 在初始部分輸入的值僅被LINGO求解器當(dāng)作初始點(diǎn)來用,并且僅僅對(duì)非線性模型有用。 一個(gè)初始部分以“init:”開始,以“endinit”結(jié)束。 init: X, Y = 0, .1; endinit Y=log(X); X2+Y2=1; 模型的數(shù)據(jù)部分和初始部分模型的數(shù)據(jù)部分和初始部分 數(shù)據(jù)內(nèi)容結(jié)束30LINGO函數(shù) 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ù)用來定義變量的
31、取值范圍 6 集操作函數(shù):這類函數(shù)為對(duì)集的操作提供幫助 7 集循環(huán)函數(shù):遍歷集的元素,執(zhí)行一定的操作的函數(shù) 8 數(shù)據(jù)輸入輸出函數(shù):這類函數(shù)允許模型和外部數(shù)據(jù)源相聯(lián)系,進(jìn)行數(shù)據(jù)的輸入輸出 9 輔助函數(shù):各種雜類函數(shù) 31LINGO函數(shù) 算術(shù)運(yùn)算符 乘方 乘 除 加 減 LINGO唯一的一元算術(shù)運(yùn)算符是取反函數(shù)“”。 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 關(guān)系運(yùn)算符主要是被用在模型中,來指定一個(gè)表達(dá)式的左邊是否等于、小于等于、或者大于等于右邊,形成模型的一個(gè)約束條件。 LINGO有三種關(guān)系運(yùn)算符:“=”、“=”。LINGO中還能用“”表示大于等于關(guān)系。LINGO并不支持嚴(yán)格小于和嚴(yán)格大于關(guān)系運(yùn)算符。嚴(yán)格小于為:A
32、+=B32LINGO函數(shù) 邏輯運(yùn)算符邏輯運(yùn)算符 在LINGO中,邏輯運(yùn)算符主要用于集循環(huán)函數(shù)的條件表達(dá)式中,來控制在函數(shù)中哪些集成員被包含,哪些被排斥。在創(chuàng)建稀疏集時(shí)用在成員資格過濾器中。 #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;否則為fla
33、se #le# 若左邊的運(yùn)算符小于或等于右邊的運(yùn)算符,則為true;否則flase #and# 僅當(dāng)兩個(gè)參數(shù)都為true時(shí),結(jié)果為true;否則為flase #or# 僅當(dāng)兩個(gè)參數(shù)都為false時(shí),結(jié)果為false;否則為true 33下面給出以上三類操作符的優(yōu)先級(jí): 高 #not# (取反) #eq# #ne# #gt# #ge# #lt# #le# #and# #or# 低 = LINGO函數(shù) 34LINGO函數(shù) 數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù) LINGO提供了大量的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù): abs(x) 返回x的絕對(duì)值 sin(x) 返回x的正弦值,x采用弧度制 cos(x) 返回x的余弦值 tan(x) 返回
34、x的正切值 exp(x) 返回常數(shù)e的x次方 log(x) 返回x的自然對(duì)數(shù) lgm(x) 返回x的gamma函數(shù)的自然對(duì)數(shù) sign(x) 如果x=0時(shí),返回不超過x的最大整數(shù);當(dāng)x0時(shí),返回不低于x的最大整數(shù)。 smax(x1,x2,xn) 返回x1,x2,xn中的最大值 smin(x1,x2,xn) 返回x1,x2,xn中的最小值35LINGO函數(shù) 金融函數(shù)金融函數(shù) 1fpa(I,n) 返回如下情形的凈現(xiàn)值:?jiǎn)挝粫r(shí)段利率為I,連續(xù)n個(gè)時(shí)段支付,每個(gè)時(shí)段支付單位費(fèi)用。若每個(gè)時(shí)段支付x單位的費(fèi)用,則凈現(xiàn)值可用x乘以fpa(I,n)算得。 例 貸款買房問題 貸款金額50000元,貸款年利率5.
35、31%,采取分期付款方式(每年年末還固定金額,直至還清)。問擬貸款10年,每年需償還多少元? LINGO代碼如下: 50000 = x * fpa(.0531,10); 答案是x=6573.069元。 2fpl(I,n) 返回如下情形的凈現(xiàn)值:?jiǎn)挝粫r(shí)段利率為I,第n個(gè)時(shí)段支付單位費(fèi)用。 36概率函數(shù)概率函數(shù) 1pbn(p,n,x) 二項(xiàng)分布的累積分布函數(shù)。當(dāng)n和(或)x不是整數(shù)時(shí),用線性插值法進(jìn)行計(jì)算。 2pcx(n,x) 自由度為n的2分布的累積分布函數(shù)。 3peb(a,x) 當(dāng)?shù)竭_(dá)負(fù)荷為a,服務(wù)系統(tǒng)有x個(gè)服務(wù)器且允許無(wú)窮排隊(duì)時(shí)的Erlang繁忙概率。 4pel(a,x) 當(dāng)?shù)竭_(dá)負(fù)荷為a,服
36、務(wù)系統(tǒng)有x個(gè)服務(wù)器且不允許排隊(duì)時(shí)的Erlang繁忙概率。 5pfd(n,d,x) 自由度為n和d的F分布的累積分布函數(shù)。 6pfs(a,x,c) 當(dāng)負(fù)荷上限為a,顧客數(shù)為c,平行服務(wù)器數(shù)量為x時(shí),有限源的Poisson服務(wù)系統(tǒng)的等待或返修顧客數(shù)的期望值。a是顧客數(shù)乘以平均服務(wù)時(shí)間,再除以平均返修時(shí)間。當(dāng)c和(或)x不是整數(shù)時(shí),采用線性插值進(jìn)行計(jì)算。 7phg(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ì)算。 LINGO函數(shù) 37概率函
37、數(shù)概率函數(shù)8ppl(a,x) Poisson分布的線性損失函數(shù),即返回max(0,z-x)的期望值,其中隨機(jī)變量z服從均值為a的Poisson分布。 9pps(a,x) 均值為a的Poisson分布的累積分布函數(shù)。當(dāng)x不是整數(shù)時(shí),采用線性插值進(jìn)行計(jì)算。 10psl(x) 單位正態(tài)線性損失函數(shù),即返回max(0,z-x)的期望值,其中隨機(jī)變量z服從標(biāo)準(zhǔn)正態(tài)分布。 11psn(x) 標(biāo)準(zhǔn)正態(tài)分布的累積分布函數(shù)。 12ptd(n,x) 自由度為n的t分布的累積分布函數(shù)。 LINGO函數(shù) 3813qrand(seed) 產(chǎn)生服從(0,1)區(qū)間的擬隨機(jī)數(shù)。qrand只允許在模型的數(shù)據(jù)部分使用,它將用擬隨
38、機(jī)數(shù)填滿集屬性。通常,聲明一個(gè)mn的二維表,m表示運(yùn)行實(shí)驗(yàn)的次數(shù),n表示每次實(shí)驗(yàn)所需的隨機(jī)數(shù)的個(gè)數(shù)。model: data: M=4; N=2; seed=1234567; enddata sets: rows/1.M/; cols/1.N/; table(rows,cols): x; endsets data: X=qrand(seed); enddata end LINGO函數(shù) 3914rand(seed) 返回0和1間的偽隨機(jī)數(shù),依賴于指定的種子。典型用法是U(I+1)=rand(U(I)。注意如果seed不變,那么產(chǎn)生的隨機(jī)數(shù)也不變。 model: sets: series/1.15/
39、: u; endsets u( 1) = rand( .1234); for(series( I)| I #GT# 1: u( I) = rand( u( I - 1) ); end LINGO函數(shù) 40LINGO函數(shù) 變量界定函數(shù)變量界定函數(shù) 變量界定函數(shù)實(shí)現(xiàn)對(duì)變量取值范圍的附加限制,共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è)定
40、一個(gè)變量的上下界,它也可以取消默認(rèn)下界為0的約束。41LINGO函數(shù) 集操作函數(shù)集操作函數(shù) 1in(set_name,primitive_index_1 ,primitive_index_2,) 如果元素在指定集中,返回1;否則返回0。 sets: I/x1.x4/; B(I)/x2/; C(I)|#not#in(B,&1):; endsets &1表示對(duì)應(yīng)第一個(gè)父集合的元素的索引值2index(set_name, primitive_set_element) 該函數(shù)返回在集set_name中原始集成員primitive_set_element的索引。3size(set_nam
41、e) 該函數(shù)返回集set_name的成員個(gè)數(shù)。在模型中明確給出集大小時(shí)最好使用該函數(shù)。它的使用使模型更加數(shù)據(jù)中立,集大小改變時(shí)也更易維護(hù)。 42集循環(huán)函數(shù)集循環(huán)函數(shù) 集循環(huán)函數(shù)遍歷整個(gè)集進(jìn)行操作,其語(yǔ)法為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ù)的范圍。expression_list是被應(yīng)用到每個(gè)集成員的表達(dá)式
42、列表LINGO函數(shù) 43LINGO函數(shù) 1for 該函數(shù)用來產(chǎn)生對(duì)集成員的約束?;诮UZ(yǔ)言的標(biāo)量需要顯式輸入每個(gè)約束,不過for函數(shù)允許只輸入一個(gè)約束,然后LINGO自動(dòng)產(chǎn)生每個(gè)集成員的約束。 產(chǎn)生序列1,4,9,16,25 model: sets: number/1.5/:x; endsets for(number(I): x(I)=I2); end 44LINGO函數(shù) 2sum 該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)式的和。 例 求向量5,1,3,4,6,10前5個(gè)數(shù)的和。 model: data: N=6; enddata sets: number/1.N/:x; endsets dat
43、a: x = 5 1 3 4 6 10; enddata s=sum(number(I) | I #le# 5: x); end 45LINGO函數(shù) 3.min和max 返回指定的集成員的一個(gè)表達(dá)式的最小值或最大值。 例 求向量5,1,3,4,6,10前5個(gè)數(shù)的最小值,后3個(gè)數(shù)的最大值。 model: data: N=6; enddata sets: number/1.N/:x; endsets data: x = 5 1 3 4 6 10; enddata minv=min(number(I) | I #le# 5: x); maxv=max(number(I) | I #ge# N-2: x); end46LINGO函數(shù) 輸入和輸出函數(shù)輸入和輸出函數(shù) 1file函數(shù) 該函數(shù)用從外部文件中引入數(shù)據(jù)或文本,可以放在模型中任何地方。該函數(shù)的語(yǔ)法格式為file(filename)。這里filename是文件名(可以帶有路
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圣誕節(jié)幼兒園創(chuàng)意活動(dòng)策劃5篇
- 2025年植物油及其制品項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模式
- 2025年油煙凈化設(shè)備項(xiàng)目提案報(bào)告
- 2025年氣動(dòng)球閥項(xiàng)目提案報(bào)告模稿
- 2025年制藥用水設(shè)備項(xiàng)目申請(qǐng)報(bào)告模范
- 關(guān)于高中目標(biāo)作文集錦五篇
- 物業(yè)主管轉(zhuǎn)正報(bào)告
- 健康促進(jìn)倡議書范文匯編6篇
- 文明禮儀演講稿范文合集八篇
- 畢業(yè)大學(xué)生實(shí)習(xí)周報(bào)【五篇】
- 四川省遂寧市城區(qū)遂寧市市城區(qū)初中2024年第一學(xué)期期末教學(xué)水平監(jiān)測(cè)七年級(jí)歷史試題(無(wú)答案)
- 2023年全國(guó)職業(yè)院校技能大賽賽項(xiàng)-ZZ019 智能財(cái)稅基本技能賽題 - 模塊二-答案
- 建筑垃圾清運(yùn)投標(biāo)方案(技術(shù)方案)
- 紅色文化知識(shí)題【小學(xué)低齡組(408題)】附有答案
- 安防個(gè)人工作總結(jié)
- JTG F40-2004 公路瀝青路面施工技術(shù)規(guī)范
- JTG D50-2017公路瀝青路面設(shè)計(jì)規(guī)范
- 天津市河北區(qū)2022-2023學(xué)年七年級(jí)上學(xué)期期末生物試題【帶答案】
- 2024年輔警招聘考試試題庫(kù)附完整答案(必刷)
- 伴瘤內(nèi)分泌綜合征課件
- 2023-2024學(xué)年福建福州延安中學(xué)中考數(shù)學(xué)押題試卷含解析
評(píng)論
0/150
提交評(píng)論