第二次培訓(xùn)20110118優(yōu)化建模_第1頁
第二次培訓(xùn)20110118優(yōu)化建模_第2頁
第二次培訓(xùn)20110118優(yōu)化建模_第3頁
第二次培訓(xùn)20110118優(yōu)化建模_第4頁
第二次培訓(xùn)20110118優(yōu)化建模_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)學(xué)中國(291269111) 19:31:31現(xiàn)在培訓(xùn)開始,大家肅靜!數(shù)學(xué)中國站長(75822904) 19:32:04各位數(shù)學(xué)中國美賽培訓(xùn)的學(xué)員:大家好,很高興又和大家見面了。數(shù)學(xué)中國站長(75822904) 19:32:25我們今天有一個比較熟悉的主題,要和大家談?wù)剝?yōu)化建模。數(shù)學(xué)中國站長(75822904) 19:33:20當然大家在數(shù)學(xué)建模課上和學(xué)校的數(shù)學(xué)建模培訓(xùn)中應(yīng)該不只一次接觸過優(yōu)化內(nèi)容了,我這里 再次拿出來講是不是有點老生常談了呢?數(shù)學(xué)中國站長(75822904) 19:34:37我想這個內(nèi)容還是有必要長提的,畢竟優(yōu)化在美賽中出現(xiàn)的太多了。數(shù)學(xué)中國站長(75822904) 19:

2、34:59我們不妨來細細數(shù)數(shù),數(shù)學(xué)中國站長(75822904) 19:36:36首先,美賽在剛開始的幾屆,純優(yōu)化問題出現(xiàn)的頻率非常的高,這恰好是上世紀80年代后 期,隨著計算機的普及,大量的優(yōu)化方法被應(yīng)用到工業(yè)生產(chǎn)中,解決了一系列的生產(chǎn)、生活 問題。數(shù)學(xué)中國站長(75822904) 19:37:10比如:1985年的動物種群問題和戰(zhàn)略儲備問題,1986年的應(yīng)急設(shè)施的位置問題,1987年的 鹽的儲存問題和停車場問題,1988年的鐵路平板車問題和毒品走私船問題,1989年的飛機 排隊問題和蠓的分類問題。數(shù)學(xué)中國站長(75822904) 19:38:40這段時間內(nèi)純優(yōu)化問題占據(jù)了美賽題目中的絕大多數(shù)

3、,可以說此時是得優(yōu)化者得天下。數(shù)學(xué)中國站長(75822904) 19:39:31上世紀90年代以后優(yōu)化得到了巨大的發(fā)展,人們開始意識到,在現(xiàn)實世界中大量存在著非 線性的、離散的、甚至是不確定的問題,對于這些問題來說,追求最優(yōu)是不現(xiàn)實的,人們開 始尋求折中的方案,這個時期決策論、對策論、離散優(yōu)化、多目標優(yōu)化、分層優(yōu)化、組合優(yōu) 化、動態(tài)優(yōu)化、控制理論、網(wǎng)絡(luò)優(yōu)化、不確定優(yōu)化理論都得到了迅速的發(fā)展。數(shù)學(xué)中國站長(75822904) 19:42:05美賽的題目也體現(xiàn)了這種變化,例如:1991年的Steiner樹問題,1992年的應(yīng)急電力恢復(fù)問 題,1993年的倒煤臺的操作方案問題和最優(yōu)堆肥問題,1994

4、年的混凝土地板問題和通信網(wǎng) 絡(luò)問題,1995年的Aluacha Balaclava學(xué)院問題,1996年的競賽答卷評閱問題,1997年的 Velociraptor問題和為有效討論進行充分的混合分組問題,1998年的MRI掃描問題,1999年 的不合法的聚會場所的問題。數(shù)學(xué)中國站長(75822904) 19:44:22可以看出這類問題利用傳統(tǒng)的規(guī)劃理論難以直接解決,我們要使用一些方法做必要的簡化和 變換才可以化為規(guī)劃問題進行解決,由于獲得最優(yōu)解比較困難,一些試探性的算法得到了大 量的應(yīng)用,靈敏性分析的工作變得更加重要。數(shù)學(xué)中國站長(75822904) 19:45:272000年以后的美賽問題中純優(yōu)

