[算法分析]分支限界法


分支限界法:以廣度優先方式系統搜索問題的解

  • 在問題的解空間樹中,按廣度優先策略,從根節點出發搜索解空間樹
  • 求解目標:找出滿足約束條件的解
    • 可行解最優解
  • 搜索策略
    • 根據限界函數值,剔除那些導致不可行解或非最優解的子結點,使搜索過程僅限制在剩余的分支內進行
    • 適用於組合優化問題

分支限界法的基本思想

分支限界法 VS 回溯法

  • 相同點

    • 兩者在進行問題求解前,都需要完成解空間的定義和組織
    • 都是通過在解空間搜索來尋找問題的解
  • 不同點

    • 搜索方式:
      • 回溯法->深度優先,
      • 分支限界法->廣度優先
    • 搜索策略:
      • 回溯法:根據剪枝函數,選擇下一個擴展結點並按深度優先方式進行搜索
      • 分支限界法:在擴展結點處,先產生其所有的子結點(分支)(所有結點只有一次機會成為當前擴展結點),然后根據限界函數,確定哪些子結點將導致不可行解或非最優解,將這些子結點剔除,用剩下的子結點構造當前的活結點表,然后從該表中取一個結點作為當前擴展結點,並重復上述過程。

分支限界法的主要分類

  • 根據從活結點表中選擇下一個擴展結點的方式分類
    • 隊列式FIFO分支限界法
    • 優先隊列分支限界法


實例分析

背包問題

  • 實例分析:

n=4的背包問題

重量w = [2, 3, 4,7]

價值p = [1, 3, 5,9]

限制重量b = 10

  • 代價函數的設定(代價函數的設定僅會影響分支限界法的效率)

    vk+1/wk+1 是選擇后下一個單位重量價值最大的物品,代價函數即為計算最大有可能得到的價值。

    即為當前最優的解,與代價函數進行比較進行裁剪

    image-20210110131645871

    image-20210110132613505

    預處理,先將物品按單位重量的價格從小到大依次排序

    image-20210110131935207



小結

  1. 分支限界法的基本思想

    1. 與回溯法的聯系與區別
    2. 兩種主要的分支限界法:隊列式、優先隊列式
    3. 代價函數與界的概念
  2. 利用分支限界法求解問題的方法

     

    PS: 本節內容偏於設計,於《算法導論》中無本章節,用於補充


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM