演算法分類總結

2022-07-01 16:03:11 字數 2231 閱讀 5490

1.分治法

步驟:1.分解。將原問題分解成一系列子問題。

2.求解。遞迴地求解各子問題。若子問題足夠小,則直接求解。(遞迴式)

3.合併。將子問題的解合併成原問題的解

示例:歸併排序;最大子段和問題;迴圈賽日程安排

2.動態規劃法

步驟:1.找出最優解的性質,刻畫其結構特徵;

2.遞迴地定義最優解;

3.以自底向上的方式計算出最優值;

4.根據計算最優值時得到的資訊,構造乙個最優解

只需求出最優值,步驟4可以省略;若需求出問題的乙個最優解,則必須執行步驟4。

適用環境:

1.最優子結構。乙個問題的最優解包含了其子問題的最優解。

2.重疊子問題。原問題的遞迴演算法可以反覆地解同樣的子問題,而不是總是產生新的子問題

示例:0-1揹包問題;矩陣鏈乘問題;最長公共子串行(lcs);

3.貪心法

使用環境:

1.最優子結構。乙個問題的最優解包含了其子問題的最優解。

2.貪心選擇性質。問題的整體最優解可以通過一系列區域性最優的選擇(貪心選擇)來得到

示例:活動選擇問題、揹包問題、多機排程問題

4.回溯法

步驟:1.針對所給問題,定義問題的解空間。問題的解空間應至少包含問題的乙個(最優)解

2.確定易於搜尋的解空間結構。通常將解空間表示為樹、圖;解空間樹的第i層到第i+1層邊上的標號給出了變數的值;從樹根到葉子的任一路徑表示解空間的乙個元素。

3.以深度優先的方式搜尋整個解空間。如果當前寬展節點處為死節點,則回溯至最近的乙個活節點處。(以此方式遞迴搜尋)

演算法框架:非遞迴、遞迴

界限函式:回溯法的核心。盡可能多、盡可能早地「殺掉」不可能產生最優解的活節點。好的界限函式可以大大減少問題的搜尋空間,大大提高演算法的效率。

示例:0-1揹包、n皇后問題

5.分支界限法

關鍵字:解空間(廣度優先、最小耗費優先)、界限函式(佇列式、優先佇列式)

步驟:1.針對所給問題,定義問題的解空間。問題的解空間應至少包含問題的乙個(最優)解

2.確定易於搜尋的解空間結構。通常將解空間表示為樹、圖;解空間樹的第i層到第i+1層邊上的標號給出了變數的值;從樹根到葉子的任一路徑表示解空間的乙個元素。

3.以廣度優先或最小耗費優先的方式搜尋整個解空間。每個活節點只有一次機會成為擴充套件節點,活節點一旦成為擴充套件節點,其餘兒子節點被加入活節點表中。(以此方式遞迴搜尋)

界限函式:分支界限法的核心。盡可能多、盡可能早地「殺掉」不可能產生最優解的活節點。好的界限函式可以大大減少問題的搜尋空間,大大提高演算法的效率。

1.佇列式(fifo)分支界限法。先進先出

2.優先佇列式分支界限法。組織乙個優先佇列,按優先順序選取。通常用最大堆來實現最大優先佇列,最小堆來實現最小優先佇列。

6.概率演算法

基本特徵:

1.輸入包括兩部分。一,原問題的輸入;二,供演算法進行隨機選擇的隨機數序列

2.執行過程中,包括一處或多處隨機選擇,根據隨機值來決定演算法的執行

3.結果不能保證一定是正確的,但可以限制出錯率。

4.不同的執行過程中,對於相同的輸入例項可以有不同的結果,執行時間也可能不同。

分類:1.數值概率演算法。常用於數值問題的求解。近似解,近似解的精度隨計算時間的增加不斷提高。

2.蒙特卡羅(monte carlo)演算法。精確解,解未必是正確的,正確的概率依賴於演算法所用的時間。一般情況下,無法有效地判定所得到的解是否肯定正確。

3.拉斯維加斯(lasvegas)演算法。一旦找到解,一定是正確解。找到的概率隨計算時間的增加而提高。對例項求解足夠多次,使求解失效的概率任意小。

4.舍伍德(sherwood)演算法。總能求得問題的乙個解,且所求得的解總是正確的。設法消除最壞情形與特定例項之間的關聯性。多用於最快情況下的計算複雜度與其在平均情況下的計算複雜度差別較大。

7.近似演算法

基本思想:放棄求最優解,用近似最優解替代最優解。使演算法簡化,時間複雜度降低

衡量效能的標準:

1.演算法的時間複雜度。時間複雜度必須是多項式階的

2.解的近似程度。與近似演算法本身、問題規模、不同的輸入例項有關。

示例:np問題、定點覆蓋問題、tsp、子集和數問題、

演算法分類總結

1.分治法 步驟 1.分解。將原問題分解成一系列子問題。2.求解。遞迴地求解各子問題。若子問題足夠小,則直接求解。遞迴式 3.合併。將子問題的解合併成原問題的解 示例 歸併排序 最大子段和問題 迴圈賽日程安排 2.動態規劃法 步驟 1.找出最優解的性質,刻畫其結構特徵 2.遞迴地定義最優解 3.以自...

聚類 分類演算法 聚類演算法和分類演算法總結

k means 是一種典型的劃分聚類演算法,它用乙個聚類的中心來代表乙個簇,即在迭代過程中選擇的聚點不一定是聚類中的乙個點,該演算法只能處理數值型資料 k modes k means演算法的擴充套件,採用簡單匹配方法來度量分型別資料的相似度 k prototypes 結合了k means和k mod...

強化學習演算法分類總結

知識總結 a2c,a3c,ppo1,ppo2 策略函式的優化 a s q learing 動作值函式的優化 q s,a ddpg,sac 結合策略函式和動作值函式 a s q s,a mpc 模型 控制 純動態規劃 mbmf 在一些深度強化學習的標準基準任務上,基於學習到的環境進行模型 控制 exi...