Branch and Bound Algorithm
分支限界演算法
分支限界演算法是另一種系統搜尋解空間的方法。
分支限界演算法也常把解空間組織成樹的結構(常撿的,子集樹和排列樹),一般採用廣度優先(BFS)或最小耗費來搜尋樹
主要思想
對一個擴充套件結點,一次生成其所有的子節點,將不可能產生可行解(或最優解)的結點捨去,其餘的記入活結點表;按照一定規則,從活結點表中取出下一個結點作為新的擴充套件結點,重複展開,直到得到可行解(或最優解)或活結點表為空
限界函式
限界函式可以在求解最優解問題時,用來加速搜尋
函式給出每個可行結點對應子樹能獲得的最大價值的上界,如果該上界沒有比當前的最優值更大,則說明該子樹不會產生問題的最優解,可以剪去
兩種常見的分支限界
先進先出(FIFO)
從活結點表中取出結點的順序與加入的順序相同,活結點表採用佇列實現
最小耗費或最大收益
每個活結點有一個對應的最小耗費(或最大收益),每次取出時選擇最優的結點進行展開
分支限界和回溯
①分支限界法的結果是求出滿足的一組可行解(或可行解中的一個最優解);回溯法的結果是求出所有滿足的可行解
②搜尋樹的方法不同,分支限界通常用廣度優先(BFS)或最小耗費;回溯通常用深度優先(DFS)
③擴充套件結點的展開方式不同,分支限界的結點只有一次成為活結點的機會
④分支限界演算法對空間的需求比回溯演算法大得多(活結點表),因此當記憶體容量有限時,使用回溯演算法常常更容易成功
相關文章
- unity GPU bound or CPU boundUnityGPU
- Android Studio Git No tracked branch configured for branch branch_name or the branch doesn't existAndroidGit
- C++ lower_bound upper_boundC++
- Git Note - BranchGit
- algorithmGo
- Git新建branch分支Git
- Straightforward Lower BoundAIForward
- Kruskal algorithmGo
- Git branch分支實質Git
- Expectation Maximization AlgorithmGo
- Introduction to AlgorithmGo
- git filter-branch應用GitFilter
- index branch and leaf block structure(轉)IndexBloCStruct
- js: get event handler bound to the elementJS
- No Hibernate Session bound to threadSessionthread
- Algorithm assignment 1Go
- Algorithm in Javascript Bubble SortGoJavaScript
- Algorithm in Javascript Bucket SortGoJavaScript
- Adaboost Algorithm StepGo
- Algorithm演算法Go演算法
- CPU-bound(計算密集型) 和I/O bound(I/O密集型)
- Git三大特色之Branch(分支)Git
- git show-branch命令詳解Git
- 版本工具:truck tag branch區別
- function和bound method的區別Function
- 【Algorithm】樹結構整理Go
- Algorithm for Maximum Subsequence Sum zGo
- Renaming the default branch from master to main on GithubASTAIGithub
- mybatis3:Invalid bound statement (not found)MyBatisS3
- MyBatis 錯誤:Invalid bound statement (not found)MyBatis
- mybatis 報錯: Invalid bound statement (not found)MyBatis
- UVA 11020 multiset、lower_bound、 upper_bound STL裡面的排序二叉樹排序二叉樹
- 22. Generate Parentheses (recursion algorithm)Go
- 【Algorithm】快排分割槽方法Go
- 【Algorithm】全排列演算法Go演算法
- KMP(The Knuth-Morris-Pratt Algorithm)KMPGo
- Local dimming algorithm in matlabGoMatlab
- 演算法之路 - Way to Algorithm演算法Go