3.1 整體架構
基因演算法雖然是一種適用於全域搜尋的最佳化方法,但是在搜尋空間較龐大時 因下列幾項特性造成電腦硬體及時間成本過度的消耗:
1.
基因演算法會將設計變數編碼成二進位位元字串,因此較大的搜尋空間就需要較 長的字串來表示,使得演算法進行過程中對記憶體空間需求大增。2.
搜尋空間較大時需要較大族群的個體數目才能讓搜尋維持穩定,因此造成記憶體 空間需求增加,且每一次的迭代要花更多的時間來計算個體適應值。3.
在較大的搜尋空間下要找出理想的解需要更多的迭代次數,造成計算時間的需求 增加。由以上幾點特性可以得知,當基因演算法的搜尋空間增加時,對於計算時間和記憶體 空間的消耗不會只是線性的增加,因此在基因演算法搜尋前讓搜尋空間有效的縮減可 以顯著的減少記憶體及時間的消耗。另一方面,透過啟發式方法進行桁架結構最佳化 設計,雖然不一定能直接求得最佳解,但可以在少次的迭代及少量的計算量下,快速 的搜尋出最佳解的近似值。本文提出一套窄化空間的技術,在執行基因演算法之前先 以啟發式方法進行搜尋取得一組近似最佳解的設計,再將基因演算法的搜尋空間縮減 至此設計結果的附近,讓基因演算法在桁架結構最佳化問題的搜尋空間有效的縮減,
達到節省電腦記憶體及計算時間的目的。
對於一些實際應用上常見的限制條件如:包含最大斷面的限制、包含多組載重條 件與包含挫屈的限制,由於啟發式方法並未完整的考慮這些常見的限制條件,造成求 解包含這些限制條件的問題時無法有效縮減基因演算的搜尋空間,因此本研究針對這 些限制條件提出新的法則及搜尋策略並和啟發式桁架斷面尺寸最佳化整合,讓窄化空 間技術應用的層面更加廣泛。基因演算法與窄化空間技術整體架構的流程如圖3.1。
3-2 包含最大斷面限制的設計
其中AMax為設計之最大斷面積。而(2-26)式、(2-28)與(2-29)式分別修改成(3-2)~(3-4) 式,如下:
如此已達最大設計斷面積的桿件在(3-3)式中不會再次被放大。
3.3 包含多組載重條件的設計
啟發式方法修正桁架斷面主要是針對單一載重條件的情況下,將產生最大位移的 節點視為控制點,因此只要控制點可以滿足容許位移限制,則其餘節點亦可以同時滿 足。對於多組載重條件的情況,啟發式方法只能在其中一組載重條件明顯的控制最大 位移的情形下才可使用。為了對一般性多組載重條件下的桁架結構最佳化問題窄化搜 尋空間,本文嘗試修改啟發式方法處理單一載重條件的流程並增加部分法則,如圖3.2 所示其修改及新增的要點如下:
1.
滿載應力設計的結果滿足所有載重條件的應力限制由於桁架受多組載重作用,因此滿載應力設計的過程中應同時考慮各種載重條件 進行迭代,則迭代收斂後的最終斷面AF才可同時滿足多組載重條件下的應力限制 要求。所以在多組載重條件的情形下滿載應力設計的公式應修正如下:
lc1 lc2 lcn
i i i
F,i i i i
i,allow i,allow i,allow
A Max A , A , , A
γ γ γ
σ σ σ
σ σ σ
⎡ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎤
⎢ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎥
= ⎢⎢⎣ ⋅⎜⎜⎝ ⎟⎟⎟⎠ ⋅⎜⎜⎝ ⎟⎟⎟⎠ ⋅⎜⎜⎝ ⎠⎟⎟⎟ ⎥⎥⎦
" (3-5)
其中σilc1、σilc2"σilcn為第 i 根桿件在第一組、第二組…第n 組載重條件作用下的桿 件應力。
2.
對載重條件重新排序由於滿載應力設計收斂後的桁架結構在不同的載重條件下,可能會在不同的節點 發生最大位移,且最大位移的大小也不同,因此在進行啟發式方法放大桿件斷面 之前先將各組載重條件按照其所造成的最大位移值來排序。另外,需要注意有些 結構設計對每個節點會有不同的位移限制,因此排序時先判斷位移是否超過容許 位移,再比較位移的大小進行排序。
3.
依序對各組載重條件進行啟發式方法將桿件放大啟發式方法主要是針對單一載重條件下的最大位移進行桿件斷面的放大,所以一
次只針對一組載重條件利用啟發式方法放大桿件斷面,由圖2.5 可知每次放大桿 件斷面之後需檢查結構是否滿足應力限制和位移限制,但是在考慮多組載重條件 下,檢查結構的桿件是否滿足應力限制時須對所有的載重條件進行檢查,而檢查 結構的節點是否滿足位移限制時則是對已執行過啟發式方法的載重條件進行檢 查。例如:一桁架結構設計時需考慮三組不同的載重條件,三組載重條件也經過 排序,若此時對第二組載重條件進行啟發式方法放大桿件斷面,則過程中每次檢 查應力限制時在三組載重條件作用下每根桿件的應力都不超過容許應力才算滿足 應力限制,而每次檢查位移限制時要考慮在第一組和第二組載重條件作用下,所 有節點的位移都不超過容許位移才算滿足位移限制。
4.
搜尋所得桁架結構以剩下未經搜尋的載重條件檢查是否滿足位移限制在多組載重條件的情形下,會出現找出前幾組載重條件作用下滿足位移限制和應 力限制的桁架結構之後,亦會滿足接下來的幾組載重條件作用下的位移限制和應 力限制,此時就可結束啟發式方法的搜尋不須對下一組載重條件進行啟發式方法。
5.
縮小單一組載重條件下啟發式方法搜尋所得的桿件斷面在考慮單一載重條件下啟發式方法會對AF的放大倍數α 進行搜尋,最後找出一組 符合應力限制及位移限制的桁架結構也會對應一個α 值。但是對於多組載重條件 的情形,第一組載重條件下以啟發式方法搜尋出的桁架結構,以第二組載重條件 作用此結構,可能會出現不滿足位移限制的情形,因此需將第一組載重條件搜尋 的結果重新以第二組載重條件進行搜尋,但是若在第一組載重條件下搜尋結果對 應的α 值大於一,直接以第二組載重條件重新搜尋過程中會出現所對應的 α 值過 小很容易造成誤差,所以在第一組載重條件下搜尋結果所對應的α 值若大於一,
需先將搜尋所得的桿件斷面除α 值再以第二組載重條件進行搜尋。
6.
重新進行結構分析考慮前一組載重條件作用以啟發式方法搜尋所得的桁架結構,在下一組載重條件 作用下的節點位移和桿件應力會和之前結構分析的結果不同,因此必須再進行結 構分析確認最大位移的值和發生位置。
3.4 包含挫屈限制的設計
2.
檢查搜尋所得桁架結構是否滿足挫屈限制由於啟發式方法搜尋所得的桁架結構未必能滿足挫屈限制,因此必須對啟發式搜 尋的結果進行挫屈限制的檢查,若檢查的結果不符合挫屈限制,則進入下一階段 的程序對產生挫屈的桿件進行放大,若檢查的結果符合挫屈限制,則結束整個啟 發式方法的最佳化過程。
3.
放大不滿足挫屈限制的桿件斷面尺寸經啟發式方法搜尋所得的桁架結構已能滿足應力限制和位移限制,但是可能會有 部分的桿件無法符合挫屈限制的要求,因此可以根據(3-7)式放大桿件斷面調整桿 件的挫屈臨界載重,讓桿件的挫屈臨界載重恰等於目前桿件所受的載重。但是桿 件斷面尺寸放大之後,由(2-8)式或(2-19)式可知桿件的勁度矩陣也會變動,造成 結構內部的應力重新分配,桿件所受的載重也會有所提升。因此需要重複進行結 構分析和桿件斷面尺寸放大的迭代過程,當桿件所承受的載重和桿件的挫屈臨界 載重之間的差值收斂到可容許的範圍內時即可停止迭代,本文取10-7為兩種載重 間的容許差值。
4.
計算(由挫屈限制)放大桿件斷面尺寸前後結構總重的差值假設啟發式方法搜尋所得的桁架的結構總重為Wa,而依據挫屈限制放大桿件斷面 尺寸後所得的桁架的結構總重為Wb,當Wb-Wa的值在低於容許值時即可結束整 個啟發式方法的最佳化過程,本文設Wb-Wa的值為10-2時結束啟發式方法的最佳 化過程。
5.
縮小已滿足挫屈限制的桁架的斷面尺寸並以啟發式方法重新搜尋當Wb-Wa的值未低於容許值時,必須縮小斷面尺寸再以啟發式方法重新搜尋。在 依據挫屈限制放大桿件斷面尺寸的過程中,只針對會發生挫屈的受壓桿件進行放 大,其餘桿件的斷面尺寸不會被放大,因此縮小斷面尺寸時將未被放大的桿件換 成滿載應力設計收斂時的斷面尺寸,而放大過的桿件則將斷面尺寸除啟發式方法 搜尋終止時所對應的α 值。
3.5 窄化空間技術與基因演算法的整合
對於桁架結構最佳化問題啟發式方法搜尋的結果通常不是最佳,但是可以在少量 的搜尋次數與結構分析次數下完成設計。本文嘗試利用啟發式方法作為基因演算法在 桁架結構最佳化問題的前處理機制,透過啟發式方法搜尋的結果縮減基因演算法的搜 尋空間。
然而要整合以啟發式方法為前處理機制的窄化空間技術與基因演算法仍需克服一 些問題。首先基因演算僅能處理離散變數的最佳化問題,因此搜尋前需給定所有可選 擇的桿件斷面尺寸,因為可選的斷面尺寸有最大值和最小值的限制,所以啟發式方法 需克服包含最大斷面與最小斷面的限制,對於這方面的限制條件本文已在3.2 節中詳 細說明了啟發式方法經改良後的處理過程。另一方面,啟發式方法的搜尋是在連續的 搜尋空間中進行,因此由啟發式方法所搜尋出的桁架結構的斷面尺寸A 通常無法和(2)i
然而要整合以啟發式方法為前處理機制的窄化空間技術與基因演算法仍需克服一 些問題。首先基因演算僅能處理離散變數的最佳化問題,因此搜尋前需給定所有可選 擇的桿件斷面尺寸,因為可選的斷面尺寸有最大值和最小值的限制,所以啟發式方法 需克服包含最大斷面與最小斷面的限制,對於這方面的限制條件本文已在3.2 節中詳 細說明了啟發式方法經改良後的處理過程。另一方面,啟發式方法的搜尋是在連續的 搜尋空間中進行,因此由啟發式方法所搜尋出的桁架結構的斷面尺寸A 通常無法和(2)i