歡迎來到線性規劃 (Linear Programming)!
你好!歡迎來到決策數學 (Decision Mathematics) 中最實用的章節之一。線性規劃 (Linear Programming, LP) 的核心就是在有限的資源下,做出最理想的決策。無論是工廠想極大化利潤,還是醫院想極小化開支,線性規劃都是他們的必備工具。別擔心起初會看到很多代數運算,我們會將其拆解成簡單、合乎邏輯的步驟!
1. 建構問題 (Formulating a Problem)
在解決問題之前,我們需要將文字描述轉化為數學「代碼」。這過程稱為建構 (Formulation)。
A. 決策變數 (Decision Variables)
這些是你能夠控制的數量,我們通常以 \(x\) 和 \(y\) 表示。
例子:設 \(x\) 為生產標準單車的數量,\(y\) 為生產賽車單車的數量。
B. 目標函數 (Objective Function)
這是你的目標。你是想賺取最多的金錢(極大化 Maximize),還是想花費最少的時間(極小化 Minimize)?
它通常長這樣:極大化 \(P = 10x + 15y\)(這裡 \(P\) 代表利潤)。
C. 約束條件 (Constraints)
這些是你必須遵守的規則或限制,例如預算、空間或原材料的上限。
關鍵術語:非負約束 (Non-negativity constraints)。 在現實世界中,你不能生產負數量的單車!因此,我們幾乎總會加上 \(x \geq 0\) 和 \(y \geq 0\)。
步驟指南:如何建構問題
1. 定義變數: 清晰列出 \(x\) 和 \(y\) 代表甚麼。
2. 寫下目標: 決定是要極大化還是極小化,並寫出方程式。
3. 列出約束: 將每一個限制轉化為不等式(例如 \(2x + 3y \leq 60\))。
4. 加入非負約束: 別忘了 \(x, y \geq 0\)!
小複習: 把變數當作你的「選擇」,目標當作你的「目標」,約束條件則當作你的「邊界」。
2. 圖解法 (Graphical Solutions)
由於我們只處理兩個變數(\(x\) 和 \(y\)),我們可以透過繪圖來找出答案。
A. 繪畫可行區域 (Feasible Region)
可行區域 (R) 是圖表上同時滿足所有約束條件的區域。
常見錯誤: 當畫出如 \(2x + 5y \leq 10\) 的不等式時,請先畫出直線 \(2x + 5y = 10\)。若要找出它與軸的交點,可令 \(x = 0\) 找出 \(y\)-截距,再令 \(y = 0\) 找出 \(x\)-截距。
你知道嗎? 我們通常會塗掉不需要的區域。這樣一來,剩下的可行區域便會保持乾淨,讓人一目了然!
B. 尋找最優點 (Optimal Point)
一旦你標出了區域 \(R\),「最優」點通常會落在區域的頂點 (vertices)(即角落)。尋找最優點有兩種方法:
方法一:目標函數線法 (Objective Line Method / Sliding Ruler)
這通常是最快的方法!
1. 為你的目標函數設定一個「目標」數值(例如,若目標是 \(P = 2x + 3y\),試著畫出 \(2x + 3y = 6\) 這條線)。
2. 將尺放在這條線上。
3. 平移你的尺,使其保持與該直線平行,並橫跨整個可行區域。
4. 尺在離開區域前接觸到的最後一點就是極大值;最先接觸到的點就是極小值。
方法二:頂點法 (Vertex Method)
如果覺得平移法很難掌握,也可以使用頂點法:
1. 找出可行區域每一個頂點的坐標。
2. 如果兩條直線相交,你可能需要用聯立方程式 (simultaneous equations) 來求出精確坐標。
3. 將每個坐標代入你的目標函數中。
4. 得到最大數值的坐標就是你的最優解!
關鍵提示: 「最優」解幾乎總是在兩個或多個約束條件相交的頂點處。
3. 整數解 (Integer Solutions)
在許多現實問題中,答案不能是「一半」。你不能僱用 4.7 個員工或購買 2.3 輛巴士,這些情況需要整數解。
如果你的最優點是像 \((5.2, 7.8)\) 這樣,你不能簡單地進行「四捨五入」,因為該點可能在可行區域之外!
技巧: 測試最優點附近且位於可行區域內的整數點。
例子:對於 \((5.2, 7.8)\),你可能需要測試 \((5, 7)\)、\((5, 8)\) 或 \((6, 7)\),看看哪個點符合條件且能給出最佳結果。
常見陷阱總結
1. 混淆符號: 仔細閱讀!「至少」(At least) 代表 \(\geq\),「不超過」(No more than) 代表 \(\leq\)。
2. 塗錯區域: 始終在不等式中代入一個點(如 \((0,0)\))來測試是否正確。如果 \(0 + 0 \leq 10\) 成立,那麼包含 \((0,0)\) 的那一側就是「需要的」區域。
3. 精確度: 請使用削尖的鉛筆和尺。繪圖上的小誤差可能導致選錯頂點!
記憶輔助: 若要記住目標函數線的平移法,把它想像成是一支探照燈,正在掃描區域以尋找最佳位置!
最終檢查清單
- 我是否清楚定義了變數?
- 我是否包含了 \(x, y \geq 0\)?
- 我的可行區域是否清晰標記了 'R'?
- 如果題目要求整數,我有沒有檢查過附近的整數點?
你一定做得到的!線性規劃只是一個邏輯拼圖。多練習繪圖,剩下的自然會融會貫通。