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

2022-07-10 21:27:12 字數 708 閱讀 2023

確定了問題的解空間結構後,回溯法將從開始結點(根結點)出發,以深度優先的方式搜尋整個解空間。開始結點成為活結點,同時也成為擴充套件結點。在當前的擴充套件結點處,向縱深方向搜尋並移至乙個新結點,這個新結點就成為乙個新的活結點,並成為當前的擴充套件結點。如果在當前的擴充套件結點處不能再向縱深方向移動,則當前的擴充套件結點就成為死結點。此時應往回移動(回溯)至最近的乙個活結點處,並使其成為當前的擴充套件結點。回溯法以上述工作方式遞迴地在解空間中搜尋,直至找到所要求的解或解空間中已無活結點時為止。

運用回溯法解題的關鍵要素有以下三點:

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

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

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

演算法課程主要學習了分治法、動態規劃法、貪心法、回溯法、分支限界法、隨機化演算法。

對乙個問題是如何進行分析、如何找出解決方案、如何用**來實現以及如何分析這個演算法的效率。

學習這門課程,很多時候學習完新內容不會那麼快掌握,特別是到後期。

自我感覺沒有之前掌握c語言程式設計、資料結構掌握得深,沒有吃透。

動態規劃:開闢陣列是二維還是一維,處理過程的簡化,有時候常常想到的解決方法的時間複雜度是o(n^3)

自我感覺缺少了預習的環節,可能自己本身需要去被推動;

部落格的內容或許可以是對本章知識內容的總結。

或許可以適當調動課堂或者課下討論的積極性,感覺這個課程氛圍會更好。

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

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

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

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

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

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