演算法第五章作業及學期總結

2022-07-10 21:42:13 字數 836 閱讀 7529

一、你對回溯演算法的理解

1、定義:回溯法是一種按深度優先的選優搜尋法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新搜尋。

2、基本步驟:

(1)針對所給問題,定義問題的解空間;

(2)確定易於搜尋的解空間結構;

(3)以深度優先方式搜尋解空間,並在搜尋過程中用剪枝函式避免無效搜尋。

3、剪枝函式:

(1)用約束函式在擴充套件結點處剪去不滿足約束的子樹;

(2)用限界函式剪去得不到最優解的子樹。

4、構造解空間樹:

(1)子集樹:當所給的問題是從n個元素的集合s中找出滿足某種性質的子集時,相應的解空間樹成為子集樹。

(2)排列樹:當所給問題是確定n個元素的滿足某種性質的排列時,相應的解空間樹稱為排列樹。

二、你學習《演算法分析與設計》課程的收穫

學習演算法的過程中,除了第一章的演算法複雜度分析、遞迴與分治在資料結構這門課程有接觸過之外,其他的演算法對我來說都是全新的知識。每學習一種新的演算法,我都很有興趣,這也讓我在做題過程中會認真地、耐心地去找到自己所寫**錯誤的地方,並且掌握了各類演算法的基本思想以及例題解題思路。

三、你在學習過程中遇到了哪些困難,希望老師和助教給予幫助

感覺自己沒有真正地掌握一些演算法的基本思想,有一些題目都是直接按照例題的答案改的,所以希望能有更加深刻的講解。

四、你對本課程的教學有哪些建議

課程作業略多,所以學習壓力有點大。希望可以適當減少一些作業。

(最後,十分感謝老師這一學期的教導!)

演算法第五章作業及學期總結

發現有些演算法其實以前就已經在用了,但是用得沒有條理,沒法用到下一次相似的型別中去。學習了演算法後能看出題目可以用哪種演算法來解決,減少了思考的時間,可以用更便捷有效的模板做法來解決類似的問題,也知道了不同演算法的優缺點,可以選擇更合適要求的演算法。學習新演算法的時候會在實踐的一些細節中思想卡住,然...

演算法第五章作業及學期總結

回溯法所用到的核心思想就是遞迴法,雖然其過程邏輯很清楚,而且執行效率很高。但缺點也是與之對應的,邏輯清楚,必然其抽象性很高,所以有時看它的解題過程很容易看懂,但要是自己動手寫這個遞迴過程,很難下筆。回溯法解決問題較為直觀易懂,但是其時間和空間開銷都比較大,需要使用限界函式縮小遞迴範圍。該課程讓我學習...

演算法第五章作業及學期總結

回溯法按深度優先策略搜尋問題的解空間樹。1 基本思想 2 基本行為 回溯法的基本行為是搜尋,搜尋過程使用剪枝函式來為了避免無效的搜尋。3 剪枝函式包括兩類 1.使用約束函式,剪去不滿足約束條件的路徑。2.使用限界函式,剪去不能得到最優解的路徑。通過這門課程的學習能夠更系統地了解並且運用部分演算法,不...