第6章 目標(biāo)規(guī)劃實驗_第1頁
第6章 目標(biāo)規(guī)劃實驗_第2頁
第6章 目標(biāo)規(guī)劃實驗_第3頁
第6章 目標(biāo)規(guī)劃實驗_第4頁
第6章 目標(biāo)規(guī)劃實驗_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章目標(biāo)規(guī)劃實驗6.1基礎(chǔ)知識6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題6.1基礎(chǔ)知識

目標(biāo)規(guī)劃問題及模型在很多實際問題中,如在經(jīng)濟、管理、軍事、科學(xué)和工程設(shè)計等領(lǐng)域的問題中,衡量一個方案的好壞往往難以用一個指標(biāo)來判斷,而需要用多個目標(biāo)來比較,這些目標(biāo)有時是不協(xié)調(diào)的,甚至是矛盾的,此類問題稱為多目標(biāo)決策問題。目標(biāo)規(guī)劃(GoalProgramming)是解決多目標(biāo)決策問題的方法之一,它將多目標(biāo)決策問題轉(zhuǎn)化為線性規(guī)劃來求解。目標(biāo)規(guī)劃的基本思想:分別給予眾多的目標(biāo)一個希望實現(xiàn)的目標(biāo)值,然后按目標(biāo)的重要程度依次進行考慮和計算,以求得最接近各預(yù)定目標(biāo)值的方案。在目標(biāo)規(guī)劃模型中,如果每個目標(biāo)函數(shù)都是決策變量的線性函數(shù),則稱該目標(biāo)規(guī)劃為線性目標(biāo)規(guī)劃(LinearGoalProgramming,LGP)。6.1基礎(chǔ)知識

應(yīng)用線性目標(biāo)規(guī)劃模型處理有優(yōu)先級的多目標(biāo)決策問題時,與一般線性規(guī)劃模型相比,有以下區(qū)別:模型的決策變量除了問題所要求的決策變量,還要將各目標(biāo)的偏差(包括正偏差和負(fù)偏差)均作為決策變量,以確定各實際值與各預(yù)定目標(biāo)值的最佳差距。根據(jù)偏差的定義,目標(biāo)規(guī)劃模型應(yīng)增加一個約束條件:

實際值+負(fù)偏差-正偏差=預(yù)定目標(biāo)值在求解目標(biāo)規(guī)劃問題時,按照優(yōu)先級的次序,從高層到低層逐層優(yōu)化,在不加大高層偏差值的情況下,使該層加權(quán)偏差值達到最小。6.1基礎(chǔ)知識

6.1基礎(chǔ)知識

6.1基礎(chǔ)知識

6.1基礎(chǔ)知識

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

目標(biāo)規(guī)劃問題的序貫式算法的基本思想是,依據(jù)達成函數(shù)中各目標(biāo)的優(yōu)先級別,將目標(biāo)規(guī)劃模型分解為一系列的單一的線性規(guī)劃模型,然后逐一完成其求解過程。因此,我們也可以在

LINDO/Lingo軟件中通過求解一系列的線性規(guī)劃模型來求解目標(biāo)規(guī)劃問題。在LINDO軟件中,由于“Solve”菜單中的“PreemptiveGoal”選項可用來處理具有不同優(yōu)先權(quán)的多目標(biāo)函數(shù)的線性規(guī)劃,因此可利用該命令來求解目標(biāo)規(guī)劃問題。具體來說就是,將處于不同優(yōu)先級的目標(biāo)函數(shù)用不同的變量表示出來,再將這些變量按優(yōu)先順序依次相加作為新的目標(biāo)函數(shù),最后用上述命令求解即可。6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

實驗?zāi)康恼莆漳繕?biāo)規(guī)劃問題的數(shù)學(xué)模型及其建模方法。熟悉LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題的方法步驟,能夠理解、分析求解結(jié)果。實驗內(nèi)容

例6.1某企業(yè)計劃生產(chǎn)甲、乙兩種產(chǎn)品,這些產(chǎn)品需要使用兩種材料,要在兩種不同設(shè)備上加工。產(chǎn)品和設(shè)備的相關(guān)數(shù)據(jù)如下表所示。6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

工廠在原材料供應(yīng)受嚴(yán)格限制的基礎(chǔ)上,考慮以下幾個方面。

第一優(yōu)先級:

力求使利潤不低于12元。

第二優(yōu)先級:

考慮到市場需求,甲、乙兩種產(chǎn)品的生產(chǎn)量需保持1∶1的比例。

