10分鐘也不一定學會的靈敏度分析

2021-10-10 03:01:29 字數 3800 閱讀 4775

靈敏度分析可謂是線性規劃中的重難點了,不僅將之前的知識彙總起來,更是考試必考的大題(出題人基本都是先讓用單純形法解出線性規劃問題後,緊接著剩下的2,3小問均是靈敏度分析解題)。博主寫這一篇博文也是走走停停耽誤了很久,前前後後複習了多次qaq。

接下來我們還是提出幾個問題:

1. 靈敏度分析對應的是怎樣的問題?

2. 靈敏度分析法解決問題有怎樣的優點?不用該方法還有其他方法嗎?

3. 靈敏度分析類的問題有哪幾類?相應的要如何解決?

針對問題一:靈敏度分析類問題用流程圖來解釋的話大致是這樣的:

判斷最優解是否發生變化是這類問題最常用的提問方式。比如說:(這裡可以隨便用個線性規劃問題想象,就不再找例子了)1.將目標函式中的x1對應的係數由a化為b,最優解是否發生變化?2.第乙個約束條件中右端的b值(常量)由c化成d最優解是否會發生改變?等等這類的問題。那麼這類問題一般要怎樣進行解答呢?這就是問題二要考慮的了。

針對問題二:問題一的最後我們提出了要怎樣進行解答該類問題的疑問?其實,在我們現在已經掌握(純粹)單純形法,對偶單純形法等一系列用來解決線性規劃問題的方法後,即使不使用靈敏度分析法也能判斷出引數改變後是否還是最優解?你可能在納悶我在說什麼,但仔細想想判斷最優解是否變化的話,我們只需要分別求出兩個線性規劃問題所對應的最優解是否相同不就可以了嘛?但是,你可能也意識到了,這樣做的結果是步驟複雜且極其容易求錯。所以我們在這種情況下就需要使用靈敏度分析進行作答。即該方法更加的快捷、高效且不容易出錯(計算量遠遠少於原始方法)。那麼到底怎樣使用靈敏度分析呢?這就是第三問要詳細進行說明的了。

針對問題三:了解了前兩個問題後,我們已經對靈敏度分析的背景、優點及使用情況有了清晰的輪廓,那麼接下來就是重中之重了,我將會分類對該方法進行講解。 下面的講解均以下圖為例,因為線性規劃問題的求解不是關鍵,所以將會直接列出相應的過程:

①原線性規劃問題:

②化作標準型的矩陣

③最終的結果以及相應的引數值

在講之前,我先解釋一下第三幅圖中每乙個引數所對應的值具體在單純性表中指代的是什麼。

1.b:指的是基本可行解對應的矩陣在沒有進行初等行變換之前對應的矩陣中的值

2.b-1:指的是最初的基變數對應的在進行初等行變換之後的矩陣中的值

3.cb:指的是基本可行解在化成標準型的目標函式中的係數矩陣

4.b-1a:指的是最終化成的矩陣中每乙個x對應的矩陣中的值

5.c:指的是最初的單純形表中目標矩陣的係數的相反數

6.a:指的是在化成標準型的線性規劃中變數的係數,即圖二中的右下部分

7.a:a的意義和a相同(為了區分所以分開來寫),但是由於非基變數影響範圍較小,所以使用的僅是改變的變數對應的係數

敘事能力有限,如果有地方不明白,可以點讚後詢問,每天上線。

一、目標函式值發生變化

1).非基變數的目標函式係數發生變化

問題:將上述目標函式中的x2的係數化成4 + c,如果要使的所得解仍為最優解,那麼c的約束範圍應該為多少?

為了得到這個範圍,我們列出相應的約束條件:cbb-1a - c <= 0。(至於為何要用這個約束條件來進行求解,因為專業性不強,所以不太了解,但對於非數學專業只需要會用就可以了)。不過這裡由於是非基變數,所影響的範圍較小,為了區分接下來講的基變數,暫將其公式記為cbb-1a - c,(對比可以發現,大寫的a、c變成了小寫的a和c,這不僅是為了區分,更是因為計算中,小寫字母a、c所表示的僅僅是該發生變化的引數所對應的值,因為影響範圍變小了)。求解該範圍時相應的變數如下圖所示:

需要注意:△r2是可正可負的,這裡因為由於題意該值是增加的,所以原式中的減c2要變成減-c2,最後得出結果△r2

<= 4/3,即比該值小的話最優值不變,但我覺得還要再用減c2算一下最小值,不然過小也一定會發生變化,這裡只是因為題意一定增加所以沒有考慮。

2).基變數的目標函式係數發生變化

問題:設目標函式中x1係數變為c1 = 3 + △c1,問△c1在什麼範圍內時,上述解仍為最優解?

經過上述描述後,相信具體過程已經無需多言。下面我再寫一下每個引數具體的數值供大家理解

最終求出的1×5矩陣中有三個值都含有△c1,分別令他們<=0,可以求得 -1/3 <= △c1

<= 1/3。

二、右端常數發生變化

設右端常數b1變為20 + △b1,在何範圍內,最優基不變?

這類問題較為簡單,因為已經是基變數了,就不需要再去考慮多種情況了,對於這類問題只有一種解決方法。就是令cbb-1a - c,在該題中的解決過程如下圖所示:

如果經過計算發現改變後不在這個範圍中,那麼說明最優解發生了改變,但是也不需要將改變的值替代原有值然後重新計算。只需要將最後劃出的單純性表中基變數對應的系數值換成b-1b的矩陣的值就可以接著進行換基迭代了,從而計算出最優解。

三、約束條件發生變化四、增加約束條件

這類問題不想之前的問題有公式可以套用,但是這類問題確實最簡單但不一定寫對的問題。首先對於給出的要新增的約束條件,將我們已經算出的最優解代入進去,如果滿足不等式則說明約束條件不起作用,所以最優解一定不變;但是如果不滿足,那麼就只能在原問題的基礎上加入該約束條件進行從頭的計算了。

到這裡基本上所有型別的靈敏度分析問題就都講完了,呼~~,不容易啊!(語言太過貧乏,不知道如何描述這種方法)

創作不易,你的鼓勵是我最大的動力。(約耗時2小時30分鐘,反反覆覆改了好久)

你不一定懂的cpu顯示資訊

你不一定懂的cpu顯示資訊 在使用top命令的時候會看到這麼一行 裡面的各個值分別是什麼意思呢?今天被問到這個問題,發現答的不是很清楚。果然啊,天天用最多的top命令都還沒摸透。慚愧。於是就查了些資料 cpu s 表示的是cpu資訊。各個值的意思是 好了,如果說列出上面的條條框框說我懂了,那真是自欺...

你不一定懂的cpu顯示資訊

在使用top命令的時候會看到這麼一行 裡面的各個值分別是什麼意思呢?今天被問到這個問題,發現答的不是很清楚。果然啊,天天用最多的top命令都還沒摸透。慚愧。於是就查了些資料 cpu s 表示的是cpu資訊。各個值的意思是 好了,如果說列出上面的條條框框說我懂了,那真是自欺欺人了。下面是我自己的理解 ...

你不一定懂的cpu顯示資訊

在使用top命令的時候會看到這麼一行 裡面的各個值分別是什麼意思呢?今天被問到這個問題,發現答的不是很清楚。果然啊,天天用最多的top命令都還沒摸透。慚愧。於是就查了些資料 cpu s 表示的是cpu資訊。各個值的意思是 好了,如果說列出上面的條條框框說我懂了,那真是自欺欺人了。下面是我自己的理解 ...