5、化問題變得少了很多,我們看到的只有2002年的風(fēng)和噴水池 問題,2005年的公路收費亭的設(shè)置,2007年的不公正的選區(qū)劃分,2009年的能源與手機。 這是否意味著優(yōu)化問題已經(jīng)失寵了呢?數(shù)學(xué)中國站長(75822904) 19:48:21我想不是這樣,其實絕大多數(shù)問題都可以劃歸為優(yōu)化問題,我們需要把優(yōu)化作為模型研究的 第一工具,不是學(xué)完了,而是還有很多知識正在發(fā)展,完善中。數(shù)學(xué)中國站長(75822904) 19:50:21現(xiàn)在之所以純優(yōu)化問題出得少了,是因為我們現(xiàn)在看問題的視野寬了,以往都是片面地研究 一個對象某方面的特性,而現(xiàn)在都要對對象做全方面地研究,從一個系統(tǒng)的方面去解決問題, 數(shù)學(xué)中國站長

6、(75822904) 19:51:14這樣考慮的因素大幅度增加了,傳統(tǒng)的優(yōu)化模型的弱點在于目標函數(shù)都是單值函數(shù),主要是 因為數(shù)值有自然序的規(guī)則,向量甚至集合的排序很難,沒有了序就沒有辦法體現(xiàn)出優(yōu)化的涵 義,數(shù)學(xué)中國站長(75822904) 19:51:51我們需要把多種因素的影響統(tǒng)一對應(yīng)到一個數(shù)值上,比如:利潤和費用,但是有些相互矛盾 的因素或者是不容易量化的因素就無法統(tǒng)一進來了。數(shù)學(xué)中國站長(75822904) 19:53:24優(yōu)化的研究者已經(jīng)在研究集值映射的優(yōu)化理論,但是實際的算法很少,所以應(yīng)用不廣,另一 方面的選擇就是用優(yōu)化模型來研究系統(tǒng)的某一方面特性,從全局的模型變?yōu)榫植磕P蛠硎?用。

7、數(shù)學(xué)中國站長(75822904) 19:54:17另外,近幾年實驗方法越來越得到了重視,傳統(tǒng)的優(yōu)化理論在實驗控制和實驗評估方面發(fā)揮 了巨大的作用。數(shù)學(xué)中國站長(75822904) 19:56:49接下來,我們來回顧一下優(yōu)化建模的一些基本理論,為了節(jié)省時間,我撿干的說。數(shù)學(xué)中國站長(75822904) 19:59:01與最大、最小、最長、最短等等有關(guān)的問題都是優(yōu)化問題,其實發(fā)現(xiàn)優(yōu)化問題并 不難,就是要在問題中找“最(most)”字,當然有些問題并不會直接說最什么 什么,但意思中可能會隱含這種想法。數(shù)學(xué)中國站長(75822904) 20:00:21對于優(yōu)化建模來說我們要按照下面的五個步驟來做:1、

8、確定目標,2、確定決策 向量,3、確定目標與決策向量之間的函數(shù)關(guān)系,4、確定問題的最優(yōu)取向,5、 確定決策向量的約束范圍。數(shù)學(xué)中國站長(75822904) 20:03:18接下來我針對這五個步驟分別談?wù)劇K^的目標就是對問題進行優(yōu)化建模的最終 目的。要想確定目標可以尋找“最”字,通常將它前面的核心名詞確定為目標。 當然很多問題的目標并不一定,比如說投資組合問題,我們既可以把利潤當做目 標也可以把風(fēng)險當做目標。數(shù)學(xué)中國站長(75822904) 20:05:52所謂決策就是人對所有與目標相關(guān)的未知因素的一種選擇。它可以用來對應(yīng)目標 的一種狀態(tài)。數(shù)學(xué)中國站長(75822904) 20:06:27決策

