1. 程式人生 > >xn4545945 http://blog.xigulu.com

xn4545945 http://blog.xigulu.com

分枝界限法是由三棲學者查理德·卡普(Richard M.Karp)在20世紀60年代發明,成功求解含有65個城市的旅行商問題,創當時的記錄。“分枝界限法”把問題的可行解展開如樹的分枝,再經由各個分枝中尋找最佳解。

1. 基本概念

描述:採用廣度優先產生狀態空間樹的結點,並使用剪枝函式的方法稱為分枝限界法。
所謂“分支”是採用廣度優先的策略,依次生成擴充套件結點的所有分支(即:兒子結點)。
所謂“限界”是在結點擴充套件過程中,計算結點的上界(或下界),邊搜尋邊減掉搜尋樹的某些分支,從而提高搜尋效率。

2. 演算法的步驟

步驟一:如果問題的目標為最小化,則設定目前最優解的值Z=∞
步驟二
:根據分枝法則(Branching rule),從尚未被洞悉(Fathomed)節點(區域性解)中選擇一個節點,並在此節點的下一階層中分為幾個新的節點。
步驟三:計算每一個新分枝出來的節點的下限值(Lower bound,LB)
步驟四:對每一節點進行洞悉條件測試,若節點滿足以下任意一個條件,則此節點可洞悉而不再被考慮:
此節點的下限值大於等於Z值。
已找到在此節點中,具最小下限值的可行解;若此條件成立,則需比較此可行解與Z值,若前者較小,則需更新Z值,以此為可行解的值。
此節點不可能包含可行解。
步驟五:判斷是否仍有尚未被洞悉的節點,如果有,則進行步驟二,如果已無尚未被洞悉的節點,則演算停止,並得到最優解。

3. 分支限界法與回溯法


回溯法深度優先搜尋堆疊活結點的所有可行子結點被遍歷後才被從棧中彈出找出滿足約束條件的所有解。
分支限界法廣度優先或最小消耗優先搜尋隊列、優先佇列每個結點只有一次成為活結點的機會找出滿足約束條件的一個解或特定意義下的最優解。

(1)求解目標:回溯法的求解目標是找出解空間樹中滿足約束條件的所有解,而分支限界法的求解目標則是找出滿足約束條件的一個解,或是在滿足約束條件的解中找出在某種意義下的最優解。 
(2)搜尋方式的不同:回溯法以深度優先的方式搜尋解空間樹,而分支限界法則以廣度優先或以最小耗費優先的方式搜尋解空間樹。

4. 典型問題

(1)貨郎擔問題

(2)旅行推銷員問題


相關推薦

xn4545945 http://blog.xigulu.com

分枝界限法是由三棲學者查理德·卡普(Richard M.Karp)在20世紀60年代發明,成功求解含有65個城市的旅行商問題,創當時的記錄。“分枝界限法”把問題的可行解展開如樹的分枝,再經由各個分枝中尋找最佳解。 1. 基本概念 描述:採用廣度優先產生狀態空間樹的結點

sed和awk的一些使用【轉載自http://blog.sina.com.cn/s/blog_6561ca8c0102we0o.html】

blog printf begin 文件中 字符串 filename hello 選項 sina 在linux中,awk和sed命令對於快速的文本編排非常靈活有用。對文本插入列的操作也可以使用sed或者awk命令來處理,下面簡單介紹: 如果想要在指定列前插入字符串RR,

oralce中的dual詳解 轉 http://blog.sina.com.cn/s/blog_a5a24bcb0100zeay.html

dual是屬於sys的只有一個X varchar2(1)列查詢虛擬列不會產生邏輯IO=======================================================================DUAL表的用途Dual 是 Oracle中的一個實際存在的表,任何使用者均可讀取,

cesium primitive方式 ————http://blog.sina.com.cn/s/blog_15e866bbe0102y0ji.html

Cesium學習筆記-工具篇17-PrimitivePoint自定義渲染-點   (2018-08-28 16:12:06) 轉載▼ 標籤:  cesium   primitive   自定義渲染 &nb

centOS 7 安裝man中文版手冊http://blog.51cto.com/9762617/1678918

原文地址:http://blog.51cto.com/9762617/1678918 在學習linux命令的過程中,man是很有用的一個工具,但是對於很多英文水平有限的人來說學習起來有些困難,再此提供安裝中文版man的詳細步驟。當然英文水平不好是需要進行自

視訊教程 說明文件線上 http://blog.sina.com.cn/s/blog_935ebb670101dnre.html 1.類級別註解

視訊教程http://www.imooc.com/learn/524 說明文件線上https://docs.jboss.org/hibernate/annotations/3.4/reference/zh_cn/html_single/ http://docs.jboss.org/hiberna

請移架http://blog.sina.com.cn/u/2765457197

通過這篇文章,我完全解決了一個AS3 中使用Socket的安全問題. 按照這篇文章這樣子做,不用看其他的文章,就解決了,而且很簡單. 講一下我的目標和遇到的問題以及解決的路徑: 1、首先這是一個網站,通過點選一個按鈕,然後傳送命令到終端;(類似點對點的聊天) 2、然後我就做了一個類似私聊的功能,把這個功能的

