第6章 目標規劃實驗_第1頁
第6章 目標規劃實驗_第2頁
第6章 目標規劃實驗_第3頁
第6章 目標規劃實驗_第4頁
第6章 目標規劃實驗_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章目標規劃實驗6.1基礎知識6.2使用LINDO/Lingo軟件求解目標規劃問題6.3使用WinQSB軟件求解目標規劃問題6.4使用MATLAB軟件求解目標規劃問題6.1基礎知識

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

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

實際值+負偏差-正偏差=預定目標值在求解目標規劃問題時,按照優先級的次序,從高層到低層逐層優化,在不加大高層偏差值的情況下,使該層加權偏差值達到最小。6.1基礎知識

6.1基礎知識

6.1基礎知識

6.1基礎知識

6.2使用LINDO/Lingo軟件求解目標規劃問題

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

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

實驗目的掌握目標規劃問題的數學模型及其建模方法。熟悉LINDO/Lingo軟件求解目標規劃問題的方法步驟,能夠理解、分析求解結果。實驗內容

例6.1某企業計劃生產甲、乙兩種產品,這些產品需要使用兩種材料,要在兩種不同設備上加工。產品和設備的相關數據如下表所示。6.2使用LINDO/Lingo軟件求解目標規劃問題

工廠在原材料供應受嚴格限制的基礎上,考慮以下幾個方面。

第一優先級:

力求使利潤不低于12元。

第二優先級:

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

第三優先級:

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

工廠應如何制訂生產計劃,才能盡可能好地滿足上述目標?6.2使用LINDO/Lingo軟件求解目標規劃問題

6.2使用LINDO/Lingo軟件求解目標規劃問題

6.2使用LINDO/Lingo軟件求解目標規劃問題

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

6.2使用LINDO/Lingo軟件求解目標規劃問題

6.2使用LINDO/Lingo軟件求解目標規劃問題

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

6.2使用LINDO/Lingo軟件求解目標規劃問題

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

6.2使用LINDO/Lingo軟件求解目標規劃問題

6.2使用LINDO/Lingo軟件求解目標規劃問題

6.2使用LINDO/Lingo軟件求解目標規劃問題

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

6.2使用LINDO/Lingo軟件求解目標規劃問題

6.2使用LINDO/Lingo軟件求解目標規劃問題

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

6.2使用LINDO/Lingo軟件求解目標規劃問題

3.

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

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

選擇“Reports”→“Solution”菜單命令,可找到最優解,最優解窗口為6.2使用LINDO/Lingo軟件求解目標規劃問題

6.2使用LINDO/Lingo軟件求解目標規劃問題

6.3使用WinQSB軟件求解目標規劃問題

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

實驗目的掌握目標規劃問題的數學模型及其建模方法。熟悉WinQSB軟件求解目標規劃問題的方法步驟,能夠理解、分析求解結果。進一步理解單純形法求解目標規劃問題的過程。實驗內容例6.2用WinQSB軟件求解例6.1的目標規劃問題的數學模型。6.3使用WinQSB軟件求解目標規劃問題

選擇“開始”

→“程序”→“WinQSB”→“GoalProgramming”菜單命令,運行后出現啟動窗口6.3使用WinQSB軟件求解目標規劃問題

2.單擊“File”菜單中的“NewProblem”菜單命令,打開創建新問題參數設置對話框。6.3使用WinQSB軟件求解目標規劃問題

3.單擊“OK”按鈕生成表格,出現數據編輯窗口,選擇

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

4.單擊“OK”按鈕,返回數據輸入窗口并按數學模型輸入數據。6.3使用WinQSB軟件求解目標規劃問題

5.選擇“Solve

and

Analyze”→“Solve

the

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

該目標規劃問題的數學模型中只有兩個決策變量,因此還可以用圖解法求解。6.3使用WinQSB軟件求解目標規劃問題

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

and

Analyze”→“GraphicMethod”菜單命令,出現參數設置對話框6.3使用WinQSB軟件求解目標規劃問題

默認水平坐標軸是“X1”,垂直坐標軸是“X2”,不需

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

單擊“OK”按鈕,系統顯示求解的綜合報告表。6.3使用WinQSB軟件求解目標規劃問題

若偏差變量選擇“Settooptimal”,則圖中各目標約束均過最優解,系統顯示最優解報告表。6.4使用MATLAB軟件求解目標規劃問題

MATLAB軟件優化工具箱中提供了求解多目標規劃問題的fgoalattain函數,fgoalattain函數求解多目標規劃問題的基本算法是目標達到法。6.4使用MATLAB軟件求解目標規劃問題

設多目標規劃問題的數學模型為如下的標準形式:

6.4使用MATLAB軟件求解目標規劃問題

6.4使用MATLAB軟件求解目標規劃問題

fgoalattain函數定義的多目標規劃問題的標準形式:

6.4使用MATLAB軟件求解目標規劃問題

fgoalattain函數的調用格式為:6.4使用MATLAB軟件求解目標規劃問題

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

當權重weight設置為正時,fgoalattain函數則試圖使目標函數值小于期望值;當權重weight設置為負時,fgoalattain函數則試圖使目標函數值大于期望值。6.4使用MATLAB軟件求解目標規劃問題

在輸出參數中,x為最優點或者迭代結束點。fval為最優值或迭代結束點的函數值。輸出參數attainfactor指明了目標達到的情況。當attainfactor為負時,說明目標函數值溢出期望值goal;當attainfactor為正時,說明目標函數還未達到期望值。

輸出參數exitflag是優化終止狀態指示結構變量。output為算法輸出(算法的迭代信息等)。lambda為最優點或迭代結束點的拉格朗日乘子。

實驗目的掌握使用MATLAB軟件中的linprog函數求解目標規劃問題的方法步驟,理解其輸出結果。掌握使用MATLAB軟件中的fgoalattain函數求解多目標規劃問題的方法步驟,理解其輸出結果。進一步熟悉目標規劃問題的有關基本概念及數學模型。6.4使用MATLAB軟件求解目標規劃問題

實驗內容例6.3用linprog函數求解例6.1中的目標規劃問題的數學模型。

6.4使用MATLAB軟件求解目標規劃問題

我們記

6.4使用MATLAB軟件求解目標規劃問題

則原問題數學模型變為

6.4使用MATLAB軟件求解目標規劃問題

調用linprog函數,在命令窗口中輸入如下代碼:6.4使用MATLAB軟件求解目標規劃問題

命令窗中輸出為:

6.4使用MATLAB軟件求解目標規劃問題

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

6.4使用MATLAB軟件求解目標規劃問題

用fgoalattain函數來求解該問題6.4使用M

溫馨提示

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

評論

0/150

提交評論