演算法知識點整理 第6章 分支限界法

2021-07-26 23:43:38 字數 938 閱讀 8676

第 6 章 分支限界法

1.分支限界 vs 回溯

回溯:求出滿足問題的所有解,深度優先

分支限界:求出滿足問題的乙個解(或者是找出問題中的乙個最優解),廣度優先

都要先定**空間結構

兩者對當前擴充套件節點所採取的擴充套件方式不同。

2.分支限界法常見方式

佇列式分支限界法(fifo)

優先佇列式分支限界法(可以理解為os中的優先順序,一般是代價越低、或者是收益越多)

3.0-1揹包

佇列式fifo分支限界法

就是數構中的廣度優先演算法

優先佇列式分支限界法

用乙個極大堆來儲存結果(也就是價值越多且重量不超過的放在最上面,可以被優先擴充套件)

4.tsp問題

佇列式fifo分支限界法

依次拓展,當求出乙個解後,其他分支中的當前結果都比這個大時,就忽略(其實複雜度是一樣的)

優先佇列分支限界法:

優先拓展當前費用最小的路徑(用乙個極小堆儲存)

5.單源最短路徑

求乙個地點到另外乙個地點的最短路徑

優先佇列式分支限界法

將可行解放入到乙個極小堆中,優先拓展當前路徑最小的節點(可以提前剪枝)

6.裝載問題

兩艘船裝n個貨櫃

方法:先一艘船裝盡可能多的貨櫃,然後判斷剩下的貨櫃第二艘船能否裝下

子集樹佇列式fifo分支限界法

遍歷所有的節點,然後求出最大的解

改進:提前剪枝,當前裝載+剩餘 與 當前最優解進行比較判斷

優先佇列式分治限界法

不懂?????!!!

7.佈線問題

往距離縮短的方向拓展

8.八碼難題

方法一:不在位最少優先擴充套件

方法二:優先拓展需要移動步數少的(差的絕對值最小)

9.分配問題

先分配,從未分配中的挑最好的作為優先函式

第7章 分支限界演算法

分支限界法類似於回溯法,是一種在問題的解空間樹上搜尋問題解的演算法。分支限界法的求解目標則是找出滿足約束條件的乙個解,或是在滿足約束條件的解中找出使某一目標函式值達到極大或極小的解,即在某種意義下的最優解。分支限界法常以廣度優先的方式搜尋問題的解空間樹。在分支限界法中,每乙個活結點只有一次機會成為擴...

演算法知識點整理 第1章 演算法複雜性

第一章 演算法複雜性 1.演算法 vs 程式 輸入 輸出 確定性 演算法具有 有限性 在有限時間內執行完畢 2.演算法複雜性c c f n,i,a n 問題規模 i 演算法的輸入 a 演算法本身 時間複雜度 t t n,i 空間複雜度 s s n,i 3.演算法複雜度的三種評判標準 a.最好情況 很...

C primer第4版第1章知識點整理

talk is cheap,show me the code.std endl是乙個操縱符 manupulator 有兩個作用,乙個是輸出換行效果,另乙個是重新整理與裝置關聯的緩衝區 buffer 重新整理與裝置關聯的緩衝區能夠讓流中的內容立即輸出顯示在裝置中。std cout的兩個輸出操縱符 之間...