9、向量是決策的數(shù)學(xué)化,是用向量的方式對決策的一種表示。數(shù)學(xué)中國站長(75822904) 20:07:12最優(yōu)決策向量:使得目標達到最優(yōu)的決策向量。通常我們把它稱做優(yōu)化問題的最 優(yōu)解。它所對應(yīng)的目標值稱做最優(yōu)值。數(shù)學(xué)中國站長(75822904) 20:07:53確定決策向量是優(yōu)化建模的關(guān)鍵,我們需要找到與目標相關(guān)的所有因素。比如: 在運輸問題中影響運輸費用目標的就是從某一個產(chǎn)地運往所有銷地的產(chǎn)品的數(shù) 量,不同的數(shù)量值對應(yīng)著不同的目標值,這就是我們需要做的決策。數(shù)學(xué)中國站長(75822904) 20:08:48所謂的目標函數(shù)是目標與決策向量之間的函數(shù)關(guān)系。目標函數(shù)的確定依賴于問題 中所蘊含的客觀規(guī)律

10、。數(shù)學(xué)中國站長(75822904) 20:09:38容易處理的目標函數(shù)主要是凸函數(shù),因為凸函數(shù)的局部極小(大)點就是全局極 小(大)點,而局部極小點我們可以利用一階導(dǎo)數(shù)信息來判定,這樣就有了一個 有效判定最優(yōu)解的方法了。數(shù)學(xué)中國站長(75822904) 20:11:00什么是凸函數(shù)呢?二維和三維的凸函數(shù)我們可以從函數(shù)圖像上來判定,就是向著 坐標方向看函數(shù)圖像向你凸出出來的就是凸函數(shù)。數(shù)學(xué)中國站長(75822904) 20:12:03高維的凸函數(shù)需要數(shù)學(xué)的定義:首先定義凸集。n凸集:設(shè)S是n維空間中的一個點集。若對任意n維向量X1IS,X2IS,且X1】X2,以及任意實數(shù)l (011),有X=l

11、X1+(1-1)X2IS則稱S為n維空間中的一個凸集(Convex Set)。點X稱為點X1和X2的凸 組合。數(shù)學(xué)中國站長(75822904) 20:12:30凸集:設(shè)S是n維空間中的一個點集。若對任意n維向量X1ES,X2eS,且X1KX2,以及任意實數(shù)舄(0/.1),有/X=XX1+(1-1)X2S則稱S為n維空間中的一個凸集(Convex Set)。點X稱為點XI和X2的凸組合w數(shù)學(xué)中國站長(75822904) 20:13:17下圖中第一行的三個集合都是凸集,第二行的三個集合不是凸集。數(shù)學(xué)中國站長(75822904) 20:13:28數(shù)學(xué)中國站長(75822904) 20:14:34形象

12、地說,凸集就是任意兩點間的線段都在集合中的集合。數(shù)學(xué)中國站長(75822904) 20:15:07有了凸集的概念我們就可以定義凸函數(shù)了。n凸函數(shù):函數(shù)圖像的上方以函數(shù)圖像為邊界的區(qū)域組成的集合為凸集的函數(shù)是 凸函數(shù)。數(shù)學(xué)中國站長(75822904) 20:15:42大量問題中的函數(shù)可能不是凸函數(shù),對于這些問題的求解會比較困難,非常容易 陷入局部最優(yōu)解無法動彈。比如下圖中所示的幾個目標函數(shù)的情況。數(shù)學(xué)中國站長(75822904) 20:17:003tb)圖3.S不同類型的評估函數(shù)數(shù)學(xué)中國站長(75822904) 20:17:27圖c中的最優(yōu)解的洞非常小,就像高爾夫球進洞的難度差不多,很多算法都會

13、陷 入局部最優(yōu)解,但我們看到局部最優(yōu)解其實距離全局最優(yōu)解還有很遠,這樣的局 部最優(yōu)解意義不大,所以很多非凸優(yōu)化的求解是需要一些技巧的,數(shù)學(xué)中國站長(75822904) 20:18:02改造函數(shù)的不良性質(zhì)使其更容易處理,通常的做法有光滑化、線性化、函數(shù)逼近、 局部擾動等。數(shù)學(xué)中國站長(75822904) 20:19:02所謂最優(yōu)取向是使得目標達到最優(yōu)的目標函數(shù)的下降方向。對于數(shù)值型的目標來 說,可以從實際問題的要求判斷出目標函數(shù)的最優(yōu)取向,通常是最大或者最小。 數(shù)學(xué)中國站長(75822904) 20:19:29對于向量型的目標來說,最優(yōu)取向不一定代表目標函數(shù)的最大或最小值,通常意 味著一個均衡的

