數(shù)學規(guī)劃與Lingo課件_第1頁
數(shù)學規(guī)劃與Lingo課件_第2頁
數(shù)學規(guī)劃與Lingo課件_第3頁
數(shù)學規(guī)劃與Lingo課件_第4頁
數(shù)學規(guī)劃與Lingo課件_第5頁
已閱讀5頁,還剩223頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2013數(shù)學建模培訓11/19/202212013數(shù)學建模培訓11/11/20221第七講數(shù)學規(guī)劃與Lingo11/19/20222第七講數(shù)學規(guī)劃與Lingo11/11/20222一、引言11/19/20223一、引言11/11/20223在實際中,經(jīng)常會遇到如何利用現(xiàn)有資源來安排生產(chǎn),以取得最大經(jīng)濟效益的問題,這類問題構(gòu)成了運籌學的一個重要分支——數(shù)學規(guī)劃。數(shù)學規(guī)劃包括線性規(guī)劃、整數(shù)規(guī)劃、目標規(guī)劃、非線性規(guī)劃、動態(tài)規(guī)劃等。數(shù)學規(guī)劃是建模競賽中最常見的11/19/20224在實際中,經(jīng)常會遇到如何利用現(xiàn)有資源來安排生模型,2005B,2006A,2007B,2011B等均與數(shù)學規(guī)劃密切相關(guān)??梢杂肕atlab求解數(shù)學規(guī)劃,但最便捷的方法是利用優(yōu)化專用軟件包Lingo。Lingo不僅能精確、快捷地求解包括數(shù)學規(guī)劃在內(nèi)的幾乎所有的最優(yōu)化問題,而且Lingo內(nèi)含一種建模語言,可方便地描述較大規(guī)模的最優(yōu)11/19/20225模型,2005B,2006A,2007B,2011B等化問題。本講內(nèi)容包括:(1)線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃及Lingo解法;(2)Lingo建模語言;(3)用Lingo求解運輸問題、指派問題、典型圖論模型(最短路、最大流、最小費用最大流、最小生成樹);(4)數(shù)學規(guī)劃綜合建模實例。11/19/20226化問題。11/11/20226下面給出本講學習大綱,以方便大家學習。1.能熟練建立并用Lingo求解線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃。2.理解、掌握Lingo中集的概念與用法。3.熟悉Lingo典型程序的結(jié)構(gòu),特別是目標函數(shù)與約束部分。11/19/20227下面給出本講學習大綱,以方便大家學習。11/4.能將較為復雜的數(shù)學規(guī)劃轉(zhuǎn)化為典型的Lingo程序。5.熟悉、掌握Lingo中的常用算符和函數(shù)。6.能應用Lingo求解運輸、指派、最短路、最大流、最小生成樹等問題。11/19/202284.能將較為復雜的數(shù)學規(guī)劃轉(zhuǎn)化為典型的Lingo程序。11二、數(shù)學規(guī)劃及Lingo求解11/19/20229二、數(shù)學規(guī)劃及Lingo求解11/11/202291.線性規(guī)劃

引例某工廠生產(chǎn)的機床每臺需要2.9m,2.1m,1.5m的軸各一根。這些軸用同一種圓鋼制作,圓鋼的長度為7.4m。如果要生產(chǎn)100臺機床,應如何下料,才能使得用料最???

分析將7.4m的圓鋼截成三種軸,可以有如下幾種下料方式:11/19/2022101.線性規(guī)劃11/11/202210方式長度B1B2B3B4B5B6B7B8需求2.9211100001002.1021032101001.510130234100余料0.10.30.901.10.20.81.411/19/202211方式B1B2B3B4B5B6B7B8需求2.92111000設(shè)用B1,…,B8方式下料的圓鋼的根數(shù)分別為x1,…,x8,則可建立數(shù)學模型如下:11/19/202212設(shè)用B1,…,B8方式下料的圓鋼的根數(shù)分別為這類優(yōu)化問題稱為數(shù)學規(guī)劃。

xi稱為決策變量,S稱為目標函數(shù),s.t后的式子稱為約束條件。由于本問題中的目標函數(shù)和約束條件均為線性,故稱為線性規(guī)劃。線性規(guī)劃是運籌學的重要分支,許多問題都可以歸結(jié)為線性規(guī)劃。如下料問題、資源配置問題、運輸問題11/19/202213這類優(yōu)化問題稱為數(shù)學規(guī)劃。11/11/202和指派問題等。

例1某3種產(chǎn)品需要原材料和勞動力兩種資源。每件產(chǎn)品所需資源、現(xiàn)有資源及產(chǎn)品價格如下表。試確定3種產(chǎn)品的日產(chǎn)量以使總產(chǎn)值最大。產(chǎn)品資源123現(xiàn)有資源原材料436120勞動力245100價格45311/19/202214和指派問題等。產(chǎn)品123現(xiàn)有資源原材料436120勞動力24解(資源配置問題)設(shè)3種產(chǎn)品的日產(chǎn)量分別為x1,x2,x3,則線性規(guī)劃模型為:11/19/202215解(資源配置問題)設(shè)3種產(chǎn)品的日產(chǎn)量分別例2磚廠A1,A2產(chǎn)量分別為23萬和27萬。它們產(chǎn)生的磚供應B1,B2,B3三個工地,需求量分別為17萬,18萬,15萬。磚廠到工地的運價如下表。應如何調(diào)運,才能使總運費最???平衡表運價表B1B2B3供應量B1B2B3A123506070A2276011060需求1718155011/19/202216例2磚廠A1,A2產(chǎn)量分別為23萬和27解(運輸問題)設(shè)磚廠Ai供應工地Bj的數(shù)量為xij,則線性規(guī)劃模型為:11/19/202217解(運輸問題)設(shè)磚廠Ai供應工地Bj的數(shù)運輸問題除了用線性規(guī)劃求解外,還可用專門方法—表上作業(yè)法或Lingo編程語言求解。本例為供求平衡運輸問題。若供求不平衡,可通過虛擬生產(chǎn)商或銷售地的方法將其轉(zhuǎn)化為供求平衡運輸問題。11/19/202218運輸問題除了用線性規(guī)劃求解外,還可用專門方法例3設(shè)有n件工作B1,…,Bn指派給n個人A1,…,An去做,每人只做一件工作,每件工作只指派給一個人做。設(shè)Ai完成Bj的工時為cij,如下表所示。問如何指派,才能使完成全部工作所需的總工時最少?11/19/202219例3設(shè)有n件工作B1,…,Bn指派給n個人工作人員B1B2…BnA1c11c12…c1nA2c21c22…c2n……………Ancn1cn2…cnn11/19/202220工作B1B2…BnA1c11c12…c1nA2c21c22…解(指派問題)設(shè)則線性規(guī)劃模型為:11/19/202221解(指派問題)設(shè)11/11/202221

