一、分支限界法的基本思想
在擴展結點處,先生成其所有的兒子結點(分支),然后再從當前的活結點表中選擇下一個擴展結點。為了有效地選擇下一擴展結點,加速搜索的進程,在每一活結點處,計算一個函數值(限界),並根據函數值,從當前活結點表中選擇一個最有利的結點作為擴展結點,使搜索朝着解空間上有最優解的分支推進,以使盡快找出一個最優解。
(1)活結點:如果已生成一個結點而它的所有兒子結點還沒有全部生成,則這個結點叫做活結點。
(2)擴展結點:當前正在生成其兒子結點的活結點叫擴展結點(正擴展的結點)。
(3)死結點:不再進一步擴展或者其兒子結點已全部生成的結點就是死結點。
(4)解空間:對於問題的一個實例,解向量滿足顯式約束條件的所有多元組,構成了該實例的一個解空間。
(5)廣度優先的問題狀態生成法:在一個擴展結點變成死結點之前,它一直是擴展結點。
二、回溯法和分支限界法的比較
分支限界法與回溯法的不同:
(1)求解目標:回溯法的求解目標是找出解空間樹中滿足約束條件的所有解,而分支限界法的求解目標則是找出滿足約束條件的一個解,或是在滿足約束條件的解中找出在某種意義下的最優解。
(2)搜索方式的不同:回溯法以深度優先的方式搜索解空間樹,而分支限界法則以廣度優先或以最小耗費優先的方式搜索解空間樹。

圖1.1 回溯法和分支限界法的比較
