第五章作業報告
阿新 • • 發佈:2018-12-25
1.你對回溯演算法的理解(2分)
回溯演算法解決問題的一般步驟為:
1、定義一個解空間,它包含問題的解
2、利用適於搜尋的方法組織解空間
3、利用深度優先法搜尋解空間
4、利用限界函式避免移動到不可能產生解的子空間。
回溯演算法的一個重要特性是,問題的解空間通常是在搜尋問題的解的過程中動態產生的
2.請說明“子集和”問題的解空間結構和約束函式(2分)
解空間結構:用樹的結構判斷集合中的某一個數是否放入子集集合的陣列中。
約束函式:解空間結構中遍歷的深度> n時沒有可行解,進行剪枝;當放入子集的元素總和等於目標和,則輸出子集元素並進行剪枝;如果元素總和與下一個遍歷節點之和大於目標和,則也剪枝。剪枝結束後便返回上一層。
3.請說明在本章學習過程中遇到的問題及結對程式設計的情況(1分)
問題就是上課的時候看程式碼看得懂,但自己敲程式碼是就很混亂,究其原因還是不夠熟悉、缺少實踐練習。一般情況下課後遇到不懂的都是上網搜別人的程式碼然後理解。結對程式設計還是挺好玩的,因為小夥伴會發現一些自己忽略的小問題,這樣可以少走很多彎路。在結對過程中,因為我們剛開始都對回溯法的掌握都不是很熟,所以花了挺長時間的,因為題目是比較典型的,所以演算法的思想還可以,但是實現演算法的路有點艱難。