• 沒有找到結果。

問題描述及研究方法

N/A
N/A
Protected

Academic year: 2022

Share "問題描述及研究方法 "

Copied!
53
0
0

加載中.... (立即查看全文)

全文

(1)

第一章 緒 論

隨著科技的發達,近年來商業活動衍生許多的新型態,例如:電視購 物、網路購物…等等,不管在典型的物流配銷業,由代理商批貨到經銷商 的 B to B 配銷活動或由經銷商直接到客戶端的 B to C 宅配銷售,物流配 銷成本一直是一個重要的成本關鍵,關係著的成本,減少物流配銷成本,

除了能為企業帶來良好的商譽並增加競爭力外,更能直接的提高獲利能 力。

然而要能減少物流配銷成本最重要的關鍵在於能以合理的時間及合理 的配送路徑到達目的地,若能以相同的運送時間爭取到最多的送貨端或減 少車輛的行經路徑則可以更有效率的處理物流活動。有鑑於此,本篇論文 將提出一個可以有效減少配送成本的方法,期能提供各相關物流配銷業參 考。

在傳統的配送路徑排程中,都是藉由經驗老道的司機或某一瞭解地理 資訊的專業人員,在接獲訂單時以個人主觀意識來處理送貨行程決定配送 路線,其缺點是因太過於主觀,易陷入路徑過長或無法在指定的時間內送 達的缺點,甚致因私人因素故意遶遠路處理私務,因此若能有一系統可以 指定某一較佳的送貨順序,將可有效的控制以上的缺點。由該系統提供送 貨路線給司機,並由該司機以該路徑送貨除了可避免人工選擇路徑外,更 可以有效掌控配送成本。然而在配送成本中路徑距離的選擇是一個重要的 關鍵,因為距離的長短影響到配送效率及成本,所以如何以更快的時間更 短的距離將貨物送到客戶端將是節省成本的重要因素之一。在這個過程中 除了的業務員旅行問題(TSP)外,有時還要配合客戶的要求條件,例如:

指定送貨到達的時間範圍,所以必需要將該條件也一併加入行程中。因此

(2)

本研究所要達到的功能為減少以人工安排送貨順序並且有效的降低配送 路徑行程的成本,所以要如何符合客戶的條件需求又要很快的送達將是本 研究的重要目的所在。

這方面類似的問題常被拿來作研究,在【7】中提及使用最小擴張樹方 法,此方法簡單又快速,即使樣本很大,只要將最小擴張樹建立即可以很 快的得到一個固定的結果,但要加入某些客戶的條件,例如:客戶指定到 貨時間實屬不易。【5】一文中使用基因演算法來解決拜訪次序,但是由於 樣本只有 12 個點,所有可能解為

( 121 ) ! 2

= 19958400 個,看起來似乎很 大,但實際上若使用窮舉法在電腦上執行並不會太久,所以在該篇論文 中,使用窮舉法所得的解會比使用基因演算法要來得好。如果樣本點數多 些(例如:超過 20),那麼只使用窮舉法所得的效果可能不彰,因為可能 解過於龐大而導致取得一個合理的結果較為費時,況且同樣未加入客戶的 需求條件。【4】文中不但詳舉了諸多的相關方法應用在時窗限制車輛途程問 題(VRPTW Vehicle Route Problem with Time Window)上,且有效解決 何時到貨的問題,雖然該研究主要以一個出發點 N 台車去拜訪 M 個客戶,

也和本研究一樣把到貨時間加入限制條件中;不過建構該方法的相關變 數、數學式及演算法著實複雜,且若要再加入其他條件實屬不易,不若基 因演算法將條件加入 Fitness Function 中來的簡單。【6】利用門檻接受法 (TA)處理業務員旅行問題(TSP),其方法有效率且穩定,但若要加入其 他條件仍屬不易。【3】以禁忌搜尋法為主幹來作最佳化演算模式,同樣是 為解決車輛途程問題(VRP Vehicle Route Problem),若欲加入其他條件著 實不易。

綜觀以上方法,有的只為解決業務員旅行問題,有的為解決可因載貨 條件限制甚至是時窗條件限制的車輛途程問題,雖然在環境限制不盡相 同,不過仍有其同質性。

本研究和車輛途程問題及業務員旅行問題有些類似,和業務員旅行問

(3)

題的差別在於業務員旅行問題專攻於取得最短路徑解,而本研究可加入其 他條件。和車輛途程問題所不同的是,車輛途程問題考量多輛車與載貨量 上限的情況下,最終目的在於求取最小的配送成本。雖然在環境上本研究 看似較車輛途程問題單純,但由於本研究可加入其他條件,且條件可以不 止一個(本研究僅舉到貨時間限制一例),因此複雜度亦隨之增加;由於 本研究有加入條件的特性,因此亦可利用此特點去針對車輛途程問題裏每 一台車的路徑求解。故本研究亦可視為解車輛途程問題內一台車的路徑 解,若加入的條件為到貨時間限制,則就和時窗限制的車輛途程問題有點 相似,除此之外,亦可將其他條件加入 Fitness Function 中,如此可以更有 效的達到客戶端的需求,且可以更有彈性的加入其他條件。

本論文將藉由模擬的方式來探討所使用的研究方法;其架構包含六個 章節:除緒論外,第二章為問題描述及研究方法。第三章將介紹以基因演 算法來模擬求解及對其方法所得的路徑結果分析。第四章將介紹基因演算 法輔以模糊分割及基因演算法輔以模糊最適切性分割指標來模擬取得樣 本解,亦將加入到達時間條件來模擬,第五章則以本研究所提及的方法應 用在實際的資料上,第六章為結論與未來展望。在各章節中若有提及運算 時間或效能,其運算所使用硬體架構為 Intel Mobil P3-600 CPU 、 256MB RAM 及 IDE 5400 rpm HDD.,作業系統為 MS Windows 2000 Pro.,使用 的程式語言為 DELPHI 5.0。

(4)

第二章

問題描述及研究方法

本章節將會說明本研究探討的問題及欲使用哪些方法處理,並建立一 個模擬環境,以做為研究基礎。

2.1 問題描述

本研究旨在探討單一固定的出發點,單一車輛去拜訪多個點,最後再 回到原點的物流配送問題,同時亦必需把客戶端所要求的到貨時間限制需 求加入整個配送行程中,因此希望能在符合客戶的要求下找到合理的路徑 解。

在測試方法前我們必需先建立一個樣本以供往後章節模擬使用;由於 當日欲送貨的客戶有哪些我們事先並不知情,所以為了達到模擬的客觀 性,模擬的樣本資料就以二維座標上的一個點來代表一個客戶,且該點是 以亂數取得,並任意產生 30 個點來代表出發點及其他 29 個客戶。再利用 一陣列來記錄這些點,如表 2-1 及圖 2-1 對應的二維座標圖,同時也必需 再以一個二維陣列來記錄各點之間的距離,如表 2-2。

(5)

表 2-1 由亂數產生樣本測試點

代號 二維座標 代號 二維座標 代號 二維座標

P01 (0000,0000) P11 (2232,7795) P21 (8884,1424) P02 (8110,1462) P12 (9528,3268) P22 (9625,1993) P03 (9706,7795) P13 (6451,6791) P23 (3381,0467) P04 (9676,1659) P14 (5182,4072) P24 (1147,8584) P05 (0884,9842) P15 (5303,4580) P25 (0246,1168) P06 (9724,3646) P16 (8236,8767) P26 (5117,8516) P07 (1355,0111) P17 (8694,7317) P27 (5446,0971) P08 (0085,8409) P18 (6890,1753) P28 (2626,3030) P09 (0710,6397) P19 (7468,2018) P29 (2918,9801) P10 (7828,6023) P20 (8300,9450) P30 (7755,8231)

圖 2-1 各測試點在二維座標上的位置

(6)

表 2-2 各點間之距離陣列

取得以上的模擬資料後,在往後的模擬中,我們將以原點 P01(0,0)為 出發點,以一台車去拜訪其他 29 個點,此 29 個點即代表客戶;此車必需 由原點出發,拜訪每一個客戶,且每一個客戶一定只能拜訪一次,走完每 一個客戶後最後再回到原點,此原則即同業務員旅行問題原則,若有加入 拜訪條件時,同樣不可脫離此拜訪原則;本研究並不考慮車輛途程問題

(VRP),僅止於加入條件的業務員旅行問題。

2.2 研究方法

本論文將以基因演算法【1】及模糊最適切性分割指標【2】來處理物 流配送問題,由於此類問題複雜度頗高,若不考慮其他條件,只以業務員 旅行問題而言,若一定要以窮舉法得到最佳解則必需將所有樣本排列組合

(7)

計算,換句話說存在

( n − 1 ) ! 2

