1.你對回溯算法的理解(2分)
? ? ? 回溯法(探索與回溯法)是一種選優搜索法,又稱為試探法,按選優條件向前搜索,以達到目標。但當探索到某一步時,發現原先選擇并不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯法,而滿足回溯條件的某個狀態的點稱為“回溯點”。
2.請說明“子集和”問題的解空間結構和約束函數(2分)
? ? ? 解空間結構:解空間結構與背包問題相似,即第一個數是否選擇,進入左子樹表示選擇,進入右子樹表示不選擇
? ? ? 約束函數:sum+rest<c。該函數中sum為進入左子樹的結點數值總和,剩余所有數和為rest(當然不包括右子樹的數值)
?判斷若sum+rest<c,則剪枝,返回上一個結點繼續深度遍歷。
3。請說明在本章學習過程中遇到的問題及結對編程的情況(1分)
一開始學回溯函數的時候比較懵,單看回溯方程會很不理解算法的思路,而且對剪枝函數的嵌入很陌生,但是在老師的講解以及例題的感受下,漸漸地有一個直觀的理解,然后也試著去理解經典的0-1背包問題等,特別在算法實踐課上和同伴一起討論,交換對回溯的理解以及剪枝函數的選擇,才有了突破,最后才把子集和、最佳調度等題目A出來。