• 沒有找到結果。

第三章 分群與最佳化演算法

3.2 基因演算法

3-1(f). 再次分群直到收斂為止

尋找最佳解中隨機選取全域的最佳解。基因演算法在各方面都有不錯的效能,因 此本研究選擇使用此方法進行最佳化配置。

3.2.1 基因演算法原理與操作

在本小節簡單介紹基因演算法原理與操作:

1. 染色體與參數編碼:基因演算法在最佳化的過程中必須把所要調整之解空間 參數定義並編碼,而編碼後即形成一組染色體,每一個 0 或 1 被稱為基因 (Gene),每一組解稱為染色體,編碼是實際上的參數與染色體間對應的橋樑。

2. 選擇機制:在基因演算法中,選擇是一個很重要的機制,這個步驟主要找出最 佳解,通常選擇這個動作是把產生下一個子代(child)的母代 (parents)所選取出 來再進行再生(Reproduction)程序。在此介紹三種常被使用的選擇策略:

(1) 群體毀滅(Population decimation):每個個體會依據其適應參數 (fitness)來 排列好壞,設定一個最小的適當數值,小於此值的個體即會被移除,剩下的 群體繼續產生下一代直到結束;此種方法的缺點是某個體被移除其特性就會 失去,若特性被消除,只能靠突變(Mutation)來再度產生此特性。

(2) 比例選擇(Proportionate selection):此種方法為最普遍用於基因演算法的 選擇機制,個體被選擇的機率是依照式所示:

(3.7) 其中 Pselection為被選擇到的機率、Pi代表是第 i 個母體的適合參數,因此個 體被選到的機率是依照其相對的適應參數比例,此種方法中雖然適應參數最 小其選上機率也最小,但依然有選上之機率,故可以保存其特性。

(3) 競爭選取法(Tournament selection):此選擇法效率相高,在競爭選取法中,

從族群中隨機選取 N 個個體而形成次族群(sub-population),這些個體會相 互競爭,其中擁有最高適應參數的個體代表此群,沒被選上之個體再次進行 隨機選取及競爭,此種選取法於統計上有較快之收斂性且速度較快。

i selection

i

P P

= P å

3. 基因演算法之運算子(Operator):當母代要產生子代時須經由交配(Crossover) 與突變(Mutation)兩種方法,設定基因演算法時須先指定交配及突變的機率。

在此將介紹此兩種運算的法則:

(1) 交配(Crossover):交配是一雙親(parents)來產生一對子代個體的動作,而 交配的作用是要重新排列染色體基因,並獲得更佳的基因組合進而生成 更好的個體。一般而言交配其用途為尋找更新更合適解的步驟,本研究 交配率設定為0.8。

(2) 突變(Mutation):突變為某個母體染色體其中隨機讓內部基因改變其值,

考慮之前並未探索過之解,得以跳脫該區域之最佳解,確保獲得全域之 最佳值。一般而言突變機率並不會設的太大,建議的大小為0.01-0.1,本 研究設定之突變率為0.1。

3.2.2 適應函數

適應函數(fitness function)主要目的為判定個體解之好壞,可定義此函數與最 希望達到的效能成某種關係;與目標函數(Objective Function)差異在於目標函數 選取其值比較小的結果,而適應函數取值較大的結果,其兩者在定義上有所不同。

在本研究中,為了找出最近似於模態頻率,須先配置一個參考模態頻率 ,

而 是由真實量測反應與內插反應一起進行 SSI 分析後得到之模態頻率,稱為 參考模態頻率,每次進行計算時,所配置出的模態頻率解會與參考模態頻率比較,

其產生之誤差取絕對值並累加後,得到的最小之誤差值,為最佳配置位置。

𝑒𝑟𝑟𝑎𝑣𝑔 = ∑𝑎𝑏𝑠 (𝑓𝑛− 𝑓𝑛𝑟 𝑓𝑛𝑟 ) 𝑚

𝑚 𝑛=1

, 𝑃𝑗=

𝑒𝑟𝑟1𝑎𝑣𝑔

∑ 1

𝑒𝑟𝑟𝑎𝑣𝑔

𝑘 𝑗=1

(3.8)

上式中 fn為所計算出來的第 n 個模態頻率, 為第n 個參考模態頻率,全部共m 個模態頻率,k 為族群大小,j 為第 j 組感測器配置模型,Pj 則代表該模型 被 選 為 下 一 次 迭 代 中 父 代 的 機 率 。 接 著 進 行 基 因 演 算 法 之 核 心 步 驟:交配

r

fn r

fn

r

fn

(Crossover) 與突變 (Mutation),透過 Crossover 與 Mutation,配對出全新的感測 器配置組合,也就是子代,再對子代進行下一輪的尺寸最佳化。重複執行上述步 驟直到達成設定的步數,並從中選出最佳的感測器配置。

3.2.3 基因演算法流程

基因演算法是由上述之一些基本運作所組成,再經由選擇、交配與突變,而 每完成上述的所有機制,稱為一代(generation)。在經過一代接著一代的改善及進 化,所要求的適應函數值會越來越小,到最後得到了最佳化的設計,而流程如下:

1. 先隨機產生 n 個染色體。

2. 運用適應函數(fitness function)計算各個染色體之適應值。

3. 對每個染色體之適應進行選擇、複製染色體。

4. 對剩餘之染色體進行交配以及突變動作。

重複上述第2 至第 4 個步驟直至收斂,即可得到所要的最佳解,其中染色體 代表一個可行性的解,在本研究中就代表要配置的樓層,其流程圖如圖3-2 所示。

3-2. 基因演算法流程圖