14、值。數(shù)學(xué)中國站長(75822904) 20:20:11在一些情況下,決策向量的取值會受到一定的限制。使得決策向量的取值不再是 整個空間而僅僅是整個空間的一個子集,把這個集合稱做約束范圍。數(shù)學(xué)中國站長(75822904) 20:20:52建模的時候,要確定約束范圍需要考慮題目的要求,我們有的時候建立一個優(yōu)化 模型是一個問題要求對應(yīng)模型的一個約束條件。數(shù)學(xué)中國站長(75822904) 20:21:51也有一些約束范圍要根據(jù)所獲得的數(shù)據(jù)的情況來建立,例如2007年不公正的選 區(qū)劃分的問題,數(shù)學(xué)中國站長(75822904) 20:22:35我們?nèi)绻@得了選民的收入的分布情況的數(shù)據(jù),就可以根據(jù)這個數(shù)據(jù)構(gòu)

15、造一個約 束條件,要求平均收入差距不要太大,這個要求題目中是沒有的,完全根據(jù)獲得 的數(shù)據(jù)來。數(shù)學(xué)中國站長(75822904) 20:23:15通過上面的分析我們可以總結(jié)出優(yōu)化模型的基本形式:數(shù)學(xué)中國站長(75822904) 20:24:13Mm(A4ax) z x -丫s.t. 0, i = 決策變量抵卜目標函數(shù)赤對幺卜約束條件數(shù)學(xué)中國站長(75822904) 20:25:04如果是線性規(guī)劃模型又可以寫成下面的矩陣形式:數(shù)學(xué)中國(291269111) 20:27:11VMin(A4ax) z = CTx x = (xL-s.t. Axb.1015(364168326) 20:28:07怎么看不

16、到圖片了從發(fā)下可以嗎?數(shù)學(xué)中國(291269111) 20:28:36VMtniMax) z - CTx x =-ps.t. Ax=500; !保證卡路里需求;3*xl+2+x2=6; !保證巧克力的需求;渺N+2*以+4電3+4H4二10!保證糖的需求2*xl+4+x2+x3+5+x4:-8; !保證脂肪的需求,數(shù)學(xué)中國(291269111) 20:41:53min= 50+x 1+20+x2+30+x3+80+x4; 150 30 20 80400*xl+200*x2+150*x3+500*x4=500; L保證卡路里需求;3*xl+2+x2=6; !保證巧克力的需求;2電1+2電2+4電

17、3+4電4二10;!保證糖的需求;2+xl+4+x2+x3+5+x4:-8; !保證脂曲的需求.數(shù)學(xué)中國站長(75822904) 20:42:22這就是lingo的代碼,數(shù)學(xué)中國站長(75822904) 20:42:43說明一下我使用的是數(shù)學(xué)中國論壇里面提供的lingo11的免安裝版,非常好用 的。數(shù)學(xué)中國站長(75822904) 20:43:38大家看到這個代碼是不是很簡單,其實就是把模型又寫了一遍,數(shù)學(xué)中國站長(75822904) 20:43:58每一行的最后用一個分號結(jié)束,以!號開始,以;號結(jié)束的是注釋部分,顯示為 綠色,非常醒目。Lingo的變量名以字母開頭,不能超過8個字符,變量名和

18、關(guān) 鍵字都不區(qū)分大小寫,目標函數(shù)在第一行,第二行起是約束條件。數(shù)學(xué)中國站長(75822904) 20:44:56然后點擊工具條上的按鈕數(shù)學(xué)中國站長(75822904) 20:45:05數(shù)學(xué)中國站長(75822904) 20:45:19 即可運行程序。數(shù)學(xué)中國站長(75822904) 20:45:47 比如這個程序的運行結(jié)果是:數(shù)學(xué)中國站長(75822904) 20:46:05數(shù)學(xué)中國站長(75822904) 20:47:49可以看到模型的一些信息:線性規(guī)劃模型,得到了全局最優(yōu)解,計算迭代了2步,耗去時間0秒(小于1秒)數(shù)學(xué)中國站長(75822904) 20:48:48接下來我們對程序改進一下,

