歡迎來到線性規劃 (Linear Programming) 的世界!
你有沒有想過,工廠如何決定兩種產品各生產多少才能獲得最高利潤?或者物流公司如何找到運輸貨物的最低成本方案?這正是線性規劃 (Linear Programming, LP) 的核心所在!簡單來說,這是一種當你面對有限資源時,如何做出最佳決策的數學方法。
在本章中,我們將學習如何將現實生活中的問題轉化為數學方程式,並透過繪圖來求解。別擔心,這聽起來可能有點複雜,我們會一步一步來拆解!
1. 先修知識:開始前你需要知道的事
在我們深入研究之前,請確保你已經掌握了以下兩個數學概念:
• 繪製直線: 你應該要懂得如何繪製類似 \( y = 3x + 2 \) 或 \( 2x + 5y = 20 \) 的直線。
• 不等式: 請記住 \( y \leqslant 5 \) 的意思是「\( y \) 小於或等於 5」。在圖表上,這代表一個完整的區域,而不僅僅是一條線。
2. 建立線性規劃模型
任何 LP 問題的第一步都是「建模」(Formulation)。這只是一個聽起來很專業的術語,意思是將文字敘述轉換為數學符號。每個模型都需要四個部分:
A. 決策變數 (Decision Variables)
這些變數代表你試圖做出的決定。我們通常將它們稱為 \( x \) 和 \( y \)。
例子:設 \( x \) 為標準蛋糕的數量,\( y \) 為豪華蛋糕的數量。
B. 目標函數 (Objective Function)
這就是你的目標。你想極大化 (Maximize) 利潤還是極小化 (Minimize) 成本?這部分總是寫成一個方程式。
例子:若要極大化利潤 \( P \),且每個標準蛋糕利潤為 \$2,豪華蛋糕為 \$3:Maximize \( P = 2x + 3y \)。
C. 約束條件 (Constraints)
這些是你的「規則」或限制(例如你只有 10kg 的麵粉)。這些條件必須以不等式 (\( \leqslant \) 或 \( \geqslant \)) 來表示。
例子:如果每個蛋糕需要 2 小時製作,而你只有 40 小時可用:\( 2x + 2y \leqslant 40 \)。
D. 非負約束 (Non-negativity Constraints)
在現實世界中,你不可能做出「負數」的蛋糕!因此,我們幾乎總是會包含以下條件:
\( x \geqslant 0, y \geqslant 0 \)
快速回顧: 每個 LP 模型都需要變數 (\( x, y \))、目標 (極大化/極小化) 和規則 (不等式)。
3. 圖解法 (The Graphical Method)
由於在 D1 單元中我們只處理兩個變數 (\( x \) 和 \( y \)),我們可以透過繪圖來解決這些問題。方法如下:
步驟 1:繪製約束直線
將每個不等式視為等號來繪製直線。
小貼士: 要繪製 \( 2x + 5y = 20 \),可以使用「遮蔽法」(cover-up method):
1. 令 \( x = 0 \),則 \( 5y = 20 \),得出 \( y = 4 \)。標記點 (0, 4)。
2. 令 \( y = 0 \),則 \( 2x = 20 \),得出 \( x = 10 \)。標記點 (10, 0)。
3. 將兩點連接起來!
步驟 2:找出可行區域 (Feasible Region, R)
可行區域是圖表上滿足所有約束條件的範圍。
重要提示: 在 Edexcel D1 考試中,慣例通常是塗黑(或刪除)你「不要」的區域。這樣會讓中間剩下的可行區域 (R) 保持乾淨清晰。請務必查看題目要求,確認哪一邊才是需要標記的!
步驟 3:尋找最佳解
一旦你有了清晰的可行區域 \( R \),「最佳」答案(最優點)通常會出現在該區域的頂點 (vertices,即角點) 上。有兩種方法可以找到它:
方法 1:頂點法 (Vertex Method)
1. 找出區域 \( R \) 的每一個角點坐標。
2. 將每個 \( (x, y) \) 坐標代入你的目標函數。
3. 產生最高值(若是 Max 問題)或最低值(若是 Min 問題)的點就是你的最佳解!
方法 2:目標線法 (Objective Line / Ruler Method)
1. 為你的目標選擇一個隨機的「目標值」,例如,如果目標是 \( P = 2x + 3y \),則繪製 \( 2x + 3y = 12 \) 這條直線。
2. 將你的直尺放在這條線上。
3. 保持相同的角度滑動直尺,穿過可行區域。
4. 對於極大化 (Maximization) 問題,直尺在離開可行區域前碰到的最後一個點就是最佳解。
5. 對於極小化 (Minimization) 問題,直尺碰到的第一個點就是最佳解。
你知道嗎? 「目標線法」通常比計算每一個角點更快,特別是當角點坐標是複雜的小數時!
重點總結: 最佳解總是在可行區域的邊界上找到,通常就在某個角點上。
4. 處理整數解
有時候,算出的答案如 \( x = 4.2, y = 3.8 \) 並不符合現實。如果你在賣汽車,你不可能賣出 0.2 輛!在這種情況下,我們需要整數解。
要避免的常見錯誤: 不要直接將答案四捨五入到最接近的整數!最接近的整數點實際上可能在可行區域之外,或者可能不是真正的最大值。
正確做法:
1. 找出精確的最優點(即使它是小數)。
2. 查看該點附近,且位於可行區域之內的整數坐標點。
3. 將這些附近的整數點代入目標函數,看看哪一個最優。
成功清單
• 仔細閱讀: 題目要求是極大化還是極小化?
• 精確繪圖: 繪圖時請使用削尖的鉛筆和直尺。線條畫歪一點點都可能導致找錯角點!
• 清晰標示: 務必標示坐標軸、每一條直線以及可行區域 \( R \)。
• 檢查陰影: 題目要求你塗黑可行區域還是不想要的區域?(在 D1 中,通常是塗黑不想要的區域)。
• 非負約束: 別忘了 \( x \geqslant 0 \) 和 \( y \geqslant 0 \)。它們是你圖表在 \( x \) 軸和 \( y \) 軸上的「牆壁」。
如果起初覺得有點困難,別擔心。只要多加練習繪圖,你很快就能成為尋找「最佳甜蜜點」的專家!