個排列組合樣本,將所有樣本計算完後再將 距離排序後取最小的距離即為最佳的解。若樣本小時適合使用此方法,若 樣本大時,則此方法雖有解但不符時間效益;例如:若含出發點共有 30 個 點,則必需計算

( 30 − 1 ) ! 2

(超過44.2⋅10

29

)個解,因此此方法理論上有解,

但樣本多時則無法實際應用。

使用基因演算法的好處是可利用不斷進化的觀念來求解,使其解一代 比一代更好或至少保持不變,且若有指定的條件亦可將某些條件加入 Fitness Function 內,使其在合理的運算時間內取得一個合理的解,但是若 樣本太大同樣會使運算趨於複雜,所以我們必需想辦法將一個大樣本分割 成許多的子樣本,採用各個擊破的方式將每個子樣本以基因演算法求解後 再將每個子樣本連接起來還原為原來的樣本,如此不但可簡化基因演算法 的複雜度更可以縮短運算時間及取得合理的結果,至於分割的方式將配合 模糊分割(Fuzzy Clustering);然而傳統模糊分割只能分割成指定的群組 數,太過於主觀,因此必需透過模糊最適切分割指標(Fuzzy Clustering Validity Index)來處理,先取得最適切分割的組數交予模糊分割處理分組 後,再交予基因演算法處理各個群組的拜訪順序,處理完成後再將每一群 組連接起來,以得到更佳的結果。

(8)

第三章

應用基因演算之研究

由於使用基因演算法可使每一代的結果有不斷進化且其計算並不複 雜,非常適合用來處理路徑問題,透過不斷的進化可以取得更好的距離 解,雖然不保證一定可以如同窮舉法一樣取得最短路徑解,但可以取得一 個我們所要的合理解,且計算所花費的時間可以在我們的控制中,所以本 章節將以基因演算法為基礎來解決所提出的問題。

3.1 模擬方法介紹

本章將會以基因演算法為基礎來模擬測試,因此在測試前必需先對往 後章節所使用的基因演算法作一介紹,在介紹前我們必需先瞭解整個基因 演算法的流程,其流程如圖 3-1 所示。

(9)

開始

字串初始

計算 Fitness 值 複製或交配

字串突變 突變(是/否)

檢查是否符合停止條件(是/否)

傳回結果字串

結束

保留最好的字串及儲存Fitness 值 計算的結果

定義 Fitness Function 字串編碼

圖 3-1 基因演算法模組定義流程圖

。字串編碼

產生字串的方式可用二進制或文數字甚或其他特殊方式來代表每一基 因。因本研究以探討拜訪客戶之路徑距離為目的,所以就直接以實際文數 字來代表一個基因,例如:第一點以 P01 來代表,第二點以 P02 來代 表,...,以此類推,搭配表 2-1 參考其代號欄位即為基因的代碼。有了編 碼方式後,我們就可以產生字串,以本研究目的,只要所有基因皆存在於 字串內且不重覆,則該字串即為合法的字串。

(10)

。定義 Fitness Function

因 為 在 本 論 文 中 要 求 得 合 理 的 路 徑 解 , 所 以 我 們 定 義 的 Fitness Function 為:

( ) ( )

 

 +

=

= + 0

1

0

1

,

,

x D x x x

D Min

fit n

n

i

i x i

其中,變數 x 代表輸入的字串, n 代表 x 所有點的數量, D 為各 點間的距離(參考表 2-2), x

i

為字串內該點的位置。

。字串初始

以本模擬為例,樣本群體的數量建議能在 30~60 之間,因為若初始字 串群體太少,會造成進化緩慢,導致需要更多代的繁衍才能符合我們的需 求,若太多則在繁衍每一代時較耗時,例如,參考字串群體耗時分析圖 3-2 至圖 3-4,資料來源同樣由表 2-2 取得,各分析圖的字串群體分別 15 組、

65 組及 30 組字串,且執行基因演算法時參數皆相同;由該三張分析圖我 們可以得知在執行時間及結果兩相權衡之下,最好的字串組合群體為 30 組字串。因此本模擬實際選取初始的字串個數為 30 個字串,且每一字串 內的基因碼為避免過於主觀所以皆由亂數產生,但以基因不重覆且各基因 一定只能出現一次且第一個基因一定為原點 P01 為原則。

(11)

初始字串樣本群體為15組字串,耗時約90秒

0 20000 40000 60000 80000 100000 120000 140000

100 600 1100 1600 2100 2600 3100 3600 4100 4600 5100 5600 6100 6600 7100 7600 8100 8600 9100 9600

代數

距離

圖 3-2 15 組初始字串分析圖

初始字串樣本群體為65組字串,耗時約1468秒

0 20000 40000 60000 80000 100000 120000 140000

100 600 1100 1600 2100 2600 3100 3600 4100 4600 5100 5600 6100 6600 7100 7600 8100 8600 9100 9600

代數

距離

圖 3-3 65 組初始字串分析圖

初始字串樣本群體為30組字串,耗時約556秒

0 20000 40000 60000 80000 100000 120000 140000

100 600 1100 1600 2100 2600 3100 3600 4100 4600 5100 5600 6100 6600 7100 7600 8100 8600 9100 9600 代數

距離

圖 3-4 30 組初始字串分析圖

(12)

。定義交配方法

交配的方法有很多種,在本模擬中將保留本代最好的一組字串直接複 製給下一代,如此至少可確保下一代的最好字串不會比現在的還差;複製 完後,依 Fitness 值來決定每一字串的交配次數,該字串的 Fitness 值低於 各字串平均的 Fitness 值愈多,則被選取來當父字串交配的次數愈多,反 之則愈少;而母字串的來源則由亂數去決定任一個存在樣本中的字串。如 此做法主要在於讓良好的基因有更多的機會可以傳到下一代,而為了避免 某一良好的基因片段藏在很差的字串內而未被交配到,因此母字串的來源 由隨機取得,如此即使一很差的字串仍有機會參與整個演化過程。在此同 樣的也模擬此方法與其他方法來比較其優劣,參考分析圖 3-5 至圖 3-7,資 料來源同樣由表 2-2 取得,圖 3-5 為每一字串皆與隨機取得的字串交配,

圖 3-6 取前一半最好的字串與隨機取得的任兩字串交配兩次產生兩新的字 串,在基因演算法的執行過程中除交配的方法不同外,其他的參數均相 同。由以下的分析圖得知,依 Fitness 值來決定每一字串的交配次數的方 法優於其他兩種方法。

決定該如何取出哪些字串來執行交配後,我們必需再給予交配的方法 以產生下一代,其方法為下一代的第一個位元一定繼承父字串,而往後每 一位元皆由亂數去決定要來自於父字串或母字串。

範例: 設父字串為{P01,P02,P05,P04,P03},

母字串為{P03,P01,P04,P05,P02},則表 3-1 為其交配範例。

(13)

表 3-1 字串交配範例

位元一 位元二 位元三 位元四 位元五

父字串 P01 P02 P05 P04 P03

母字串 P03 P01 P04 P05 P02

除第一位元外其餘位元

由亂數決定要繼承何者 父位元 父位元 母位元 母位元 父位元

產生的新字串 P01 P02 P04 P05 P03

每個字串皆和隨意取得的字串交配一次

0 20000 40000 60000 80000 100000 120000 140000

100 600 1100 1600 2100 2600 3100 3600 4100 4600 5100 5600 6100 6600 7100 7600 8100 8600 9100 9600

代數

距離

圖 3-5 每一字串皆和隨意取得的字串交配一次

只取前一半最好的字串交配,每一字串均被選取兩次與隨意取得的字串交配

0 20000 40000 60000 80000 100000 120000 140000

100 600 1100 1600 2100 2600 3100 3600 4100 4600 5100 5600 6100 6600 7100 7600 8100 8600 9100 9600

代數

距離

圖 3-6 只取前一半最好的字串為父字串,且每一父字串均被選取兩次與隨意取得的母字串交配

(14)

依 FITNESS() 來決定每個字串被拿來與隨意取得的字串交配的次數

0 20000 40000 60000 80000 100000 120000 140000

100 600 1100 1600 2100 2600 3100 3600 4100 4600 5100 5600 6100 6600 7100 7600 8100 8600 9100 9600 代數

距離

圖 3-7 依 Fitness 的高低來決定每個字串被拿來與隨意取得的字串交配的次數

在執行完交配產生新的下一代後,或許此新一代字串內有重覆的基因 存在,要如何解決此一問題呢?由於本模擬是要取得較短距離,所以我們 可以很直覺得將未存在於字串的基因取代重覆的基因,而且被取代的重覆 基因位置,為所有未存在於字串內的基因,取一個和被取代重覆基因位置 之左右兩鄰點距離總和最近的基因,如此可確保修正重覆基因後該字串所 得的距離總和較為接近最短距離。以下將舉例說明取代的方法,並說明本 模擬的交配步驟。

重複基因取代說明:

假設在二維座標上有 5 個點,我們將它們編碼為 P0~P4,其結果 如下所示:

