國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
80
實際演算法依然會參照路網成本及救災效益時間總表進行演算法。如圖 4.17 所示,圖中 CCN 樹狀拓樸,共有 A、B、C、D、E、F、G、H 此八個節點需要修復,星號代表 CCN 救災總部(CCN Headquarter)所在位置,實線為 CCN 的無線鏈結。
圖 4.17、DS-UCB 演算法範例
如圖 4.18 所示,選擇靠近 CCN 救災總部的節點 E 作為出發點。E 點為孤立點,當下並 無提供服務,因此無 profit 可言。
圖 4.18、DS-UCB 演算法步驟一
CCN Headquarter
CCN Headquarter
Schedule = Null Total Profit = 0 Total Time = 0
Schedule = E Total Profit = 0 Total Time = 0
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
81
如圖 4.19 所示,由於節點 E 沒有 profit,因此往父節點 B 排程,但 B 點依然是孤立點無 救災效益,再繼續往父節點 A 排程,由於節點 A 是連網台具有 profit,因此得到一個初 步的排程 E→B→A。排程直到父節點有 profit 為止。
圖 4.19、DS-UCB 演算法步驟二
如圖 4.20 所示,此步驟為 Backtrack,根據上一步驟所得的初始排程 E→B→A,將鄰近 節點也加入初始排程,產生有限個的排程如圖 4.21、圖 4.22,亦考慮由出發點 E 直接到 連網台節點 A 的排程,比較這些排程的總救災效益以及總花費時間。
圖 4.20、DS-UCB 演算法步驟三
CCN Headquarter Survival BS
Schedule = E→B→A Total Profit = P1
Total Time =T1
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
82
圖 4.21、DS-UCB 演算法步驟三(排程範例 1)
圖 4.22、DS-UCB 演算法步驟三(排程範例 2)
由這些 Backtrack 產生的有限組排程與初始排程中,互相比較彼此的總救災效益及總時 間,挑選出單位時間獲得最大救災效益的排程,定為此階段的修復排程。
經過 Backtrack 後,救災團隊所在位置是有 profit 的節點 A,下一步地挑選方式,則 是選擇最靠近的點加入排程,因此可能遭遇兩種狀況。狀況一:下一節點亦可獲得 profit
Survival BS
CCN Headquarter
CCN Headquarter Survival BS
Schedule = E→G→B→A Total Profit = P2
Total Time =T2
Schedule = E→G→D→B→A Total Profit = P3
Total Time =T3
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
83
服務災區,以此例而言,修復 C、D、G 皆可服務災區,此時直接更新其總救災效益與 總時間,如圖 4.23 所示。
圖 4.23、DS-UCB 演算法步驟四(狀況一)
狀況二:下一節點暫時無法提供服務,以此例而言,修復 H、F 皆無法獲得 profit,如圖 4.24,此時以 H 為出發點,重複步驟二至步驟三,往父節點排程直到父節點擁有 profit 並且執行 Backtrack。重複步驟一至步驟四,直到所有節點皆被排程為止。
圖 4.24、DS-UCB 演算法步驟四(狀況二)
Survival BS
CCN Headquarter
Schedule = E→B→A→C Total Profit = P1+ profit(C) Total Time =T1+ time (A, C)
CCN Headquarter Survival BS
Backtrack(H → C)
‧
4.6.3、 Genetic Algorithm
在 3.7.3 章節中有介紹過各種後啟發式演算法(Meta-heuristics),其中就包含了基因演算 法(Genetic Algorithm)。Genetic Algorithm 理論來自達爾文進化論的觀點,物種靠不斷的 演化而產生最適合生存的物種,其方法是將問題的解比擬成染色體,染色體分裂的過程,
利用三個基本遺傳算子:選擇(selection)、交叉(crossover)、變異(mutation),將優良的基 因會不斷遺傳下去,把好的解不斷分裂再結合,一代一代的演化出更適應環境的基因,
成為更好的答案。Genetic Algorithm 是目前在求解 Traveling Salesman Problem (TSP)中較 常被使用的方法之一,基因的編碼方式,可直接使用染色體的編碼方式來代替城市的走 訪順序,而本文所提出的問題模型 CCNDS-UC 欲從 CCN 拓樸中求出一組救災效益最大 化的建置排程,不像 CCNDS-AC 受到 CCN 拓樸中基地台父子關係的牽制,換個角度想 類似於 TSP,基地台即為所需拜訪的城市、基地台與基地台之間的路徑花費時間等同於 城市與城市之間的路徑成本。因此本文試想用 Genetic Algorithm 的基因演化精神來解決 CCNDS-UC 此問題,並在實驗中與 DS-UCB 相互比較。
Genetic Algorithm 演算法流程圖
Start
Input CCN Topology, Traveling Time, Profit
Generate k scheduling lists (k-SL) randomly from V
Calculate total profit and total time of k-SL
【Mutation】
The mutation point and mutation value are selected at random Whether the group has evolved
over X generations?
Yes
End
No
【Crossover】
Using Partially Matched Crossover(PMC).
Crossover points are selected at random and PMX proceeds by position wise exchanges Output Scheduling which have the largest profit,
total profit, total time
【Reproduction】
Choose k/2 scheduling lists which have the bigger profit from k-SL
Copy those bigger profit scheduling lists replace the other k/2 scheduling lists which have the smaller profit
圖 4.25、Genetic Algorithm 演算法流程圖