11/19/20222211/11/202222指派問題除了用線性規(guī)劃求解外,還可用專門方法—匈牙利法求解。若決策變量為整數(shù),則稱此線性規(guī)劃為整數(shù)規(guī)劃。特別地,當決策變量只取0或1時,稱之為0-1規(guī)劃。顯然,指派問題為典型的0-1規(guī)劃。11/19/202223指派問題除了用線性規(guī)劃求解外,還可用專門方法2.線性規(guī)劃的Lingo求解Lindo是Chicago大學的Schrage教授于1980年前后開發(fā)的專門用于求解數(shù)學規(guī)劃的軟件包,版權(quán)現(xiàn)歸屬美國Lindo系統(tǒng)公司。Lindo軟件包中包含Lindo,Gino,Lingo,LingoNL和“What’sBest”等,統(tǒng)稱為Lindo,其中以Lindo和Lingo最為常用。11/19/2022242.線性規(guī)劃的Lingo求解11/11/202224因Lindo的功能已全部被Lingo所覆蓋,Lindo已逐漸淡出市場。Lingo除了可以求解線性規(guī)劃、整數(shù)規(guī)劃和二次規(guī)劃外,還可以求解非線性規(guī)劃和線性、非線性方程組。此外,它還內(nèi)置的建模語言和一些常用的數(shù)學函數(shù),可以簡便、直觀地描述大規(guī)模優(yōu)化問題。11/19/202225因Lindo的功能已全部被Lingo所覆蓋,Lingo有多種版本,如學生版、演示版、高級版、發(fā)行版、工業(yè)版等,主要區(qū)別在于對優(yōu)化規(guī)模(變量和約束個數(shù))有不同的限制。下面簡要介紹如何用Lingo求解線性規(guī)劃、整數(shù)規(guī)劃和非線性規(guī)劃。引例的Lingo程序如下:11/19/202226Lingo有多種版本,如學生版、演示版、高級model:(可省略)min=x1+x2+x3+x4+x5+x6+x7+x8;2*x1+x2+x3+x4>100;2*x2+x3+3*x5+2*x6+x7>100;x1+x3+3*x4+2*x6+3*x7+4*x8>100;end(可省略)然后點擊工具條上的按鈕即可。11/19/202227model:(可省略)11/11/2022(1)Lingo已假設(shè)所有變量均非負,非負約束不必再寫入程序。必要時可用變量界定函數(shù)@free(x)解除變量x的非負假設(shè);(2)約束條件中的≥和≤可用>和<代替。例1和例2的Lingo程序分別為:11/19/202228(1)Lingo已假設(shè)所有變量均非負,非負max=4*x1+5*x2+3*x3;4*x1+3*x2+6*x3<120;2*x1+4*x2+5*x3<100;min=50*x11+60*x12+70*x13+60*x21+110*x22+60*x23;x11+x12+x13=23;x21+x22+x23=27;x11+x21=18;x12+x22=17;x13+x23=15;11/19/202229max=4*x1+5*x2+3*x3;11/

例4求解整數(shù)規(guī)劃:Lingo程序如下:11/19/202230例4求解整數(shù)規(guī)劃:11/11/202230max=2*x+3*y;4*x+3*y<10;3*x+5*y<12;@gin(x);@gin(y);程序中的@gin(x)為函數(shù),表示x為整數(shù)。11/19/202231max=2*x+3*y;11/11/2022

