-
大小: 312KB文件類型: .doc金幣: 1下載: 0 次發(fā)布日期: 2022-10-04
- 語言: 其他
- 標(biāo)簽:
資源簡介
LINGO是用來求解線性和非線性優(yōu)化問題的簡易工具。LINGO內(nèi)置了一種建立最優(yōu)化模型的語言,可以簡便地表達(dá)大規(guī)模問題,利用LINGO高效的求解器可快速求解并分析結(jié)果。
§1 LINGO快速入門
當(dāng)你在windows下開始運行LINGO系統(tǒng)時,會得到類似下面的一個窗口:
外層是主框架窗口,包含了所有菜單命令和工具條,其它所有的窗口將被包含在主窗口之下。在主窗口內(nèi)的標(biāo)題為LINGO Model – LINGO1的窗口是LINGO的默認(rèn)模型窗口,建立的模型都都要在該窗口內(nèi)編碼實現(xiàn)。下面舉兩個例子。
例1.1 如何在LINGO中求解如下的LP問題:
在模型窗口中輸入如下代碼:
min=2*x1+3*x2;
x1+x2>=350;
x1>=100;
2*x1+x2<=600;
然后點擊工具條上的按鈕 即可。
例1.2 使用LINGO軟件計算6個發(fā)點8個收點的最小費用運輸問題。產(chǎn)銷單位運價如下表。
單
位 銷地
運
價
產(chǎn)地 B1 B2 B3 B4 B5 B6 B7 B8 產(chǎn)量
A1 6 2 6 7 4 2 5 9 60
A2 4 9 5 3 8 5 8 2 55
A3 5 2 1 9 7 4 3 3 51
A4 7 6 7 3 9 2 7 1 43
A5 2 3 9 5 7 2 6 5 41
A6 5 5 2 2 8 1 4 3 52
銷量 35 37 22 32 41 32 43 38
使用LINGO軟件,編制程序如下:
model:
!6發(fā)點8收點運輸問題;
sets:
warehouses/wh1..wh6/: capacity;
vendors/v1..v8/: demand;
links(warehouses,vendors): 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
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
end
然后點擊工具條上的按鈕 即可。
為了能夠使用LINGO的強大功能,接著第二節(jié)的學(xué)習(xí)吧。
§2 LINGO中的集
對實際問題建模的時候,總會遇到一群或多群相聯(lián)系的對象,比如工廠、消費者群體、交通工具和雇工等等。LINGO允許把這些相聯(lián)系的對象聚合成集(sets)。一旦把對象聚合成集,就可以利用集來最大限度的發(fā)揮LINGO建模語言的優(yōu)勢。
現(xiàn)在我們將深入介紹如何創(chuàng)建集,并用數(shù)據(jù)初始化集的屬性。學(xué)完本節(jié)后,你對基于建模技術(shù)的集如何引入模型會有一個基本的理解。
2.1 為什么使用集
集是LINGO建模語言的基礎(chǔ),是程序設(shè)計最強有力的基本構(gòu)件。借助于集,能夠用一個單一的、長的、簡明的復(fù)合公式表示一系列相似的約束,從而可以快速方便地表達(dá)規(guī)模較大的模型。
2.2 什么是集
集是一群相聯(lián)系的對象,這些對象也稱為集的成員。一個集可能是一系列產(chǎn)品、卡車或雇員。每個集成員可能有一個或多個與之有關(guān)聯(lián)的特征,我們把這些特征稱為屬性。屬性值可以預(yù)先給定,也可以是未知的,有待于LINGO求解。例如,產(chǎn)品集中的每個產(chǎn)品可以有一個價格屬性;卡車集中的每輛卡車可以有一個牽引力屬性;雇員集中的每位雇員可以有一個薪水屬性,也可以有一個生日屬性等等。
LINGO有兩種類型的集:原始集(primitive set)和派生集(derived set)。
一個原始集是由一些最基本的對象組成的。
一個派生集是用一個或多個其它集來定義的,也就是說,它的成員來自于其它已存在的集。
2.3 模型的集部分
集部分是LINGO模型的一個可選部分。在LINGO模型中使用集之前,必須在集部分事先定義。集部分以關(guān)鍵字“sets:”開始,以“endsets”結(jié)束。一個模型可以沒有集部分,或有一個簡單的集部分,或有多個集部分。一個集部分可以放置于模型的任何地方,但是一個集及其屬性
代碼片段和文件信息
評論
共有 條評論