本文以「四位教授指派四門課程,最小化總準備時間」為例,完整圖解匈牙利演算法 Step 1 與 Step 2 的手工執行過程,建立演算法直觀理解。
| 課程1 | 課程2 | 課程3 | 課程4 | |
|---|---|---|---|---|
| 教授A | 2 | 10 | 9 | 7 |
| 教授B | 15 | 4 | 14 | 8 |
| 教授C | 13 | 14 | 16 | 11 |
| 教授D | 4 | 15 | 13 | 9 |
目標:每位教授指派一門不同課程,總成本最小。
教授A: min=2 → 0 8 7 5 教授B: min=4 → 11 0 10 4 教授C: min=11 → 2 3 5 0 教授D: min=4 → 0 11 9 5
課程1: min=0 → 0 11 2 0 課程2: min=0 → 8 0 3 11 課程3: min=5 → 2 5 0 4 (7-5, 10-5, 5-5, 9-5) 課程4: min=0 → 5 4 0 5
課1 課2 課3 課4
教A 0 8 2 5
教B 11 0 5 4
教C 2 3 0 0
教D 0 11 4 5
課1 課2 課3 課4
教A ★ 8 2 5
教B 11 ★ 5 4
教C 2 3 ★ ×
教D × 11 × 5
僅找到 3 個獨立零 (< 4),需進入 Step 3 (覆蓋零) 與 Step 4 (調整矩陣)。
本文詳細演示了匈牙利演算法前兩步在 4×4 教授指派問題上的手工執行過程。Step 1 透過雙重縮減建立零元素基礎,Step 2 嘗試貪婪選取獨立零,失敗則觸發 Step 3/4 迭代優化。理解此過程是掌握指派問題最佳化求解的核心基礎。