P0=(0000,0000) P1=(2471,2460) P2=(9275,9621) P3=(0136,5554) P4=(7655,8394)

而其距離矩陣如表 3-2 所示

(15)

表 3-2 任兩點間的距離矩陣 Point

Point P0 P1 P2 P3 P4

P0 00000 03487 13364 05556 11360 P1 03487 00000 09878 03876 07879 P2 13364 09878 00000 10003 02032 P3 05556 03876 10003 00000 08037 P4 11360 07879 02032 08037 00000

在進行字串交配後,若產生新的字串為(P0,P1,P1,P3,P2),則 我們可以發現 P1 為重覆的基因,且 P4 並未加入新的字串內,所 以我們必需將 P4 取代掉其中一個 P1,但是到底要取代掉哪一個 呢?有底下的兩種可能:

可能一:(P0,P1,P4,P3,P2),

其距離全長=42770 可能二:(P0,P4,P1,P3,P2),

其距離全長=46482

由以上的兩種可能,我們可以發現可能一取代後的距離較 短,所以可能一為較佳的取代位置,因此將第二個 P1 由 P4 取 代,取代後的新字串為(P0,P1,P4,P3,P2)。此取代方法即為本模擬 所使用的取代法則。

。定義突變法則

在生物進化的過程中,基因的突變為一自然現象,生物可能會因為基 因突變進而更加的適合環境,但也可能造成不良的後果進而消失,在基因 演算法中亦同,有時透過基因的突變可以得到意想不到的好結果,可能突 變某一段基因勝過於交配好幾代,但也可能會使一段原本良好的字串因突

(16)

變而變的更糟。然而突變的發生並不是每一代都會發生,它是一種偶發事 件,而且發生突變的機率並不算太頻繁。

在本模擬中同樣的也一定要加入突變事件,否則可能會有某些很好的 基因序列無法或必需要經過很多代的交配才能得到,相反的若因突變而產 生不良的結果則會自然的被淘汰。且在本模擬中最佳的字串不參與突變,

其餘的字串突變機率設定為 15%,因為若突變太頻繁則除了增加運算的複 雜度外,還有可能會破壞掉太多良好的字串,導致進化趨緩;但若設定太 低,則取得某種良好基因片段的機會太低,必需要靠更多的交配才能取得 或甚至無法取得。若遇到該字串需突變時,則突變的方式為保留第一個基 因(即起始點固定)不參與突變,其餘字串內的基因採用亂數的方式任意 對調來代表突變,且由亂數任意對調的次數為該字串的基因總數量,經過 如此突變的步驟後,看似很亂且沒有任何根據及意義,但其實不然,因為 此突變後的字串若與其他未突變的字串交配後,所產生的新字串可能含有 某些不可預期的良好基因片段,而此種基因片段或許需要經過很多代的交 配才能取得。所以本模擬所使用的突變方法目的在於摻雜任何不可遇期的 因素,讓基因演算法可以考慮更多可能。其突變步驟及範例說明如下:

步驟 1: 若遇需突變時,則至步驟 2,否則至步驟 8。

步驟 2: 保留最好的一字串,絶不參與突變。

步驟 3: 令變數 n 為字串內的基因數量。

步驟 4: 令變數 i=1。(i 為該字串內基因的位置,第一個基因(即為 原點,其位置 0)。

步驟 5: 突變(第 i 個基因和由亂數取得的基因位置交換,若亂數取 得的位置為第一個基因則不予交換)。

步驟 6: i=i+1.

步驟 7: 若 i>n 則到步驟 8 否則到步驟 5。

步驟 8: 結束突變。

(17)

表 3-3 說明 S1 字串的突奱過程

I

亂數取得位置 基因交換 突變後字串

1 保留第一個基因不突變 原字串 2 2 P2 和 P2(相當於未突變) P1,P2,P3,P4,P5

3 4 P3 和 P4 P1,P2,P4,P3,P5

4 2 P3 和 P2 P1,P3,P4,P2,P5

5 3 P5 和 P4 P1,P3,P5,P2,P4

突變範例:

利用以上的突變步驟模擬突變;假設一個字串內有 5 個基因,即 字串 S1 = (P1,P2,P3,P4,P5),若此字串剛好需要突變,則變數 n = 5,i 為各個基因所在的位置,利用亂數取得要對換的位置(不會包含第一個 基因),其突變過程如表 3-3 所示。由表 3-3 突變後,結果字串 S1=

(P1,P3,P5,P2,P4)。

3.2 模擬結果及分析

由第二章中,我們利用亂數在二維座標上取得了欲模擬的資料,即表 2-1 及表 2-2 所示,並在上一節中定義了本模擬所使用的基因演算法相關法 則,因此們可以將模擬資料帶入基因演算法中執行以求得結果;但必需注 意的是,為避免基因演算法永無止境的運算,我們必需設定停止點,此停 止點可為執行到某一代數或執行到符合我們需要的結果時停止。

以本模擬為例,因主要的目的在比較方法的優劣,故以每一回合固定 執行 5000 代,所以執行完第 5000 代後即終止基因演算法的運算;經過 5000 代的運算後得到以下的距離結果路徑。

(18)

■ 執行 5000 代的拜訪順序:

P01,P25,P03,P11,P05,P24,P09,P08,P29,P26,P30,P13,P16,P17,P20, P02,P23,P07,P27,P12,P04,P22,P10,P06,P21,P18,P19,P14,P15,P28 總距離 = 92956.0868

其拜訪路徑順序如圖 3-8 所示。

由於以上執行完一回合結果後,無法看出此方法的優劣,因此為客觀 起見,再以同樣的樣本資料,同樣的方法再執行 100 回合以供分析資料參 考,表 3-4 及圖 3-9 是執行 100 回合後的分析資料。

圖 3-8 利用基因演算法執行 5000 代後各點的拜訪順序

(19)

表 3-4 執行 100 回合後的分析資料表

(本表可能存在小數誤差)

分析執行 100 回合後的距離資料

平均距離 92,174.1535

最大距離 107,140.3860

最小距離 75,070.3279

距離變異數 47,303,647.9800

<=平均距離的回合數 47

其中距離變異數之公式為:

令變數

d D n

n

i

i

/

1



 

=

=

即為各點的平均距離,變異數=

∑ ∑

=

n d D

n

i

i

) /

