![用lingo編程解決運(yùn)輸問(wèn)題大全[嚴(yán)選材料]_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7e0ded00-499d-4f15-9aec-16fba48f7984/7e0ded00-499d-4f15-9aec-16fba48f79841.gif)
![用lingo編程解決運(yùn)輸問(wèn)題大全[嚴(yán)選材料]_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7e0ded00-499d-4f15-9aec-16fba48f7984/7e0ded00-499d-4f15-9aec-16fba48f79842.gif)
![用lingo編程解決運(yùn)輸問(wèn)題大全[嚴(yán)選材料]_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7e0ded00-499d-4f15-9aec-16fba48f7984/7e0ded00-499d-4f15-9aec-16fba48f79843.gif)
![用lingo編程解決運(yùn)輸問(wèn)題大全[嚴(yán)選材料]_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7e0ded00-499d-4f15-9aec-16fba48f7984/7e0ded00-499d-4f15-9aec-16fba48f79844.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、LINGO是用來(lái)求解線性和非線性優(yōu)化問(wèn)題的簡(jiǎn)易工具。LINGO內(nèi)置了一種建立最優(yōu)化模型的語(yǔ)言,可以簡(jiǎn)便地表達(dá)大規(guī)模問(wèn)題,利用LINGO高效的求解器可快速求解并分析結(jié)果。當(dāng)你在windows下開(kāi)始運(yùn)行LINGO系統(tǒng)時(shí),會(huì)得到類似下面的一個(gè)窗口:外層是主框架窗口,包含了所有菜單命令和工具條,其它所有的窗口將被包含在主窗口之下。在主窗口內(nèi)的標(biāo)題為L(zhǎng)INGO Model LINGO1的窗口是LINGO的默認(rèn)模型窗口,建立的模型都都要在該窗口內(nèi)編碼實(shí)現(xiàn)。下面舉兩個(gè)例子。例1.1 如何在LINGO中求解如下的LP問(wèn)題:在模型窗口中輸入如下代碼:min=2*x1+3*x2;x1+x2=350;x1=100;
2、2*x1+x2=600;然后點(diǎn)擊工具條上的按鈕 即可。例1.2 使用LINGO軟件計(jì)算6個(gè)發(fā)點(diǎn)8個(gè)收點(diǎn)的最小費(fèi)用運(yùn)輸問(wèn)題。產(chǎn)銷單位運(yùn)價(jià)如下表。銷地產(chǎn)地B1B2B3B4B5B6B7B8產(chǎn)量A16267425960A24953858255A35219743351A47673927143A52395726541A65522814352銷量3537223241324338使用LINGO軟件,編制程序如下:model:!6發(fā)點(diǎn)8收點(diǎn)運(yùn)輸問(wèn)題;sets: warehouses/wh1.wh6/: capacity; vendors/v1.v8/: demand; links(warehouses,vend
3、ors): cost, volume;endsets!目標(biāo)函數(shù); min=sum(links: cost*volume);!需求約束; for(vendors(J): sum(warehouses(I): volume(I,J)=demand(J);!產(chǎn)量約束; for(warehouses(I): sum(vendors(J): volume(I,J)=capacity(I);!這里是數(shù)據(jù);data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2
4、 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;enddataend然后點(diǎn)擊工具條上的按鈕 即可。為了能夠使用LINGO的強(qiáng)大功能,接著第二節(jié)的學(xué)習(xí)。2 LINGO中的集對(duì)實(shí)際問(wèn)題建模的時(shí)候,總會(huì)遇到一群或多群相聯(lián)系的對(duì)象,比如工廠、消費(fèi)者群體、交通工具和雇工等等。LINGO允許把這些相聯(lián)系的對(duì)象聚合成集(sets)。一旦把對(duì)象聚合成集,就可以利用集來(lái)最大限度的發(fā)揮LINGO建模語(yǔ)言的優(yōu)勢(shì)。現(xiàn)在我們將深入介紹如何創(chuàng)建集,并用數(shù)據(jù)初始化集的屬性。學(xué)完本節(jié)后,你對(duì)基于建模技術(shù)的集如何引入模型會(huì)有一個(gè)基本的理解。2.1
5、 為什么使用集集是LINGO建模語(yǔ)言的基礎(chǔ),是程序設(shè)計(jì)最強(qiáng)有力的基本構(gòu)件。借助于集,能夠用一個(gè)單一的、長(zhǎng)的、簡(jiǎn)明的復(fù)合公式表示一系列相似的約束,從而可以快速方便地表達(dá)規(guī)模較大的模型。2.2 什么是集集是一群相聯(lián)系的對(duì)象,這些對(duì)象也稱為集的成員。一個(gè)集可能是一系列產(chǎn)品、卡車或雇員。每個(gè)集成員可能有一個(gè)或多個(gè)與之有關(guān)聯(lián)的特征,我們把這些特征稱為屬性。屬性值可以預(yù)先給定,也可以是未知的,有待于LINGO求解。例如,產(chǎn)品集中的每個(gè)產(chǎn)品可以有一個(gè)價(jià)格屬性;卡車集中的每輛卡車可以有一個(gè)牽引力屬性;雇員集中的每位雇員可以有一個(gè)薪水屬性,也可以有一個(gè)生日屬性等等。LINGO有兩種類型的集:原始集(primit
6、iveset)和派生集(derived set)。一個(gè)原始集是由一些最基本的對(duì)象組成的。一個(gè)派生集是用一個(gè)或多個(gè)其它集來(lái)定義的,也就是說(shuō),它的成員來(lái)自于其它已存在的集。2.3 模型的集部分集部分是LINGO模型的一個(gè)可選部分。在LINGO模型中使用集之前,必須在集部分事先定義。集部分以關(guān)鍵字“sets:”開(kāi)始,以“endsets”結(jié)束。一個(gè)模型可以沒(méi)有集部分,或有一個(gè)簡(jiǎn)單的集部分,或有多個(gè)集部分。一個(gè)集部分可以放置于模型的任何地方,但是一個(gè)集及其屬性在模型約束中被引用之前必須定義了它們。2.3.1 定義原始集為了定義一個(gè)原始集,必須詳細(xì)聲明:集的名字集的成員可選集成員的屬性可選定義一個(gè)原始集,
7、用下面的語(yǔ)法:setname/member_list/:attribute_list;sets: warehouses/wh1.wh6/: capacity; vendors/v1.v8/: demand; links(warehouses,vendors): cost, volume;endsets注意:用“”表示該部分內(nèi)容可選。下同,不再贅述。Setname是你選擇的來(lái)標(biāo)記集的名字,最好具有較強(qiáng)的可讀性。集名字必須嚴(yán)格符合標(biāo)準(zhǔn)命名規(guī)則:以拉丁字母或下劃線(_)為首字符,其后由拉丁字母(AZ)、下劃線、阿拉伯?dāng)?shù)字(0,1,9)組成的總長(zhǎng)度不超過(guò)32個(gè)字符的字符串,且不區(qū)分大小寫。注意:該命名
8、規(guī)則同樣適用于集成員名和屬性名等的命名。Member_list是集成員列表。如果集成員放在集定義中,那么對(duì)它們可采取顯式羅列和隱式羅列兩種方式。如果集成員不放在集定義中,那么可以在隨后的數(shù)據(jù)部分定義它們。 當(dāng)顯式羅列成員時(shí),必須為每個(gè)成員輸入一個(gè)不同的名字,中間用空格或逗號(hào)擱開(kāi),允許混合使用。例2.1 可以定義一個(gè)名為students的原始集,它具有成員John、Jill、Rose和Mike,屬性有sex和age:sets: students/John Jill, Rose Mike/: sex, age;endsets 當(dāng)隱式羅列成員時(shí),不必羅列出每個(gè)集成員。可采用如下語(yǔ)法:setname/
9、member1.memberN/: attribute_list;這里的member1是集的第一個(gè)成員名,memberN是集的最末一個(gè)成員名。LINGO將自動(dòng)產(chǎn)生中間的所有成員名。LINGO也接受一些特定的首成員名和末成員名,用于創(chuàng)建一些特殊的集。列表如下:隱式成員列表格式示例所產(chǎn)生集成員1.n1.51,2,3,4,5StringM.StringNCar2.car14Car2,Car3,Car4,Car14DayM.DayNMon.FriMon,Tue,Wed,Thu,FriMonthM.MonthNOct.JanOct,Nov,Dec,JanMonthYearM.MonthYearNOct2
10、001.Jan2002Oct2001,Nov2001,Dec2001,Jan2002 集成員不放在集定義中,而在隨后的數(shù)據(jù)部分來(lái)定義。例2.2!集部分;sets: students:sex,age;endsets!數(shù)據(jù)部分;data: students,sex,age= John 1 16 Jill 0 14 Rose 0 17 Mike 1 13;Enddata注意:開(kāi)頭用感嘆號(hào)(!),末尾用分號(hào)(;)表示注釋,可跨多行。在集部分只定義了一個(gè)集students,并未指定成員。在數(shù)據(jù)部分羅列了集成員John、Jill、Rose和Mike,并對(duì)屬性sex和age分別給出了值。集成員無(wú)論用何種字符
11、標(biāo)記,它的索引都是從1開(kāi)始連續(xù)計(jì)數(shù)。在attribute_ list可以指定一個(gè)或多個(gè)集成員的屬性,屬性之間必須用逗號(hào)隔開(kāi)??梢园鸭⒓蓡T和集屬性同C語(yǔ)言中的結(jié)構(gòu)體作個(gè)類比。如下圖:集 結(jié)構(gòu)體集成員 結(jié)構(gòu)體的域集屬性 結(jié)構(gòu)體實(shí)例LINGO內(nèi)置的建模語(yǔ)言是一種描述性語(yǔ)言,用它可以描述現(xiàn)實(shí)世界中的一些問(wèn)題,然后再借助于LINGO求解器求解。因此,集屬性的值一旦在模型中被確定,就不可能再更改。在LINGO中,只有在初始部分中給出的集屬性值在以后的求解中可更改。這與前面并不矛盾,初始部分是LINGO求解器的需要,并不是描述問(wèn)題所必須的。2.3.2 定義派生集為了定義一個(gè)派生集,必須詳細(xì)聲明:集的名字
12、父集的名字可選,集成員可選,集成員的屬性可用下面的語(yǔ)法定義一個(gè)派生集:setname(parent_set_list)/member_list/:attribute_list;setname是集的名字。parent_set_list是已定義的集的列表,多個(gè)時(shí)必須用逗號(hào)隔開(kāi)。如果沒(méi)有指定成員列表,那么LINGO會(huì)自動(dòng)創(chuàng)建父集成員的所有組合作為派生集的成員。派生集的父集既可以是原始集,也可以是其它的派生集。例2.3sets: product/A B/; machine/M N/; week/1.2/; allowed(product,machine,week):x;endsetsLINGO生成了三
13、個(gè)父集的所有組合共八組作為allowed集的成員。列表如下:編號(hào) 成員1 (A,M,1)2 (A,M,2)3 (A,N,1)4 (A,N,2)5 (B,M,1)6 (B,M,2)7 (B,N,1)8 (B,N,2)成員列表被忽略時(shí),派生集成員由父集成員所有的組合構(gòu)成,這樣的派生集成為稠密集。如果限制派生集的成員,使它成為父集成員所有組合構(gòu)成的集合的一個(gè)子集,這樣的派生集成為稀疏集。同原始集一樣,派生集成員的聲明也可以放在數(shù)據(jù)部分。一個(gè)派生集的成員列表有兩種方式生成:顯式羅列;設(shè)置成員資格過(guò)濾器。當(dāng)采用方式時(shí),必須顯式羅列出所有要包含在派生集中的成員,并且羅列的每個(gè)成員必須屬于稠密集。使用前面的
14、例子,顯式羅列派生集的成員:allowed(product,machine,week)/A M 1,A N 2,B N 1/;如果需要生成一個(gè)大的、稀疏的集,那么顯式羅列就很討厭。幸運(yùn)地是許多稀疏集的成員都滿足一些條件以和非成員相區(qū)分。我們可以把這些邏輯條件看作過(guò)濾器,在LINGO生成派生集的成員時(shí)把使邏輯條件為假的成員從稠密集中過(guò)濾掉。例2.4sets: !學(xué)生集:性別屬性sex,1表示男性,0表示女性;年齡屬性age. ; students/John,Jill,Rose,Mike/:sex,age; !男學(xué)生和女學(xué)生的聯(lián)系集:友好程度屬性friend,0,1之間的數(shù)。 ; linkmf(s
15、tudents,students)|sex(&1) #eq# 1 #and# sex(&2) #eq# 0: friend; !男學(xué)生和女學(xué)生的友好程度大于0.5的集; linkmf2(linkmf) | friend(&1,&2) #ge# 0.5 : x;endsetsdata: sex,age = 1 16 0 14 0 17 0 13; friend = 0.3 0.5 0.6;enddata用豎線(|)來(lái)標(biāo)記一個(gè)成員資格過(guò)濾器的開(kāi)始。#eq#是邏輯運(yùn)算符,用來(lái)判斷是否“相等”,可參考4. &1可看作派生集的第1個(gè)原始父集的索引,它取遍該原始父集的所有成員;&2可看作派生集的第2 個(gè)原
16、始父集的索引,它取遍該原始父集的所有成員;&3,&4,以此類推。注意如果派生集B的父集是另外的派生集A,那么上面所說(shuō)的原始父集是集A向前回溯到最終的原始集,其順序保持不變,并且派生集A的過(guò)濾器對(duì)派生集B仍然有效。因此,派生集的索引個(gè)數(shù)是最終原始父集的個(gè)數(shù),索引的取值是從原始父集到當(dāng)前派生集所作限制的總和??偟膩?lái)說(shuō),LINGO可識(shí)別的集只有兩種類型:原始集和派生集。在一個(gè)模型中,原始集是基本的對(duì)象,不能再被拆分成更小的組分。原始集可以由顯式羅列和隱式羅列兩種方式來(lái)定義。當(dāng)用顯式羅列方式時(shí),需在集成員列表中逐個(gè)輸入每個(gè)成員。當(dāng)用隱式羅列方式時(shí),只需在集成員列表中輸入首成員和末成員,而中間的成員由L
17、INGO產(chǎn)生。另一方面,派生集是由其它的集來(lái)創(chuàng)建。這些集被稱為該派生集的父集(原始集或其它的派生集)。一個(gè)派生集既可以是稀疏的,也可以是稠密的。稠密集包含了父集成員的所有組合(有時(shí)也稱為父集的笛卡爾乘積)。稀疏集僅包含了父集的笛卡爾乘積的一個(gè)子集,可通過(guò)顯式羅列和成員資格過(guò)濾器這兩種方式來(lái)定義。顯式羅列方法就是逐個(gè)羅列稀疏集的成員。成員資格過(guò)濾器方法通過(guò)使用稀疏集成員必須滿足的邏輯條件從稠密集成員中過(guò)濾出稀疏集的成員。不同集類型的關(guān)系見(jiàn)下圖。集稠密集原始集顯式羅列稀疏集過(guò)濾器派生集LINGO集類型3 模型的數(shù)據(jù)部分和初始部分 在處理模型的數(shù)據(jù)時(shí),需要為集指派一些成員并且在LINGO求解模型之前
18、為集的某些屬性指定值。為此,LINGO為用戶提供了兩個(gè)可選部分:輸入集成員和數(shù)據(jù)的數(shù)據(jù)部分(Data Section)和為決策變量設(shè)置初始值的初始部分(Init Section)。 3.1 模型的數(shù)據(jù)部分 3.1.1 數(shù)據(jù)部分入門數(shù)據(jù)部分提供了模型相對(duì)靜止部分和數(shù)據(jù)分離的可能性。顯然,這對(duì)模型的維護(hù)和維數(shù)的縮放非常便利。數(shù)據(jù)部分以關(guān)鍵字“data:”開(kāi)始,以關(guān)鍵字“enddata”結(jié)束。在這里,可以指定集成員、集的屬性。其語(yǔ)法如下:object_list = value_list;對(duì)象列(object_list)包含要指定值的屬性名、要設(shè)置集成員的集名,用逗號(hào)或空格隔開(kāi)。一個(gè)對(duì)象列中至多有一個(gè)
19、集名,而屬性名可以有任意多。如果對(duì)象列中有多個(gè)屬性名,那么它們的類型必須一致。如果對(duì)象列中有一個(gè)集名,那么對(duì)象列中所有的屬性的類型就是這個(gè)集。數(shù)值列(value_list)包含要分配給對(duì)象列中的對(duì)象的值,用逗號(hào)或空格隔開(kāi)。注意屬性值的個(gè)數(shù)必須等于集成員的個(gè)數(shù)??聪旅娴睦?。例3.1sets: set1/A,B,C/: X,Y;endsetsdata: X=1,2,3; Y=4,5,6;enddata在集set1中定義了兩個(gè)屬性X和Y。X的三個(gè)值是1、2和3,Y的三個(gè)值是4、5和6。也可采用如下例子中的復(fù)合數(shù)據(jù)聲明(data statement)實(shí)現(xiàn)同樣的功能。例3.2sets: set1/A,
20、B,C/: X,Y;endsetsdata: X,Y=1 4 2 5 3 6;enddata看到這個(gè)例子,可能會(huì)認(rèn)為X被指定了1、4和2三個(gè)值,因?yàn)樗鼈兪菙?shù)值列中前三個(gè),而正確的答案是1、2和3。假設(shè)對(duì)象列有n個(gè)對(duì)象,LINGO在為對(duì)象指定值時(shí),首先在n個(gè)對(duì)象的第1個(gè)索引處依次分配數(shù)值列中的前n個(gè)對(duì)象,然后在n個(gè)對(duì)象的第2個(gè)索引處依次分配數(shù)值列中緊接著的n個(gè)對(duì)象,以此類推。模型的所有數(shù)據(jù)屬性值和集成員被單獨(dú)放在數(shù)據(jù)部分,這可能是最規(guī)范的數(shù)據(jù)輸入方式。3.1.2 參數(shù)在數(shù)據(jù)部分也可以指定一些標(biāo)量變量(scalar variables)。當(dāng)一個(gè)標(biāo)量變量在數(shù)據(jù)部分確定時(shí),稱之為參數(shù)。看一例,假設(shè)模型
21、中用利率8.5%作為一個(gè)參數(shù),就可以象下面一樣輸入一個(gè)利率作為參數(shù)。例3.3data: interest_rate = .085;enddata也可以同時(shí)指定多個(gè)參數(shù)。例3.4data: interest_rate,inflation_rate = .085 .03;enddata3.1.3 實(shí)時(shí)數(shù)據(jù)處理在某些情況,對(duì)于模型中的某些數(shù)據(jù)并不是定值。譬如模型中有一個(gè)通貨膨脹率的參數(shù),我們想在2%至6%范圍內(nèi),對(duì)不同的值求解模型,來(lái)觀察模型的結(jié)果對(duì)通貨膨脹的依賴有多么敏感。我們把這種情況稱為實(shí)時(shí)數(shù)據(jù)處理(what if analysis)。LINGO有一個(gè)特征可方便地做到這件事。在本該放數(shù)的地方輸
22、入一個(gè)問(wèn)號(hào)(?)。例3.5data: interest_rate,inflation_rate = .085 ?;enddata每一次求解模型時(shí),LINGO都會(huì)提示為參數(shù)inflation_rate輸入一個(gè)值。在WINDOWS操作系統(tǒng)下,將會(huì)接收到一個(gè)類似下面的對(duì)話框:直接輸入一個(gè)值再點(diǎn)擊OK按鈕,LINGO就會(huì)把輸入的值指定給inflation_rate,然后繼續(xù)求解模型。 除了參數(shù)之外,也可以實(shí)時(shí)輸入集的屬性值,但不允許實(shí)時(shí)輸入集成員名。 3.1.4 指定屬性為一個(gè)值可以在數(shù)據(jù)聲明的右邊輸入一個(gè)值來(lái)把所有的成員的該屬性指定為一個(gè)值??聪旅娴睦?。例3.6sets: days /MO,TU,
23、WE,TH,FR,SA,SU/:needs;endsetsdata: needs = 20;enddataLINGO將用20指定days集的所有成員的needs屬性。對(duì)于多個(gè)屬性的情形,見(jiàn)下例。例3.7sets: days /MO,TU,WE,TH,FR,SA,SU/:needs,cost;endsetsdata: needs cost = 20 100;enddata 3.1.5 數(shù)據(jù)部分的未知數(shù)值有時(shí)只想為一個(gè)集的部分成員的某個(gè)屬性指定值,而讓其余成員的該屬性保持未知,以便讓LINGO去求出它們的最優(yōu)值。在數(shù)據(jù)聲明中輸入兩個(gè)相連的逗號(hào)表示該位置對(duì)應(yīng)的集成員的屬性值未知。兩個(gè)逗號(hào)間可以有空格
24、。例3.8sets: years/1.5/: capacity;endsetsdata: capacity = ,34,20,;enddata屬性capacity的第2個(gè)和第3個(gè)值分別為34和20,其余的未知。 3.2 模型的初始部分初始部分是LINGO提供的另一個(gè)可選部分。在初始部分中,可以輸入初始聲明(initialization statement),和數(shù)據(jù)部分中的數(shù)據(jù)聲明相同。對(duì)實(shí)際問(wèn)題的建模時(shí),初始部分并不起到描述模型的作用,在初始部分輸入的值僅被LINGO求解器當(dāng)作初始點(diǎn)來(lái)用,并且僅僅對(duì)非線性模型有用。和數(shù)據(jù)部分指定變量的值不同,LINGO求解器可以自由改變初始部分初始化的變量的值
25、。一個(gè)初始部分以“init:”開(kāi)始,以“endinit”結(jié)束。初始部分的初始聲明規(guī)則和數(shù)據(jù)部分的數(shù)據(jù)聲明規(guī)則相同。也就是說(shuō),我們可以在聲明的左邊同時(shí)初始化多個(gè)集屬性,可以把集屬性初始化為一個(gè)值,可以用問(wèn)號(hào)實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理,還可以用逗號(hào)指定未知數(shù)值。例3.9init: X, Y = 0, .1;endinitY=log(X);X2+Y2=1;好的初始點(diǎn)會(huì)減少模型的求解時(shí)間。在這一節(jié)中,我們僅帶大家接觸了一些基本的數(shù)據(jù)輸入和初始化概念,不過(guò)現(xiàn)在你應(yīng)該可以輕松的為自己的模型加入原始數(shù)據(jù)和初始部分啦。4 LINGO函數(shù) 有了前幾節(jié)的基礎(chǔ)知識(shí),再加上本節(jié)的內(nèi)容,你就能夠借助于LINGO建立并求解復(fù)雜的優(yōu)
26、化模型了。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ù)用來(lái)定義變量的取值范圍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ù)4.1 基本運(yùn)算符這些運(yùn)算符是非?;镜模踔量梢圆徽J(rèn)為它們是一類函數(shù)。事實(shí)上,在LINGO中它們是非常重要的。4.1.1 算術(shù)運(yùn)算符算術(shù)運(yùn)算符是針對(duì)數(shù)值
27、進(jìn)行操作的。LINGO提供了5種二元運(yùn)算符:乘方乘除加減LINGO唯一的一元算術(shù)運(yùn)算符是取反函數(shù)“”。這些運(yùn)算符的優(yōu)先級(jí)由高到底為:高(取反) 低運(yùn)算符的運(yùn)算次序?yàn)閺淖蟮接野磧?yōu)先級(jí)高低來(lái)執(zhí)行。運(yùn)算的次序可以用圓括號(hào)“()”來(lái)改變。例4.1 算術(shù)運(yùn)算符示例。253,(24)5等等。4.1.2 邏輯運(yùn)算符在LINGO中,邏輯運(yùn)算符主要用于集循環(huán)函數(shù)的條件表達(dá)式中,來(lái)控制在函數(shù)中哪些集成員被包含,哪些被排斥。在創(chuàng)建稀疏集時(shí)用在成員資格過(guò)濾器中。LINGO具有種邏輯運(yùn)算符:#not# 否定該操作數(shù)的邏輯值,not是一個(gè)一元運(yùn)算符#eq#若兩個(gè)運(yùn)算數(shù)相等,則為true;否則為flase#ne# 若兩個(gè)運(yùn)
28、算符不相等,則為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時(shí),結(jié)果為true;否則為flase#or# 僅當(dāng)兩個(gè)參數(shù)都為false時(shí),結(jié)果為false;否則為true這些運(yùn)算符的優(yōu)先級(jí)由高到低為:高 #not# #eq# #ne# #gt# #ge# #lt# #le#低
29、 #and# #or#例4.2 邏輯運(yùn)算符示例2 #gt# 3 #and# 4 #gt# 2,其結(jié)果為假(0)。 4.1.3 關(guān)系運(yùn)算符在LINGO中,關(guān)系運(yùn)算符主要是被用在模型中,來(lái)指定一個(gè)表達(dá)式的左邊是否等于、小于等于、或者大于等于右邊,形成模型的一個(gè)約束條件。關(guān)系運(yùn)算符與邏輯運(yùn)算符#eq#、#le#、#ge#截然不同,前者是模型中該關(guān)系運(yùn)算符所指定關(guān)系的為真描述,而后者僅僅判斷一個(gè)該關(guān)系是否被滿足:滿足為真,不滿足為假。 LINGO有三種關(guān)系運(yùn)算符:“=”、“=”。LINGO中還能用“”表示大于等于關(guān)系。LINGO并不支持嚴(yán)格小于和嚴(yán)格大于關(guān)系運(yùn)算符。然而,如果需要嚴(yán)格小于和嚴(yán)格大于關(guān)系
30、,比如讓A嚴(yán)格小于B:AB,那么可以把它變成如下的小于等于表達(dá)式:A+=B,這里是一個(gè)小的正數(shù),它的值依賴于模型中A小于B多少才算不等。下面給出以上三類操作符的優(yōu)先級(jí):高#not# (取反) #eq# #ne# #gt# #ge# #lt# #le#and# #or#低 = 4.2 數(shù)學(xué)函數(shù)LINGO提供了大量的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù):abs(x) 返回x的絕對(duì)值sin(x) 返回x的正弦值,x采用弧度制cos(x) 返回x的余弦值tan(x) 返回x的正切值exp(x) 返回常數(shù)e的x次方log(x) 返回x的自然對(duì)數(shù)lgm(x) 返回x的gamma函數(shù)的自然對(duì)數(shù)sign(x) 如果x=0時(shí),返回不超
31、過(guò)x的最大整數(shù);當(dāng)x= required(J);end計(jì)算的部分結(jié)果為Global optimal solution found at iteration: 0 Objective value: 22.00000 Variable Value Reduced Cost REQUIRED( MON) 20.00000 0.000000 REQUIRED( TUE) 16.00000 0.000000 REQUIRED( WED) 13.00000 0.000000 REQUIRED( THU) 16.00000 0.000000 REQUIRED( FRI) 19.00000 0.000000
32、REQUIRED( SAT) 14.00000 0.000000 REQUIRED( SUN) 12.00000 0.000000 START( MON) 8.000000 0.000000 START( TUE) 2.000000 0.000000 START( WED) 0.000000 0.3333333 START( THU) 6.000000 0.000000 START( FRI) 3.000000 0.000000 START( SAT) 3.000000 0.000000 START( SUN) 0.000000 0.000000從而解決方案是:每周最少需要22個(gè)職員,周一安排8人,周二安排2人,周三無(wú)需安排人,周四安排6人,周五和周六都安排3人,周日無(wú)需安排人。 4.8 輸入和輸出函數(shù)輸入和輸出函數(shù)可以把模型和外部數(shù)據(jù)比如文本文件、數(shù)據(jù)庫(kù)和電子表格等連接起來(lái)。1file
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)食品產(chǎn)業(yè)園行業(yè)現(xiàn)狀調(diào)研及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)隨車起重機(jī)市場(chǎng)前景趨勢(shì)及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)防火門行業(yè)發(fā)展策略規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)鉆機(jī)電控系統(tǒng)市場(chǎng)十三五規(guī)劃與發(fā)展策略研究報(bào)告
- 2025-2030年中國(guó)訓(xùn)練健身器材行業(yè)需求現(xiàn)狀及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)組合電器產(chǎn)業(yè)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 武漢體育學(xué)院《機(jī)制設(shè)計(jì)理論及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄂爾多斯職業(yè)學(xué)院《功能表面設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大同師范高等專科學(xué)?!堆芯啃詫W(xué)習(xí)指導(dǎo)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥職業(yè)技術(shù)學(xué)院《社會(huì)企業(yè)》2023-2024學(xué)年第二學(xué)期期末試卷
- 川教版信息技術(shù)六年級(jí)下冊(cè)全冊(cè)教案【新教材】
- 2024-2025學(xué)年統(tǒng)編版語(yǔ)文九年級(jí)下冊(cè)第7課《溜索》任務(wù)驅(qū)動(dòng)型教學(xué)設(shè)計(jì)
- (國(guó)賽)5G組網(wǎng)與運(yùn)維賽項(xiàng)備考試題庫(kù)及答案
- 代寫文章合同模板
- 初中體育與健康 50米加速跑及途中跑 教案
- 自考00808商法押題及答案解析
- 2024年國(guó)考公務(wù)員行測(cè)真題及參考答案
- 2.2.1藻類、苔蘚和蕨類課件人教版生物七年級(jí)上冊(cè)2024新教材
- 2024-2025學(xué)年新教材高中政治 第1單元 民事權(quán)利與義務(wù) 第1課 第1框 認(rèn)真對(duì)待民事權(quán)利與義務(wù)教案 新人教版選擇性必修2
- 常見(jiàn)化療藥物及運(yùn)用
- 自動(dòng)識(shí)別技術(shù)及應(yīng)用(高職)全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論