上頁 1234 次頁

旅行業務員問題 (第 2 頁)

劉涵初

 

首頁 | 搜尋

.原載於數學傳播第十一卷第三期
.作者當時任教於逢甲大學統計系
對外搜尋關鍵字
 
(二)分支界定法(branch-and-bound method)

旅行業務員問題的解可以樹形 (tree) 表示,例如 n=4,則圖1的樹形表示所有可能的 3!=6 條路徑,例如,最右邊一條路徑為 $1\rightarrow 4\rightarrow 3\rightarrow 2\rightarrow 1$



圖1

在這問題中我們需找出最小成本路徑,分支界定法搜尋此最佳解的概念為,將樹形不斷分支,但隨時以問題的條件限制分支的持續,亦即若知最佳解不會出現在經由此點的路徑,則不必繼續分支,因此所需搜尋的路徑將大為減少。

考慮以下的例子,表 1 為城市間的成本矩陣,例如 C12=3 表示城市 1 到城市 2 的旅行成本為 3,注意 Cij 不一定等於 Cji,在主對角線上的 $C_{ii}=\infty$,表示我們不需要這些值。 一個可能的路徑需矩陣中的 4 個表值,每一行且每一列恰有一個,又且,若選 Cij,則不能選 Cji; 若選 CijCjk,則不能選 Cik(為什麼?),例如,表1 中所圈的 4 個值表示路徑 $1\rightarrow 2\rightarrow 3\rightarrow 4\rightarrow 1$, 成本為 C12+C23+C34+C41=3+6+6+9=24


\begin{displaymath}
\begin{tabular}{c\vert cccc}
\mbox{{\fontfamily{cwM2}\fontse...
...d{6}$\\
4 & $\textcircled{9}$ & 7 & 4 & $\infty$
\end{tabular}\end{displaymath}

表1

首先,我們找此問題的一個下限,在成本矩陣中,若每一行(每一列)減去相同的值,顯然, 最低成本的路徑不會改變,故在第一列每項減 3(該列中最小值為 3),第二列減 3,第三列減 5, 第四列減 4,得表2 之成本矩陣,但現在成本比原來成本少 3+3+5+4=15


\begin{displaymath}
\begin{tabular}{c\vert cccc}
\mbox{{\fontfamily{cwM2}\fontse...
...nfty$&3&2\\
3&0&1&$\infty$&1\\
4&5&3&0&$\infty$
\end{tabular}\end{displaymath}

表2

第四行可減 1,故表3 之成本矩陣較原問題少 15+1=16,因此這問題的解至少 16,16 為下限。


\begin{displaymath}
\begin{tabular}{c\vert cccc}
\mbox{{\fontfamily{cwM2}\fontse...
....1pt{\fontfamily{cwM2}\fontseries{m}\selectfont \char 204}}=16
\end{displaymath}

表3

現在我們開始分支,首先考慮第一列,因 C12=0 為最小,故考慮 C12,我們選 C12 或不選 C12。 若不選 C12,則令 $C_{12}=\infty$,得表4。


\begin{displaymath}
\begin{tabular}{c\vert cccc}
\mbox{{\fontfamily{cwM2}\fontse...
...nfty$&3&1\\
3&0&1&$\infty$&0\\
4&5&3&0&$\infty$
\end{tabular}\end{displaymath}

表4

表4中,第一列可減 3,第二行可減 1,故得表 5,下限則為 16+(3+1)=20


\begin{displaymath}
\begin{tabular}{c\vert cccc}
\mbox{{\fontfamily{cwM2}\fontse...
....1pt{\fontfamily{cwM2}\fontseries{m}\selectfont \char 204}}=20
\end{displaymath}

表5

若選 C12,則表3中第一列第二行不能再被使用,可刪去,C21 亦不得被使用,故令 $C_{21}=\infty$, 得表6。


\begin{displaymath}
\begin{tabular}{c\vert ccc}
\mbox{{\fontfamily{cwM2}\fontser...
...&$\infty$&3&1\\
3&0&$\infty$&0\\
4&5&0&$\infty$
\end{tabular}\end{displaymath}

表6

第一列可減去 1,故下限為 16+1=17,如表7。


\begin{displaymath}
\begin{tabular}{c\vert ccc}
\mbox{{\fontfamily{cwM2}\fontser...
....1pt{\fontfamily{cwM2}\fontseries{m}\selectfont \char 204}}=17
\end{displaymath}

表7

目前樹狀分支過程如圖2



圖2

所以二元決策樹 (binary decision tree) 的每一內點表示:選 Cij 或不選Cij。現在因選 C12 下限17小於不選 C12 下限20, 故接著對選 C12 分支,新選的表值不一定需與 C12 連接,亦即不一定需為Cj1C2j,但為簡單起見,我們選 C2j,表7中因 C24=0,故接著的分支為選 C24 或不選 C24。 若不選 C24,則表7中令 $C_{24}=\infty$,第一列減 2,故下限為 17+2=19。若選 C24, 則表7中移去對應的行與列,又令 $C_{41}=\infty$(否則得迴路 $1\rightarrow 2\rightarrow 4\rightarrow 1$),故得表8 下限仍為 17。


\begin{displaymath}
\begin{tabular}{c\vert cc}
\mbox{{\fontfamily{cwM2}\fontseri...
....1pt{\fontfamily{cwM2}\fontseries{m}\selectfont \char 204}}=17
\end{displaymath}

表8

現在我們繼續分支,由表8可知,接著必得選 C43C31(否則得 $\infty$),因 C43=C31=0, 故下限為 17,而這條路徑 $1\rightarrow 2\rightarrow 4\rightarrow 3\rightarrow 1$ 成本為 3+5+4+5=17 正為下限, 故為最佳解。 以上全部的分支界定過程如圖3。



圖3

   

上頁 1234 次頁

回頁首
 
(若有指正、疑問……,可以在此 留言寫信 給我們。)
EpisteMath

EpisteMath (c) 2000 中央研究院數學所、台大數學系
各網頁文章內容之著作權為原著作人所有


編輯:吳明和 / 校對:陳文是 / 繪圖:簡立欣 最後修改日期:5/2/2002