(

2

1

利用基因演算法執行100回合,每回合5000代的結果統計圖

3

17 16

30

20

13

1 0

5 10 15 20 25 30 35

<=80000 80001~85000 85001~90000 90001~95000 95001~100000 100001~105000 105001~110000

距離範圍

回合

圖 3-9 執行 100 回合(每回合 5000 代)後各距離區間的分析資料圖

(20)

由表 3-4 及圖 3-9 的分析資料中,我們可以發現小於平均距離的回合 數有 47 回合,也就是說有 47% 的可能在利用此方法時會小於平均值,但 事實上平均距離不甚理想,即便是最小距離值也不是很理想,況且變異數 太大,即表示此方法的穩定性不是很好,也就是執行 100 回合後的樣本中 好壞差距頗大;為求審慎,我們可以合理的懷疑有可能是因為每回合執行 5000 代太少的因素才會造成這樣的結果,因此我們就再以同樣的樣本,

同樣的方法,將運算代數提高一倍到 10000 代來執行,並分析其資料。

■ 執行 10000 代的拜訪順序:

P01,P23,P27,P18,P09,P08,P05,P24,P29,P26,P03,P17,P10,P06,P22 ,P04,P21,P19,P02,P12,P15,P30,P20,P16,P11,P13,P14,P28,P07,P25,P01 總距離 = 70184.8735

其拜訪路徑順序如下圖 3-10 所示。

圖 3-10 利用基因演算法執行 10000 代後各點的拜訪順序

(21)

表 3-5 執行 100 回合,每回合 10000 代的分析資料表

(本表可能存在小數誤差)

分析執行 100 回合後的距離資料

平均距離 86,682.6790

最大距離 104,083.5200

最小距離 69,525.1994

距離變異數 52,799,272.6600

<=平均距離的回合數 47

由於以上執行完一回合結果後,看起來似乎比圖 3-8 還好,但改善不 多,路徑看起來還是很不順暢,同樣的為了客觀起見,再以同樣的樣本資 料,同樣的方法執行 100 回合,且每回合執行 10000 代以供分析資料參 考,表 3-5 及圖 3-11 是執行 100 回合後的分析資料。

利用基因演算法執行100回合,每回合10000代的結果統計圖

1

8

19

25

29

16

2 0

5 10 15 20 25 30 35

<=70000 70001~76000 76001~82000 82001~88000 88001~94000 94001~100000 100001~106000

距離範圍

回合數

圖 3-11 執行 100 回合(每回合 10000 代)後各距離區間的分析資料圖

(22)

由表 3-5 及圖 3-11 的分析資料中,我們可以發現小於平均距離的回合 數和運算 5000 代時一樣有 47 回合,但平均距離、最大距離及最小距離皆 有改善,可是改善的幅度並不大,其中我們發現變異數竟然比執行 5000 代還大,所以穩定性可能不會因為執行代數的多寡而有所改善,雖然有改 善了某些分析條件,但因運算代數太多而導致運算時間必需拖長,且改善 幅度也不如預期,因此必需對上述的方法加以改良。

3.3 討論

綜觀以上的模擬,我們可以發現,基因演算法可以將一個很大的樣本 集合,利用不斷進化的觀念,去尋找一個較佳的結果,使其結果不斷的收 斂來達到我們的目的,但是由於收斂到某一程度時,可能會遇到瓶頸,舉 例來說:如果目前所得到的結果已經是落在這個樣本中最好的前 1% 的集 合內了,若還要將結果在推到樣本中最好的前 0.0001% 的集合內,並非 易事,若樣本小還有可能在短時間內完成,若樣本太大時,則必需再耗費 許多代運算才有可能達成,就以上面的模擬資料來說,所有的樣本有

( 30 − 1 ) ! 2

(超過44.2⋅10

29

)個,若要將結果落在最好的前 0.0001%內,也 就是說存在44.2⋅10

23

個結果內,看起來這個前 0.0001% 的集合似乎很大,

但是要從44.2⋅10

29

內單純靠基因演算法去取得一個落在44.2⋅10

23

的結果也 不是件易事。所以我們必需再想一個方法來輔助基因演算法,而不是只是 單純的藉由基因演算法的收斂來取得結果。在第四章中將會加入模糊切割 及模糊最適切性分割指標的觀念來輔助基因演算法求解,且會和本章的方 法作一比較,用以瞭解加入的方法可以更有效的取得理想結果。

(23)

第四章

結合模糊切割與基因演算法

在第三章的模擬中,我們得知不管基因演算法每回合運算 5000 或 10000 代,其結果都不是很好。如圖 3-8 及圖 3-10 所示,我們可以看到該 兩種路徑都不是很順暢,且由表 3-4 及表 3-5 得知變異數不小。況且模擬 此兩種運算每回合的執行時間都不算短,以運算 5000 代而言,至少要在 三分鐘以上。雖然第三章的模擬結果不如預期理想,但是我們可以從圖 3-10 中發現,所有的拜訪客戶似乎存在著群組關係,我們可以想像其群組關係 如圖 4-1 所示,雖然圖 4-1 的群組關係只是憑空想像而來,但是我們可以 利用此一群組的概念來輔助基因演算法去解決拜訪路徑的問題。由於基因 演算法的收斂速度會因為樣本集合很大而明顯降低,因此若能把樣本集合 簡化,將有助於基因演算法加快得到一個理想的解。

在第三章中我們討論到 30 個點所形成的樣本空間大小為

( 30 − 1 ) ! 2

(超 過44.2⋅10

29

)個,是個非常大的樣本集合,或許我們可以賴以群組的觀念 來簡化它。假設我們如圖 4-1 把這 30 點分成 5 組(G1~G5),G1 內有 7 個 點,G2 內有 5 個點,G3 內有 4 個點,G4 內有 6 個點,G5 內有 8 個點,

合計共有 30 個點。在以上的分組後,我們只要先處理各群組的順序(即 G1~G5 的順序)再處理每一群組內各點的順序後,最後再把每組連接起來 還原為原來的集合即可得到結果。由以上的觀念我們可以得知其所有的樣 本 有

( ( 5 − 1 ) ! 2 ) ( ) ( ) ( ) ( ) ( ) ⋅ 7 ! 2 ⋅ 5 ! 2 ⋅ 4 ! 2 ⋅ 6 ! 2 ⋅ 8 ! 2

約 15.8⋅10

13

個 , 遠 低 於

( 30 − 1 ) ! 2

由以上簡略的比較,我們可以發現因為分割群組可以簡化樣本空間,

進而增加運算效能,所以似乎可以得到比較好的結果,因此我們可以採用 群組的觀念,利用個個擊破的方式,把每一個小群組完成後,再連接起來

(24)

還原為原來的樣本,即可得到我們要的結果,所以本章的重點在於如何將 模糊切割及最適切性分割指標加入基因演算法內,並經由模擬來比較其結 果。

(25)

圖 4-1 想像圖 3-10 的群組關係

4.1 模糊切割與基因演算法結合

模糊切割其主要的目的在於將一個大的樣本利用模糊觀念來切割成若 干個子樣本,而每個子樣本內的點都存在著近鄰的關係,藉由模糊原理決 定哪些點屬於同一組,其演算法請參閱附錄。使用模糊切割輔助基因演算 法必須注意的是,若某一子樣本內存在太多的點數,則必需再以遞迴的方 式將該子樣本再予以切割,因為若子樣本太大,雖然減低了複雜度但很有 可能會因為子樣本內的點數過多而造成基因演算法執行效果不彰,所以有 必要以遞迴的方式將該子樣本再行切割,直到該子樣本內點數小於某一預 設值為止(例如點的個數<=9);以下將說明如何結合模糊切割和基因演算 法。

G1

G2

G3

G4 G5

(26)

步驟 1: 決定欲分割的組數,設定變數 G 代表欲分割的組數。

步驟 2: 利用模糊切割將樣本分為 G 個群組。

步驟 3: 利用基因演算法決定各組的拜訪順序(利用每組的中心點來 代表該組)。

步驟 4: 將每一組欲連接到下一組的點標記起來。

步驟 5: 利用基因演算法決定各組內各點的拜訪順序。

步驟 6: 將各組連接起來,還原成原來的樣本。

在以上的步驟中,步驟 4 及步驟 6 是基因演算法結合模糊切割的關鍵 所在,因為各組連接的好壞攸關整個距離結果,所以底下將說明如何在基 因演算法完成後連接各子群組還原為原來樣本。

在步驟 4 中,首先我們必需將本組和下組最接近的點標記起來,步驟 5 將本組標記的點固定為本組的最後一個拜訪點並執行基因演算法。如此 方法不但簡單而且能減少每組連接的距離,以下將說明其方法。

4.1.1 連接子群組

任意取得以下八個在二維座標上的點

V1=(2,3) V2=(5,5) V3=(11,9) V4=(10,11)

V5=(11,8)

V6=(13,12) V7=(12,3) V8=(13,3) 假設將取得的八個點分成 3 組,如下所示。

G1={V1,V2}

G2={V3,V4,V5,V6}

G3={V7,V8}

以這個例子而言, V2 因距離 G2 最近所以為 G1 到 G2 的連接點,因此 G1 內的路徑順序就必需為{V1,V2}; V5 因距離 G3 最近所以為 G2 到 G3 的連接點,因而 G2 的路徑順序就必需為{Vi,Vj,Vk,V5};V7 因距離 G1 最

(27)

近所以為 G3 到 G1 的連接點,因而 G3 的路徑順序就必需為{V8,V7},以 上的關係可由圖 4-2 表示。

有了以上的模糊切割定義及相關方法後,我們同樣的以模擬的方式來 和使用純基因演算法作比較,在本模擬中,樣本的來源由表 2-1 及表 2-2 而來,且基因演算法的運算方式和第三章的模擬運算方式一樣,且每回合 運算的代數為 5000 代,會設為高達 5000 代的原因是為了往後加入額外搜 尋條件而預留,否則其實可以不用把代數設的太高,因為每組的點數可以 在我們的控制之中,若設的太高倒不如使用窮舉法即可。4.1.2 將模擬及分 析基因演算法附加模糊切割所得到的路徑結果。

圖 4-2 各組連接關係

V2

G2

G3

G1

V5

V7

(28)

4.1.2 基因演算法結合模糊切割的路徑模擬

由以上的基因演算法結合模糊切割方法為基礎,我們將分割組數固定 為 7 組得到以下的拜訪順序:

P01,P09,P29,P05,P08,P24,P11,P17,P03,P20,P16,P30,P04,P21,P12,P06, P22,P19,P02,P18,P27,P26,P13,P10,P15,P14,P28,P23,P07,P25

總距離=79215.6539,其拜訪順序如圖 4-3 所示,以各圓圈範圍區分組別。

由以上的模擬結果所繪製的路徑,我們可以發現的確比第三章圖 3-8 及圖 3-10 的路徑圖還順暢。為客觀起見,我們利用此方法來執行 100 回合,

並取其資料供分析參考使用,表 4-1 及圖 4-4 是執行 100 回合後的分析資 料。

圖 4-3 基因演算法結合模糊切割的路徑模擬圖

(29)

表 4-1 利用基因演算法結合模糊切割執行 100 回合分析資料表

(本表可能存在小數誤差)

分析執行 100 回合後的距離資料

平均距離

80,907.6751

最大距離

95,638.0216

最小距離

66,455.9300

距離變異數

45,236,701.6000

<=平均距離的回合數

45

由表 4-1 的分析資料中,我們可以發現變異數明顯的減少,也就是說 每一回合結果的差距已比第三章的模擬減少,由此我們可以判斷大部份高 於平均值的結果不會離平均值太遠,由圖 4-4 即可得知,此方法的穩定性 已比單純的使用基因演算法要好,且不管是平均距離、最大距離及最小距 離皆比第三章的模擬要好,由此也證實了群組簡化樣本的方法已然有效。

8

11

22

32

17

8

2

0

5 10 15 20 25 30 35

<=70000 70001~75000 75001~80000 80001~85000 80001~90000 90001~95000 95001~100000

距離範圍

回合數

圖 4-4 利用基因演算及模糊切割執行 100 回合後各距離區間的分析資料圖

(30)

雖然利用群組簡化樣本複雜度的方法驟效,但是由圖 4-3 看來仍有改 善的空間,可能是因為分組分的不夠好才會導致這種結果, 因此我們仍 必需再加入模糊最適切性分割指標來決定最優的組數,下一節將介紹模糊 最適切性分割指標並說明如何加入模糊最適切性分割指標來運算。

4.2 加入模糊最適切性分割指標運算

本論文所加入的模糊最適切性分割指標的方法,將利用由 Fukuyama and Sugeno 提出的理論【8】。

▓ Fukuyama 和 Sugeno 最適切性分割指標的模組

 

 

 − − −

= ∑∑

= =

2 2

1 1

)

