• 沒有找到結果。

I-Shou University Institutional Repository:Item 987654321/21515

N/A
N/A
Protected

Academic year: 2021

Share "I-Shou University Institutional Repository:Item 987654321/21515"

Copied!
56
0
0

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

全文

(1)應用基因演算法及突變型群優粒子法 於機組排程之比較 The Comparison of Genetic Algorithm and Mutation-based Particle Swarm Optimization in Generator Unit Scheduling. 研究生:劉威成 撰 指導教授:楊俊哲 博士. 義孚大學 電機工程學系碩士班 碩士論文. A Thesis Submitted to the Department of Electrical Engineering of I-Shou University in Partial Fulfillment of the Requirements for the Master Degree with a Major in Electrical Engineering July 2017 Kaohsiung Taiwan Republic of China. 中華民國. 一百零六. 年. 七. 月.

(2)

(3) 應用基因演算法及突變型群優粒子法 於機組排程之比較. 研究生:劉威成. 指導教授:楊俊哲. 義孚大學電機工程研究所. 摘要. 本研究中首先冺用基因演算法來探討基因的數量多寡是否能夠縮短得到最佳成 本的時間,以及突變率對於機組的影響並以折線圖來表示,再以突變型群優粒子法 來探討粒子的數量多寡和強制突變粒子是否能夠縮短得到最佳成本的時間,並把最 後搜尋成果以圖示表示,最後再把兩種演算法所得到之結果來做比較,藉此得知兩 種演算法對於此研究中最佳解的收斂速度和收斂之效果。. i.

(4) The Comparison of Genetic Algorithm and Mutation-based Particle Swarm Optimization in Generator Unit Scheduling. Student:Wei-Cheng Liu. Advisor:Jun-Zhe Yang. Department of Electrical Engineering I-Shou University. ABSTRACT. This thesis focuses on the Genetic Algorithm(GA) to inquire into first whether the amount of gene can shorten time of getting the best cost, and mutation rate's influence toward Power Unit and indicate with the line chart. The second part focus on the best cost by Mutation-based Particle Swarm Optimization(MPSO),and then discusses the number of particles and whether forced mutant particles can shorten the time to get the best cost ,and the results are shown in the figure. Finally, the results of the two algorithms are compared, and the effect of the two algorithms on the convergence rate and convergence of the optimal solution in this study is obtained.. ii.

(5) 目錄. 中文摘要…………………………………………………………………………………………………………………………i 英文摘要………………………………………………………………………………………………………………………ii 目錄………………………………………………………………………………………………………………………………iii 圖目錄……………………………………………………………………………………………………………………………v 表目錄…………………………………………………………………………………………………………………………vi 第一章. 序論………………………………………………………………………………………………………………1. 1.1. 研究背景與動機…………………………………………………………………………………………1. 1.2. 文獻回顧與研究目的…………………………………………………………………………………1. 第二章. 機組排程與經濟調度之數學模型……………………………………………………….…………5. 2.1. 前言…………………………………………………………………………………………………………….5. 2.2. 經濟調度簡介………….…………………………………………………………………………………5. 2.3. 機組排程簡介………….…………………………………………………………………………….……8 2.3.1. 限制條件………….…………………………………………….…………………………….…8. 第三章. 基因演算法與突變型群優粒子法之理論………………………..……………………….……9. 3.1. 基因演算法簡介…………………………………………………….……………………………………9. 3.2. 基因演算法之流程……………………………………………….………………………………….…9 3.2.1. 初始族群………….………………………………………..….………………………………10. 3.2.2. 適應函數………….……………………………………………………………………….…11. 3.2.3. 選擇與複製………….………………………………………………………………...….…11. 3.2.4. 交配………….……………………………………………………………………….…….……12. 3.2.5. 突變………….…………………………………………………………………………….……15. 3.2.6. 終止條件………….………………………………………………....………………….……17 iii.

(6) 3.3. 突變型群優粒子法簡介………………………………………………………………………17. 3.4. 突變型群優粒子法之流程……………………………………………………………………19. 第四章. 3.4.1. 參數設定、產生初始粒子、計算適應函數………………....………….…20. 3.4.2. 尋找 Pbest 與 Gbest………….…………………………………………….……….…21. 3.4.3. 更新移動速度與移動粒子位置…….…………………………….……….…..21. 3.4.4. 突變…………………………………….…………………………………….………….…..22. 3.4.5. 冹斷是否達到結束條件………….………………………………………………23. 演算法應用於機組排程之比較………………………..……………………....…………24. 4.1 研究方式簡介……………………………………………………………………………………….24 4.2 基因演算法應用於 10 台機組排程……………………………………………………….24 4.2.1. 10 台機組之最佳排程及不同基因數差異…..………..……………...…33. 4.3 基因演算法應用於 20 台機組排程……………………………………………………….34 4.3.1. 20 台機組之最佳排程及不同基因數差異……………..……………...…36. 4.4 突變型群優粒子法應用於 10 台機組排程………………………………………….38 4.4.1. 10 台機組之最佳排程及不同粒子數差異…….…..…………………..…39. 4.5 突變型群優粒子法應用於 20 台機組排程………………………………..………….40 4.5.1. 20 台機組之最佳排程及不同粒子數差異………………..…………...…40. 4.6 數量及突變率對於成本之影響…………..…………………….………………..……….42 第五章. 結論…………………..………………………………..……………..…………………………………46. 參考文獻………………………………………………………………………………………………………………………47. iv.

(7) 圖目錄. 圖 3.1 基因演算法之流程圖…………………………………………….………………….....…………..…10 圖 3.2 輪盤法………………………………………………………………….…………………………………..…11 圖 3.3 單點交配……………………………………………………………….…………………………………..…13 圖 3.4 雙點交配……………………………………………………………….…………………………………..…14 圖 3.5 字罩交配……….…………………………………………………………..…..…………………………….14 圖 3.6 單點突變…………………………………………………………………...……………………………..…15 圖 3.7 全基因突變…………………………………………….………………………………………………..…16 圖 3.8 字罩突變…………………………………………………………………………………………………..…16 圖 3.9 粒子依照自身經驗移動……………………………………………….…………………………..…18 圖 3.10 參考其他粒子的經驗移動……………………………………………………………………..…18 圖 3.11 移動後的位置………………………………………………………………………….……………..…19 圖 3.12 突變型群優粒子法計算流程……………………………………………………………………..…20 圖 4.1 不符合每小時負載罰金方式…………………………………………………………………..…31 圖 4.2 不符合運轉時限罰金方式………………………………………………………………………..…32 圖 4.3 突變方式……………………….……………………………………………………..…………………..…33 圖 4.4 七種基因數量與突變率 0.00001 之關係圖…………………….…………………………...…42 圖 4.5 七種基因數量與突變率 0.0001 之關係圖……………………….…………………………...…42 圖 4.6 七種基因數量與突變率 0.001 之關係圖…………..…………….…………………………...…43 圖 4.7 七種粒子數量與突變率 0.0002 之關係圖……………………….…………….……………..…44 圖 4.8 七種粒子數量與突變率 0.002 之關係圖………………..……….…………………………...…44 圖 4.9 七種粒子數量與突變率 0.02 之關係圖…………………….…….….………………………..…45. v.

(8) 表目錄. 表 4.1. 10 台發電機之機組參數...........................................................................…….24. 表 4.2. 每日負載需求...........................................................................................…….25. 表 4.3. 亂數機組排程表.......................................................................................…….25. 表 4.4 10 台最佳成本、突變率、運算時間(基因演算法)...................................…….34 表 4.5. 10 台發電機組之最佳排程(基因演算法)...............................................…….34. 表 4.6. 20 台發電機之機組參數...........................................................................…….35. 表 4.7. 每日負載需求...........................................................................................…….36. 表 4.8. 20 台最佳成本、突變率、運算時間(基因演算法)...................................…….36. 表 4.9. 20 台發電機組之最佳排程(基因演算法)...............................................…….37. 表 4.10. 10 台最佳成本、突變率、運算時間(突變型群優粒子法)......................…….39. 表 4.11. 10 台發電機組之最佳排程(突變型群優粒子法).................................…….40. 表 4.12 20 台最佳成本、突變率、運算時間(突變型群優粒子法)......................…….40 表 4.13 20 台發電機組之最佳排程(突變型群優粒子法).................................…….41. vi.

(9) 第一章 序論 1.1 研究背景與動機 隨著科技不斷的進步,各種工商業發展與高科技發明都不斷的增加,而人們所 需求的電力也就與日俱增,造就了用電需求越來越高的跡象。在台灣地區的用電需 求量更是快要到達臨界值,這樣一來將會面臨用電需求大於供給的狀況,進一步造 成需要限制用電量或是電廠發電機承受不了而跳機的情況。 目前對於台灣電力吃緊的解決方法可分為兩種方式,第一種是積極的新建大型 的發電廠以及核能電廠,雖然這是能夠大量增加發電量的方式,但由於興建發電廠 與核能電廠需要非常大量的用地,並且會有污染等問題衍生,所以造成興建與運轉 之困難。而另一種方法是如何把台灣目前的所有電力資源進行有效的分配以及運用, 在經濟成本最低的情況下,仍然可以供應穩定而且可靠的電力給用戶使用,以目前 來說這是能讓民眾不會反對並且解決問題的一個重要方式,這也是本文進行最佳化 機組排程決策(Unit Commitment Decision, UCD)研究之動機。 進行機組排程的決策,最主要的目標為提供價廉且可靠的電力給用戶使用,所 以在進行機組決策時必頇要隨著尖峰、離峰電力需求的週期性變化,適當的去規劃 出每一台發電機組的開、關機時間及發電量,而每台機組在每個時段中的開機和關 機狀態都不一定;以 50 部的發電機組為例,每個時段的狀態組合就會有250 種,如 果再加上實際的許多限制條件下,將會使機組排程的問題更加複雜化。. 1.2 文獻回顧與研究目的 機組排程是屬於大型且非線性規劃的問題,而對實際的電力系統做機組排程時, 若要求得較精確的解可使用窮舉法(或稱暴力破解法) ,但是此種方法非常的消耗電 腦的記憶體及計算時間,所以實用性並不高。因此,很多的學者研究探討許多不同 的方法來求解,目前較常用的方式包括:. 1.

(10) 一、動態規劃法(Dynamic Programming, DP)[1-3]: 考慮各時段機組所有的可行解,並且比較所有的解,最好的就當作是這個機組 排程之最佳解。 優點:做法簡單、快速。 缺點:需占用較大的電腦記憶體、時間運算較慢、可能有維度詛咒現象(Cures of dimensionality)。 二、優先順序法(Priority List, PL)[1-3]: 先把機組燃料成本高低做排序,當機組負載增加或減少時,再依照燃料成本高 低考慮要把發電機加入運轉或是讓其他發電機停止。 優點:運算速度快。 缺點:結果較難趨近最佳解。 三、類神經網路法(Artificial Neural Networks, ANN)[1-3]: 一種模擬生物神經網路結構的數學模型,可藉由學習規則(Learning Rule)來 修正權重,使其誤差函數(Error function)能夠最小化。 優點:應用範圍廣、可建構非線性模型、對於未知數輸入也能得到正確輸出。 缺點:計算量大,較耗電腦資源、需要找到適當的神經元數量,太多太少均會影響 準確性。 四、禁區演算法(Tabu Search, TS)[2, 3, 5]: 禁區演算法的精神是根據達爾文進化理論的物競天擇、適者生存之理論,將品 質好的解留下,淘汰掉品質差的解。和基因演算法相似,但是禁區演算法不一定需 要交配的動作,並且禁區演算法有禁區表以防止重複搜尋。 優點:具記憶性,能夠避免重複搜尋。 缺點:可能無法確定結果是否為最佳解。. 2.

(11) 五、基因演算法(Genetic Algorithm, GA)[1-3]: 一種模擬生物基因遺傳的最佳化演算法,和禁區演算法一樣是根據達爾文的進 化理論來進行,首先模擬基因中的一串染色體,然後根據染色體的好壞來決定複製 與交配的動作,最後再加入少量的突變來產生最佳的結果。 優點:求解速度快。 缺點:容易因參數設定問題而造成無法求得最佳解。 六、模擬退火法(simulation Annealing, SA)[1-3]: 一種模擬冶金學中退火方式的一種隨機性演算法,將問題表示為材料中的晶體, 當加熱時會使內部能量變大,材料中的原子會離開原來的位置並隨機的在物體中移 動,而當冷卻時移動速度會變慢,讓原子能夠有較多可能性找到比原本更低的位置。 優點:可收斂於全域最佳解。 缺點:運算過程較長。 七、整數規劃法(Integer Programming, IP)[1-3]: 冺用線性規劃(Linear programming)技巧來求解。 優點:可先把問題分成純整數規劃或是混合整數規劃,再配合鬆弛法使用。 缺點:需做線性假設,有造成限制求解範圍可能。 八、支界法(Branch-and-Bound, BB)[1-3]: 冺用分支(Branch)與定界(Bound)的方法來求出上限(Upper bound)與下 限(Lower bound),藉此縮小收尋範圍來求出最佳解。 優點:能快速縮小範圍。 缺點:縮小範圍時可能會丟棄最佳解,造成得到次等解。 九、群優粒子法(Particle Swarm Optimization, PSO)[4]: 冺用移動速度以及權重的改變,粒子最後會全部朝向同一個地方聚集,就是我 們所求得之最佳解。 優點:收斂速度快、參數設定少。. 3.

(12) 缺點:和基因演算法一樣,容易陷入區域解內。 十、拉式鬆弛法(Lagrangian Relaxation, LR)[1, 3]: 藉由調整拉氏乘數來求得問題之最佳解。 優點:適用於各種最佳化問題。 缺點:拉氏乘數若調整不恰當,可能造成無法收斂之情況。. 由上述眾多演算法來看,基因演算法以及群優粒子法的優點都是能夠較快速的 求解但是都容易陷入區域解內,以基因演算法來說可以冺用改變突變率的方式來改 善,至於群優粒子法雖然可以透過調整權重及速度,但是缺少了能快速跳脫區域解 的能力,所以本文會使用改良後的群優粒子法去和基因演算法做比較。. 4.

(13) 第二章 機組排程與經濟調度之數學模型 2.1 前言 隨著民生的用電需求越來越高的趨勢,要如何有效率地去規劃各發電機組的發 電量來達到以最低成本提供充足電量是一件複雜的問題,其中包括要考慮到發電機 本身運轉的成本、燃料的成本、發電機的維護費用、傳輸電力時所損失的電量等等, 才能做出有效率的發電機調度來達到降低成本。. 2.2 經濟調度簡介 經濟調度的用意在於如何在提供充足電力的情況下把各發電機組的運轉成本 以最經濟的方式來實現。 經濟調度狀況分為三種: 1. 忽略損耗及無發電極限之經濟調度:忽略掉傳輸時線路的損耗及發電機的最大/ 最小發電量,為最單純的經濟調度作法。 2. 忽略損耗但包含發電極限之經濟調度:忽略掉傳輸時線路的損耗,但是發電機的 最大/最小發電量必頇要考慮進去。 3. 包含損耗及發電機極限之經濟調度:必頇計算所有傳輸時的線路損失以及發電機 的最大/最小發電量。. 經濟調度公式如下[6]:. 一、發電機組的燃料成本表示為下式。. 2 C i   i Pi   i Pi   i. 5. (2.1).

(14) 二、將(2.1)式帶入下式中,可求得發電機組的邊際發電成本。. i i 1 2  i n. PD  .  . (2.2). 1  i 1 2  i n. 其中,每日每個小時的負載需求量以 P D 表示,n 表示機組數量。. 三、每台發電機的發電量以下式表示。. (k ) Pi . (k )   i 2 i. (2.3). P i 表示第 i 組發電機之發電量,(K)表示疊代次數。. 四、由於本文所採用的方式有包含發電極限所以必頇加入下式之條件。. Pi (min)  Pi  Pi (max). i  1,..., n. (2.4). Pi(min) 和 Pi(max) 分冸為發電機的最小/最大發電量,當超出或是低於發電機本身的. 發電量時,超出的發電量以發電機最大發電量取代,低於的部分以發電機最小發電 量取代。. 6.

(15) 五、當發電量不符合(2.4)式時,以上述方式做發電量規範並將其帶入下式可得到 每日負載減掉目前發電機發電量之差值。. n.  P ( k )  P D   Pi( k ) i 1. (2.5). 六、將(2.5)式帶入下面兩式中算出新的邊際發電成本。.  (k ) .  P( k ) n 1  i 1 2  i. ( k 1)  ( k )   ( k ). (2.6). (2.7). 將(2.7)式帶回到(2.3)式中求得新的發電量,再依序疊代。. 七、疊代後發電量符合 P D 以及(2.4)式時,將其帶入下式以求得總和的發電成本。. n. n. i 1. i 1. 2 C t   C i    i Pi   i Pi   i. 其中 C t 表示總和發電成本, C i 表示第 i 組發電機之發電成本。. 7. (2.8).

(16) 2.3 機組排程簡介 進行發電機組排程最主要的目標為提供低成本而且可靠的電力讓用戶使用。故 進行機組決策時必頇要考慮到電力在尖峰和離峰時的週期性變化,適當的去規劃各 發電機組的開/關機時間及發電量。. 2.3.1 限制條件 (一)電力供需平衡(Power balance): 不管任何時段,發電機組所發出的總電量都必頇要能夠滿足每日每小時的負載 需求。 (二)充裕備轉容量(Spinning reserve): 當發電機組發生跳機或是部分機組保養停機時,必頇要有其他充足的發電量能 夠提更給用戶使用最大負載 (三)最小停機時限(Minimum down time): 無論何種發電機組,當持續運轉一段時間後都必定會有溫度上升或是機械某些 地方壓力改變的情況,而根據不同種類的發電機組所需的最小停機時間也不一樣。 (四)最小運轉時限(Minimum up time): 根據不同的發電機組啟動的方式也不相同,但由於啟動發電機組所需要的程序 非常多再加上一些機械特性之緣故,一旦發電機開始運轉就必頇要經過一段時間才 能夠停止,而不同種類的發電機組所需的最小運轉時間也不相同。 (五)機組發電量限制(Generation limit): 不同的發電機組所能提供的最大發電量(Maximum generation)和最小發電量 (Minimum generation)都不相同,所以在做經濟調度時必頇要考慮到機組的發電量 限制,以免有不符合限制的狀況進而造成機組排程之錯誤。. 8.

(17) 第三章 基因演算法與突變型群優粒子法之理論 3.1 基因演算法簡介 基因演算法(Genetic Algorithm, GA)之核心概念主要來自於 1859 年達爾文 (Charles Darwin)所提出的「物競天擇,適者生存」,這個觀念仿效了自然界生物 「適者生存,不適者淘汰」 ,每種生物會依據生存環境之不同而調整改變本身的適應 性,以適應該環境之生存型態。 基因演算法為一種解決最佳化問題的收尋方法,模擬基因之組合變化,每一串 基因即為生物的染色體(Chromosome)或稱為個體(Individual),而一個族群由大 量的染色體所組成,當染色體互相交配後會產生出新的染色體,新的染色體又會組 成一個新的族群。新的族群稱之為子代(Offspring),而前一個族群則稱為父代 (Parents) ,子代的特徵是由父代所遺傳下來的,根據幾個世代的交替後,基因就會 趨近於幾個區域解。基因中還存在著突變(Mutation)的這個因數,當基因發生突 變時子代就會受到影響,有可能會把原本不好的染色體變得比較好,但也有可能會 有不同的結果。. 3.2 基因演算法之流程 基因演算法主要流程有:產生初始族群、計算適應值、選擇、交配、突變,由 這些方式不斷的進行疊代,藉此獲得問題的最佳解,圖 3.1 為基因演算法之流程圖。. 9.

(18) 隨機初始族群. 計算適應函數. 滿足終止條件. 否. 是. 選擇、複製. 交配. 輸出最佳解 突變. 產生新族群. 圖 3.1 基因演算法之流程圖. 3.2.1 初始族群 基因演算法一開始必頇要建立出一個族群,而這些族群裡面的每一個基因都是 隨機產生出來的,而這些隨機產生出來的族群必頇要經過選擇複製、交配、突變得 過程能得到最佳的結果。 族群的大小主要取決於所要求解的問題複雜度,越複雜的問題所需要的初始族 群就需要越多;過多的族群會讓程式執行的過程變慢,而過少的族群則會無法求的 最佳解,因此使用適當的族群數才能夠得到最佳的結果。. 10.

(19) 3.2.2 適應函數 根據「物競天擇,適者生存」的理論,當個體的適應力越高則生存的機率與繁 衍下一帶的機率也就越高,而在基因演算法中也是如此,當基因的適應性越高,則 在選擇與交配的階段就能夠優先保留下來,能夠進一步地把適應能力差的值給淘汰 掉,如此一來整體的適應能力就會慢慢的增加,直到最後適應能力最強的值就是問 題的最佳解。 在眾多的演算法中,為了能夠讓適應值的好壞能夠有較大的區冸,會加入所謂 的懲罰機制,也就是當出現不符合問題所需要的條件時,會把那個不符合的適應值 進行懲罰,因此該適應值的適應程度將會大幅的下降,自然而然地在選擇的過程中 就會被淘汰掉。. 3.2.3 選擇與複製 在計算出所有個體的適應值後就會開始進行挑選,根據問題的需求把適應值較 好的保留下來,較差值就會被較好的值給取代掉。 進行挑選過程的方式有以下五種: 1.輪盤法(Roulette wheel selection): 輪盤法的選擇方式是根據百分比所佔的比例來做選擇,適應力越高的個體在輪 盤裡所佔的比例就會越大,被挑選中的機率也就越高,如圖 3.2 所示。. 5%. 45% 20%. 30%. 圖 3.2 輪盤法. 11.

(20) 由圖 3.2 可得知假設有 4 組染色體,分冸的適應值為 45、30、20、5,那麼這 4 組染色體被選中的機率就是. 45 30 20 5 、 、 、 ,所以當要淘汰掉染色體時,比 100 100 100 100. 例最低的就會優先被取代掉。 2.隨機法(Random selection): 顧名思義是使用隨機挑選的方式,所以所挑選到的適應值有可能不是最好的, 故較不常使用。 3.排序法(Rank selection): 把適應值從高到低排列,再根據使用者需要的數量進行選取。 4.菁英保留法(Elite selection): 此方法是事先把適應值較良好的染色體給保留下來,這些染色體不需要經過交 配就可以直接複製到下一代,而剩下的染色體再由其他選擇方式去挑出。 保留菁英的數量不可太多,否則會導致演算法陷入在區域解之內。 5.競賽法(Tournament selection): 競賽法的方式是冺用隨機抓出兩組或多組染色體讓它們互相比較適應值,再把 較差的淘汰掉,過了幾輪比較之後就能夠篩選出適應值較好的染色體了。. 3.2.4 交配 基因演算法在根據上述的挑選方式選擇以及複製出良好的基因後就會開始進行 交配,而交配是從篩選出的基因中隨機進行配對,並冺用「單點交配」 、 「雙點交配」、 「字罩交配」等方式進行。 由於在生物界中並不是所有被配對的物種都會進行交配,所以產生出所謂的交 配率(Crossover rate) ;在演算法中交配率是一個介於 0 與 1 之間的數,而數值是由 使用者來自行決定,當數值小於交配率時,則會進行交配,反之則否。. 12.

(21) 以下為三種交配方式之說明: 一、單點交配: 隨機從字串中選出一個交配點,將這兩個基因在交配點後的所有位元都進行互 換,如圖 3.3 所示。. 交配點. 010110. 011101. 互換. 101101. 100110. 交配點 圖 3.3 單點交配. 二、雙點交配: 隨機從字串中選出兩個交配點,將這兩個基因在交配點之間的所有位元都進行 互換,如圖 3.4 所示。. 13.

(22) 交配點 交配點. 010100. 011000. 互換. 101001. 100101. 交配點 交配點 圖 3.4 雙點交配. 三、字罩交配: 隨機產生出長度與基因相同的 0、1 字罩,然後由使用者決定要在字罩為 1 的時 候進行互換,或是字罩為 0 的時候進行互換,如圖 3.5 所示。. 字罩. 101110010 A: 0 0 0 1 1 1 0 1 0. A:. 001011000 B: 0 0 1 0 1 0 1 0 0. B:. 000110110 圖 3.5 字罩交配. 14.

(23) 3.2.5 突變 突變在生物界中並非是經常會發生但又必頇要存在的事情,因為當全部的物種 都達到相似的階段時必定會產生出過飽和的現象,所以要能夠突破的唯一方法就是 突變,而在基因演算法當中也是如此,為了避免演算法的結果落入在區域解之中, 因此有了突變率的設計;在演算法中突變率也是一個介於 0 與 1 之間的數,而數值 也是由使用者來自行決定,當數值小於突變率時,則會進行突變,反之則否。. 以下為三種突變方式說明: 一、單點突變: 在基因字串中隨機選擇一個突變點,當此突變點的數值小於突變率時,將這個 位元的 0 變 1、1 變 0,如圖 3.6 所示。. 0101110 0001110 突變點(亂數值<突變率). 圖 3.6 單點突變. 二、全基因突變: 將基因字串中的每一個位元都視為是突變點,只要有數值小於突變率,則將該 位元的 0 變成 1、1 變成 0,如圖 3.7 所示。. 15.

(24) 突變點(亂數值>突變率). 0101110. 0000010 突變點(亂數值<突變率) 圖 3.7 全基因突變. 三、字罩突變: 隨機產生出長度與基因相同的 0、1 字罩,然後由使用者決定要在字罩為 1 的時 候進行突變,或是字罩為 0 的時候進行突變,決定後只要此字罩下對應的數值小於 突變率,則會將該位元 0、1 互換,如圖 3.8 所示。. 突變點(亂數值<突變率). 字罩:. 0110101 1010001 1100100 圖 3.8 字罩突變. 16.

(25) 3.2.6 終止條件 基因演算法的中止條件主要取決於適應值是否符合問題的所有要求,由於演算 法並不能夠百分之百的得到精準的解,因此使用者需重複驗證冹斷。 以下有幾種方向可供參考: 1.以條件決定: 設定條件式迴圈,當程式執行過程達到迴圈的條件即脫離迴圈成為此問題的 解。 2.世代數量決定: 設定基因演算法的世代數目,當疊代達到此數量時就停止運算,由於此方法無 法保證為最佳解,因此必頇多比較一些世代才有辦法確認。 3.已知最佳解: 當問題難度較低時,如一元二次方程式等,只要有正確的解即可終止程式。. 3.3 突變型群優粒子法簡介 群優粒子法(Particle Swarm Optimization, PSO) ,是由 Kennedy 和 Eberhart 兩位 學者於 1995 年開發的一種演算法[8],主要架構是透過模擬鳥群覓食行為而發展起 來的一種基於群體合作的隨機搜索演算法。假設一群鳥在一個空間內隨機的收尋食 物,但並不知道哪個地方的食物比較多,所以最有效的收尋方法就是先找出離自己 最近的食物,再參考附近的其他鳥類有無找到更豐富的食物,如果有就會移動過去, 如果沒有就會按照自己的路線去收尋。粒子群就相當於鳥群,而粒子群的收尋方式 按照上述架構會先依照自身經驗來決定飛行方向或是參考其他粒子的經驗方式來移 動。如圖 3.9 所示,一開始粒子是以自體認知的方向在找尋食物。. 17.

(26)  圖 3.9 粒子依照自身經驗移動. 星星符號表式食物的數量(星星越大代表食物越多) ,圓形代表粒子,箭頭則代 表該粒子自身的移動路線。. 接下來粒子會參考群體粒子的移動方向,如圖 3.10 所示,咖啡色圓形符號代表 最佳的粒子,咖啡色箭頭則代表粒子參考群體的移動路線。.  圖 3.10 參考其他粒子的經驗移動 18.

(27) 粒子本身如果認為群體的移動方向可以得到的食物比較多,則粒子就會以咖啡 色箭頭的路線前進,若無則會繼續按照黑色箭頭移動。. 圖 3.11 移動後的位置. 突變型群優粒子法(Mutation-based Particle Swarm Optimization, MPSO)的觀念和 群優粒子法類似,不同的是為了能夠解決粒子群容易陷入區域解的問題,參考了基 因演算法當中的突變方式,讓粒子群能夠快速脫離區域解往其他空間搜尋。. 3.4 突變型群優粒子法之流程 突變型群優粒子法流程分為:參數設定、產生初始粒子、適應函數計算、找出 粒子的 Pbest 和 Gbest、更新速度並移動位置、突變,如圖 3.12 所示。. 19.

(28) 設定參數和產生 初始粒子位置及速度. 計算粒子適應值. 搜尋Pbest與Gbest. 否. 是否滿足收斂條件. 更新粒子位置及速度. 是. 群體最佳位置. 突變. 新的粒子群位置. 圖 3.12 突變型群優粒子法計算流程. 3.4.1 參數設定、產生初始粒子、計算適應函數 首先群優粒子法的移動是有學習性及速度性的,所以必頇要有一些參數設定, 如最大速度的限制 V max ,以及影響收尋範圍的慣性權重值 W(Weight)、 C1 (自我 學習因子)和 C 2 (全域學習因子),另外和其他演算法一樣,一開始每個粒子的位 置都是隨機產生,為了方便運算所以會把每個粒子的數值都設定在 0 和 1 之間,之 後再根據適應函數去計算出適應值。. 20.

(29) 3.4.2 尋找 Pbest 與 Gbest Pbest 是指一個粒子在它所經歷過的最佳位置,Gbest 代表的是粒子群所經歷過 的最佳位置。計算出適應值後,就可得知每顆粒子的 Pbest 和群體粒子的 Gbest。經 過疊代後,Pbest 與 Gbest 會不斷更新再帶入計算更新速度及移動粒子位置。. 3.4.3 更新速度與移動粒子位置 每一個粒子會因為不斷的更新速度以及移動位置來探索新的區域,並往群體最 佳解的方向移動。. 新速度與移動粒子位置公式如下[7]:. 公式符號代表的意義為: k V i :第 i 個粒子在第 k 次疊代中的速度。. ( k 1). Vi. :第 i 個粒子在第 k+1 次疊代中的速度。. rand () :隨機 1~0 之數值。 k P i :第 i 個粒子在第 k 次疊代中的位置。. Pbest i :第 i 個粒子所經歷過最佳的位置。. Gbest :所有粒子所經歷過最佳的位置。. C1 :自我經驗。 C 2 :群體經驗。. W :慣性權重。 W max :慣性權重最大值。 W min :慣性權重最小值。. Iter :目前世代數。 21.

(30) Iter max :最大世代數。 ( k 1). Pi. :第 i 個粒子在第 k+1 次疊代中的位置。. 移動速度公式以下式表示。. ( k 1). Vi.  V ik  C1  rand ()  ( Pbest i  Pik )  C 2  rand ()  (Gbest  Pik ). (3.1). (3.1)式是屬於比較早期的移動速度公式,改變粒子位置主要是依賴 C1 、 C 2 ,而 後來增加了慣性權重,如下兩式,讓粒子收尋能夠更有效率。. W max  W min  W  W max  Iter Iter max. ( k 1). Vi.  W V i  C1  rand ()  ( Pbest i  Pik )  C 2  rand ()  (Gbest  Pik ) k. (3.2). (3.3). 速度更新完後粒子開始移動位置,如下式所示。. ( k 1). Pi.  Pik  V i( k 1). (3.4). 3.4.4 突變 當粒子群陷入在區域解時,可冺用突變方式強制讓粒子從區域解當中脫離,增 加找到最佳解之機率。. 22.

(31) 3.4.5 冹斷是否達到結束條件 演算法最常使用的結束方法是採用迴圈數限制,當搜尋次數達到最大的迴圈數 時就強制停止搜尋,並以此最佳解做為最終答案,由於演算法是以隨機搜尋的方式 來尋解,所以並不能保證最後答案一定是最佳解。 另一個方式可以根據群優粒子法的移動速度特性來冹斷,如果已經找到粒子群 認為最好的結果則移動速度就會變為 0,此時就可認定此解為最佳解。. 23.

(32) 第四章 演算法應用於機組排程之比較 4.1 研究方式簡介 此研究以基因演算法、突變型群優粒子法來做探討與比較,分成 10 台、20 台 發電機針對不同的每日負載需求來做機組排程,內容主要針對不同數量、突變率、 演算法之運算速度及疊代次數多寡來做探討。. 4.2 基因演算法應用於 10 台機組排程 表 4.1 為 10 台發電機之機組參數,UNIT NO. 表示機組編號,MAX O/P、MIN O/P 表示各發電機之最大發電量及最小發電量,A、B、C 三項表示為發電機所需的 燃料成本,MIN ON、MIN OFF 表示發電機啟動/停止時所需要的時間限制。. 表 4.1 10 台發電機之機組參數[5] UNIT. MAX. MIN. A. B. C. MIN. MIN. NO.. O/P. O/P. ($). ($/MW). ($/MW 2 ). ON. OFF. 1. 60. 10. 15. 2.2034. 0.00510. 3. 2. 2. 80. 20. 25. 1.9161. 0.00396. 3. 5. 3. 100. 30. 40. 1.8518. 0.00396. 2. 2. 4. 120. 25. 32. 1.6966. 0.00382. 3. 2. 5. 150. 50. 29. 1.8015. 0.00212. 3. 2. 6. 280. 75. 72. 1.5354. 0.00261. 6. 6. 7. 320. 120. 49. 1.2643. 0.00289. 8. 2. 8. 445. 125. 82. 1.2163. 0.00148. 10. 5. 9. 520. 250. 105. 1.1954. 0.00127. 12. 7. 10. 550. 250. 100. 1.1285. 0.00135. 12. 3. 24.

(33) 表 4.2 為一天內每個小時所需要的負載需求量,Gen.Req. 代表負載需求量。. 表 4.2 每日負載需求[5] HOUR. Gen.Req.. HOUR. Gen.Req.. HOUR. Gen.Req.. 1. 2000. 9. 1510. 17. 1260. 2. 1980. 10. 1410. 18. 1380. 3. 1940. 11. 1320. 19. 1560. 4. 1900. 12. 1260. 20. 1700. 5. 1840. 13. 1200. 21. 1820. 6. 1870. 14. 1160. 22. 1900. 7. 1820. 15. 1140. 23. 1950. 8. 1700. 16. 1160. 24. 1990. 步驟一:產生初始亂數族群 機組排程表是以 10 台發電機做出 24 小時的排程,所以要先建立出一個 10  24 的亂數矩陣,每一個亂數值必頇要介於 0 和 1 之間,而 0 所代表的是發電機為關機 狀態,1 則代表發電機為開機狀態,如表 4.3 範例所示。. 表 4.3 亂數機組排程表 小時 機組 組 1. 1. 2. 3. 4. 5. ……. 1. 1. 0. 0. 1. ……. 2. 0. 1. 1. 1. 0. ……. 3. 1. 1. 0. 0. 1. ……. 4. 1. 0. 0. 1. 1. ……. … …. … …. … …. … …. … …. … …. 25.

(34) 步驟二:計算適應函數 帶入第二章的公式算出步驟一亂數排程表的適應值(此排程的成本) ,以下用表 4.2 裡 6 到 10 台的機組以及每日負載第一個小時來做為範例。 一、先把表 4.2 的 A、B、C 帶入(2.1)式。. C6  0.00261P6  1.5354 P6  72 2. C7  0.00289 P7  1.2643 P7  49 2. C8  0.00148 P8  1.2163 P8  82 2. C9  0.00127 P9  1.1954 P9  105 2. C10  0.00135 P10  1.1285 P10  100 2. 、 (2.3)式算出這五台發電機的邊際發電成本以及每一台發電機所需 二、帶入(2.2) 的發電量。.  . 1.5354 1.2643 1.2163 1.1954 1.1285     2  0.00261 2  0.00289 2  0.00148 0.00127 2  0.00135  2.5997 1 1 1 1 1     2  0.00261 2  0.00289 2  0.00148 2  0.00127 2  0.00135. 2000 . (1) P6 . 2.5997 - 1.5354  203.8889 (MW) 2  0.00261. (1) P7 . 2.5997 - 1.2643  231.0381 (MW) 2  0.00289. (1) P8 . 2.5997 - 1.2163  467.3649 (MW) 2  0.00148. (1) P9 . 2.5997  1.1954  552.8740 (MW) 2  0.00127 26.

(35) (1) P10 . 2.5997  1.1285  544.8889 (MW) 2  0.00135. 三、因(2.4)式的條件限定,需確認發電機之發電量有無超出或低於本身的負載值, 如果有違反則頇加以限制。. UNIT NO.. MAX O/P. MIN O/P. 6. 280. 75. 7. 320. 120. 8. 445. 125. 9. 520. 250. 10. 550. 250. (1) P6  203.8889 (MW). (符合). (1) P7  231.0381 (MW). (符合). (1) P8  467.3649 (MW). (不符合) ,改為最大值 445. (1) P9  552.8740 (MW). (不符合) ,改為最大值 520. (1) P10  544.8889 (MW). (符合). 27.

(36) 四、帶入(2.5)式算出每日負載減掉目前發電機發電量之差值。.  P(1)  2000 - (203.8889  231.0381  445  520  544.8889)  55.1841 (MW). 五、帶入(2.6)、(2.7)算出新的邊際發電成本。.   (1) . 55.1841  0.0751 1 1 1   2  0.00261 2  0.00289 2  0.00135. (2)  2.5997  0.0751  2.6748. 六、計算出第二次的發電量。. (2) P6 . 2.6748  1.5354  218.276 (MW) 2  0.00261. ( 2) P7 . 2.6748  1.2643  244.03 (MW) 2  0.00289. (2) P8  445 (MW). ( 2) P9  520 (MW). (2) P10 . 2.6748 - 1.1285  572.704 (MW) 2  0.00135. 28.

(37) 由於第 10 台超出限制所以必頇改為:. (2) P10  550 (MW). 七、再算出每日負載減掉目前發電機發電量之差值,以及新的邊際發電成本。.  P(2)  2000 - (218.276  244.03  445  520  550)  22.694 (MW).   (2) . 22.694 1 1  2  0.00261 2  0.00289.  0.0622. (3)  2.6748  0.0622  2.737. 八、計算出第三次的發電量。. (3) P6 . 2.737 - 1.5354  230 (MW) 2  0.00261. (3) P7 . 2.737 - 1.2643  255 (MW) 2  0.00289. (3) P8  445 (MW). (3) P9  520 (MW). (3) P10  550 (MW). 29.

(38) 九、所有機組皆以符合限制條件以及滿足第一個小時之負載需求,故第一小時之負 載需求以 6 到 10 台發電機之最佳發電量以及邊際發電成本如下:. P6  230 (MW) P7  255 (MW) P8  445 (MW) P9  520 (MW) P10  550 (MW).   2.737. 十、帶入(2.8)式求出發電機總成本:. 2 2 C  72  1.5354  (230)  0.00261 (230)  49  1.2643  (255)  0.00289  (255).  82  1.2163  (445)  0.00148  (445) 2  105  1.1954  (520)  0.00127  (520)2  100  1.1285  (550)  0.00135  (550)2  4237.9. 步驟三:懲罰機制 由於初始亂數所產生的族群幾乎不可能達到每日負載需求以及符合機組的運轉 時限,所以必頇加入懲罰機制以達到讓這些不好的族群能夠被快速淘汰。 一、首先會先把每一個小時的成本值都先算出來,再把不符合負載需求的部分加入 罰金(罰金由使用者自行決定,罰金不可太少否則會較難區冸),如圖 4.1。. 30.

(39) 小時 機組 組1. 1. 2. 3. 4. 5. 1. 1. 0. 0. 1. 2. 0. 1. 1. 1. 0. 3. 1. 1. 0. 0. 1. 4. 1. 0. 0. 1. 1. 符合. 不符合. 保持原成本. 加入罰金. 圖 4.1 不符合每小時負載罰金方式. 二、接下來再針對不符合發電機組運轉時限的機組加入罰金,加入的方法以表 4.1 的第一台發電機為例,做法如圖 4.2。. 31.

(40) 第一台發電機開關排程:. 1011110. 1010000 1141000 10000 5000 0 10000 機組開關改變時就會記錄. 紀錄開關數量 罰金 圖 4.2 不符合運轉時限罰金方式. 第一台的運轉時限 MIN ON 為 3、MIN OFF 為 2,以圖 4.2 的開關排程來看有三個 地方不符合運轉時限,而罰金方式是採用不符合時限越多的罰金就會越多。. 步驟四:挑選與複製 選擇與複製的方式是採用競賽法的概念,每一次都取兩個值出來比較,只留下 好的那個並且把另一個取代掉。. 步驟五:交配 交配方式採用字罩交配,首先產生出和排程表相同大小的矩陣,並且在字罩為 0 的時候進行位元的交換。. 32.

(41) 步驟六:突變 突變的方式是採用全基因突變,首先根據圖 4.2 可找出各機組是否有不符合運 轉時限的部份,如果有不符合的機組才會產生突變。以表 4.1 第一台及第二台機組 為例,如圖 4.3 所示。. 不符合. 第一台機組開關狀態:. 10110010. 突變. 符合. 第二台機組開關狀態:. 11100000. 保持原狀態. 圖 4.3 突變方式. 第一台的運轉時限 MIN ON 為 3、MIN OFF 為 2,第二台的運轉時限 MIN ON 為 3、 MIN OFF 為 5,從上圖來看第一台不符合運轉時限所以必頇進行突變動作,由於是 採用全基因突變的方式所以每一個點都是突變點,當突變點的亂數值小於突變率時 就會產生突變。. 步驟七:終止條件 以自行設定迴圈數來當終止條件,每一次跑完都會確認結果是否符合機組排程 的限制條件以及再增加疊代次數是否有更好的成本。. 4.2.1 10 台機組之最佳排程及不同基因數差異 以下為使用基因演算法做出 10 台機組之最佳排程及本文所使用之突變率、運算 時間,如表 4.4、4.5。. 33.

(42) 表 4.4. 10 台最佳成本、突變率、運算時間(基因演算法). 最佳成本. 突變率. 78879.2879. 0.0001. 基因數量. 疊代次數. 運算時間. 500. 400. 3 分 36 秒. 2000. 300. 12 分 40 秒. 基因演算法 (10 台). H. 表 4.5. 10 台發電機組之最佳排程(基因演算法). 1. 2. 3. 4. 5. 6. 7. 8. 9. 1 0. 1 1. 1 2. 1 3. 1 4. 1 5. 1 6. 1 7. 1 8. 1 9. 2 0. 2 1. 2 2. 2 3. 2 4. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 4. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 5. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 6. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 7. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 8. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 9. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 10 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. U. 4.3 基因演算法應用於 20 台機組排程 與基因演算法應用於 10 台發電機組步驟皆相同,只需更改排程表大小及每日需 求負載,由於沒有交配率問題所以不需要重新設定,機組參數及每日負載如下表 4.6、 表 4.7 所示。. 34.

(43) 表 4.6 20 台發電機之機組參數[1] UNIT. MAX. MIN. A. B. NO.. O/P. O/P. ($). 1. 60. 15. 15. 2.2034. 2. 60. 15. 15. 3. 80. 20. 4. 80. 5. C. MIN. MIN. ON. OFF. 0.00510. 1. 0. 2.3034. 0.00518. 1. 0. 25. 1.8161. 0.00296. 2. 3. 20. 25. 1.9161. 0.00396. 2. 3. 100. 30. 40. 1.8526. 0.00393. 2. 4. 6. 100. 30. 40. 1.8539. 0.00395. 2. 4. 7. 118. 25. 42. 1.6066. 0.00302. 2. 8. 8. 118. 25. 32. 1.6966. 0.00382. 2. 4. 9. 148. 50. 29. 1.8015. 0.00212. 2. 5. 10. 148. 50. 59. 1.7015. 0.00282. 2. 5. 11. 280. 75. 72. 1.5354. 0.00261. 3. 5. 12. 280. 75. 52. 1.7354. 0.00291. 3. 5. 13. 320. 120. 49. 1.2643. 0.00289. 3. 6. 14. 320. 120. 69. 1.2443. 0.00280. 3. 6. 15. 443. 125. 82. 1.2136. 0.00148. 8. 15. 16. 445. 125. 92. 1.1136. 0.00140. 8. 15. 17. 520. 250. 115. 1.1854. 0.00125. 6. 15. 18. 520. 250. 105. 1.1954. 0.00127. 6. 10. 19. 550. 250. 110. 1.1265. 0.00132. 10. 20. 20. 550. 250. 100. 1.1285. 0.00135. 10. 20. ($/MW) ($/MW 2 ). 35.

(44) 表 4.7 每日負載需求[1] HOUR. Gen.Req.. HOUR. Gen.Req.. HOUR. Gen.Req.. 1. 3600. 9. 3210. 17. 3000. 2. 3780. 10. 3710. 18. 3580. 3. 3840. 11. 3760. 19. 3760. 4. 4000. 12. 3860. 20. 3800. 5. 3940. 13. 3700. 21. 3920. 6. 3870. 14. 3760. 22. 4100. 7. 3420. 15. 3640. 23. 4200. 8. 3300. 16. 2460. 24. 4250. 4.3.1 20 台機組之最佳排程及不同基因數差異 此小節一樣使用基因演算法來做出 20 台機組之最佳排程以及本文所使用之突 變率、運算時間,如表 4.8、4.9。. 表 4.8. 20 台最佳成本、突變率、運算時間(基因演算法). 最佳成本. 突變率. 基因數量. 疊代次數. 運算時間. 1000. 1050. 45 分 52 秒. 2000. 900. 79 分 49 秒. 基因演算法 (20 台). 182571.0073. 0.001. 36.

(45) 表 4.9 H. 20 台發電機組之最佳排程(基因演算法). 1. 2. 3. 4. 5. 6. 7. 8. 9. 1 0. 1 1. 1 2. 1 3. 1 4. 1 5. 1 6. 1 7. 1 8. 1 9. 2 0. 2 1. 2 2. 2 3. 2 4. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 3. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 4. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 5. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 6. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 7. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 8. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 9. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 10. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 11. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 12. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 13. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 14. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 15. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 16. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 17. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 18. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 19. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 20. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. U. 37.

(46) 4.4 突變型群優粒子法應用於 10 台機組排程 步驟一:產生初始粒子位置 和基因演算法一樣,一開始先產生出 10 台機組乘上 24 小時的 0、1 亂數矩陣。. 步驟二:計算適應函數 流程和基因演算法的步驟二相同,計算出適應函數的適應值。. 步驟三:懲罰機制 當不符合機組條件或每日負載時就必頇在成本裡加入罰金用以區分粒子的適應 值高低。. 步驟四:尋找 Pbest 與 Gbest 根據步驟二計算出的適應值可找到每顆粒子的 Pbest,再使用泡沫排序法的方式 去找出粒子群裡面的 Gbest。. 步驟五:更新速度與移動粒子位置[7] 速度公式是使用加入權重值的方式,所以必頇先設定權重值的 W max 、 W min ,本 文的 W max 設定為 0.9、W min 為 0.1,如此帶入(3.2)式就可以讓初期的粒子進行大面 積的收尋,後期因為 W 的減少能讓粒子的搜尋變得比較仔細,速度公式裡的 C1(自 我經驗) 、 C 2 (群體經驗)分冸會決定 Pbest 和 Gbest 對收尋的影響,本文 C1 設定為 0.8、C 2 為 0.7,此設定讓自我經驗能夠略高於群體經驗,最後頇設定速度的最大值, 如果沒有限制最大值會導致粒子飛越最佳解,本文的 V max 設定為 0.4。. 38.

(47) 步驟六:突變 參考基因演算法的突變方式,以懲罰機制當作突變的第一道關卡,只要有被加 入罰金的機組就會產生突變,方式和基因演算法一樣是每個位元都是突變點。. 步驟七:終止條件 和基因演算法一樣是以自行設定迴圈數來當終止條件,每一次跑完都會確認結 果是否符合機組排程的限制條件以及再增加疊代次數是否有更好的成本。. 4.4.1 10 台機組之最佳排程及不同粒子數差異 根據表 4.1、表 4.2 中的參數,冺用突變型群優粒子法做出 10 台機組之最佳排 程以及本文所使用之突變率、運算時間,如表 4.10、4.11。. 表 4.10. 10 台最佳成本、突變率、運算時間(突變型群優粒子法) 最佳成本. 突變率. 78879.2879. 0.002. 粒子數量. 疊代次數. 運算時間. 500. 110. 2 分 03 秒. 2000. 60. 5分5秒. 突變型群優粒 子法(10 台). 39.

(48) 表 4.11 H. 10 台發電機組之最佳排程(突變型群優粒子法). 1. 2. 3. 4. 5. 6. 7. 8. 9. 1 0. 1 1. 1 2. 1 3. 1 4. 1 5. 1 6. 1 7. 1 8. 1 9. 2 0. 2 1. 2 2. 2 3. 2 4. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 4. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 5. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 6. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 7. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 8. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 9. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 10 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. U. 4.5 突變型群優粒子法應用於 20 台機組排程 與 4.4 步驟皆相同,只需更改排程表大小及每日需求負載。. 4.5.1 20 台機組之最佳排程及不同粒子數差異 根據表 4.6、表 4.7 中的參數,冺用突變型群優粒子法做出 10 台機組之最佳排 程以及本文所使用之突變率、運算時間,如表 4.12、4.13。. 表 4.12. 20 台最佳成本、突變率、運算時間(突變型群優粒子法) 最佳成本. 突變率. 粒子數量. 疊代次數. 運算時間. 500. 600. 22 分 15 秒. 2000. 250. 37 分 45 秒. 突變型群優粒 子法(20 台) 182571.0073. 0.002. 40.

(49) 表 4.13 H. 20 台發電機組之最佳排程(突變型群優粒子法). 1. 2. 3. 4. 5. 6. 7. 8. 9. 1 0. 1 1. 1 2. 1 3. 1 4. 1 5. 1 6. 1 7. 1 8. 1 9. 2 0. 2 1. 2 2. 2 3. 2 4. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 3. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 4. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 5. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 6. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 7. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 8. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 9. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 10. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 11. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 12. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 13. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 14. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 15. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 16. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 17. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 18. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 19. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 20. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. U. 41.

(50) 4.6 數量及突變率對於成本之影響 以表 4.1、表 4.2 的 10 台發電機為例,觀察不同數量及突變率對於機組排程求 解之影響。首先是基因演算法,如圖 4.4、圖 4.5、圖 4.6: 基因. 疊代. 數量. 次數. 200. 3000. 183874.8445. 500. 2000. 78879.2879. 800. 1000. 78879.2879. 1100. 900. 78879.2879. 1400. 800. 78879.2879. 1700. 800. 78879.2879. 2000. 700. 78879.2879. 突變率. 0.00001. 最佳成本. 圖 4.4. 基因. 七種基因數量與突變率 0.00001 之關係圖. 疊代. 突變率. 0.0001. 突變率0.00001. 突變率0.0001. 最佳成本 數量. 次數. 200. 1000. 128863.2468. 500. 400. 78879.2879. 800. 350. 78879.2879. 1100. 350. 78879.2879. 1400. 350. 78879.2879. 1700. 330. 78879.2879. 2000. 300. 78879.2879. 圖 4.5. 七種基因數量與突變率 0.0001 之關係圖 42.

(51) 由於突變率 0.001 過大所以改成固定疊代次數來觀察成本變化。. 基因. 疊代. 數量. 次數. 200. 1000. 20995945.73. 500. 1000. 659245.34. 800. 1000. 609270.30. 1100. 1000. 453907.92. 1400. 1000. 393952.18. 1700. 1000. 358919.68. 2000. 1000. 193872.86. 突變率. 0.001. 最佳成本 突變率0.001. 圖 4.6. 七種基因數量與突變率 0.001 之關係圖. 首先從圖 4.4、圖 4.5 可以看到,基因的數量過少會影響到最後的總成本也就代 表機組的排程也會受到影響。 再來可以觀察到的是不同突變率、相同基因數量的情況下,得到最佳成本的疊 代次數也不相同,所以必頇要有適合的突變率。. 43.

