第六章 群橋維護成本最佳化
6.2.2 SOS演算法在群橋維護策略應用流程
6.2 生物共生演算法最佳化搜尋
6.2.1 生物共生演算法
現今的啟發式演算法通常是模擬自然界生物的現象,例如蜂群演 算法 ABC(Artificial Bee Colony)模擬蜜蜂成群地覓食特性;遺傳算法 GA(Genetic Algorithm) 模 擬 自 然 進 化 的 過 程 , 粒 子 群 優 化 算 法 PSO(Particle Swarm Optimization)模擬動物群聚行為。而生物共生搜尋 演算法SOS 模擬生物體間的交互共生作用做配對,用於搜索生物體間 最合適的交互共生作用關係,SOS 演算法主要的特點是可以解決空間 維度連續數值的最佳化搜尋。
本計畫使用之生物共生搜尋演算法(SOS),其靈感來自生然生態 系統中生物之間的互動模式,SOS 主要使用三種計算策略分別為互利 共生、片利共生和寄生,以模擬自然生態的共生模式。另外SOS 演算 法的三個階段在操作上是容易的,只需要用簡單的數學運算法則。此 外,相較於同類演算法,SOS 不使用微調的參數,並提高了性能的穩 定性,即使比同類算法使用較少的控制參數,還能夠解決各種數值最 佳化之問題,其在尋優與運算時間表現均優於目前被廣為應用之基因 演 算 法(Genetic Algorithms , GA) 與 粒 子 群 演 算 法 (Particle Swarm Optimization,PSO)。
6.2.2 SOS演算法在群橋維護策略應用流程
生物共生演算法是以其他演算法為研究基礎所發展出的演算法,
SOS 可在搜尋空間不斷地迭代候選解,進而求得全域最佳解。在 SOS 演算法中,初始假設數值空間是一個生態系統,在這個生態系統搜尋 空間中,會有一組隨機生成的生物群,生物群中的每一個生物體代表 一個對應問題的候選解,同時每一個生物體在生態系統中也代表一組 目標適存值(Fitness value),這個目標適存值會反映預期目標的適存程 度。本計畫使用Matlab 撰寫群橋最佳化之程式,應用流程如圖 6.2,首 先是橋梁相關參數輸入,再來是最佳化SOS 搜尋,最後是群橋維護策 略最佳方案輸出。SOS 詳細演算流程如圖 6.3 所示。
圖 6.2 群橋最佳化應用 SOS 演算法程序 橋梁相關參數輸入
首先在程式中輸入工程處經費限制,本計畫以二區工程處為例,
年平均值為1,407,154,097 元/年(參照表 2-6),本計畫再加入兩個標準差 作為搜尋之預算限制,因此二區工程處之年維護預算約為3,780,217,329 元/年。接著執行程式,程式自動輸入相關參數彙整資料如 E(MC)、
E(RC)、E(UC)等,如表 6-1 所示。接著進入到 SOS 演算法詳細演算流 程,如圖6.3 所示。
表 6-1 橋梁相關參數彙整(節錄)
ID E(MC)1 E(MC)2 E(MC)3 E(MC)4 E(MC)5 E(MC)6 E(MC)7 E(MC)8 E(MC)9
B01-0010-010A 1,328,270 1,800,995 2,179,175 2,651,900 2,935,535 3,030,080 3,030,080 3,124,625 3,227,619
B01-0010-091A 19,233 48,418 150,565 208,935 362,802 746,973 768,215 811,993 826,585
B01-0010-092A 151,915 387,555 579,013 755,743 785,198 1,020,838 1,183,793 1,655,382 1,817,244
B01-0010-097A 4,640 8,644,640 23,764,640 29,164,640 35,649,405 37,817,348 43,212,582 47,529,405 49,690,994 B01-0010-097B 2,724,640 12,244,640 13,604,640 20,404,640 21,764,640 23,124,640 28,564,640 34,004,640 40,807,206 B01-0010-097C 1,664,860 4,198,880 6,296,000 8,130,980 8,742,640 9,529,060 11,889,851 12,678,135 13,726,232
B01-0010-098A 81,990 217,353 314,040 449,403 497,608 687,806 763,568 977,869 1,095,482
B01-0010-098B 537,760 1,537,360 2,403,680 3,403,280 4,336,240 5,135,920 5,277,788 5,945,261 6,017,748 B01-0010-099A 942,140 2,442,140 4,692,140 5,067,140 6,005,151 6,754,756 7,130,120 7,694,029 9,192,703
B01-0010-101A 4,640 23,865 23,865 43,090 62,973 62,981 63,110 160,174 181,348
B01-0010-103A 46,185 150,047 191,592 253,910 358,707 420,505 586,649 710,997 815,056
B01-0010-108A 25,168 168,860 292,025 394,663 478,784 621,695 662,024 1,031,984 1,113,647
B01-0010-112A 4,640 871,303 1,501,603 1,974,328 2,456,583 2,686,592 3,009,684 3,238,104 3,398,856
B01-0010-116A 64,215 123,790 540,815 659,965 957,840 1,434,440 1,791,890 2,089,765 2,390,344
B01-0010-117A 7,024,640 17,554,640 20,674,640 26,524,640 33,934,640 40,564,640 44,854,640 47,974,640 57,730,994
B01-0010-118A 194,303 421,898 763,290 1,066,750 1,229,599 1,526,705 1,754,300 1,942,374 2,290,121
B01-0010-125A 56,703 264,953 369,078 785,578 1,364,619 1,727,468 2,043,020 2,298,567 3,030,619
B01-0010-126A 203,218 534,180 997,528 1,328,490 2,122,800 2,850,918 2,983,303 3,380,458 3,645,698
B01-0010-131A 724,640 1,264,640 1,804,640 2,704,640 5,055,759 5,590,994 6,678,936 7,394,171 8,469,405 B01-0010-132A 1,159,640 1,621,640 2,314,640 3,238,640 3,931,640 4,162,640 14,431,345 17,345,237 21,030,929
B01-0010-132B 206,008 474,498 608,743 810,110 944,355 1,279,968 1,749,825 2,152,560 2,219,849
num_iter=num_iter+1; i = 1
Yes No
6. i = eco_size?
7. ?
(num_iter>max_iter and/or num_fit_eval>max_fit_eval) Yes
Number of organisms (eco_size), initial ecosystem, termination criteria, num_iter=0, num_fit_eval=0, max_iter, max_fit_eval
計算所變更的生物體適存值;
num_fit_eval = num_fit_eval + 2
計算新生物體的適存值;
num_fit_eval = num_fit_eval + 1
計算新生物體的適存值;
num_fit_eval = num_fit_eval + 1 3.
4.
5.
計算相互向量關係(Mutual_Vector)和效益係數(BF)
Mutual_Vector = (Xi + Xj) / 2
BF1= random number either 1 or 2; BF2= random number either 1 or 2
變更生物體Xi與輔助生物體Xj Xi new=Xi + rand(-1,1) * (Xbest - Xj)
圖 6.3 SOS 演算法程序
步驟1. 生物系統初始化
設定生物體數量與邊界條件
本計畫將設定SOS 演算法中的生物體數量為 50 個,且每一個生物 體即代表一種維護策略組合。因此,本階段會以隨機的方式產生這 50 個生物體的維護策略組合,後續在疊代的過程中各生物體之間,會在 SOS 的共生行為中,互相影響維護策略的組合。
以二區工程處為例,二區工程處橋梁數量總共有 647 座,其生命 週期之規畫以20 年為例的話,其結果將會有 12940 個欄位(即 647 乘以 20 等於 12940),然後這 12940 的欄位會有 12940 的平方種組合(因本程 式假設維護或不維護是應用二進制之方法為0 與 1,因此為平方關係)。
因SOS 演算法最佳化搜尋的空間維度特性主要為連續數值,且因本課 題維護或不維護為二進制之問題,因此需要將連續數值轉換為二進制 (如: 連續數值 42 轉換二進制結果為 0011010000110010)其中 0 代表不 需維護、1 即代表需維護。
步驟2. 找出最優的生物體(Xbest)
此步驟將會在迭代過程中找出最好的適存值維護策略紀錄。
步驟3. 互利共生階段
舉例來說,互利共生是指兩種不同的生物,彼此互助互惠生存的 關係,像是蜜蜂與花,蜜蜂在花朵間飛舞採花蜜,這個活動對蜜蜂來 說可以獲得花蜜,對花來說因為蜜蜂採花蜜的行為而獲得授粉,在此 的SOS 階段就像是一種互惠關係。
在SOS 中,Xi 代表一個生物體在生態系統中的第 i 個成員,且 Xi 在每次的疊代過程中都會輪流轉換,另一個生物體Xj 是從生態系統中 隨機選擇出來和 Xi 互動的生物體。這兩種生物體彼此之間會互助互 惠,在生態系統中增進生存優勢。從生物體 Xi 和 Xj 的互助關係中會 計算出新的候選解Xinew 和 Xjnew 如式(6.3)式(6.4)。
... (6.3)
new Xj rand X Mutual Vector BF
Xj best ... (6.4)