19、因為我們定義的變量可能有點多,或許以后很多程 序變量會更多,這樣定義會很麻煩,數(shù)學(xué)中國站長(75822904) 20:50:58別著急,lingo也支持數(shù)組,在lingo中叫做集(set)。數(shù)學(xué)中國站長(75822904) 20:51:28集部分是LINGO模型的一個可選部分。在LINGO模型中使用集之前,必須在集部 分事先定義。集部分以關(guān)鍵字“sets:”開始,以“endsets”結(jié)束。數(shù)學(xué)中國站長(75822904) 20:52:16一個模型可以沒有集部分,或有一個簡單的集部分,或有多個集部分。一個集部 分可以放置于模型的任何地方,但是一個集及其屬性在模型約束中被引用之前必 須定義了它們。

20、數(shù)學(xué)中國站長(75822904) 20:52:49我們來看看使用set以后模型的變化。數(shù)學(xué)中國站長(75822904) 20:53:13屏LNGO Model -問題一的最初代碼sets:Lt/l-.4/;x; 1果仁巧克力,冰淇淋,可樂,奶酷的數(shù)量;endsetsmin二5Q*恩忒3)+80*航4g !50 30 20 80-單價;400+x(l)+200+x2)+150*H&)+500*H4)=500; !保證卡路里需求;3+x(l)+2+x(2)=6; !保證巧克力的需求;誑+2打&)+4*涎慚+4電(4)=10 !保證糖的需求;+4*丈您)+或)+5抵二& !保證脂肪的需求;數(shù)學(xué)中國站

21、長(75822904) 20:54:58這個代碼中的mat叫做集的名字,x叫做集的屬性,x(1),x(2)等就對應(yīng)了我們 前面的四個變量,這里是數(shù)組的四個成員。數(shù)學(xué)中國站長(75822904) 20:55:34如果學(xué)過面向?qū)ο缶幊痰耐瑢W(xué)可以把mat認為成類的定義,x認為成類的一個實 例。數(shù)學(xué)中國站長(75822904) 20:56:18兩個斜杠中間的1.4表示這個集的成員列表,成員是1到4這樣的四個,就和 C語言定義數(shù)組一樣的,數(shù)組名后面要說明有幾個成員。數(shù)學(xué)中國站長(75822904) 20:57:09當然lingo的集要比數(shù)組的含義廣得多,這個成員列表也可以不用數(shù)字表示,可 以用有具體意義

22、的字符,這樣更加好標識成員的含義。數(shù)學(xué)中國站長(75822904) 20:57:45比如可以定義一個名為students的集,它具有成員John、Jill、Rose和Mike,屬性有sex和age:sets:students/John Jill, Rose Mike/: sex, age;endsets數(shù)學(xué)中國站長(75822904) 20:58:18這個代碼的改進使用了集,但是代碼長度并沒有得到縮短,反而增加了,難道集沒有什么用嗎?數(shù)學(xué)中國站長(75822904) 21:00:31不是!集的使用使得我們定義變量變得更容易了,特別對于大型的問題。數(shù)學(xué)中國站長(75822904) 21:01:1

23、1其實集的使用還有更多的好處,你們有沒有注意到線性規(guī)劃模型的矩陣形式,想想前面的矩陣形式是不是很簡單?數(shù)學(xué)中國站長(75822904) 21:02:01我們可以把lingo中的模型也寫成矩陣形式呀!數(shù)學(xué)中國站長(75822904) 21:02:40首先我們先從目標函數(shù)下手,這個矩陣形式中的內(nèi)積如何在lingo中表示呢?數(shù)學(xué)中國站長(75822904) 21:03:05對了,內(nèi)積是一種多項和的形式,有沒有求和的內(nèi)部函數(shù)呢?數(shù)學(xué)中國站長(75822904) 21:03:31當然有了,它就是sum。數(shù)學(xué)中國站長(75822904) 21:03:52我們再改進一下程序:數(shù)學(xué)中國站長(75822904)

