簡體   English   中英

單純形算法:初始化-單純形

[英]Simplex Algorithm: Initialize-Simplex

我試圖找出“算法簡介,第 3 版”一書中的單純形算法。 “Initial-Simplex”程序以標准形式為輸入,檢查標准形式是否存在初始基本可行解。 偽代碼如下: 在此處輸入圖像描述

在第 2 行,它檢查數組 b 中的最小變量是否大於或等於 0。如果不是,則構造一個 Laux 並執行 pivot 以消除 b 內的負變量。 然后在第 9 行,它顯示基本解決方案對於 Laux 是可行的。 問題是,如果最初在數組 b 中,有多個負變量怎么辦? 例如原點 b 是 [-2, -1, 3, 1],那么在第 1 行,我們有 b[k]=-2,所以 k=0。 但是執行完第4行到第9行后,b內還有一個負變量-1。 在這種情況下,我們不能說基本的解決方案對 Laux 來說是可行的。 總之,沒有檢查b中的所有變量是否為非負的機制,並且第4行到第9行不在循環內。 該算法是否假設最初小於一個負變量在 b 內?

我再次檢查了算法,我想我知道原因了。 對於下面的例子,由於-4是數組b中的最小變量,在一個pivot之后,它變成了4。即使b本來可能還有其他負變量,它們也不能小於-4,因為-4是最小的. 我們用另一個變量替換x0后,x0對應的bx0值為4,我們有|4| 大於或等於任何其他 |bi| 在bi < 0的數組中。所以在pivot之后,新的bi必須是非負數。 對於標准表格

maximize 2x1 - x2
subject to
2x1-x2 <= -2
x1 - 5x2 <= -4
x1, x2 >= 0

松弛形式是

z = -x0
2x1 - x2 - x0 <= -2
x1 - 5x2 - x0 <= -4
x1, x2, x0 >= 0

在 pivot 之后,

x0 = 4 + x1 - 5x2 + x4
x3 = -2 - 2x1 -x2 + (4 + x1 - 5x2 + x4)

我們可以看到 -2 + 4 大於 0。b 中不會有任何負變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM