自 2010 年 · 每月支援超過 200 萬次工具執行
自 2010 年
加到 Chrome

我的工具箱

自動模式

尚未收藏任何工具。

升級為高級版
相關工具
不等式組圖形繪製器運動學計算機百分產率計算機植物間距計算機
主頁 > 數學 > 進階數學計算
 

線性規劃求解器

以單體法求解線性規劃問題。支援最大化或最小化目標、混合限制式,最多八個決策變數,兩變數問題並可繪出可行域與標示最佳解。

免費使用無需註冊即時出結果
線性規劃求解器立即免費試用 ▼
第一行是目標函數(MaximizeMinimize …)。之後的每一行都是線性約束。 使用 <=>==。捷徑:x, y >= 0 可同時聲明多個變量的非負性。 最多支援 8 個變量和 20 個約束條件。

Embed 線性規劃求解器 Widget

線性規劃求解器

線性規劃求解器是一款在線計算機,用於在滿足一組線性不等式或等式系統的情況下,尋找線性目標函數的最大值或最小值。它採用 單體法(大 M 變體),因此可以自由混合 <=>== 約束;對於雙變量問題,它會繪製互動式可行解區域圖,並突出顯示每個頂點和最佳點。

什麼是線性規劃?

線性規劃 (LP) 問題的要求如下:

最大化(或最小化): Z = c1 x1 + c2 x2 + … + cn xn 受限於: a11 x1 + … + a1n xn (≤, ≥, 或 =) b1 a21 x1 + … + a2n xn (≤, ≥, 或 =) b2 … am1 x1 + … + amn xn (≤, ≥, 或 =) bm x1, x2, …, xn ≥ 0

滿足所有約束條件的點集稱為 可行解區域,它是一個凸多面體。線性規劃基本定理指出,如果線性規劃具有有限的最佳解,則該解一定在該多面體的頂點(極點)處達到。這就是為什麼單體法(從一個頂點移動到另一個頂點)如此有效的原因。

單體法是如何運作的

單體法從一個可行頂點開始,通過轉向具有更好值的相鄰頂點來不斷改進目標函數。其運作機制為:

  1. 標準型: 將線性規劃轉換為在 Ax = b, x ≥ 0 約束下最大化 cTx。對於 <= 約束,添加 鬆弛(slack)變量;對於 >= 約束,減去 剩餘(surplus)變量並添加帶有巨大懲罰項 −M人工 變量;對於等式,添加人工變量。
  2. 初始單體表: 基底由鬆弛變量和人工變量組成,提供了一個明顯的起始頂點。
  3. 進基變量: 選擇具有最大正縮減成本 \( c_j - z_j \) 的非基變量。如果不存在此類變量,則當前解即為最佳解。
  4. 離基變量: 從進基列中進行 最小比值測試 — 將每一行的 RHS 除以其在進基列中的正項,並選擇比值最小的行。如果不存在正項,則該線性規劃為 無窮解
  5. 樞軸操作: 使用高斯消元法使進基列成為單位向量,在離基行中為 1。
  6. 重複上述步驟,直到滿足停止標準。

如果終止時基底中仍留有值為正的人工變量,則原始線性規劃 無可行解

圖解法(針對雙變量)

對於雙變量問題,可行解區域是一個 2D 凸多邊形。由於最佳解總是在頂點處,因此列舉每個頂點並在該處評估目標函數就足以解決問題。此計算機通過求每對約束邊界的交點來執行此枚舉,僅保留滿足所有其他約束的交點,並按逆時針順序對其進行排序以進行視覺化。

輸入語法

在第一行寫下 目標函數,然後 每行一個約束條件。變量名稱可以是任何標識符(xyx1profit…)。運算符為 <=>==。非負性限制可以簡寫為 x, y >= 0

Maximize 3x + 5y x + y <= 10 2x + y <= 16 x + 3y <= 18 x, y >= 0

空行和以 # 開頭的注釋將被忽略。求解器最多接受 8 個決策變量和 20 個約束條件。

計算實例

假設一家家具工作室製作桌子和椅子。每張桌子產生 \\$3 利潤,需要 1 單位木材和 2 單位人工。每把椅子產生 \\$5 利潤,需要 1 單位木材、1 單位人工和 3 單位清漆。現有資源:10 單位木材、16 單位人工、18 單位清漆。令 x = 桌子數量,y = 椅子數量,則線性規劃為:

Maximize Z = 3x + 5y x + y <= 10 (木材) 2x + y <= 16 (人工) x + 3y <= 18 (清漆) x, y >= 0

可行解區域是一個五邊形。在每個頂點評估 Z 值:

頂點 (x, y)Z = 3x + 5y是否可行?
(0, 0)0
(8, 0)24
(6, 4)38 ← 最佳點
(0, 6)30

因此,工作室應製作 6 張桌子和 4 把椅子 以獲得 \\$38 的最大利潤。木材和人工約束是 有效約束(在最佳點處它們等於其 RHS 值);清漆的鬆弛量為 0(在此案例中也為有效約束),這意味著所有三種資源都已耗盡。

常見陷阱與求解器檢測項

情況徵兆如何解決
無窮解 LP 求解器報告「無窮解」 添加缺失的上限約束。目標函數可以無限制增長,因為可行解區域在改進方向上無限延伸。
無可行解 LP 求解器報告「無可行解」 約束條件相互矛盾(例如 x >= 10 同時 x <= 5)。請檢查每對邊界。
多重最佳解 警告徽章;最佳頂點唯一,但 Z 值沿一條邊達到 發生在目標函數向量與一個有效邊平行時。該邊上兩個頂點的任何凸組合也都是最佳的。
退化 / 循環 單體法迭代而不改善 Z 值 在教科書問題中很少見;可以用布蘭德規則(Bland's rule)或攝動法解決。此求解器限制了迭代次數以避免無限循環。

應用領域

如何使用此計算機

  1. 在文字框中輸入您的線性規劃。第一行必須以 MaximizeMinimize 開頭。接下來的每一行代表一個約束條件。
  2. 使用捷徑 x, y >= 0 一次性聲明所有列出變量的非負性。
  3. 點擊「求解線性規劃問題」。求解器將報告最佳值 Z、每個決策變量的最佳值、有效約束列表,以及針對雙變量問題的互動式可行解區域圖。
  4. 懸停在圖中的頂點 上以查看其坐標和 Z 值。最佳點會以星號突出顯示。
  5. 查看單體表 以觀察每次樞軸操作並追蹤算法如何改進 Z。進基列以琥珀色標出,離基行以紅色標出。

常見問題解答

什麼是線性規劃問題?

線性規劃 (LP) 問題是要求一組滿足線性不等式或等式系統的決策變量,使線性目標函數達到最大值或最小值。可行解集合是一個凸多面體,且最佳點總是在其頂點之一達到 — 這是單體法利用的核心事實。

單體法是如何運作的?

單體法沿著可行多面體的頂點移動。每一步(「樞軸」)將基底中的一個變量換成另一個,移動到具有更好目標值的相鄰頂點。當沒有樞軸可以進一步改善 Z 時,算法停止 — 此時的頂點即為最佳解。此工具使用大 M 法,因此可以混合 <=>== 約束。

什麼是可行解區域?

可行解區域是同時滿足所有約束條件的所有變量值的集合。對於 2 個變量,它是 2D 凸多邊形;對於 n 個變量,它是 n 維多面體。多面體為空意味著線性規劃 無可行解;在改進方向上無限延伸的多面體意味著線性規劃 無窮解

在線性規劃中「無窮解」意味著什麼?

當可行解區域在目標函數不斷改進的方向上延伸至無窮大時,線性規劃就是無窮解的。例如,在僅受 x ≥ 0 約束的情況下 最大化 x 就沒有有限的最大值。現實中返回無窮解通常揭示了缺失的約束 — 通常是對資源或變量的上限。

「多重最佳解」意味著什麼?

多重最佳解發生在多個點達到相同最佳目標值時。從幾何上看,目標函數與多邊形的一個有效邊平行,因此該邊上的每個點 — 以及其端點的每個凸組合 — 都是最佳的。當終止時任何非基決策變量的縮減成本為零,求解器會標記出此情況。

求解器接受多少個變量和約束條件?

最多 8 個決策變量和 20 個約束條件。互動式可行解區域圖僅針對雙變量問題繪製;對於 3 個或更多變量,您仍將獲得完整的數值單體法解、分步單體表和約束條件活動報告。

延伸閱讀

引用此內容、頁面或工具為:

"線性規劃求解器" 於 https://MiniWebtool.com/zh-tw/線性規劃求解器/,來自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 團隊開發。更新日期:2026年4月21日

您還可以嘗試我們的 AI數學解題器 GPT,通過自然語言問答解決您的數學問題。

進階數學計算:

熱門與最新工具:

線性方程組求解器線性方程求解器穩定婚姻問題求解器查看全部 →
主頁 > 數學 > 進階數學計算 > 線性規劃求解器