; ,

( U V X x v v v

FS j i i

c

i n

j m

µ

ij

其中變數 c 為欲分割的組數,n 為所有點的數量,µ 為第 i 組的中心

ij

點和第 j 個點的相似度,變數 m 為µ 的次方數(必需>=1,最好滿足

ij

1<=m<=2),

v i

為第 i 組的中間點,

x j

為第 j 個點,而變數

v

為所有樣本的 中心點。由以上 FS(U,V;X)的模組中,FS 值愈小愈佳

Min FS

c

有了適切性分割的模組我們還必需把該模組加入基因演算法內,使欲 分割的組數由該模組取得,而取得後交給模糊分割處理,處理後再交由基 因演算法運算。

4.2.1 結合模糊最適切性分割指標及基因演算法

使用 FS(U,V;X) 的模糊適切性切割可以有效的針對第三章的模擬資 料樣本來作一適切性的分割,其優點不但可以客觀的得到一個合理的切割 組數而且可以更有效的縮短拜訪距離,以下步驟將說明處理方式。

(31)

步驟 1: 利用 FS 模組決定最適組數給變數 G。

步驟 2: 利用模糊切割,將樣本切割成 G 個子樣本。

步驟 3: 先利用基因演算法決定各組的拜訪順序。

步驟 4: 將每組連接到下組的點標記起來。

步驟 5: 檢查每組內的點數,若太多(>10 點)則利用遞迴針對該子 群組在取得最佳切割組數後進行切割,因為如此可再有效降 低複雜度。

步驟 6: 利用基因演算法處理每組內的所有點的拜訪順序。

步驟 7: 將每一組連接起來還原回原來樣本。

上列的步驟和模糊切割加入基因演算法的步驟差不多,只差在組數的 決定由模糊最適切性切割函數取得,且如果某一組內的點數太多時,則可 以再利用模糊最適切性切割透過遞迴的方式將該群組再細分成幾個子群 組。

4.2.2 模糊最適切性分割指標搭配基因演算法之路徑模擬分析

本模擬所使用的基因演算法、模糊切割及樣本資料皆和本章第一節的 模擬一樣,唯一差別的是在模糊切割前會先以 FS(U,V;X)來決定所要分的 組數,產生了決定的組數後再交由糢糊切割處理,底下的模擬結果路徑即 由此方式而得。

每點被分組結果:

G1={P01,P07,P23,P25}

G2={P28,P15,P14,P27}

G3={P22,P04,P21,P02,P18,P19,P12,P06}

G4={P30,P16,P20,P03,P17 } G5={P10,P13,P26}

(32)

G6={P11,P29,P05,P24,P08,P09}

路徑的拜訪順序如下,其路徑圖如圖 4-5 所示

{P01,P07,P23,P25,P28,P15,P14,P27,P22,P04,P21,P02,P18,P19,P12,P06, P30,P16,P20,P03,P17,P10,P13,P26,P11,P29,P05,P24,P08,P09}

總距離=60379.2492

由圖 4-5 可以發現整個路徑結構看起來已經順暢不少,為了客觀及公 平起見,以此方法來執行 100 回合並分析其結果資料以提供佐證參考,表 4-2 及圖 4-6 為執行 100 回合所得到的分析結果。

圖 4-5 利用基因演算結合模糊最適切性分割指標取得的路徑結果

(33)

表 4-2 利用基因演算法結合模糊最適切性分割指標執行 100 回合分析資料

(本表可能存在小數誤差)

分析執行 100 回合後的距離資料

平均距離

61,994.0313

最大距離

75,150.6087

最小距離

53,325.4204

距離變異數

16,539,058.6000

<=平均距離的回合數

56

由表 4-2 的分析資料中,我們可以發現變異數明顯的減少,也就是說 每一回合結果的差距已比之前的所有模擬還小;由圖 4-6 可得知,使用此 方法的穩定性已比前些章節內提出的方法還好,且不管是平均距離、最大 距離及最小距離到目前模擬為此都是最好;由此也證實了加入模糊最適切 性分割指標的觀念到基因演算法內顯然相當有效。

綜觀第三章及本章的模擬,我們可以將各方法作一比較,瞭解哪個方 法最適合拿來解決物流配送路徑問題,下一節並會將此方法加入某些限制 條件後評估其結果。

(34)

1

16

39

24

19

0 1

0 5 10 15 20 25 30 35 40 45

<=54000 54001~58000 58001~62000 62001~66000 66001~70000 70001~74000 74001~78000

距離範圍

回合

圖 4-6 利用基因演算法及模糊最適切性分割指標執行 100 回合後各距離區 間的分析資料圖

4.3 各種模擬結果評比

綜合表 3-4、3-5、4-1 及 4-2 可以整理出一比較表,來將以上模擬的四 種方法作一比較,其結果如表 4-3 所示。

由表 4-3 得知,顯然同樣的樣本下使用基因演算法結合模糊最適切性 分割指標所得的任一比較項目皆優於前三者。在以上的模擬中,我們僅止 於求得拜訪樣本的合理距離而已,並未加入其他條件;因為在實際的物流 配送工作中,客戶有可能會指定送貨的到達時間或其他條件,因此我們必 需將條件加入行程中,否則此方法也無法應用在日常生活上。

在底下 4.4 中,我們將會把限制送貨到達的時間加入運算,並說明其 方法及步驟再加以模擬分析。

(35)

表 4-3 各方法模擬結果整理

比較項目

模擬方法 最小距離 平均距離 最大距離 變異數

基因演算法(5000 代) 75,070,3279 92,174.1535 107,140.3860 47,303,647.98 基因演算法(10000 代) 69,525.1994 86,682.6790 104,083.5200 52,799,272.66 基因演算法結合模糊分割 66,455.9300 80,907.6751 95,638.0216 45,236,701.60 基因演算法結合模糊最適切性

分割標指

53,325.4204 61,994.0313 75,150.6087 16,539,058.60

4.4 加入時間限制條件之運算及模擬

在表 2-1 中挑選三個來當模擬限制條件,如表 4-4 所示,而各點間所 需的的時間樣本取得,為方便模擬,其時間值暫以表 2-2 內的距離值除以 1000 來表示。

表 4-4 限制該點的送貨到達時間

限制到達時間的點 到達時間區間(分鐘)

P05(000884,009842)

[0 120]

P09(000710,006397)

[60 240]

P13(006451,006791)

[30 60]

(36)

4.4.1 加入到達時間的限制條件到基因演算法的流程

有了上列的模擬資料後,我們就可以將該資料加入運算中,至於該如 何加入基因演算法內呢? 如圖 4-7 為加入時間限制條件到基因演算法的 流程。

開始 基因演算法結合模糊最適切 性分割取得路徑順序

是否符合時

間限制條件 傳回結果

計算所有點拜訪順序的時間及各子 群組所需的拜訪時間(參閱舉例說明)

是否可取得 符合條件的

位置

放入符合條件所在的子群組內,並 計算插入何處較合理(參閱舉例說明)

針對調整後的組別執行基因

將各子群組連接 演算法 結束

圖 4-7 加入限制條件到基因演算法的流程圖

(37)

舉例說明:

• 設由 P1 出發拜訪完所有點的總時間為 400 分鐘(即拜訪所有點所花 的時間)

• 設所有點被切割成 6 個子群組 G1~G6,群組的拜訪順序為 G1,G2,G3,G4,G5,G6

• 設各群組所需的拜訪時間:

G1=20 G2=60 G3=120 G4=80 G5=45 G6=40

• 若原 P5 在 G6 內,而該點指定到達時間為 30~50 分鐘,則必需要調 整,如下所示:

– 檢查各群組的到達區間是否有符合時間限制條件範圍的,若 無則傳回結果。以本例而言,存在合理的時間條件在 G2,

G2 的到達區間為[20 80]。

– 計算 G2 內最合理的位置,計算方法和取代重覆基因的方法相 似。

– 由 G6 提取 P5,並放入 G2 合理的位置內。

– 針對 G2 及 G6 分別執行基因演算法,並連接各子群組。

– 再檢查 P5 是否符合限制條件,若是則傳回結果,否則再進行 調整。

上述的方法必需注意的是,給予的條件不可太過於嚴苛或根本不存 在,否則將有可能會無法得到所要結果。因此在下條件前,必需合理的答 應客戶的要求而非照單全收。底下將會模擬限制到達時間的條件,並取得 結果分析。

(38)

4.4.2 模擬到達時間限制條件的結果及分析

將表 4-4 的條件加入基因演算法執行後得到以下的結果。

拜訪順序:

P01,P07,P23,P25,P15,P14,P27,P28,P19,P18,P02,P21,P04,P22,P12, P06,P26,P13,P10,P17,P03,P20,P16,P30,P11,P29,P05,P24,P08,P09

P05(000884,009842) 到達時間在 57.5 分鐘。

P09(000710,006397) 到達時間在 67.7 分鐘。

P13(006451,006791) 到達時間在 40.0 分鐘。

總距離 = 67650.1134 總耗時 = 67.6501 分鐘 拜訪路徑如圖 4-8 所示

圖 4-8 加入限制條件的路徑

9 th point

13 th point

5 th point

(39)

表 4-5 加入限制條件的路徑執行 100 回合分析資料表

(本表可能存在小數誤差)

分析執行 100 回合後的距離資料

平均距離

87,305.8086

最大距離

149,292.1110

最小距離

66,629.4180

距離變異數

176,244,229.6

<=平均距離的回合數

54

由圖 4-8 可以得知,執行結果符合所加入條件的要求,其中為了符合 到達條件而必需先送其他的點,所以不見得會選取較佳路徑。為瞭解及分 析本模擬的結果,同樣的執行 100 回合取得結果並以表 4-5 及圖 4-9 來說 明其分析結果。

10

36 40

12

1 0 1

0 10 20 30 40 50

<=70000 70001~85000 85001~100000 100001~115000 115001~130000 130001~145000 145001~160000

距離範圍

回合

圖 4-9 加入限制條件的路徑範圖,執行 100 回合分析資料圖

(40)

4.5 討論

由表 4-5 的分析資料中,發現變異數很大,也就是說加入限制條件後 每一回合結果的差距變的較大,雖然如此,但是利用基因演算法可以得到 一合理的結果,且平均距離比沒有加入條件利用純基因演算法運算 5000 代取得的結果要好,甚至和運算 10000 代的平均距離差不多,而最小距離 結果則勝過該兩者,甚至接近模糊切割加基因演算法所得到的最小距離。

因此使用基因演算法取得限制條件的解,雖然其條件有一定的限制,但是 至少可行且結果也還令人滿意。由於我們已可從樣本中去取得合理且單純 的距離解及加入限制條件的解,因此我們就可以利用此法把它套用到實際 的物流配送作業,在第五章中將以實際的例子來實現理想。

(41)

第五章 實例應用

由第四章的模擬結果得知,將模糊最適切性分割指標及基因演算法應 用在有條件的物流配送路徑上其效果相當不錯,因此為能有效和實際應用 結合,本研究將再以一個實際的例子,應用所提出的方法來解決其有條件 的配送路徑問題,期能提供物流配送業參考,希望能節省成本提高產業競 爭力。

5.1 實際環境資料建立

在實際應用模糊最適切性分割指標及基因演算法求解前,同樣的必需 先建立實際來源資料環境且實際資料來源環境同樣選取 30 個,因此本研 究將藉助熟知的電子地圖軟體-趴趴走【9】來輔助取得實際倉庫及客戶 所在的位置,為使應用方便,將由電子地圖上實際的經緯度換算成二維座 標後,用於代表該客戶所在的位置,其換算關係如下所示。

假設P點在電子地圖的位置為(東經 120°35'31.7",北緯 24°10'40.3"), 因為一分為 60 秒,一度為 60 分,所以一度為 3600 秒,因此我們可以將 東經及北緯分別利用該關係換算成二維座標,而X軸代表東經,Y軸代表 北緯,換算結果 P 點所得的二維座標如下:

X 軸座標 =

( 1203600 ) ( + 3560 ) + 31 . 7 = 434131 . 7

Y 軸座標 =

( 24 ⋅ 3600 ) ( + 10 ⋅ 60 ) + 40 . 3 = 87040 . 3

為方便閱讀,將所得到座標值再乘以 10 後 X 軸座標= 4341317,Y 軸 座標= 870403,因此 P 點所對應的二維座標即為(4341317, 870403),由

(42)

此計算方式,我們便可將其餘點座標予以求得,表 5-1 即為所取得的資料 及換算結果。

表 5-1 實際衛星定位資料位置及換算後對應的二維座標

實衛星定位資料 換算後對應的二維座標

拜訪點 東 經 北 緯

X

軸座標

Y

軸座標

P01

120°35'31.7" 24°10'40.3"

4341317 870403

P02

120°41'06.0" 24°10'04.0"

4344660 870040

P03

120°42'01.0" 24°10'37.4"

4345210 870374

P04

120°39'08.6" 24°12'25.4"

4343486 871454

P05

120°38'58.4" 24°08'57.6"

4343384 869376

P06

120°39'01.2" 24°09'43.2"

4343412 869832

P07

120°37'28.7" 24°10'59.1"

4342487 870591

P08

120°34'59.1" 24°06'54.3"

4340091 868143

P09

120°43'12.0" 24°07'31.3"

4345920 868523

P10

120°40'47.6" 24°29'11.3"

4344476 881513

P11

120°41'07.6" 24°08'29.0"

4344676 869090

P12

120°40'39.9" 24°09'04.1"

4344399 869441

P13

120°40'07.3" 24°10'40.3"

4344073 870403

P14

120°37'29.9" 24°20'38.5"

4342499 876385

P15

120°42'53.6" 24°07'34.7"

4345736 868547

P16

120°33'35.0" 24°14'11.3"

4340150 872513

P17

120°49'47.7" 24°15'22.4"

4349877 873224

P18

120°34'34.8" 24°16'18.0"

4340748 873780

P19

120°43'11.4" 24°15'05.4"

4345801 873054

P20

120°41'13.7" 23°45'25.9"

4344737 855259

P21

120°41'04.6" 23°54'30.9"

4344646 860709

P22

120°58'06.7" 23°57'46.4"

4354867 862664

P23

120°41'01.7" 23°58'37.2"

4344617 863172

P24

120°52'42.3" 24°41'13.2"

4351623 888732

P25

120°49'05.4" 24°33'07.9"

4349454 883879

P26

120°54'40.1" 24°41'18.0"

4352801 888780

P27

120°34'18.0" 23°57'47.9"

4340580 862679

P28

120°26'08.3" 24°03'19.1"

4335683 865991

P29

120°28'48.0" 23°57'26.4"

4337280 862464

P30

120°32'21.7" 24°04'22.3"

4339417 866623

(43)

在取得各點所在的座標位置後,我們還必需要產生一個陣列來儲存各 點間的距離,其距離不是如同模擬時直接由二維座標上來換算,而是使用 該電子地圖軟體所得的距離為實際距離,如此方能符合我們在實際上的應 用,表 5-2 為儲存表 5-1 內任兩點距離的矩陣。

(44)

表 5-2 任兩點之距離矩陣

P01 P02 P03 P04 P05 P06 P07 P08 P09 P10 P11 P12 P13 P14 P15 P16 P17 P18 P19 P20 P21 P22 P23 P24 P25 P26 P27 P28 P29 P30 P01 0 12 14 11 9 8 5 12 17 41 13 11 10 23 16 9 32 13 19 57 36 65 30 72 55 75 31 29 34 19 P02 12 0 2 7 5 4 7 15 7 44 3 3 2 27 7 18 24 19 11 53 32 59 23 68 49 69 34 33 36 21 P03 14 2 0 8 7 6 9 16 7 43 4 4 4 27 7 20 22 21 10 53 33 60 24 67 48 68 35 34 38 22 P04 11 7 8 0 8 7 5 15 13 41 8 7 4 24 12 14 24 15 11 57 37 64 28 66 47 67 34 33 37 21 P05 9 5 7 8 0 2 6 10 9 47 4 3 4 30 8 16 28 20 15 51 31 58 22 71 53 73 29 28 32 16 P06 8 4 6 7 2 0 4 12 9 45 5 3 3 28 9 14 26 18 14 53 32 59 23 70 51 71 30 30 33 18 P07 5 7 9 5 6 4 0 11 13 42 8 7 5 25 12 11 27 15 14 56 35 63 27 69 50 70 30 29 33 18 P08 12 15 16 15 10 12 11 0 15 48 12 13 14 30 15 16 37 20 24 48 27 57 21 79 60 80 20 19 23 8 P09 17 7 7 13 9 9 13 15 0 49 5 6 9 33 1 23 27 26 16 48 27 55 19 73 54 74 32 33 37 21 P10 41 44 43 41 47 45 42 48 49 0 47 46 44 18 49 32 39 28 34 96 75 102 66 33 21 36 67 57 67 54 P11 13 3 4 8 4 5 8 12 5 47 0 1 5 30 4 19 26 22 13 49 28 56 20 71 52 72 31 30 34 19 P12 11 3 4 7 3 3 7 13 6 46 1 0 3 29 5 18 26 20 13 51 30 57 21 70 51 71 31 31 34 19 P13 10 2 4 4 4 3 5 14 9 44 5 3 0 26 9 16 24 17 11 54 33 60 24 67 48 68 33 33 36 21 P14 23 27 27 24 30 28 25 30 33 18 30 29 26 0 33 14 27 10 18 78 57 86 51 49 38 53 50 40 50 37 P15 16 7 7 12 8 9 12 15 1 49 4 5 9 33 0 23 26 26 16 48 27 54 18 73 54 74 32 33 36 21 P16 9 18 20 14 16 14 11 16 23 32 19 18 16 14 23 0 32 4 19 64 43 73 36 63 52 66 36 26 36 23 P17 32 24 22 24 28 26 27 37 27 39 26 26 24 27 26 32 0 31 13 74 53 81 45 63 44 64 57 56 59 44 P18 13 19 21 15 20 18 15 20 26 28 22 20 17 10 26 4 31 0 19 68 47 77 41 59 48 62 40 30 41 28 P19 19 11 10 11 15 14 14 24 16 34 13 13 11 18 16 19 13 19 0 62 41 69 33 58 39 59 44 43 46 31 P20 57 53 53 57 51 53 56 48 48 96 49 51 54 78 48 64 74 68 62 0 21 59 30 120 102 121 30 49 37 43 P21 36 32 33 37 31 32 35 27 27 75 28 30 33 57 27 43 53 47 41 21 0 46 8 99 80 100 17 36 26 29 P22 65 59 60 64 58 59 63 57 55 102 56 57 60 86 54 73 81 77 69 59 46 0 38 126 107 127 53 68 63 59 P23 30 23 24 28 22 23 27 21 19 66 20 21 24 51 18 36 45 41 33 30 8 38 0 90 72 92 16 31 25 23 P24 72 68 67 66 71 70 69 79 73 33 71 70 67 49 73 63 63 59 58 120 99 126 90 0 19 4 98 89 100 85 P25 55 49 48 47 53 51 50 60 54 21 52 51 48 38 54 52 44 48 39 102 80 107 72 19 0 20 79 78 82 66 P26 75 69 68 67 73 71 70 80 74 36 72 71 68 53 74 66 64 62 59 121 100 127 92 4 20 0 99 93 101 86 P27 31 34 35 34 29 30 30 20 32 67 31 31 33 49 32 36 57 40 44 30 17 53 16 98 79 99 0 20 10 13 P28 29 33 34 33 28 30 29 19 33 57 30 31 33 40 33 26 56 30 43 49 36 68 31 89 78 93 20 0 12 12 P29 34 36 38 37 32 33 33 23 37 67 34 34 36 50 36 36 59 41 46 37 26 63 25 100 82 101 10 12 0 16 P30 19 21 22 21 16 18 18 8 21 54 19 19 21 37 21 23 44 28 31 43 29 59 23 85 66 86 13 12 16 0

(45)

取得了各點之間的距離後,我們必需要再將各點之間拜訪所需時間計 算出來;其算法將以平均時速及平均每個客戶的停留時間為基礎,所以我 們假設平均時速為 40 公里,每點平均停留時間為 20 分鐘,其計算範例如 下所示。

範例:

由表 5-2 得知 P01 到 P02 的距離是 12 公里,

因此由 P01 到 P02 的時間約 18 分鐘,

而停留在 P02 的時間為 20 分鐘,

所以完成 P02 送貨的的時間 = 18+ 20 = 38 分鐘。

經由以上的算法,我們即可求得各點間所需的送貨時間,表 5-3 即為 計算後各點間的時間矩陣。

(46)

表 5-3 各點間所需的送貨時間

P01 P02 P03 P04 P05 P06 P07 P08 P09 P10 P11 P12 P13 P14 P15 P16 P17 P18 P19 P20 P21 P22 P23 P24 P25 P26 P27 P28 P29 P30

P01 0 37.91 40.9 36.42 33.43 31.94 27.46 37.91 45.37 81.19 39.4 36.42 34.93 54.33 43.88 33.43 67.76 39.4 48.36 105.07 73.73 117.01 64.78 127.46 102.09 131.94 66.27 63.28 70.75 48.36

P02 37.91 0 22.99 30.45 27.46 25.97 30.45 42.39 30.45 85.67 24.48 24.48 22.99 60.3 30.45 46.87 55.82 48.36 36.42 99.1 67.76 108.06 54.33 121.49 93.13 122.99 70.75 69.25 73.73 51.34

P03 40.9 22.99 0 31.94 30.45 28.96 33.43 43.88 30.45 84.18 25.97 25.97 25.97 60.3 30.45 49.85 52.84 51.34 34.93 99.1 69.25 109.55 55.82 120 91.64 121.49 72.24 70.75 76.72 52.84

P04 36.42 30.45 31.94 0 31.94 30.45 27.46 42.39 39.4 81.19 31.94 30.45 25.97 55.82 37.91 40.9 55.82 42.39 36.42 105.07 75.22 115.52 61.79 118.51 90.15 120 70.75 69.25 75.22 51.34

P05 33.43 27.46 30.45 31.94 0 22.99 28.96 34.93 33.43 90.15 25.97 24.48 25.97 64.78 31.94 43.88 61.79 49.85 42.39 96.12 66.27 106.57 52.84 125.97 99.1 128.96 63.28 61.79 67.76 43.88

P06 31.94 25.97 28.96 30.45 22.99 0 25.97 37.91 33.43 87.16 27.46 24.48 24.48 61.79 33.43 40.9 58.81 46.87 40.9 99.1 67.76 108.06 54.33 124.48 96.12 125.97 64.78 64.78 69.25 46.87

P07 27.46 30.45 33.43 27.46 28.96 25.97 0 36.42 39.4 82.69 31.94 30.45 27.46 57.31 37.91 36.42 60.3 42.39 40.9 103.58 72.24 114.03 60.3 122.99 94.63 124.48 64.78 63.28 69.25 46.87

P08 37.91 42.39 43.88 42.39 34.93 37.91 36.42 0 42.39 91.64 37.91 39.4 40.9 64.78 42.39 43.88 75.22 49.85 55.82 91.64 60.3 105.07 51.34 137.91 109.55 139.4 49.85 48.36 54.33 31.94

P09 45.37 30.45 30.45 39.4 33.43 33.43 39.4 42.39 0 93.13 27.46 28.96 33.43 69.25 21.49 54.33 60.3 58.81 43.88 91.64 60.3 102.09 48.36 128.96 100.6 130.45 67.76 69.25 75.22 51.34

P10 81.19 85.67 84.18 81.19 90.15 87.16 82.69 91.64 93.13 0 90.15 88.66 85.67 46.87 93.13 67.76 78.21 61.79 70.75 163.28 131.94 172.24 118.51 69.25 51.34 73.73 120 105.07 120 100.6

P11 39.4 24.48 25.97 31.94 25.97 27.46 31.94 37.91 27.46 90.15 0 21.49 27.46 64.78 25.97 48.36 58.81 52.84 39.4 93.13 61.79 103.58 49.85 125.97 97.61 127.46 66.27 64.78 70.75 48.36

P12 36.42 24.48 25.97 30.45 24.48 24.48 30.45 39.4 28.96 88.66 21.49 0 24.48 63.28 27.46 46.87 58.81 49.85 39.4 96.12 64.78 105.07 51.34 124.48 96.12 125.97 66.27 66.27 70.75 48.36

P13 34.93 22.99 25.97 25.97 25.97 24.48 27.46 40.9 33.43 85.67 27.46 24.48 0 58.81 33.43 43.88 55.82 45.37 36.42 100.6 69.25 109.55 55.82 120 91.64 121.49 69.25 69.25 73.73 51.34

P14 54.33 60.3 60.3 55.82 64.78 61.79 57.31 64.78 69.25 46.87 64.78 63.28 58.81 0 69.25 40.9 60.3 34.93 46.87 136.42 105.07 148.36 96.12 93.13 76.72 99.1 94.63 79.7 94.63 75.22

P15 43.88 30.45 30.45 37.91 31.94 33.43 37.91 42.39 21.49 93.13 25.97 27.46 33.43 69.25 0 54.33 58.81 58.81 43.88 91.64 60.3 100.6 46.87 128.96 100.6 130.45 67.76 69.25 73.73 51.34

P16 33.43 46.87 49.85 40.9 43.88 40.9 36.42 43.88 54.33 67.76 48.36 46.87 43.88 40.9 54.33 0 67.76 25.97 48.36 115.52 84.18 128.96 73.73 114.03 97.61 118.51 73.73 58.81 73.73 54.33

P17 67.76 55.82 52.84 55.82 61.79 58.81 60.3 75.22 60.3 78.21 58.81 58.81 55.82 60.3 58.81 67.76 0 66.27 39.4 130.45 99.1 140.9 87.16 114.03 85.67 115.52 105.07 103.58 108.06 85.67

P18 39.4 48.36 51.34 42.39 49.85 46.87 42.39 49.85 58.81 61.79 52.84 49.85 45.37 34.93 58.81 25.97 66.27 0 48.36 121.49 90.15 134.93 81.19 108.06 91.64 112.54 79.7 64.78 81.19 61.79

P19 48.36 36.42 34.93 36.42 42.39 40.9 40.9 55.82 43.88 70.75 39.4 39.4 36.42 46.87 43.88 48.36 39.4 48.36 0 112.54 81.19 122.99 69.25 106.57 78.21 108.06 85.67 84.18 88.66 66.27

P20 105.07 99.1 99.1 105.07 96.12 99.1 103.58 91.64 91.64 163.28 93.13 96.12 100.6 136.42 91.64 115.52 130.45 121.49 112.54 0 51.34 108.06 64.78 199.1 172.24 200.6 64.78 93.13 75.22 84.18

P21 73.73 67.76 69.25 75.22 66.27 67.76 72.24 60.3 60.3 131.94 61.79 64.78 69.25 105.07 60.3 84.18 99.1 90.15 81.19 51.34 0 88.66 31.94 167.76 139.4 169.25 45.37 73.73 58.81 63.28

P22 117.01 108.06 109.55 115.52 106.57 108.06 114.03 105.07 102.09 172.24 103.58 105.07 109.55 148.36 100.6 128.96 140.9 134.93 122.99 108.06 88.66 0 76.72 208.06 179.7 209.55 99.1 121.49 114.03 108.06

P23 64.78 54.33 55.82 61.79 52.84 54.33 60.3 51.34 48.36 118.51 49.85 51.34 55.82 96.12 46.87 73.73 87.16 81.19 69.25 64.78 31.94 76.72 0 154.33 127.46 157.31 43.88 66.27 57.31 54.33

P24 127.46 121.49 120 118.51 125.97 124.48 122.99 137.91 128.96 69.25 125.97 124.48 120 93.13 128.96 114.03 114.03 108.06 106.57 199.1 167.76 208.06 154.33 0 48.36 25.97 166.27 152.84 169.25 146.87

P25 102.09 93.13 91.64 90.15 99.1 96.12 94.63 109.55 100.6 51.34 97.61 96.12 91.64 76.72 100.6 97.61 85.67 91.64 78.21 172.24 139.4 179.7 127.46 48.36 0 49.85 137.91 136.42 142.39 118.51

P26 131.94 122.99 121.49 120 128.96 125.97 124.48 139.4 130.45 73.73 127.46 125.97 121.49 99.1 130.45 118.51 115.52 112.54 108.06 200.6 169.25 209.55 157.31 25.97 49.85 0 167.76 158.81 170.75 148.36

P27 66.27 70.75 72.24 70.75 63.28 64.78 64.78 49.85 67.76 120 66.27 66.27 69.25 93.13 67.76 73.73 105.07 79.7 85.67 64.78 45.37 99.1 43.88 166.27 137.91 167.76 0 49.85 34.93 39.4

P28 63.28 69.25 70.75 69.25 61.79 64.78 63.28 48.36 69.25 105.07 64.78 66.27 69.25 79.7 69.25 58.81 103.58 64.78 84.18 93.13 73.73 121.49 66.27 152.84 136.42 158.81 49.85 0 37.91 37.91

P29 70.75 73.73 76.72 75.22 67.76 69.25 69.25 54.33 75.22 120 70.75 70.75 73.73 94.63 73.73 73.73 108.06 81.19 88.66 75.22 58.81 114.03 57.31 169.25 142.39 170.75 34.93 37.91 0 43.88

P30 48.36 51.34 52.84 51.34 43.88 46.87 46.87 31.94 51.34 100.6 48.36 48.36 51.34 75.22 51.34 54.33 85.67 61.79 66.27 84.18 63.28 108.06 54.33 146.87 118.51 148.36 39.4 37.91 43.88 0

(47)

5.2 實作結果

取得必要的實際資料後,我們就可以運用模糊最適切性分割指標與基 因演算法來求解,而其各項參數及設定皆和 4.2 模擬時一樣。但為因應客 戶的到貨時間需求,我們同樣的將其條件加入運算中,其條件如表 5-4 所 示。

經由運算後,模糊最適切性分割指標將實際的 30 個點分為 9 組,並利 用基因演算法將各組及各組內所有的點取得一個符合條件且合理的路徑 結果,其結果如下所示:

G1={P01,P09,P04,P14} G2={P18,P07,P26}

G3={P10,P25} G4={P17}

G5={P15,P08} G6={P23,P20,P22,P21}

G7={P30,P27,P29,P28} G8={P16,P24}

G9={P13,P06,P05,P19,P03,P02,P12,P11}

各組連結後之拜訪順序為

P01,P09,P04,P14,P18,P07,P26,P10,P25,P17,P15,P08,P23,P20,P22,P21, P30,P27,P29,P28,P16,P24,P13,P06,P05,P19,P03,P02,P12,P11

總距離=716 公里

總花時間=1668.68 分鐘

而客戶實際到貨時間如表 5-5 所示,實際的送貨路徑如圖 5-1 所示。

(48)

表 5-4 客戶到貨時間限制

拜訪點 時間限制區間(小時)

P09

[0 3]

P14

[2 4]

P26

[3 6]

表 5-5 客戶實際到貨時間

拜訪點 實際到貨時間

P09 約

45

分鐘 P14 約

2

小時

21

分鐘 P26 約

5

小時

42

分鐘

圖 5-1 客戶實際送貨路徑圖

P01

P09

P14

P26

(49)

5.3 討論

本研究提供了一個可解類似業務員旅行問題附加條件的方法,亦提供 解車輛途程問題內一輛車的路徑參考,尤其是針對有加入某些條件時。雖 然在本研究中僅僅列舉到貨時間一例,但仍可利用基因演算法中的 Fitness Function 將其他條件加入運算,而針對類似路徑的問題,可以利用切割的 方法來有效達到複雜度的減化,讓原本很大的樣本空間可以有效的利用群 組觀念來減化其樣本,使其在取得合理的結果下,減少運算的時間,透過 這種方式應能有效的降低物流配送成本。

參考文獻

相關文件

我們大部份人都是第一次去日本,去到新的地方,甚麼都覺得很新鮮。雖然

倒傳遞神經網路的演算法使 SPOT 假色影像轉換到 SPOT 自然色影 像。影像的結果。(3)以不同天的 SPOT 假色影像進行網路回想,產 生

本章將對 WDPA 演算法進行實驗與結果分析,藉由改變實驗的支持度或資料 量來驗證我們所提出演算法的效率。實驗資料是以 IBM synthetic data generator

由於 DEMATEL 可以讓我們很有效的找出各準則構面之因果關係,因此國內外 有許多學者皆運用了 DEMATEL

我們分別以兩種不同作法來進行模擬,再將模擬結果分別以圖 3.11 與圖 3.12 來 表示,其中,圖 3.11 之模擬結果是按照 IEEE 802.11a 中正交分頻多工符碼(OFDM symbol)的安排,以

然而此電路最大的問題在於中間 Buffer 的困難度,因此我們使用了如圖 3.8 的架 構[5],圖 3.8 中我們將電流源設在內側,而 UP、DOWN 兩個開關設在外側,和圖 3.7

模擬內含鋼筋(#6)混凝土不同位置之電磁波反射訊號,其模擬方 式如圖 5-28

對於銲深和銲寬的結果也是與電子束銲接法有類似規則,如表 3-3 與圖 3-7 所示。可發現隨著 Al 含量的增加,其銲深由 AZ31 中的 1.27 mm 小幅增加至 AZ91 中的 1.37 mm;而在銲寬部分,則由