http://blog.sina.com.cn/s/blog_5e42f31a010156z4.html

1.找到合適的目錄,新建一個版本庫的目錄:mkdir svn 建立版本庫:svnadmin create /users/qst/svn/repository 2.編輯許可權,配置svn許可權,其中配置檔案所在目錄:/users/qst/svn/repository/ conf

紙上得來終覺淺,絕知此事要躬行。(質勝文則野,文勝質則史。文質彬彬,然後君子。http://blog.sina.com.cn/s/articlelist_1824254401_3_1.html)

Apache Mina學習實踐 Apache MINA是一個網路應用程式框架,它可以幫助使用者輕鬆地開發高效能、高可伸縮性的網路應用程式。它提供了一個抽象的事件驅動的非同步API通過各種傳輸如TCP / IP、UDP / IP和J

1、checklistbox 用法總結 http://blog.sina.com.cn/s/blog_4cf58c9c010106mx.html

最近用到checklistbox控制元件,在使用其過程中,花了較多的時間,這裡我收集了其相關的程式碼段,希望對大家有所幫助。1. 新增項 checkedListBox1.Items.Add("藍色"); checkedListBox1.Items.Add("紅色"); checkedListBox1.It

有米啦 http://blog.youmila.com

<?//插入排序(一維陣列)function insert_sort($arr){    $count=count($arr);    for($i=1; $i<$count; $i++){        $tmp=$arr[$i];        $j=$i-1;        while($a

http://blog.163.com/xxh_line/

1.取當前系統時間 1.1 MYSQL:NOW(),SYSDATE(),CURRENT_TIMESTAMP可取得當前日期時間,CURDATE(),CURRENT_DATE可取得當前日期,CURTIME(),CURRENT_TIME可取得當前時間,不包括日期部分 1.2 MS

一臺電腦上同時啟動兩個tomcat http://blog.knowsky.com/188652.htm

1.特別要注意:不要設定CATALINA_HOME 2.分別修改安裝目錄下的conf子目錄中的server.xml檔案:a.修改http訪問埠(預設為8080埠,我習慣在安裝的時候就改成別的埠號,比如5.*改成8081,6.*改成8086),將8080修改為 tomcat不

spring常用註解(轉載http://elf8848.iteye.com/blog/442806)

odin Coding spa -c tle 類型 epo sta frame 1 引入context命名空間(在Spring的配置文件中),配置文件如下: Xml代碼 xmlns:context="http://www.springframework.org/

基於Spring框架的Shiro配置(轉發:http://kdboy.iteye.com/blog/1103794)

alt work actor proxy post end url return images 一、在web.xml中添加shiro過濾器 Xml代碼 <!-- Shiro filter--> <filter> <

【zylzb的專欄】該部落格使用部落格搬家功能從http://haohaoxuexi.iteye.com搬遷過來,發現搬遷過來的效果不好,決定陸續手動搬遷到新地址http://blog.csdn.net/elim168

該部落格使用部落格搬家功能從http://haohaoxuexi.iteye.com搬遷過來,發現搬遷過來的效果不好,決定陸續手動搬遷到新地址http://blog.csdn.net/elim168...

【DianaCody's Blog】部落格部分文章已移至個人站點http://www.dianacody.com,關注Recommend System, Search Engine, Machine Learning, NLP。歡迎訪問。

Personal Website: DianaCody's Shell My Github: DianaCody's Github ************************** My Focus: 52nlp.cn CoolShell.cn in

《大型網站技術架構》讀書筆記 (轉載請註明來源:http://zhanjia.iteye.com/blog/2038540)

《大型網站技術架構》讀書筆記: 1.1大型網站軟體系統的特點 與傳統企業應用系統相比,大型網際網路應用系統有以下特點。 高併發,大流量 高可用 海量資料 使用者分佈廣泛,網路情況複雜 安全環境惡劣 需求快速變更,釋出頻繁 漸進式發展 1.2大型網站架構演化發展歷程 大型

jstl in action 第二章(轉自http://www.blogcn.com/blog/trackback.asp?mydiary=23140875)

第二章:xml、jsp基礎本章內容:I.xml基本語法II.jsp介紹III.context中的jstl標籤庫IV.jsp範圍變數2-1xml介紹首 先要提一下html。html擁有一套標籤,如<img>,標籤擁有修飾符或成為屬性(attribute)。如在<

Siney的BlOG http://www.sineysoft.com

D0-D7為資料線, S0-S7為狀態線, 但是S0,S1,S2是看不見的(從圖中你也可以看出), 狀態線是用來讀取資料的, 但S0卻不同, 它是超時標誌位, 其他的狀態線從第10-11-12-13-15針是用來發送資料的(可以看出是5位). 那麼我們怎麼能得到這些資料埠呢? 很簡單: 每一個並口都有一個地址