在數學優化領域,Dantzig 的單純形演算法(或稱單純形法)無疑是線性規劃中最受歡迎的演算法之一。這種方法的命名來源於「單純形」這一概念,雖然在實際操作中並不直接使用這些幾何形狀。單純形法的運作是基於一種幾何對象,即多面體,由此演算法的發展也隨著二十世紀的需求不斷演變。
單純形法的創造者喬治·丹齊格在第二次世界大戰期間為美國陸軍空軍設計計劃,他最初的目的是進行有效的資源分配。在1946年,丹齊格的同事們挑戰他機械化規劃過程,這一挑戰促使他將問題轉化為線性不等式。儘管當時他並未包括目標函數,但這一舉措卻促成了後來的方法發展。
最終,他意識到大多數軍事指定的「基本規則」可以轉化為需要最大化的線性目標函數。
單純形法主要對標準形式的線性程序進行操作,目的是最大化一個目標函數,同時滿足一系列約束。在幾何學中,所有可行的解構成了一個凸多面體,而此多面體的每一個極點(或稱為「基本可行解」)都是可能的最佳解。
這種方法的核心在於走訪多面體的邊緣,逐漸找到目標函數的最大值。單純形法從初始的極點開始,如果當前的極點不是最優解,它會沿著邊緣移動到目標函數值更高的其他極點,直到達到最優解或發現目標函數無上限。
這一過程不僅保證了演算法會終止,還期望所需訪問的極點數量比較小。
為了將線性程序轉化為標準形式,首先需要處理每個約束條件。引入新的變數來表示原變數與其邊界之間的差,進而將所有約束簡化為非負條件。這個轉換過程中的重要一步是將不等式約束轉化為等式約束。
例如,面對以下不等式約束:
x1 ≥ 5
可以引入一個新變數 y1
,使得:
y1 = x1 - 5
這樣就能夠將該約束轉換為等式形式。
一旦將線性程序轉化為標準形式,便可使用單純形表格進行計算。表格的每一行代表一個約束條件,第一行則定義了目標函數。若能夠重新排列以達到包含單位矩陣的形式,則該表格可稱為標準表格。
在該表格中,基本變數與非基本變數的區分顯得尤為重要。透過將非基本變數設為零,可以方便地計算基本變數的值,這也是求解過程中的一個核心步驟。
由此,透過反覆的行操作,單純形法能夠迭代尋找到最佳解。
隨著數學與計算技術的發展,單純形法在各種實際應用中扮演了重要角色。在商業、交通與網絡優化等領域,這種方法的啟示不僅限於數學解的尋找。如今,隨著技術的不斷演變,能否在多變的環境中運用這一經典演算法達成最佳結果,將是未來研究的重要方向。您認為在未來的優化問題中,還會出現哪些創新策略來取代或者輔助單純形法的傳統應用呢?