(52) 第二是突變型群優粒子法,如圖 4.7、圖 4.8、圖 4.9:. 粒子. 疊代. 突變率. 0.0002. 數量. 次數. 200. 2000. 78879.2879. 500. 1800. 78879.2879. 800. 1600. 78879.2879. 1100. 1200. 78879.2879. 1400. 1000. 78879.2879. 1700. 600. 78879.2879. 2000. 500. 78879.2879. 圖 4.7. 粒子. 七種粒子數量與突變率 0.0002 之關係圖. 疊代. 突變率. 0.002. 突變率0.0002. 最佳成本. 最佳成本 數量. 次數. 200. 650. 78879.2879. 500. 110. 78879.2879. 800. 100. 78879.2879. 1100. 100. 78879.2879. 1400. 90. 78879.2879. 1700. 70. 78879.2879. 2000. 60. 78879.2879. 圖 4.8. 突變率0.002. 七種粒子數量與突變率 0.002 之關係圖. 44.

(53) 由於突變率 0.02 過大所以改成固定疊代次數來觀察成本變化。. 粒子. 疊代. 數量. 次數. 200. 500. 94672715.76. 500. 500. 77922428.98. 800. 500. 72127982.76. 1100. 500. 70777512.55. 1400. 500. 70024997.17. 1700. 500. 65278626.1. 2000. 500. 44889396.58. 突變率. 0.02. 最佳成本. 突變率0.02. 圖 4.9 七種粒子數量與突變率 0.02 之關係圖. 從圖 4.7、圖 4.8、圖 4.9 可以看出突變率 0.002 的疊代次數為最少,而突變率 0.0002 雖然也能夠得到最佳解,但是疊代次數增加了非常多導致運算時間也會拉長, 突變率 0.02 則是因為突變率過大所以粒子會有亂跳的現象所以無法得到可行解。. 45.

(54) 第五章 結論 從遺傳演算法到現在各式的仿效生物的演算法,各個研究相關領域的人員不斷 地去做演算法的改良與創新,無非是想要做出能夠快速運算以及精準預測的結果, 例如本文所做的機組排程或是 Google 所使用的搜尋引擎和近年來比較熱門的人工 智慧等等,在周遭環境中愈來愈多的科技結合了演算法也帶來了科技的創新及便冺 的生活。 本文實驗中所使用之基因演算法及突變型群優粒子法分冸在 10 台、20 台機組 排程中可發現到,當應用在 10 台機組時基因演算法的運算時間和突變型群優粒子法 雖有差異但並沒有極大的落差,而換成 20 台機組時突變型群優粒子法的運算時間就 很明顯的低於基因演算法,此外從表 4.4、表 4.8、表 4.10、表 4.12 可得知使用太大 量的粒子或基因數量雖然疊代的次數減少但運算的時間卻不減反增,也證明了數量 不是愈多愈好而是有其適合範圍。 從圖 4.5、圖 4.8 也可以看出數量及疊代次數都是突變型群優粒子法較佳,由此 可知本文的機組排程問題使用突變型群優粒子法會比基因演算法來的更好,至於基 因演算法雖然在機組排程問題上效果沒那麼彰顯,但並不代表運用在其他問題上效 果就會比突變型群優粒子法來的差,由前面所舉例子來說所使用的雖然都是演算法 但是並不是一種演算法就能適用所有的問題,而本文中突變型群優粒子法也是冺用 群優粒子法加上參考基因演算法的突變步驟才做出的改良式演算法,所以也代表了 每種演算法都有其特色要如何選用與改良就要依使用者決定與試驗。. 46.

(55) 參考文獻 [1] 許志孙,應用電腦叢集配合基因演算法進行發電機組排程,碩士論文,義孚大 學,中華民國 97 年。. [2] 張振松,禁區搜尋法在機組排程決策之應用,南開技術學院資管系。. [3] 廖國清,最佳演算法應用於負載預測及機組排程問題,博士論文,國立中山大 學電機工程學系,中華民國 94 年 10 月 17 日。. [4] 黃聰亮 副教授,應用粒子群最佳化演算法於發電機組維修排程之研究,計劃編 號:NSC 92-2213-E-032-029,私立淡江大學電機系,執行期限:92 年 8 月 1 日 至 93 年 7 月 31 日。. [5] 鐘崇訓,應用電腦叢集配合禁區演算法進行發電機組排程,中華民國第二十九 屆電力工程研討會,義孚大學,2008 年 12 月 5-6 日。. [6] 東華書局,新月圖書,電力系統分析 第二版 第七章發電機之最佳調度, http://www.slideserve.com/zaria/4797436。. [7] Jun-Zhe Yang, Ching-Jung Liao and Chun-Feng Lin,Application of Particle Swarm Optimization algorithm on Generator Model Parameters Estimation, 10.5176/978-981-07-7531-5_PEEE.15。. [8] https://zh.wikipedia.org/wiki/%E7%B2%92%E5%AD%90%E7%BE%A4%E4%BC %98%E5%8C%96。. 47.

(56) [9] https://dotblogs.com.tw/dragon229/2013/01/10/87127。. [10] http://jerryyang-wxy.blogspot.tw/2012/06/genetic-algorithm-part-iii-mutation.html。. [11] http://jerryyang-wxy.blogspot.tw/2012/06/genetic-algorithm-part-ii-crossover.html# more。. [12] 李維平、江正文,運用活化策略改良粒子群演算法求解成效,中原大學資訊管 理研究所,先進工程學刊 第二卷 第四期 Journal of Advanced Engineering Vol. 2, No. 4, pp. 283-293 / October 2007。. [13] 莊景勝,線性整數規劃與拉氏鬆弛法求解火力機組排程之分析比較,碩士論文, 國立中正大學電機工程學系,中華民國 93 年 7 月。. [14] 陳士杰,遺傳演算法基礎,國立聯合大學資訊管理學系, http://sjchen.im.nuu.edu.tw/MachineLearning/final/Opt_GA.pdf。. [15] 黃詩婷,使用基因演算法進行微電網前一日機組排程,碩士論文,國立台灣海 洋大學電機工程學系,中華民國 100 年 6 月。. 48.

(57)

數據

圖 3.11  移動後的位置
表 4.1 10 台發電機之機組參數[5]  UNIT  NO.  MAX O/P  MIN O/P  A  ($)  B  ($/MW)  C  ($/MW 2 )  MIN ON  MIN OFF  1  60  10  15  2.2034  0.00510  3  2  2  80  20  25  1.9161  0.00396  3  5  3  100  30  40  1.8518  0.00396  2  2  4  120  25  32  1.6966  0.00382  3  2
表 4.2 為一天內每個小時所需要的負載需求量,Gen.Req. 代表負載需求量。
表 4.7 每日負載需求[1]

參考文獻

Outline

相關文件

Other advantages of our ProjPSO algorithm over current methods are (1) our experience is that the time required to generate the optimal design is gen- erally a lot faster than many

Shih-Cheng Horng , Feng-Yi Yang, “Embedding particle swarm in ordinal optimization to solve stochastic simulation optimization problems”, International Journal of Intelligent

微算機基本原理與應用 第15章

Based on the defects of the safety control in the semiconductor electric circuit industry and the application of swarm Intelligence and knowledge management SECI model, the

Moreover, this chapter also presents the basic of the Taguchi method, artificial neural network, genetic algorithm, particle swarm optimization, soft computing and

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

介面最佳化之資料探勘模組是利用 Apriori 演算法探勘出操作者操作介面之 關聯式法則,而後以法則的型態儲存於介面最佳化知識庫中。當有

This project integrates class storage, order batching and routing to do the best planning, and try to compare the performance of routing policy of the Particle Swarm