例5求解下列非線性規(guī)劃:Lingo程序如下:11/19/202232例5求解下列非線性規(guī)劃:11/11/2022min=15*y+3*((5000-x)^2+y^2)^0.5+5*(x^2+(y-2000)^2)^0.5+4*((x-200)^2+(5600-y)^2)^0.5+12*((3000-x)^2+(4800-y)^2)^0.5+255*y/100;6000-2*x/5-y>0;@bnd(0,x,5000);程序中的@bnd為界定函數(shù)。11/19/202233min=15*y+3*((5000-x)^2三、Lingo中的集與建模語言11/19/202234三、Lingo中的集與建模語言11/11/202234前面例子中的目標函數(shù)和約束都可直接列出。但在許多大型模型中,可能需要表達一組相似的計算和約束。若再使用直接列出的方法,就要重復鍵入許多相似的計算和約束。Lingo允許把這些相聯(lián)系的對象定義成集。借助集,能夠用一個簡明的復合公式表示一系列相似的約束,11/19/202235前面例子中的目標函數(shù)和約束都可直接列出。但在從而可以快速方便地表達規(guī)模較大的模型。集是LINGO建模語言的基礎(chǔ),是程序設(shè)計最強有力的基本構(gòu)件。下面介紹集的相關(guān)知識。只有掌握這些內(nèi)容后,才能真正熟練掌握利用Lingo描述數(shù)學模型的基本方法。11/19/202236從而可以快速方便地表達規(guī)模較大的模型。集是LINGO建模語言1.集的基本概念集其實就是一群相關(guān)對象組成的集合,這些對象稱為集的成員。每個成員可能有一個或多個相關(guān)聯(lián)的特征,稱之為屬性。屬性值可以預先給定,也可以未知,有待Lingo求解。集的概念比較抽象、難懂。下面通過一個例子加以說明。11/19/2022371.集的基本概念11/11/202237例6某船廠需要決定下4個季度的產(chǎn)量。4個季度的需求量分別是40,60,72,25。每季度正常生產(chǎn)能力是40,每船的生產(chǎn)費用為400美元。若加班,每船的生產(chǎn)費用為450美元。每季度末,每船的庫存費用為20美元。假定生產(chǎn)提前期為0,初始庫存為10,問如何安排生產(chǎn)可使總費用最小?11/19/202238例6某船廠需要決定下4個季度的產(chǎn)量。4個季用DEM,RP,OP,INV分別表示需求量、正常產(chǎn)量、加班產(chǎn)量、庫存量,則它們每個季度都有一個對應值,即它們均為四個元素構(gòu)成的數(shù)組。其中,DEM已知,其余未知。易見,問題的數(shù)學模型為:11/19/202239用DEM,RP,OP,INV分別表示需求量、上述問題的程序本不復雜,但遺憾的是Lingo沒有數(shù)組的概念,所以上述模型的Lingo程序較為繁瑣。11/19/20224011/11/202240考慮到DEM,RP,OP,INV均與季度有關(guān),引入4個季度組成的集合QUARTERS={1,2,3,4},DEM,RP,OP,INV對此集合的每個元素1,2,3,4分別對應一個值,見后圖。QUARTERS={1,2,3,4}稱為集合,DEM,RP,OP,INV稱為該集合的屬性。11/19/202241考慮到DEM,RP,OP,INV均與季其實,集合的屬性可理解為“數(shù)組”,而集合中的元素即為數(shù)組的“下標”。11/19/20224211/11/202242Lingo有兩種集:原始集和派生集。原始集由最基本的對象組成。派生集是從其它集派生得來的,它可以是另一個集的子集,也可以由其它幾個集中的元素組成。也就是說,它的成員來自于其它已存在的集。11/19/202243Lingo有兩種集:原始集和派生集。11/1原始集的定義包括:集的名字;集的成員(可選);集成員的屬性(可選)。定義原始集的語法為:setname[/member_list/][:attribute_list];“[]”表示該部分內(nèi)容可選。setname是集的名字,最好具有較11/19/202244原始集的定義包括:集的名字;集的成員(可選)強的可讀性。集名字、集成員名以及集屬性名符合一般命名規(guī)則。例如,例5中的集合可用QUARTERS/1,2,3,4/:DEM,RP,OP,INV;來定義。11/19/202245強的可讀性。集名字、集成員名以及集屬性名符合一般命名規(guī)則。1有時需要將兩個及兩個以上的集合組成一個新集合,稱之為派生集。派生集的定義包括:集的名字;父集的名字;集成員(可選);集成員的屬性(可選)。定義派生集的語法為:setname(parent_set_list)[/member_list/][:attribute_list];11/19/202246有時需要將兩個及兩個以上的集合組成一個新集合setname是集的名字,parent_set_list是已定義的集的列表,多個時必須用逗號隔開。如果沒有指定成員列表,那么Lingo會自動創(chuàng)建父集成員的所有組合作為派生集的成員。派生集的父集既可以是原始集,也可以是其它的派生集。派生集的實例見例7。11/19/202247setname是集的名字,parent_se2.Lingo的程序結(jié)構(gòu)一個典型的Lingo程序由model:開頭,以end結(jié)尾,程序由集、目標函數(shù)與約束、數(shù)據(jù)和初始化四部分組成。其中只有目標函數(shù)與約束部分是必須的,其余三個部分為可選部分。在使用集之前,必須在集部分事先定義。集部分以關(guān)鍵字sets:開始,11/19/2022482.Lingo的程序結(jié)構(gòu)11/11/202248以endsets結(jié)束。一個模型可以沒有集部分、有一個集部分或有多個集部分。一個集部分可以放置于模型的任何地方,但是一個集及其屬性在模型約束中被引用之前必須先定義。數(shù)據(jù)部分的作用是為決策變量設(shè)置初始值,以data:開始,以enddata結(jié)束。11/19/202249以endsets結(jié)束。一個模型可以沒有集部分、有一個集部分或

初始部分為部分參數(shù)指定初始值,以init:開始,以endinit結(jié)束。目標函數(shù)與約束部分是Lingo程序的核心部分,通常以MIN或MAX開頭但沒有明顯的結(jié)束標記。目標函數(shù)與約束部分一般要用到Lingo的一些內(nèi)部函數(shù),如@FOR,@SUM等。11/19/202250初始部分為部分參數(shù)指定初始值,以init:這部分是初學者感到困難、不易掌握的內(nèi)容。下面給出兩個典型Lingo程序。例6的Lingo程序MODEL:SETS:QUARTERS/1,2,3,4/:DEM,RP,OP,INV;ENDSETSMIN=@SUM(QUARTERS:400*RP+450*OP+20*INV);11/19/202251這部分是初學者感到困難、不易掌握的內(nèi)容。11

@FOR(QUARTERS(I):RP(I)<40);@FOR(QUARTERS(I)|I#GT#1:INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I););INV(1)=10+RP(1)+OP(1)-DEM(1);DATA:DEM=40,60,75,25;ENDDATAEND11/19/202252@FOR(QUARTERS(I):RP(I)<40

例7建筑工地的位置(用平面坐標a,b表示,單位km)及水泥用量d(單位t)由下表給出。目前有兩個臨時料場位于P(5,1),Q(2,7),日儲量各有20t。求從A,B兩料場分別向各工地運送多少噸水泥,使總的噸公里數(shù)最???兩個新的料場應建在何處,節(jié)省的噸公里有多少?11/19/202253例7建筑工地的位置(用平面坐標a,b表示,記工地位置為(ai,bi),水泥日用量為di,料場位置為(xj,yj),日儲量為ej,從料場j向工地i的運送量為cij,則數(shù)學模型為11/19/20225411/11/202254當使用現(xiàn)有料場時,決策變量只有cij,屬線性規(guī)劃;當為新料場選址時,決策變量為cij和xj,yj,屬非線性規(guī)劃。11/19/20225511/11/202255下面給出Lingo程序。在求解非線性規(guī)劃時,為了盡可能求得全局最優(yōu)解,可考慮開啟全局優(yōu)化器。但可能需耗費很長時間,且不能保證一定求得全局最優(yōu)解。

注試用版不一定可用全局優(yōu)化器。11/19/202256下面給出Lingo程序。11/11/2022使用現(xiàn)有料場時的線性規(guī)劃MODEL:sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;11/19/202257使用現(xiàn)有料場時的線性規(guī)劃11/11/202257d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddatamin=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));@for(demand(i):@sum(supply(j):c(i,j))=d(i););@for(supply(j):@sum(demand(i):c(i,j))<e(j););END11/19/202258d=3,5,4,7,6,11;e=20,20;11/11/現(xiàn)對上述程序說明如下:(1)link為由demand和supply生成的派生集,說明見后;(2)料場位置x,y視為固定數(shù)據(jù);(3)x,y=5,1,2,7相當于x=5,2;y=1,7;,即Lingo為按列賦值。11/19/202259現(xiàn)對上述程序說明如下:11/11/20225料場待定時的非線性規(guī)劃MODEL:sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;11/19/202260料場待定時的非線性規(guī)劃11/11/202260d=3,5,4,7,6,11;e=20,20;enddatainit:x,y=5,1,2,7;endinitmin=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));@for(demand(i):@sum(supply(j):c(i,j))=d(i););@for(supply(j):@sum(demand(i):c(i,j))<e(j););11/19/202261d=3,5,4,7,6,11;e=20,20;11/11/@for(supply:@free(x);@free(y););END

