分治法
????基本思想
????將一個問題,分解為多個子問題忧便,遞歸的去解決子問題,最終合并為問題的解
????適用情況
? ? 1. 問題分解為小問題后容易解決
? ? 2. 問題可以分解為小問題,即最優(yōu)子結(jié)構(gòu)
? ? 3. 分解后的小問題解可以合并為原問題的解
? ? 4. 小問題之間互相獨(dú)立
????實(shí)例:? ? 二分查找哗蜈,快速排序协怒,合并排序涝焙,大整數(shù)乘法,循環(huán)賽日程表
動態(tài)劃分算法
????基本思想
????????將問題分解為多個子問題(階段)孕暇,按順序求解仑撞,前一個問題的解為后一個問題提供信息
????適用情況
? ? ? ? 1. 最優(yōu)化原理:問題的最優(yōu)解所包含的子問題的解也是最優(yōu)的,即最優(yōu)子結(jié)構(gòu)
? ? ? ? 2. 無后效性:某個狀態(tài)一旦確定妖滔,就不受以后決策的影響
? ? ? ? 3. 有重疊子問題
????????說明:? 遞推關(guān)系是從次小的問題開始到較大問題的轉(zhuǎn)化隧哮,往往可以用遞歸來實(shí)現(xiàn),可以利用? ? ? ?之前產(chǎn)生的子問題的解來減少重復(fù)的計算
回溯法
????基本思想
????????選優(yōu)搜索法座舍,走不通就退回重選沮翔,按照深度優(yōu)先搜索的策略,從根節(jié)點(diǎn)出發(fā)曲秉,深度搜索解空間
????步驟
? ? ? ? 1. 確定解空間
? ? ? ? 2. 確定節(jié)點(diǎn)的擴(kuò)展搜索規(guī)則
? ? ? ? 3. 深度優(yōu)先方式搜索解空間采蚀,用剪枝法避免無效搜索
分支界限法
????基本思想
? ? ? ?與回溯法類似,也是在解空間里搜索解得算法承二,不同點(diǎn)是榆鼠,回溯法尋找所有解,分支界限法搜索一個解或者最優(yōu)解
????????分支:廣度優(yōu)先策略或者最小耗費(fèi)(最大效益)優(yōu)先
????????分支搜索方式:FIFO矢洲、LIFO璧眠、優(yōu)先隊列式、分支界限搜索算法
貪心算法
????基本思想
????????不從總體最優(yōu)考慮读虏,僅考慮局部最優(yōu)解责静,問題必須具備后無效性
????步驟
? ? ? ? 1. 將問題分解為多個子問題
? ? ? ? 2. 得到問題的局部最優(yōu)解
? ? ? ? 3. 合并子問題的局部最優(yōu)解
? ? ? ?適用情況
????????局部最優(yōu)策略能導(dǎo)致全局最優(yōu)解
????????子問題后無效性