24、 21:04:05set s :gt /I . . 4/:孔c】! 果仁巧克力冰淇淋,可樂,奶酎的數(shù)量;fjndsetsdata:薩50 20 30 80;enddatamirF施uni缶己t (i)(i) ; ! 50 30 20 80 率價;400直+W0Ox+150 x (3)+500就織滄500; !保證卡路里需求;混)+2電(2)X6; !保證巧克力的需求;2電(l)+N*HW)+4電。!保證糖的需求;2打+4電+點)+5打KM !保證脂肪的需求,數(shù)學(xué)中國站長(75822904) 21:04:56這次改進我們使用了sum函數(shù)來表示內(nèi)積,sum函數(shù)的使用很簡單,注意括號 里面的東西,分

25、號前面的是集的名字加上括號里面的循環(huán)變量,我們習(xí)慣都用 i,j這樣的變量。分號后面就是具體的求和中每一項的形式,我這里是內(nèi)積所以 是兩項相乘。數(shù)學(xué)中國站長(75822904) 21:05:45首先定義了 mat集的兩個實例x, c。這是為了后面做內(nèi)積的準備,另外c的值 我們是知道的,為了方便我們這里使用了 data來引入?yún)?shù)的值,其實寫法很簡 單,以data:開頭,以enddata結(jié)束,中間書寫參數(shù)的值,對于一維數(shù)組寫成一 行,二維的就寫成多行,每個元素用空格或者逗號分割,每個賦值最后加一個分 號,注意二維數(shù)組的只在最后一行的結(jié)尾加上分號。數(shù)學(xué)中國站長(75822904) 21:06:36另外