第三優(yōu)先級:

設(shè)備B必要時可以加班,但加班時間要控制;設(shè)備A既要求充分利用,又盡可能不加班。設(shè)備A的重要性是設(shè)備B的3倍。

工廠應(yīng)如何制訂生產(chǎn)計劃,才能盡可能好地滿足上述目標(biāo)?6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

打開Lingo軟件后,在編輯窗口輸入程序單擊“Lingo”菜單中的“Solve”選項或按“Ctrl”+“U”鍵進行求解,彈出例6.1的求解報告窗口。6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

2.利用序貫式算法進行求解(1)對于第一優(yōu)先級,求解線性規(guī)劃問題:

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

打開Lingo軟件后,在編輯窗口輸入該模型(第一優(yōu)先級)

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

打開Lingo軟件后,在編輯窗口輸入該模型(第二優(yōu)先級)6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

打開Lingo軟件后,在編輯窗口輸入該模型(第三優(yōu)先級)6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

3.

用LINDO軟件中的PreemptiveGoal選項求解(1)在LINDO軟件中輸入如下程序6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

(2)選擇“Solve”→“PreemptiveGoal”菜單命令用“PreemptiveGoal”選項求解的結(jié)果如圖,圖中所示的是我們模型中三個優(yōu)先級的目標(biāo)函數(shù)的最優(yōu)值和計算迭代次數(shù)6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

選擇“Reports”→“Solution”菜單命令,可找到最優(yōu)解,最優(yōu)解窗口為6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.2使用LINDO/Lingo軟件求解目標(biāo)規(guī)劃問題

6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

WinQSB軟件中的“GoalProgramming”模塊可用來求解目標(biāo)規(guī)劃問題。WinQSB軟件提供了比較方便的運算方式,WinQSB軟件求解多目標(biāo)規(guī)劃問題具有自己的特色,基于表格的建模方式。目標(biāo)規(guī)劃問題的數(shù)學(xué)模型與線性規(guī)劃問題的數(shù)學(xué)模型沒有本質(zhì)區(qū)別,單純形法仍然是求解目標(biāo)規(guī)劃問題的主要算法和工具,使用WinQSB軟件求解小型目標(biāo)規(guī)劃問題還可以演示中間的計算過程。對于只有兩個變量的目標(biāo)規(guī)劃問題,WinQSB軟件還可以用圖解法求解。

實驗?zāi)康恼莆漳繕?biāo)規(guī)劃問題的數(shù)學(xué)模型及其建模方法。熟悉WinQSB軟件求解目標(biāo)規(guī)劃問題的方法步驟,能夠理解、分析求解結(jié)果。進一步理解單純形法求解目標(biāo)規(guī)劃問題的過程。實驗內(nèi)容例6.2用WinQSB軟件求解例6.1的目標(biāo)規(guī)劃問題的數(shù)學(xué)模型。6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

選擇“開始”

→“程序”→“WinQSB”→“GoalProgramming”菜單命令,運行后出現(xiàn)啟動窗口6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

2.單擊“File”菜單中的“NewProblem”菜單命令,打開創(chuàng)建新問題參數(shù)設(shè)置對話框。6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

3.單擊“OK”按鈕生成表格,出現(xiàn)數(shù)據(jù)編輯窗口,選擇

“Edit”→“VariableNames”菜單命令,修改偏差變量名。6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

4.單擊“OK”按鈕,返回數(shù)據(jù)輸入窗口并按數(shù)學(xué)模型輸入數(shù)據(jù)。6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

5.選擇“Solve

and

Analyze”→“Solve

the

Problem”菜單命令,得到運行結(jié)果,輸出結(jié)果中給出了從最高優(yōu)先級目標(biāo)G1到最低優(yōu)先級目標(biāo)G3的優(yōu)化結(jié)果(這里只截取了G3部分)6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

該目標(biāo)規(guī)劃問題的數(shù)學(xué)模型中只有兩個決策變量,因此還可以用圖解法求解。6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

問題輸入完成后,選擇“Solve

and

Analyze”→“GraphicMethod”菜單命令,出現(xiàn)參數(shù)設(shè)置對話框6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

默認(rèn)水平坐標(biāo)軸是“X1”,垂直坐標(biāo)軸是“X2”,不需

要更改。其他變量(偏差變量)選擇“Settozero”,

單擊“OK”按鈕,系統(tǒng)顯示求解的綜合報告表。6.3使用WinQSB軟件求解目標(biāo)規(guī)劃問題

