lingo上課用.ppt_第1頁
lingo上課用.ppt_第2頁
lingo上課用.ppt_第3頁
lingo上課用.ppt_第4頁
lingo上課用.ppt_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

優(yōu)化模型和優(yōu)化軟件的重要意義 解決優(yōu)化 決策問題的手段 經(jīng)驗(yàn)積累 主觀判斷 作試驗(yàn) 比優(yōu)劣 建立數(shù)學(xué)模型 優(yōu)化模型 求最優(yōu)策略 決策 最 優(yōu)化 在一定條件下 尋求使目標(biāo)最大 小 的決策 CUMCM賽題 50 與優(yōu)化有關(guān) 規(guī)模大 需軟件求解 2020 2 2 2 優(yōu)化模型三要素 目標(biāo)函數(shù) 約束條件 決策變量 優(yōu)化問題的一般形式 可行解 滿足約束 與可行域 可行解的集合 最優(yōu)解 取到最小 大值的可行解 約束優(yōu)化的簡單分類 線性規(guī)劃 LP 目標(biāo)和約束均為線性函數(shù)非線性規(guī)劃 NLP 目標(biāo)或約束中存在非線性函數(shù)二次規(guī)劃 QP 目標(biāo)為二次函數(shù) 約束為線性整數(shù)規(guī)劃 IP 決策變量 全部或部分 為整數(shù)整數(shù)線性規(guī)劃 ILP 整數(shù)非線性規(guī)劃 INLP 純整數(shù)規(guī)劃 PIP 混合整數(shù)規(guī)劃 MIP 一般整數(shù)規(guī)劃 0 1 整數(shù) 規(guī)劃 連續(xù)優(yōu)化 離散優(yōu)化 建立優(yōu)化模型時(shí)需要注意的幾個(gè)基本問題 1 盡量使用實(shí)數(shù)優(yōu)化 減少整數(shù)約束和整數(shù)變量2 盡量使用光滑優(yōu)化 減少非光滑約束的個(gè)數(shù)如 盡量少使用絕對值 符號函數(shù) 多個(gè)變量求最大 最小值 四舍五入 取整函數(shù)等3 盡量使用線性模型 減少非線性約束和非線性變量的個(gè)數(shù) 如x y 5改為x 5y 4 合理設(shè)定變量上下界 盡可能給出變量初始值5 模型中使用的參數(shù)數(shù)量級要適當(dāng) 利用LINGO求解簡單的LP問題 在模型窗口中輸入如下代碼 min 2 x1 3 x2 x1 x2 350 x1 100 2 x1 x2 600 然后點(diǎn)擊工具條上的按鈕即可 例1 求解如下的LP問題 運(yùn)算結(jié)果 LINGO是用來求解線性和非線性優(yōu)化問題的簡易工具 LINGO內(nèi)置了一種建立最優(yōu)化模型的語言 可以簡便地表達(dá)大規(guī)模問題 利用LINGO高效的求解器可快速求解并分析結(jié)果 當(dāng)你在windows下開始運(yùn)行LINGO系統(tǒng)時(shí) 會得到類似下面的一個(gè)窗口 外層是主框架窗口 包含了所有菜單命令和工具條 其它所有的窗口將被包含在主窗口之下 在主窗口內(nèi)的標(biāo)題為LINGOModel LINGO1的窗口是LINGO的默認(rèn)模型窗口 建立的模型都都要在該窗口內(nèi)編碼實(shí)現(xiàn) LINGO的基本用法的幾點(diǎn)注意事項(xiàng) LINGO中不區(qū)分大小寫字母 用LINGO解優(yōu)化模型時(shí)已假定所有變量非負(fù)實(shí)數(shù) 除非用限定變量取值范圍的函數(shù) free或 bin等另行說明 變量可以放在約束條件的右端 同時(shí)數(shù)字也可放在約束條件的左端 但為了提高LINGO求解時(shí)的效率 應(yīng)盡可能采用線性表達(dá)式定義目標(biāo)和約束 如果可能的話 語句是組成LINGO模型的基本單位 每個(gè)語句都以分號結(jié)尾 編寫程序時(shí)應(yīng)注意模型的可讀性 例如 一行只寫一個(gè)語句 按照語句之間的嵌套關(guān)系對語句安排適當(dāng)?shù)目s進(jìn) 增強(qiáng)層次感 以感嘆號開始的是說明語句 說明語句也需要以分號結(jié)束 返回 程序語句輸入的注意事項(xiàng) LINGO總是根據(jù) MAX 或 MIN 尋找目標(biāo)函數(shù) 約束條件語句的順序并不重要 限定變量取整數(shù)值的語句為 GIN X1 和 GIN X2 不可以寫成 GIN 2 否則LINGO將把這個(gè)模型看成沒有整數(shù)變量 LINGO中函數(shù)一律需要以 開頭 如求和函數(shù) SUM 整型變量函數(shù) BIN GIN 和上下界限定函數(shù) FREE BND 返回 Globaloptimalsolutionfoundatiteration 4Objectivevalue 800 0000VariableValueReducedCostX1250 00000 000000X2100 00000 000000RowSlackorSurplusDualPrice1800 0000 1 00000020 000000 4 0000003150 00000 00000040 0000001 000000 例 某廠生產(chǎn)一種產(chǎn)品 其需求具有季節(jié)性 假定每年只能在連續(xù)的三個(gè)月內(nèi)進(jìn)行生產(chǎn)和銷售 生產(chǎn)可以按正常工作時(shí)間進(jìn)行 也可以加班 前兩個(gè)月的月產(chǎn)量可以大于當(dāng)月的銷售量而將多余的產(chǎn)品存儲 但要付出存儲費(fèi) 而在第三個(gè)月月末要將產(chǎn)品全部售完 設(shè)產(chǎn)品在正常工作時(shí)間 每月最多能生產(chǎn) 單位 單位成本為 元 在加班時(shí)間生產(chǎn) 每月最多能生產(chǎn) 單位 單位成本 元 每月生產(chǎn)量及平均成本不一定要相等 存儲費(fèi)每月每單位 元 三個(gè)月的需求量分別為 和 單位 試確定每月在正常時(shí)間及加班時(shí)間各生產(chǎn)多少產(chǎn)品 使總成本最小 解 設(shè)在第i個(gè)正常時(shí)間內(nèi)生產(chǎn)的產(chǎn)品數(shù)為xi i 1 2 3 在第i月加班時(shí)間內(nèi)生產(chǎn)的產(chǎn)品數(shù)為yi i 1 2 3 在第i月末存儲的產(chǎn)品數(shù)為si i 1 2 則總成本為生產(chǎn)能力約束為 產(chǎn)品需求約束為 變量均為非負(fù) 即于是該生產(chǎn)進(jìn)度問題的線性規(guī)劃模型為 st 在lingo命令窗口中輸入 Min 75 x1 x2 x3 95 y1 y2 y3 0 5 s1 s2 X1 300 x2 300 X3 300 X1 y1 s1 160 X2 y2 s1 s2 380 X3 y3 s2 300 例 某服務(wù)部門一周中每天需要不同數(shù)目的員工 周一到周四每天至少需要 人 周五至少需要 人 周六和周日每天至少需要 人 現(xiàn)規(guī)定應(yīng)聘者需要連續(xù)工作 天 試確定聘用方案 即周一到周日每天聘用多少人 使在滿足需要的條件下聘用總?cè)藬?shù)最少 優(yōu)化模型決策變量 記周一到周日每天聘用的人數(shù)分別為x1 x2 x3 x4 x5 x6 x7 目標(biāo)函數(shù) 目標(biāo)函數(shù)是聘用總?cè)藬?shù) 即Z x1 x2 x3 x4 x5 x6 x7約束條件 約束條件由每天需要的人數(shù)確定 由于每人連續(xù)工作 天 所以周一工作的員工應(yīng)是周四到周一聘用的 按照需要至少有 人 于是X1 x4 x5 x6 x7 50同理有X1 x2 x5 x6 x7 50X1 x2 x3 x6 x7 50X1 x2 x3 x4 x7 50X1 x2 x3 x4 x5 80X2 x3 x4 x5 x6 90X3 x4 x5 x6 x7 90人數(shù)應(yīng)該是整數(shù) 所以x1 x2 x7 0 xi是整數(shù) 編程如下 min x1 x2 x3 x4 x5 x6 x7 X1 x4 x5 x6 x7 50 X1 x2 x5 x6 x7 50 X1 x2 x3 x6 x7 50 X1 x2 x3 x4 x7 50 X1 x2 x3 x4 x5 80 X2 x3 x4 x5 x6 90 X3 x4 x5 x6 x7 90 gin x1 gin x2 gin x3 gin x4 gin x5 gin x6 gin x7 變量界定函數(shù) Globaloptimalsolutionfound Objectivevalue 94 00000Extendedsolversteps 0Totalsolveriterations 7VariableValueReducedCostX10 0000001 000000X24 0000001 000000X340 000001 000000X43 0000001 000000X540 000001 000000X63 0000001 000000X74 0000001 000000RowSlackorSurplusDualPrice194 00000 1 00000020 0000000 00000031 0000000 00000041 0000000 00000051 0000000 00000067 0000000 00000070 0000000 00000080 0000000 000000 例 一汽車廠生產(chǎn)小 中 大三種類型的汽車 已知各類型每輛車對鋼材 勞動時(shí)間的需求 利潤以及每月工廠鋼材 勞動時(shí)間的現(xiàn)有量如下表所示 1 生產(chǎn)多少時(shí) 利潤最大 2 由于各種條件限制 如果生產(chǎn)某一類型汽車的話 就必須生產(chǎn)80輛 要么不生產(chǎn) 試制訂月生產(chǎn)計(jì)劃 使工廠的利潤最大 模型建立與求解 設(shè)每月生產(chǎn)小 中 大型汽車的數(shù)量分別為x1 x2 x3 由于生產(chǎn)是一個(gè)月一個(gè)月連續(xù)進(jìn)行的 所以這里可以合理地認(rèn)為這個(gè)產(chǎn)量不一定非取整數(shù)不可 而是可以取實(shí)數(shù) 立即可得線性規(guī)劃模型 2 如果生產(chǎn)某一類型汽車 就必須生產(chǎn)80輛 換種說法 要么生產(chǎn) 輛 要么不生產(chǎn) 這個(gè)約束怎么表達(dá) 可以引入0 1變量 化為整數(shù)規(guī)劃 設(shè)y1只取0 1兩個(gè)值 則 xi 0或80 等價(jià)于 其中M為相當(dāng)大的正數(shù) 本例可取1000 x1不可能超過1000 類似地有 于是這個(gè)模型構(gòu)成一個(gè)混合整數(shù)規(guī)劃模型 既有一般的實(shí)數(shù)變量x 又有0 1變量y 用LINGO直接求解時(shí) 只需要加上0 1變量y的限定語句 在LINGO模型窗口中輸入模型 max 2 x1 3 x2 4 x3 1 5 x1 3 x2 5 x3 600 280 x1 250 x2 400 x3 60000 x1 80 y1 x2 80 y2 x3 80 y3 bin y1 bin y2 bin y3 Globaloptimalsolutionfound Objectivevalue 480 0000Extendedsolversteps 0Totalsolveriterations 0VariableValueReducedCostX180 000000 000000X20 0000000 000000X380 000000 000000Y11 000000 160 0000Y20 000000 240 0000Y31 000000 320 0000RowSlackorSurplusDualPrice1480 00001 000000280 000000 00000035600 0000 00000040 0000002 00000050 0000003 00000060 0000004 000000 即 只生產(chǎn)小型和中型汽車 產(chǎn)量分別為80輛和150輛 近似值 可獲得最大利潤611 2萬元 練習(xí) 某公司需要決定下四個(gè)季度的帆船生產(chǎn)量 下四個(gè)季度的帆船需求量分別是40條 60條 75條 25條 這些需求必須按時(shí)滿足 每個(gè)季度正常的生產(chǎn)能力是40條帆船 每條船的生產(chǎn)費(fèi)用為400美元 如果加班生產(chǎn) 每條船的生產(chǎn)費(fèi)用為450美元 每個(gè)季度末 每條船的庫存費(fèi)用為20美元 初始庫存為10條船 如何安排生產(chǎn)可使總費(fèi)用最小 解 用xi yi zi si i 1 2 3 4 分別表示四個(gè)季度的需求量 正常生產(chǎn)的產(chǎn)量 加班生產(chǎn)的產(chǎn)量 庫存量 目標(biāo)函數(shù)是所有費(fèi)用的和 約束條件主要有兩個(gè) 1 能力限制 2 產(chǎn)品數(shù)量的平衡方程 加上變量的非負(fù)約束 Min 400 y1 450 z1 20 s1 400 y2 450 z2 20 s2 400 y3 450 z3 20 s3 400 y4 450 z4 20 s4 y1 40 y2 40 y3 40 y4 40 s1 y2 z2 s2 60 s2 y3 z3 s3 75 s3 y4 z4 s4 25 y1 z1 s1 30 Globaloptimalsolutionfound Objectivevalue 78450 00Totalsolveriterations 8VariableValueReducedCostY140 000000 000000Z10 00000020 00000S110 000000 000000Y240 000000 000000Z210 000000 000000S20 00000020 00000Y340 000000 000000Z335 000000 000000S30 00000070 00000Y425 000000 000000Z40 00000050 00000S40 000000420 0000RowSlackorSurplusDualPrice178450 00 1 00000020 00000030 0000030 00000050 0000040 00000050 00000515 000000 00000060 000000450 000070 000000450 000080 000000400 000090 000000430 0000 即 全局最優(yōu)解RP 40 40 40 25 OP 0 10 35 0 最小成本 78450 MODEL SETS QUARTERS 1 2 3 4 x y z s ENDSETSDATA x 40 60 75 25 ENDDATAMIN SUM QUARTERS I 400 y I 450 z I 20 s I FOR QUARTERS I y I 40 FOR QUARTERS I I GT 1 s I s I 1 y I z I x I s 1 10 y 1 z 1 x 1 END 運(yùn)算符 LINGO中的集合 集合是一群相聯(lián)系的對象組成的 這些對象稱為集的成員 每個(gè)集成員可能有一個(gè)或多個(gè)與之有關(guān)聯(lián)的特征 我們把這些特征稱為屬性 例如 產(chǎn)品集中的每個(gè)產(chǎn)品可以有一個(gè)價(jià)格屬性 卡車集中的每輛卡車可以有一個(gè)牽引力屬性 雇員集中的每位雇員可以有一個(gè)薪水屬性 也可以有一個(gè)生日屬性等等 屬性值可以預(yù)先給定 也可以是未知的 有待于LINGO求解 LINGO有兩種類型的集合 原始集 primitiveset 和派生集 derivedset 原始集 直接把元素列舉出來的集合 派生集 基于原始集而派生出來的二維或多維集合 模型的集部分 定義原始集 定義一個(gè)原始集 用下面的語法 setname member list attribute list 集合名稱 集合元素 屬性 定義在集合上的 注意 用 表示該部分內(nèi)容可省略 下同 不再贅述 Setname是你選擇的來標(biāo)記集的名字 最好具有較強(qiáng)的可讀性 集名字必須嚴(yán)格符合標(biāo)準(zhǔn)命名規(guī)則 以拉丁字母或下劃線 為首字符 由拉丁字母 A Z 下劃線 阿拉伯?dāng)?shù)字 0 1 9 組成的總長度不超過32個(gè)字符的字符串 且不區(qū)分大小寫 Member list是集成員列表 如果集成員放在集定義中 那么對它們可采取顯式羅列和隱式羅列兩種方式 在LINGO模型中使用集之前 必須在集部分事先定義 集部分以關(guān)鍵字 sets 開始 以 endsets 結(jié)束 一個(gè)模型可以沒有集部分 或有一個(gè)簡單的集部分 或有多個(gè)集部分 一個(gè)集部分可以放置于模型的任何地方 但是一個(gè)集及其屬性在模型約束中被引用之前必須定義了它們 當(dāng)顯式羅列成員時(shí) 必須為每個(gè)成員輸入一個(gè)不同的名字 中間用空格或逗號擱開 允許混合使用 例 可以定義一個(gè)名為students的原始集 它具有成員John Jill Rose和Mike 屬性有sex和age sets students JohnJill RoseMike sex age EndsetsSets jihe 1 2 3 4 x y endsets 當(dāng)隱式羅列成員時(shí) 不必羅列出每個(gè)集成員 可采用如下語法 setname member1 memberN attribute list 這里的member1是集的第一個(gè)成員名 memberN是集的最末一個(gè)成員名 LINGO將自動產(chǎn)生中間的所有成員名 LINGO也接受一些特定的首成員名和末成員名 用于創(chuàng)建一些特殊的集 列表如下 練習(xí) 集合元素的隱式列舉 定義派生集 用下面的語法定義一個(gè)派生集 派生集名字 集1 集2 派生集成員 屬性 集1 集2 是已定義的原始集的列表 多個(gè)時(shí)必須用逗號隔開 例如 sets product A machine MN allowed product machine x endsetsLINGO生成了2個(gè)父集的所有組合共2組作為allowed集的成員 列表如下 編號成員1 A M 2 A N 成員列表被忽略時(shí) 派生集成員由父集成員所有的組合構(gòu)成 這樣的派生集成為稠密集 如果限制派生集的成員 使它成為父集成員所有組合構(gòu)成的集合的一個(gè)子集 這樣的派生集成為稀疏集 一個(gè)派生集的成員列表有兩種方式生成 顯式羅列 設(shè)置成員資格過濾器 當(dāng)采用方式 時(shí) 必須顯式羅列出所有要包含在派生集中的成員 并且羅列的每個(gè)成員必須屬于稠密集 使用前面的例子 顯式羅列派生集的成員 allowed product machine AM AN 如果需要生成一個(gè)大的 稀疏的集 那么顯式羅列就很麻煩 幸運(yùn)地是許多稀疏集的成員都滿足一些條件以和非成員相區(qū)分 我們可以把這些邏輯條件看作過濾器 在LINGO生成派生集的成員時(shí)把使邏輯條件為假的成員從稠密集中過濾掉 例如 sets students linkmf students students c endsetssets students 1 2 3 4 linkmf students students 過濾器 endsets 集合的類型 集合派生集合基本集合稀疏集合稠密集合元素列表法元素過濾法直接列舉法隱式列舉法 setname member list attribute list setname parent set list member list attribute list SETS CITIES A1 A2 A3 B1 B2 ROADS CITIES CITIES A1 B1A1 B2A2 B1A3 B2 D ENDSETS SETS STUDENTS S1 S8 PAIRS STUDENTS STUDENTS ENDSETS 模型的數(shù)據(jù)部分 數(shù)據(jù)部分以關(guān)鍵字 data 開始 以關(guān)鍵字 enddata 結(jié)束 在這里 可以指定集成員 集的屬性 其語法如下 屬性名 多個(gè)值用逗號或空格分開 屬性取值列表 多個(gè)值用逗號或空格分開 注意 屬性取值的個(gè)數(shù)必須等于集成員的個(gè)數(shù) 例如sets 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 Feasiblesolutionfound Totalsolveriterations 0VariableValueX A 1 000000X B 2 000000X C 3 000000Y A 4 000000Y B 5 000000Y C 6 000000 可采用如下例子中的復(fù)合數(shù)據(jù)聲明 datastatement 實(shí)現(xiàn)同樣的功能 例sets set1 A B C X Y endsetsdata X Y 142536 enddata看到這個(gè)例子 可能會認(rèn)為X被指定了1 4和2三個(gè)值 因?yàn)樗鼈兪菙?shù)值列中前三個(gè) 而正確的答案是1 2和3 sets students 1 2 3 4 linkmf students students c endsetsdata c 4 5 6 21 7 8 0 2 9 5 71 2 45 8enddata 用集合的語言生成一個(gè)初始值 實(shí)時(shí)數(shù)據(jù)處理在某些情況 對于模型中的某些數(shù)據(jù)并不是定值 譬如模型中有一個(gè)通貨膨脹率的參數(shù) 我們想在2 至6 范圍內(nèi) 對不同的值求解模型 來觀察模型的結(jié)果對通貨膨脹的依賴有多么敏感 我們把這種情況稱為實(shí)時(shí)數(shù)據(jù)處理 whatifanalysis LINGO有一個(gè)特征可方便地做到這件事 在本該放數(shù)的地方輸入一個(gè)問號 例如 data x y 1 enddata每一次求解模型時(shí) LINGO都會提示為參數(shù)y輸入一個(gè)值 在WINDOWS操作系統(tǒng)下 將會接收到一個(gè)類似下面的對話框 直接輸入一個(gè)值再點(diǎn)擊OK按鈕 LINGO就會把輸入的值指定給inflation rate 然后繼續(xù)求解模型 所有集合成員的屬性為一個(gè)值可以在數(shù)據(jù)聲明的右邊輸入一個(gè)值來把所有的成員的該屬性指定為一個(gè)值 看下面的例子 sets days MO TU WE TH FR SA SU needs endsetsdata needs 20 enddataLINGO將用20指定days集的所有成員的needs屬性 對于多個(gè)屬性的情形 見下例 sets days MO TU WE TH FR SA SU needs cost endsetsdata needscost 20100 enddata 數(shù)據(jù)部分的未知數(shù)值有時(shí)只想為一個(gè)集的部分成員的某個(gè)屬性指定值 而讓其余成員的該屬性保持未知 以便讓LINGO去求出它們的最優(yōu)值 兩個(gè)逗號間可以有空格 sets years 1 5 capacity endsetsdata capacity 34 20 enddata屬性capacity的第2個(gè)和第3個(gè)值分別為34和20 其余的未知 模型的初始部分一個(gè)初始部分以 init 開始 以 endinit 結(jié)束 初始部分的初始聲明規(guī)則和數(shù)據(jù)部分的數(shù)據(jù)聲明規(guī)則相同 也就是說 我們可以在聲明的左邊同時(shí)初始化多個(gè)集屬性 可以把集屬性初始化為一個(gè)值 可以用問號實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理 還可以用逗號指定未知數(shù)值 init X Y 0 9 endinit又如 init X Y 0 endinit好的初始點(diǎn)會減少模型的求解時(shí)間 變量界定函數(shù) 變量界定函數(shù)實(shí)現(xiàn)對變量取值范圍的附加限制 共4種 bin x 限制x為0或1 bnd L x U 限制L x U free x 取消對變量x的默認(rèn)下界為0的限制 即x可以取任意實(shí)數(shù) gin x 限制x為整數(shù)在默認(rèn)情況下 LINGO規(guī)定變量是非負(fù)的 也就是說下界為0 上界為 free取消了默認(rèn)的下界為0的限制 使變量也可以取負(fù)值 bnd用于設(shè)定一個(gè)變量的上下界 它也可以取消默認(rèn)下界為0的約束 返回 運(yùn)算符邏輯運(yùn)算符 not 非 and 與 or 或 eq 等于 ne 不等于 gt 大于 ge 大于等于 lt 小于 le 小于等于 算術(shù)運(yùn)算符 加法 減法 乘法 除法 求冪 這些運(yùn)算符的優(yōu)先級由高到低為 高 not eq ne gt ge lt le and or 低 集循環(huán)函數(shù)1 for for 集合名稱 集合元素的表達(dá)式 不過 for函數(shù)允許只輸入一個(gè)約束 然后LINGO自動產(chǎn)生每個(gè)集成員的約束 例計(jì)算y x 2在x 4 5 2 處的值 model sets number 1 2 3 x y endsetsdata x enddata for number I y I x I 2 end 2 sum sum 集合名稱 集合元素的表達(dá)式 該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)式的和 例求向量 5 1 3 4 6 10 前5個(gè)數(shù)的和 model sets number 1 6 x endsetsdata x 5134610 enddatas sum number I I le 5 x end 練習(xí) 計(jì)算 Sets Shuzi 1 10 x EndsetsData X 1 2 3 4 5 6 7 8 9 10 EnddataZ sum shuzi x 3 min和 max max 集合名稱 過濾器 集合屬性的表達(dá)式 返回指定的集成員的一個(gè)表達(dá)式的最小值或最大值 例求向量 5 1 3 4 6 10 前5個(gè)數(shù)的最小值 后3個(gè)數(shù)的最大值 model sets number 1 x endsetsdata x 5134610 enddataminv min number i i le 5 x i maxv max number i i ge 4 x i End 數(shù)學(xué)函數(shù)LINGO提供了大量的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù) abs x 返回x的絕對值 sin x 返回x的正弦值 x采用弧度制 cos x 返回x的余弦值 tan x 返回x的正切值 exp x 返回常數(shù)e的x次方 log x 返回x的自然對數(shù) lgm x 返回x的gamma函數(shù)的自然對數(shù) sign x 如果x 0時(shí) 返回不超過x的最大整數(shù) 當(dāng)x 0時(shí) 返回不低于x的最大整數(shù) smax x1 x2 xn 返回x1 x2 xn中的最大值 smin x1 x2 xn 返回x1 x2 xn中的最小值 概率中的相關(guān)函數(shù) 找出y cosx在x 點(diǎn)出的最大值 編程如下 Sets Dian 1 2 3 x y EndsetsData X 4 3 8 Enddata for dian y cos x min max dian y for dian free y 返回 例5 指派問題 某隊(duì)從 名游泳隊(duì)員中選擇 人組成接力隊(duì) 參加學(xué)校的 m混合泳接力比賽 名隊(duì)員 種泳姿的百米平均成績?nèi)缦卤?問應(yīng)如何選拔隊(duì)員組成接力隊(duì) 問題分析用 變量表示一個(gè)隊(duì)員是否入選接力隊(duì) 從而建立這個(gè)問題的 規(guī)劃模型 借助lingo求解模型的建立與求解記甲乙丙丁戊分別為隊(duì)員i 1 2 3 4 5 記蝶泳 仰泳 蛙泳 自由泳分別為泳姿j 1 2 3 4 記隊(duì)員i的第j種泳姿的百米最好成績?yōu)閏ij 秒 則有下表 引入 變量xij 若選擇隊(duì)員i參加泳姿j的比賽 記xij 1 否則記為 根據(jù)組成接力隊(duì)的要求 xij應(yīng)滿足兩個(gè)約束條件 每人最多只能入選 種泳姿之一 即對于i 1 2 3 4 5 應(yīng)有 每種泳姿必須有 人而且只能有 人入選 即有 當(dāng)隊(duì)員i入選泳姿j時(shí) cijxij表示隊(duì)員的成績 否則cijxij 0 于是接力隊(duì)的成績可表示為這就是目標(biāo)函數(shù) 故該問題的模型為 Model Sets Duiyuan 1 2 3 4 5 Yongzi 1 2 3 4 Chengji duiyuan yongzi c x EndsetsData C 66 875 68758 657 26666 4537867 884 659 47074 269 657 267 47183 862 4 EnddataMin sum chengji i j c i j x i j 或 Min sum duiyuan i sum yongzi j c i j x i j for duiyuan i sum yongzi j x i j 1 for yongzi j sum duiyuan i x i j 1 for chengji bin x 求解得到的結(jié)果是 x14 x21 x32 x43 1 其他為 成績?yōu)?53 2 4 13 2 即當(dāng)選派甲乙丙丁 人組成接力隊(duì) 分別參加自由泳 蝶泳 仰泳 蛙泳的比賽 練習(xí) 運(yùn)輸問題 使用LINGO軟件計(jì)算6個(gè)發(fā)點(diǎn)8個(gè)收點(diǎn)的最小費(fèi)用運(yùn)輸問題 產(chǎn)銷單位運(yùn)價(jià)如下表 單位銷地 模型的建立和求解 記ai為產(chǎn)地i的產(chǎn)量 Bj為銷地j的銷量cij為產(chǎn)地i到銷地j的單位運(yùn)價(jià) Dij為產(chǎn)地i到銷地j的運(yùn)輸量 該問題模型如下 model sets chandi 1 6 a xiaodi 1 8 b links chandi xiaodi c d endsetsmin sum links c d for xiaodi J sum chandi I d I J b J for chandi I sum xiaodi J d I J a I data a 605551434152 b 3537223241324338 c 626742954953858252197433767392712395726555228143 enddataend 例10現(xiàn)有6個(gè)人做6項(xiàng)工作 現(xiàn)求一種指派方式使得每個(gè)人完成一種工作 使其收益最大 解 設(shè)cij為第i個(gè)人做第j項(xiàng)工作的收益 引如0 1變量xij 當(dāng)?shù)趇個(gè)人做第j項(xiàng)工作時(shí) xij 1 否則xij 0 可得模型 例6 選址問題 建筑工地的位置 用平面坐標(biāo)a b表示 距離單位 公里 及水泥日用量d 噸 下表給出 有兩個(gè)臨時(shí)料場位于P 5 1 Q 2 7 日儲量各有20噸 從P Q兩料場分別向各工地運(yùn)送多少噸水泥 使總的噸公里數(shù)最小 兩個(gè)新的料場應(yīng)建在何處 節(jié)省的噸公里數(shù)有多大 建立模型 使用現(xiàn)有臨時(shí)料場時(shí) 決策變量只有 非負(fù) 所以這是LP模型 當(dāng)為新建料場選址時(shí)決策變量為和 由于目標(biāo)函數(shù)對是非線性的 所以在新建料場時(shí)是NLP模型 先解NLP模型 而把現(xiàn)有臨時(shí)料場的位置作為初始解告訴LINGO 記工地的位置為 水泥日用量為 料場位置為 日儲量為 從料場向工地的運(yùn)送量為 例 某架貨機(jī)有三個(gè)貨艙 前倉 中倉 后倉 三個(gè)貨艙所能裝載的貨物的最大重量和體積都有限制 如下表 前倉中倉后倉重量限制 t 體積限制 m 680087005300現(xiàn)有四類貨物供該貨機(jī)本次飛行裝運(yùn) 其有關(guān)信息如下表 最后一列指裝運(yùn)后所獲得的利潤 重量 t 空間 m3 t 利潤 元 t 貨物 貨物 貨物 貨物 應(yīng)如何安排裝運(yùn) 使該貨機(jī)本次飛行獲力最大 模型假設(shè)問題中沒有對貨物裝運(yùn)提出其他要求 我們可作如下假設(shè) 每種貨物可以分割到任意小 每種貨物可以在一個(gè)或多個(gè)貨艙中任意分布 多種貨物混裝 并保證不留空隙 模型建立決策變量 用xij表示第i種貨物裝入第j個(gè)貨艙的重量 噸 貨艙j 1 2 3分別表示前倉 中倉 后倉 決策目標(biāo)是最大化總利潤 即maxZ 3100 x11 x12 x13 3800 x21 x22 x23 3500 x31 x32 x33 2850 x41 x42 x43 約束條件 供裝載的四種貨物的總重量約束 即x11 x12 x13 18x21 x22 x23 15x31 x32 x33 23x41 x42 x43 12 2 三個(gè)貨艙的重量限制 即x11 x21 x31 x41 10X12 x22 x32 x42 16x13 x23 x33 x43 83 三個(gè)貨艙的空間限制 即480 x11 650 x21 580 x31 390 x41 6800480 x12 650 x22 580 x32 390 x42 8700480 x13 650 x23 580 x33 390 x43 5300 sets huowu 1 2 3 4 a b c huocang 1 2 3 h d link huowu huocang x endsetsdata a 3100 3800 3500 2850 b 480 650 580 390 h 6800 8700 5300 c 18 15 23 12 d 10 16 8 enddatamax sum link i j a i x i j for huowu i sum huocang j x i j c i for huocang j sum huowu i x i j d j for huocang j sum huowu i b i x i j h j 例 轉(zhuǎn)運(yùn)問題 設(shè)有兩個(gè)工廠A B 產(chǎn)量分別為9 8個(gè)單位 四個(gè)顧客1 2 3 4 需求量分別為3 5 4 5 和三個(gè)倉庫x y z 其中工廠到倉庫 倉庫到顧客的運(yùn)費(fèi)單價(jià)分別由表7 4所示 試求總運(yùn)費(fèi)最少的運(yùn)輸方案 以及總運(yùn)費(fèi) 表7 4工廠到倉庫 倉庫到顧客的運(yùn)費(fèi)單價(jià) 說明 其中 表示兩地?zé)o道路通行 解 寫出相應(yīng)的LINGO程序 程序名 exam0706a lg4 MODEL 2plants 3warehousesand4customersTransshipmentProblem sets Plant A B produce Warhouse x y z Customer 1 4 require LinkI Plant Warhouse cI xI LinkII Warhouse Customer cII xII endsets Herearetheparameters data produce 9 8 require 3 5 4 5 cI 1 2 100 3 1 2 cII 5 7 100 100 9 6 7 100 100 8 7 4 enddata Theobjective OBJ min sum LinkI cI xI sum LinkII cII xII Thesupplyconstraints for Plant i SUP sum Warhouse j xI i j produce i Thewarhouseconstraints for

溫馨提示

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

評論

0/150

提交評論