26、系數(shù)矩陣怎么實現(xiàn)呢?數(shù)學(xué)中國站長(75822904) 21:06:54呵呵,用二維數(shù)組來表示矩陣呀。這樣就可以進一步把模型矩陣化了。我們來看 進一步的改進:數(shù)學(xué)中國站長(75822904) 21:07:31序 LTMGD Med碼s已指;mat/1. . 4/:x, c; %,果仁巧克力,冰淇淋,可樂,奶酎的數(shù)量;m(matj mat) : a;Iendsetsdata:c=50 20 30 80;a=400 200 150 5002 0 02 2 4 42 4 1 &;enddataiDin=suiri(iriat (i7 :.cW; 150 30 20 80單價;40。電(1;+WW*J+

27、15。電+5Q0*x-500; !保證卡路里需求x(l)+2+x(2)=6; !保證巧克力的需求;+2電+4*U(3)+4電(4)二!保證糖的需求;器x(l)+4電,+x+5電(4.犬& !保證脂肪的需求;數(shù)學(xué)中國站長(75822904) 21:08:03這里面把系數(shù)矩陣單獨定義為了一個新的集的實例,這個集的名字是m,它是兩 個mat集組成的一個二維的數(shù)組,我們把它叫做派生集,這里就像我們所說笛卡 爾集一樣。數(shù)學(xué)中國站長(75822904) 21:08:57接下來我們來簡化模型的約束條件,把每個約束條件都寫成內(nèi)積的形式,數(shù)學(xué)中國站長(75822904) 21:09:14sets :mat/l.

28、 . 4/:x, c; x,果仁巧克方,冰淇淋,可樂,奶酪的數(shù)量; mat) :a?endsetsdata:U50 20 30 SO;a=400 200 150 5003 2 0 02 2 4 42 4 15;enddatainin=suin(inat (i.) : t (i)150 30 20 80單價;伽surnfgt (i j:五(1, i)*x (ij=500; sum (mat.(i : a護&;summat (Q: a(3y(i)二10sum: a(4, i)*x (i)洋8;數(shù)學(xué)中國站長(75822904) 21:09:42這里面我們看到了二維數(shù)組和一維數(shù)組相乘的寫法,和數(shù)學(xué)的寫

29、法很像的。數(shù)學(xué)中國站長(75822904) 21:10:39還能不能更簡化呢?能不能把它寫成一個矩陣的約束條件呢?光是內(nèi)積的形式,如果約束條件多的話代碼量太大了呀!數(shù)學(xué)中國站長(75822904) 21:11:28沒有問題,我們可以使用for函數(shù)。請看新的改進:數(shù)學(xué)中國站長(75822904) 21:11:49sets :niat/1. . 4/:x, c, b; L x,果仁巧克力冰淇淋,可樂,奶酪的數(shù)量;m(matj mat?.! a;Iendsetsdata:a=400 200 150 5003 2 0 02 2 4 42 4 15;,c=50 20 30 80;b=500 6 10 8

30、;enddataiDin=suin(mt (i J : c150 3 20 80 單價;for (mat (1) :suidCidG., j) : a(i, (j)=b (i);點證卡拷里需求;數(shù)學(xué)中國站長(75822904) 21:12:42這里面我們把右邊變量也定義成了數(shù)組。怎么樣?是不是線性規(guī)劃的矩陣形式了?數(shù)學(xué)中國站長(75822904) 21:13:16這里面的for函數(shù)的使用方法和sum函數(shù)基本一樣,需要注意的就是分號前面 仍然要添加的是集的名字而不是集的屬性。數(shù)學(xué)中國站長(75822904) 21:13:45另外我們也可以把原模型中保證巧克力需求的約束單獨寫出來,因為它只有兩 項

31、。可以參考下面的形式:數(shù)學(xué)中國站長(75822904) 21:14:09set s :lLt/1.4/:X/C; I齊果仁巧克力,冰淇淋,可樂,奶酩的數(shù)量;r/1. . 3/:b;iriri/1. . 2/ ; aa;Imfrj mat) : a;endsetsdata:a=400 200 150 5002 2 4 42 4 15;c=50 20 30 80;b=500 10 8;| aa=3 2;enddatamirF傾muinfiDirt G) : c (i)*Hi); ! 5。30 20 80單價;for (r G) :sufi(in(i, j) : a(i, j)(j) Xb (i)

32、!保Ji卡路里毒求;sum (mat (i) | i#LE#2:) =&;數(shù)學(xué)中國站長(75822904) 21:14:46我們可以看到for函數(shù)和sum函數(shù)都是可以使用條件做篩選的,比如我們這里 面x有四個分量,而aa只有兩個,我們可以對集mat做篩選,只使用它的前兩 個成員,在集名字的后面用一個豎線再寫上條件表達式,我們這里是i小于等于 2。數(shù)學(xué)中國站長(75822904) 21:15:57講到這里大家應(yīng)該可以入門了,以后咱們盡量將模型以矩陣的形式去表示就很容 易轉(zhuǎn)化為Lingo的代碼了。數(shù)學(xué)中國站長(75822904) 21:16:35我們在建立優(yōu)化模型的時候盡量避免建立非線性規(guī)劃模型,

33、因為前面已經(jīng)說了這 樣的模型很容易遇到局部最優(yōu)解,就像姜啟源老師的數(shù)學(xué)模型書第四章的原 油采購與加工問題中的三個方法比較就很說明問題。數(shù)學(xué)中國站長(75822904) 21:17:15有的時候非線性的影響可能使我們尋找最優(yōu)的路子一無所獲,比如我們下面的例 子,數(shù)學(xué)中國站長(75822904) 21:17:38求解一個非線性方程(方程和規(guī)劃其實是等價的,lingo也是可以求解方程的呀, 其實lingo可以把模型中所有未知的變量值都找到,如果不信你可以把data中 的某個數(shù)值去掉,可以使用兩個逗號來表示,lingo就會把它當作變量來求解 的。):數(shù)學(xué)中國站長(75822904) 21:18:02數(shù)

34、學(xué)中國站長(75822904) 21:19:19代碼只有兩行,很簡單。但是居然沒有可行解找到,是不是真的沒有可行解呢?數(shù)學(xué)中國站長(75822904) 21:19:49其實不是,是lingo的算法的問題。這個方程的非線性太強,找到一個點非常困 難。數(shù)學(xué)中國站長(75822904) 21:20:18我們可以幫幫lingo,使用init來告訴lingo從什么點開始比較好。數(shù)學(xué)中國站長(75822904) 21:20:49數(shù)學(xué)中國站長(75822904) 21:21:19我們告訴lingo從(0.2, 1)這個點開始找,所以lingo很快找到了解(0.45, 1.3)。數(shù)學(xué)中國站長(75822904) 21:22:11我們也要注意觀察LINGO求解模型結(jié)束后的返回狀態(tài):0 Global Optimum (全局最優(yōu))Infeasible (不可行)Unbounded (無界)Undet

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論