思想
回溯算法實際上類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。
- 解空間:解決一個問題的所有可能的決策序列構成該問題的解空間
- 可行解:解空間中滿足約束條件的決策序列稱爲可行解
- 最優解:約束條件下,使得問題的目標達到最優的可行解稱爲最優解
適用條件
步驟
- 針對問題定義解空間
- 確定易於搜索的解空間結構
- 深度優先搜索解空間,並且通過剪枝函數避免無效搜索
影響算法複雜度的因素
- 約束條件的個數
- 計算約束函數的時間
- 計算上界函數的時間
經典案例
1、N皇后問題
2、圖着色問題
3、0-1揹包問題
參考
mooc 算法設計與分析