若偏差變量選擇“Settooptimal”,則圖中各目標(biāo)約束均過最優(yōu)解,系統(tǒng)顯示最優(yōu)解報告表。6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

MATLAB軟件優(yōu)化工具箱中提供了求解多目標(biāo)規(guī)劃問題的fgoalattain函數(shù),fgoalattain函數(shù)求解多目標(biāo)規(guī)劃問題的基本算法是目標(biāo)達到法。6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

設(shè)多目標(biāo)規(guī)劃問題的數(shù)學(xué)模型為如下的標(biāo)準(zhǔn)形式:

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

fgoalattain函數(shù)定義的多目標(biāo)規(guī)劃問題的標(biāo)準(zhǔn)形式:

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

fgoalattain函數(shù)的調(diào)用格式為:6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

在fgoalattain函數(shù)的輸入?yún)?shù)中,fun為目標(biāo)函數(shù),x0是求解的初始值,goal是目標(biāo)函數(shù)的期望值,weight是目標(biāo)權(quán)重向量,nonlcon是非線性約束函數(shù)。輸入?yún)?shù)中的fun為需要最小化的目標(biāo)函數(shù),在fun函數(shù)中需要輸入設(shè)計變量x,為一個列向量,結(jié)果返回x處的目標(biāo)函數(shù)值。輸入?yún)?shù)中的goal變量是指希望目標(biāo)函數(shù)達到的向量值。輸入?yún)?shù)中的weight變量為權(quán)重向量,可以控制低于或超過fgoalattain函數(shù)指定目標(biāo)的相對程度。當(dāng)goal的值都是非零值時,算法為了保證有效的目標(biāo)值超過或低于的比例相當(dāng),將權(quán)重函數(shù)設(shè)置為abs(goal)。如果將weight向量中的任一元素設(shè)置為0,則算法將把對應(yīng)的目標(biāo)約束當(dāng)作剛性約束來處理。當(dāng)設(shè)置weight為不同的數(shù)值時,fgoalattain函數(shù)將對目標(biāo)函數(shù)采取不同的處理方式:

當(dāng)權(quán)重weight設(shè)置為正時,fgoalattain函數(shù)則試圖使目標(biāo)函數(shù)值小于期望值;當(dāng)權(quán)重weight設(shè)置為負(fù)時,fgoalattain函數(shù)則試圖使目標(biāo)函數(shù)值大于期望值。6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

在輸出參數(shù)中,x為最優(yōu)點或者迭代結(jié)束點。fval為最優(yōu)值或迭代結(jié)束點的函數(shù)值。輸出參數(shù)attainfactor指明了目標(biāo)達到的情況。當(dāng)attainfactor為負(fù)時,說明目標(biāo)函數(shù)值溢出期望值goal;當(dāng)attainfactor為正時,說明目標(biāo)函數(shù)還未達到期望值。

輸出參數(shù)exitflag是優(yōu)化終止?fàn)顟B(tài)指示結(jié)構(gòu)變量。output為算法輸出(算法的迭代信息等)。lambda為最優(yōu)點或迭代結(jié)束點的拉格朗日乘子。

實驗?zāi)康恼莆帐褂肕ATLAB軟件中的linprog函數(shù)求解目標(biāo)規(guī)劃問題的方法步驟,理解其輸出結(jié)果。掌握使用MATLAB軟件中的fgoalattain函數(shù)求解多目標(biāo)規(guī)劃問題的方法步驟,理解其輸出結(jié)果。進一步熟悉目標(biāo)規(guī)劃問題的有關(guān)基本概念及數(shù)學(xué)模型。6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

實驗內(nèi)容例6.3用linprog函數(shù)求解例6.1中的目標(biāo)規(guī)劃問題的數(shù)學(xué)模型。

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

我們記

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

則原問題數(shù)學(xué)模型變?yōu)?/p>

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

調(diào)用linprog函數(shù),在命令窗口中輸入如下代碼:6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

命令窗中輸出為:

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

例6.4某工廠需要采購某種生產(chǎn)原料,該原料市場上有A和B兩種,單價分別為2元/kg和1.5元/kg?,F(xiàn)要求所花的總費用不超過300元,購得的原料總質(zhì)量不少于120kg,其中A原料不得少于60kg,問如何確定最佳采購方案,可以實現(xiàn)花最少的錢采購最多數(shù)量的原料?

6.4使用MATLAB軟件求解目標(biāo)規(guī)劃問題

用fgoalattain函數(shù)來求解該問題6.4使用M

溫馨提示

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

評論

0/150

提交評論