(1)本程序中的料場位置x,y為初始數(shù)據(jù),即x,y與其它變量一樣可以被優(yōu)化;此時,初始化段并無實際意義。(2)@free(x)的作用為去除x的非負限制。11/19/202262@for(supply:@free(x);@free(y)在程序中,由于運送量cij和需求量di及供應量ej均有關(guān),即cij相當于二維數(shù)組,故根據(jù)需求集合demand和供應集合supply定義了一個新集合link,定義語句為:link(demand,supply):c;link其實就是demand和supply中的所有元素組成的二元集合,即11/19/202263在程序中,由于運送量cij和需求量di亦即link是demand和supply的派生集。11/19/20226411/11/202264四、Lingo的運算符與函數(shù)11/19/202265四、Lingo的運算符與函數(shù)11/11/202265Lingo有8種類型的函數(shù):1.基本運算符:算術(shù)運算符、邏輯運算符和關(guān)系運算符;2.數(shù)學函數(shù);3.金融函數(shù):;4.概率函數(shù):概率和統(tǒng)計函數(shù);5.變量界定函數(shù):這類函數(shù)用來定義變量的取值范圍;11/19/202266Lingo有8種類型的函數(shù):11/11/206.集操作、循環(huán)函數(shù):這類函數(shù)對集的元素進行特定的操作;7.數(shù)據(jù)輸入輸出函數(shù):這類函數(shù)可以進行數(shù)據(jù)的輸入輸出;8.輔助函數(shù):各種Lingo特有的函數(shù)。11/19/2022676.集操作、循環(huán)函數(shù):這類函數(shù)對集的元素進1.基本運算符基本運算符在Lingo中是非?;?,非常重要的。(1)算術(shù)運算符Lingo提供了5種二元運算符:^乘方;﹡乘;/除;﹢加;﹣減。Lingo唯一的一元算術(shù)運算符是取反函數(shù)“﹣”。11/19/2022681.基本運算符11/11/202268這些運算符的優(yōu)先級為:高﹣(取反)^﹡/低﹢﹣運算符的運算次序為從左到右按優(yōu)先級高低來執(zhí)行。運算的次序可以用圓括號()來改變。11/19/202269這些運算符的優(yōu)先級為:11/11/202269(2)邏輯運算符在Lingo中,邏輯運算符主要用于判斷某一變量是否屬于一個集合。如對某個集合元素求和時就需要判斷某個元素是否屬于該集合。Lingo具有下列9種邏輯運算符:#not#否定該操作數(shù)的邏輯值,#not#是一個一元運算符;11/19/202270(2)邏輯運算符11/11/202270#eq#若兩邊相等,則為true,否則為false;#ne#若兩邊不相等,則為true,否則為false;#gt#若左邊嚴格大于右邊,則為true,否則為false;#ge#若左邊大于或等于右邊,則為true,否則為false;11/19/202271#eq#若兩邊相等,則為true,否則為#lt#若左邊嚴格小于右邊,則為true,否則為false;#le#若左邊小于或等于右邊,則為true,否則為false;#and#當兩個參數(shù)都為true時,結(jié)果為true,否則為false;#or#當兩個參數(shù)都為false時,結(jié)果為false,否則為true。11/19/202272#lt#若左邊嚴格小于右邊,則為true這些運算符的優(yōu)先級為:高#not##eq##ne##gt##ge##lt##le#低#and##or#(3)關(guān)系運算符在Lingo中,關(guān)系運算符主要是被用來指出一個表達式的左邊是否等于、小于等于、或者大于等于右邊,11/19/202273這些運算符的優(yōu)先級為:11/11/20227形成模型的一個約束條件。關(guān)系運算符與邏輯運算符#eq#、#le#、#ge#具有本質(zhì)的區(qū)別,前者是模型中該關(guān)系運算符所指定關(guān)系的為真描述,而后者僅僅判斷一個該關(guān)系是否被滿足:滿足為真,不滿足為假。Lingo有三種關(guān)系運算符:“=”,“<=”和“>=”。11/19/202274形成模型的一個約束條件。關(guān)系運算符與邏輯運算符#eq#、#lLingo不支持嚴格小于和嚴格大于關(guān)系運算符,Lingo默認“<”和“>”即表示“<=”和“>=”。如果需要嚴格小于和嚴格大于關(guān)系,比如A<B,可以把它變成小于等于表達式:A+ε<=B,這里ε是一個小的正數(shù),它的值依賴于模型中A小于B多少才算不等。11/19/202275Lingo不支持嚴格小于和嚴格大于關(guān)系運算符上述三類操作符的優(yōu)先級為:高#not#﹣(取反)^﹡/﹢﹣#eq##ne##gt##ge##lt##le##and##or#低<==>=。11/19/202276上述三類操作符的優(yōu)先級為:11/11/2022.數(shù)學函數(shù)Lingo提供了兩類數(shù)學函數(shù):一般函數(shù)和三角函數(shù)。@abs(x)x的絕對值;@sin(x)x的正弦值;@cos(x)x的余弦值;@tan(x)x的正切值;@exp(x)常數(shù)e的x次方;11/19/2022772.數(shù)學函數(shù)11/11/202277@log(x)x的自然對數(shù);@sign(x)符號函數(shù);@floor(x)x的整數(shù)部分。當x>=0時,返回不超過x的最大整數(shù);當x<0時,返回不低于x的最大整數(shù);@smax(smin)(x1,x2,…,xn)x1,x2,…,xn中的最大(小)值。11/19/202278@log(x)x的自然對數(shù);11/113.集合循環(huán)函數(shù)與操作函數(shù)集合循環(huán)函數(shù)可對集合中的元素(下標)進行循環(huán)操作,其用法為:@function(setname[(set_index_list)[|condition]]:expression_list);其中,function是集合函數(shù)名,例如,FOR,MAX,MIN,PROD,SUM;setname是集合名;set_index_list是集合11/19/2022793.集合循環(huán)函數(shù)與操作函數(shù)11/11/202279索引列表;condition是過濾條件;expression_list是表達式列表。集合操作函數(shù)是指對集合進行操作的函數(shù),主要有@IN,@INDEX,@WRAP,@SIZE。在集合循環(huán)和集合操作函數(shù)中,最常用的是@FOR和@SUM。請各位務必要結(jié)合實例熟練掌握。11/19/202280索引列表;condition是過濾條件;expressio4.其它函數(shù)除前述函數(shù)外,Lingo中還有變量界定函數(shù):@BND,@BIN,@FREE,@GIN;輸入輸出函數(shù):@FILE,@TEXT;金融函數(shù)、概率函數(shù)、結(jié)果報告函數(shù)等。11/19/2022814.其它函數(shù)11/11/202281五、Lingo應用實例11/19/202282五、Lingo應用實例11/11/202282本節(jié)簡要介紹用Lingo編程語言求解的幾個典型運籌與圖論問題:運輸問題、指派問題、最短路問題、最大流問題、最小費用最大流問題。目的是進一步熟悉、掌握:集的概念和用法;Lingo的程序結(jié)構(gòu);循環(huán)、求和等語句和函數(shù)的用法;知曉Lingo能解決的典型問題。11/19/202283本節(jié)簡要介紹用Lingo編程語言求解的幾個典

例8設(shè)3個產(chǎn)地和4個銷地的運輸問題的產(chǎn)量、銷量及單位運費如下表,試求總運費最小的運輸方案。B1B2B3B4產(chǎn)量A1626730A2495325A3881521銷量1517221211/19/202284例8設(shè)3個產(chǎn)地和4個銷地的運輸問題的產(chǎn)量運輸問題的Lingo程序model:sets:Warehouse/1..3/:a;Customer/1..4/:b;Routes(Warehouse,Customer):c,x;endsetsdata:a=30,25,21;b=15,17,22,12;11/19/202285運輸問題的Lingo程序11/11/202285c=6,2,6,7,4,9,5,3,8,8,1,5;enddatamin=@sum(Routes:c*x);@for(Warehouse(i):@sum(Customer(j):x(i,j))<a(i));@for(Customer(j):@sum(Warehouse(i):x(i,j))=b(j));end11/19/202286c=6,2,6,7,11/11/20228

例9考慮6人做6項工作的最優(yōu)指派問題,若收益矩陣如下表:“—”表示某人無法做某項工作。11/19/202287例9考慮6人做6項工作的最優(yōu)指派問題,若收指派問題Lingo程序model:sets:Flight/1..6/;Assign(Flight,Flight):c,x;endsetsdata:c=2015165471715331286912181630131281127191411/19/202288指派問題Lingo程序11/11/202288-99710211032-99-99-9961113;enddatamax=@sum(Assign:c*x);@for(Flight(i):@sum(Flight(j):x(i,j))=1;@sum(Flight(j):x(j,i))=1;);end11/19/202289-997102110

例10如圖,A,B1,B2,C1,C2,C3,D共7個城市有道路相連,連線邊數(shù)字表示道路的長度。請設(shè)計A到D最小價格管道鋪設(shè)方案。11/19/202290例10如圖,A,B1,B2,C1,C2,C最短路Lingo程序model:sets:cities/A,B1,B2,C1,C2,C3,D/;roads(cities,cities)/A,B1A,B2B1,C1B1,C2B1,C3B2,C1B2,C2B2,C3C1,DC2,DC3,D/:w,x;endsets11/19/202291最短路Lingo程序11/11/202291data:w=24331231134;enddatan=@size(cities);min=@sum(roads:w*x);@for(cities(i)|i#ne#1#and#i#ne#n:@sum(roads(i,j):x(i,j))=@sum(roads(j,i):x(j,i)));@sum(roads(i,j)|i#eq#1:x(i,j))=1;

end11/19/202292data:11/11/202292

例11現(xiàn)需要將城市s的石油通過管道運送到城市t,中間有4個中轉(zhuǎn)站v1~v4,管道連接及容量如下圖,求城市s到城市t的最大流。11/19/202293例11現(xiàn)需要將城市s的石油通過管道運送到城最大流Lingo程序model:sets:nodes/s,1,2,3,4,t/;arcs(nodes,nodes)/s,1s,21,21,32,43,23,t4,34,t/:c,f;endsetsdata:c=8759925610;enddatamax=flow;11/19/202294最大流Lingo程序11/11/202294@for(nodes(i)|i#ne#1#and#i#ne#@size(nodes):@sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=0);@sum(arcs(i,j)|i#eq#1:f(i,j))=flow;@for(arcs:@bnd(0,f,c));end11/19/202295@for(nodes(i)|i#ne#1#and#最大流另一Lingo程序sets:nodes/s,1,2,3,4,t/;arcs(nodes,nodes):p,c,f;endsetsdata:p=011000001100000010001001000101000000;c=08700011/19/202296最大流另一Lingo程序11/11/2022960059000000900020050006010000000;enddatamax=flow;@for(nodes(i)|i#ne#1#and#i#ne#@size(nodes):@sum(nodes(j):p(i,j)*f(i,j))=@sum(nodes(j):p(j,i)*f(j,i)));@sum(nodes(i):p(1,i)*f(1,i))=flow;@for(arcs:@bnd(0,f,c));11/19/20229700590011/11/202297

例12接上例,假設(shè)每條管道的運輸費用不同,具體數(shù)值見下圖,求最小費用最大流。11/19/202298例12接上例,假設(shè)每條管道的運輸費用不同最小費用最大流Lingo程序sets:nodes/s,1,2,3,4,t/:d;arcs(nodes,nodes)/s,1s,21,21,32,43,23,t4,34,t/:c,u,f;endsetsdata:d=140000-14;c=285231647;u=8759925610;11/19/202299最小費用最大流Lingo程序11/11/202299enddatamin=@sum(arcs:c*f);@for(nodes(i)|i#ne#1#and#i#ne#@size(nodes):@sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=d(i));@sum(arcs(i,j)|i#eq#1:f(i,j))=d(1);@for(arcs:@bnd(0,f,u));11/19/2022100enddata11/11/2022100

例13某地區(qū)由1個城市(標記為1)和9個鄉(xiāng)鎮(zhèn)(標記為2~10)組成,其中城市1有天然氣源。如何設(shè)計一個供氣系統(tǒng),使得城市1到每個鄉(xiāng)鎮(zhèn)都有一條管道相連,并且鋪設(shè)管道的量盡可能少。地區(qū)地理圖及距離如下:11/19/2022101例13某地區(qū)由1個城市(標記為1)和9個鄉(xiāng)11/19/202210211/11/2022102最小生成樹Lingo程序sets:cities/1..10/:level;link(cities,cities):distance,x;endsetsdata:distance=085912141216172280915168111814225907911712121791570317107151512169308106151511/19/2022103最小生成樹Lingo程序11/11/20221031481117809148161211710109086111618127614801111171412151586110102222171515161111100;enddatan=@size(cities);min=@sum(link(i,j)|i#ne#j:distance(i,j)*x(i,j));@sum(cities(i)|i#gt#1:x(1,i))>=1;@for(cities(i)|i#gt#1:11/19/2022104148111780@sum(cities(j)|j#ne#i:x(j,i))=1;@for(cities(j)|j#gt#1#and#j#ne#i:level(j)>level(i)+x(i,j)-(n-2)*(1-x(i,j))+(n-3)*x(j,i););@bnd(1,level(i),999999);level(i)<n-1-(n-2)*x(1,i););@for(link:@bin(x));11/19/2022105@sum(cities(j)|j#ne#i:x(j,經(jīng)計算,最小生成樹(最優(yōu)連線)如下圖,最小距離為60。11/19/2022106經(jīng)計算,最小生成樹(最優(yōu)連線)如下圖,最小距六、上機練習11/19/2022107六、上機練習11/11/20221071.有兩個煤廠A,B,每月分別進煤不少于60t,100t,它們擔負供應三個居民區(qū)用煤任務,這三個居民區(qū)每月用煤分別為45t,75t,40t。A廠離這三居民區(qū)分別是10km,5km,6km,B廠離三居民區(qū)分別是4km,8km,15km。問這兩煤廠如何分配供煤,才能使運量最小?11/19/20221081.有兩個煤廠A,B,每月分別進煤不少于62.已知有6個人(1,2,3,4,5,6)可以做6項工作(1’,2’,3’,4’,5’,6’),每個人做每項工作的效率如下表,問如何安排每人的工作,使總工作效率最大?11/19/20221092.已知有6個人(1,2,3,4,5,6)3.求下圖中從v1到v11的最短路。11/19/20221103.求下圖中從v1到v11的最短路。4.求下列網(wǎng)絡(luò)的最大流:11/19/20221114.求下列網(wǎng)絡(luò)的最大流:5.求下網(wǎng)絡(luò)的最小費用最大流,括號中第1個數(shù)是容量,第2個數(shù)是單位費用。11/19/20221125.求下網(wǎng)絡(luò)的最小費用最大流,括號中第1個6.已知北京(B)、紐約(N)、巴黎(P)、倫敦(L)、東京(T)、墨西哥(M)距離如下表,求網(wǎng)絡(luò)最小生成樹。11/19/20221136.已知北京(B)、紐約(N)、巴黎(P)考慮到上述3~6屬圖論問題,建議采用Lingo和Matlab兩種方法計算。11/19/2022114考慮到上述3~6屬圖論問題,建議采用Ling2013數(shù)學建模培訓11/19/20221152013數(shù)學建模培訓11/11/20221第七講數(shù)學規(guī)劃與Lingo11/19/2022116第七講數(shù)學規(guī)劃與Lingo11/11/20222一、引言11/19/2022117一、引言11/11/20223在實際中,經(jīng)常會遇到如何利用現(xiàn)有資源來安排生產(chǎn),以取得最大經(jīng)濟效益的問題,這類問題構(gòu)成了運籌學的一個重要分支——數(shù)學規(guī)劃。數(shù)學規(guī)劃包括線性規(guī)劃、整數(shù)規(guī)劃、目標規(guī)劃、非線性規(guī)劃、動態(tài)規(guī)劃等。數(shù)學規(guī)劃是建模競賽中最常見的11/19/2022118在實際中,經(jīng)常會遇到如何利用現(xiàn)有資源來安排生模型,2005B,2006A,2007B,2011B等均與數(shù)學規(guī)劃密切相關(guān)??梢杂肕atlab求解數(shù)學規(guī)劃,但最便捷的方法是利用優(yōu)化專用軟件包Lingo。Lingo不僅能精確、快捷地求解包括數(shù)學規(guī)劃在內(nèi)的幾乎所有的最優(yōu)化問題,而且Lingo內(nèi)含一種建模語言,可方便地描述較大規(guī)模的最優(yōu)11/19/2022119模型,2005B,2006A,2007B,2011B等化問題。本講內(nèi)容包括:(1)線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃及Lingo解法;(2)Lingo建模語言;(3)用Lingo求解運輸問題、指派問題、典型圖論模型(最短路、最大流、最小費用最大流、最小生成樹);(4)數(shù)學規(guī)劃綜合建模實例。11/19/2022120化問題。11/11/20226下面給出本講學習大綱,以方便大家學習。1.能熟練建立并用Lingo求解線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃。2.理解、掌握Lingo中集的概念與用法。3.熟悉Lingo典型程序的結(jié)構(gòu),特別是目標函數(shù)與約束部分。11/19/2022121下面給出本講學習大綱,以方便大家學習。11/4.能將較為復雜的數(shù)學規(guī)劃轉(zhuǎn)化為典型的Lingo程序。5.熟悉、掌握Lingo中的常用算符和函數(shù)。6.能應用Lingo求解運輸、指派、最短路、最大流、最小生成樹等問題。11/19/20221224.能將較為復雜的數(shù)學規(guī)劃轉(zhuǎn)化為典型的Lingo程序。11二、數(shù)學規(guī)劃及Lingo求解11/19/2022123二、數(shù)學規(guī)劃及Lingo求解11/11/202291.線性規(guī)劃

引例某工廠生產(chǎn)的機床每臺需要2.9m,2.1m,1.5m的軸各一根。這些軸用同一種圓鋼制作,圓鋼的長度為7.4m。如果要生產(chǎn)100臺機床,應如何下料,才能使得用料最省?

分析將7.4m的圓鋼截成三種軸,可以有如下幾種下料方式:11/19/20221241.線性規(guī)劃11/11/202210方式長度B1B2B3B4B5B6B7B8需求2.9211100001002.1021032101001.510130234100余料0.10.30.901.10.20.81.411/19/2022125方式B1B2B3B4B5B6B7B8需求2.92111000設(shè)用B1,…,B8方式下料的圓鋼的根數(shù)分別為x1,…,x8,則可建立數(shù)學模型如下:11/19/2022126設(shè)用B1,…,B8方式下料的圓鋼的根數(shù)分別為這類優(yōu)化問題稱為數(shù)學規(guī)劃。

xi稱為決策變量,S稱為目標函數(shù),s.t后的式子稱為約束條件。由于本問題中的目標函數(shù)和約束條件均為線性,故稱為線性規(guī)劃。線性規(guī)劃是運籌學的重要分支,許多問題都可以歸結(jié)為線性規(guī)劃。如下料問題、資源配置問題、運輸問題11/19/2022127這類優(yōu)化問題稱為數(shù)學規(guī)劃。11/11/202和指派問題等。

例1某3種產(chǎn)品需要原材料和勞動力兩種資源。每件產(chǎn)品所需資源、現(xiàn)有資源及產(chǎn)品價格如下表。試確定3種產(chǎn)品的日產(chǎn)量以使總產(chǎn)值最大。產(chǎn)品資源123現(xiàn)有資源原材料436120勞動力245100價格45311/19/2022128和指派問題等。產(chǎn)品123現(xiàn)有資源原材料436120勞動力24解(資源配置問題)設(shè)3種產(chǎn)品的日產(chǎn)量分別為x1,x2,x3,則線性規(guī)劃模型為:11/19/2022129解(資源配置問題)設(shè)3種產(chǎn)品的日產(chǎn)量分別例2磚廠A1,A2產(chǎn)量分別為23萬和27萬。它們產(chǎn)生的磚供應B1,B2,B3三個工地,需求量分別為17萬,18萬,15萬。磚廠到工地的運價如下表。應如何調(diào)運,才能使總運費最???平衡表運價表B1B2B3供應量B1B2B3A123506070A2276011060需求1718155011/19/2022130例2磚廠A1,A2產(chǎn)量分別為23萬和27解(運輸問題)設(shè)磚廠Ai供應工地Bj的數(shù)量為xij,則線性規(guī)劃模型為:11/19/2022131解(運輸問題)設(shè)磚廠Ai供應工地Bj的數(shù)運輸問題除了用線性規(guī)劃求解外,還可用專門方法—表上作業(yè)法或Lingo編程語言求解。本例為供求平衡運輸問題。若供求不平衡,可通過虛擬生產(chǎn)商或銷售地的方法將其轉(zhuǎn)化為供求平衡運輸問題。11/19/2022132運輸問題除了用線性規(guī)劃求解外,還可用專門方法例3設(shè)有n件工作B1,…,Bn指派給n個人A1,…,An去做,每人只做一件工作,每件工作只指派給一個人做。設(shè)Ai完成Bj的工時為cij,如下表所示。問如何指派,才能使完成全部工作所需的總工時最少?11/19/2022133例3設(shè)有n件工作B1,…,Bn指派給n個人工作人員B1B2…BnA1c11c12…c1nA2c21c22…c2n……………Ancn1cn2…cnn11/19/2022134工作B1B2…BnA1c11c12…c1nA2c21c22…解(指派問題)設(shè)則線性規(guī)劃模型為:11/19/2022135解(指派問題)設(shè)11/11/202221

11/19/202213611/11/202222指派問題除了用線性規(guī)劃求解外,還可用專門方法—匈牙利法求解。若決策變量為整數(shù),則稱此線性規(guī)劃為整數(shù)規(guī)劃。特別地,當決策變量只取0或1時,稱之為0-1規(guī)劃。顯然,指派問題為典型的0-1規(guī)劃。11/19/2022137指派問題除了用線性規(guī)劃求解外,還可用專門方法2.線性規(guī)劃的Lingo求解Lindo是Chicago大學的Schrage教授于1980年前后開發(fā)的專門用于求解數(shù)學規(guī)劃的軟件包,版權(quán)現(xiàn)歸屬美國Lindo系統(tǒng)公司。Lindo軟件包中包含Lindo,Gino,Lingo,LingoNL和“What’sBest”等,統(tǒng)稱為Lindo,其中以Lindo和Lingo最為常用。11/19/20221382.線性規(guī)劃的Lingo求解11/11/202224因Lindo的功能已全部被Lingo所覆蓋,Lindo已逐漸淡出市場。Lingo除了可以求解線性規(guī)劃、整數(shù)規(guī)劃和二次規(guī)劃外,還可以求解非線性規(guī)劃和線性、非線性方程組。此外,它還內(nèi)置的建模語言和一些常用的數(shù)學函數(shù),可以簡便、直觀地描述大規(guī)模優(yōu)化問題。11/19/2022139因Lindo的功能已全部被Lingo所覆蓋,Lingo有多種版本,如學生版、演示版、高級版、發(fā)行版、工業(yè)版等,主要區(qū)別在于對優(yōu)化規(guī)模(變量和約束個數(shù))有不同的限制。下面簡要介紹如何用Lingo求解線性規(guī)劃、整數(shù)規(guī)劃和非線性規(guī)劃。引例的Lingo程序如下:11/19/2022140Lingo有多種版本,如學生版、演示版、高級model:(可省略)min=x1+x2+x3+x4+x5+x6+x7+x8;2*x1+x2+x3+x4>100;2*x2+x3+3*x5+2*x6+x7>100;x1+x3+3*x4+2*x6+3*x7+4*x8>100;end(可省略)然后點擊工具條上的按鈕即可。11/19/2022141model:(可省略)11/11/2022(1)Lingo已假設(shè)所有變量均非負,非負約束不必再寫入程序。必要時可用變量界定函數(shù)@free(x)解除變量x的非負假設(shè);(2)約束條件中的≥和≤可用>和<代替。例1和例2的Lingo程序分別為:11/19/2022142(1)Lingo已假設(shè)所有變量均非負,非負max=4*x1+5*x2+3*x3;4*x1+3*x2+6*x3<120;2*x1+4*x2+5*x3<100;min=50*x11+60*x12+70*x13+60*x21+110*x22+60*x23;x11+x12+x13=23;x21+x22+x23=27;x11+x21=18;x12+x22=17;x13+x23=15;11/19/2022143max=4*x1+5*x2+3*x3;11/

例4求解整數(shù)規(guī)劃:Lingo程序如下:11/19/2022144例4求解整數(shù)規(guī)劃:11/11/202230max=2*x+3*y;4*x+3*y<10;3*x+5*y<12;@gin(x);@gin(y);程序中的@gin(x)為函數(shù),表示x為整數(shù)。11/19/2022145max=2*x+3*y;11/11/2022

例5求解下列非線性規(guī)劃:Lingo程序如下:11/19/2022146例5求解下列非線性規(guī)劃:11/11/2022min=15*y+3*((5000-x)^2+y^2)^0.5+5*(x^2+(y-2000)^2)^0.5+4*((x-200)^2+(5600-y)^2)^0.5+12*((3000-x)^2+(4800-y)^2)^0.5+255*y/100;6000-2*x/5-y>0;@bnd(0,x,5000);程序中的@bnd為界定函數(shù)。11/19/2022147min=15*y+3*((5000-x)^2三、Lingo中的集與建模語言11/19/2022148三、Lingo中的集與建模語言11/11/202234前面例子中的目標函數(shù)和約束都可直接列出。但在許多大型模型中,可能需要表達一組相似的計算和約束。若再使用直接列出的方法,就要重復鍵入許多相似的計算和約束。Lingo允許把這些相聯(lián)系的對象定義成集。借助集,能夠用一個簡明的復合公式表示一系列相似的約束,11/19/2022149前面例子中的目標函數(shù)和約束都可直接列出。但在從而可以快速方便地表達規(guī)模較大的模型。集是LINGO建模語言的基礎(chǔ),是程序設(shè)計最強有力的基本構(gòu)件。下面介紹集的相關(guān)知識。只有掌握這些內(nèi)容后,才能真正熟練掌握利用Lingo描述數(shù)學模型的基本方法。11/19/2022150從而可以快速方便地表達規(guī)模較大的模型。集是LINGO建模語言1.集的基本概念集其實就是一群相關(guān)對象組成的集合,這些對象稱為集的成員。每個成員可能有一個或多個相關(guān)聯(lián)的特征,稱之為屬性。屬性值可以預先給定,也可以未知,有待Lingo求解。集的概念比較抽象、難懂。下面通過一個例子加以說明。11/19/20221511.集的基本概念11/11/202237例6某船廠需要決定下4個季度的產(chǎn)量。4個季度的需求量分別是40,60,72,25。每季度正常生產(chǎn)能力是40,每船的生產(chǎn)費用為400美元。若加班,每船的生產(chǎn)費用為450美元。每季度末,每船的庫存費用為20美元。假定生產(chǎn)提前期為0,初始庫存為10,問如何安排生產(chǎn)可使總費用最?。?1/19/2022152例6某船廠需要決定下4個季度的產(chǎn)量。4個季用DEM,RP,OP,INV分別表示需求量、正常產(chǎn)量、加班產(chǎn)量、庫存量,則它們每個季度都有一個對應值,即它們均為四個元素構(gòu)成的數(shù)組。其中,DEM已知,其余未知。易見,問題的數(shù)學模型為:11/19/2022153用DEM,RP,OP,INV分別表示需求量、上述問題的程序本不復雜,但遺憾的是Lingo沒有數(shù)組的概念,所以上述模型的Lingo程序較為繁瑣。11/19/202215411/11/202240考慮到DEM,RP,OP,INV均與季度有關(guān),引入4個季度組成的集合QUARTERS={1,2,3,4},DEM,RP,OP,INV對此集合的每個元素1,2,3,4分別對應一個值,見后圖。QUARTERS={1,2,3,4}稱為集合,DEM,RP,OP,INV稱為該集合的屬性。11/19/2022155考慮到DEM,RP,OP,INV均與季其實,集合的屬性可理解為“數(shù)組”,而集合中的元素即為數(shù)組的“下標”。11/19/202215611/11/202242Lingo有兩種集:原始集和派生集。原始集由最基本的對象組成。派生集是從其它集派生得來的,它可以是另一個集的子集,也可以由其它幾個集中的元素組成。也就是說,它的成員來自于其它已存在的集。11/19/2022157Lingo有兩種集:原始集和派生集。11/1原始集的定義包括:集的名字;集的成員(可選);集成員的屬性(可選)。定義原始集的語法為:setname[/member_list/][:attribute_list];“[]”表示該部分內(nèi)容可選。setname是集的名字,最好具有較11/19/2022158原始集的定義包括:集的名字;集的成員(可選)強的可讀性。集名字、集成員名以及集屬性名符合一般命名規(guī)則。例如,例5中的集合可用QUARTERS/1,2,3,4/:DEM,RP,OP,INV;來定義。11/19/2022159強的可讀性。集名字、集成員名以及集屬性名符合一般命名規(guī)則。1有時需要將兩個及兩個以上的集合組成一個新集合,稱之為派生集。派生集的定義包括:集的名字;父集的名字;集成員(可選);集成員的屬性(可選)。定義派生集的語法為:setname(parent_set_list)[/member_list/][:attribute_list];11/19/2022160有時需要將兩個及兩個以上的集合組成一個新集合setname是集的名字,parent_set_list是已定義的集的列表,多個時必須用逗號隔開。如果沒有指定成員列表,那么Lingo會自動創(chuàng)建父集成員的所有組合作為派生集的成員。派生集的父集既可以是原始集,也可以是其它的派生集。派生集的實例見例7。11/19/2022161setname是集的名字,parent_se2.Lingo的程序結(jié)構(gòu)一個典型的Lingo程序由mod

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論