摘要本文闡述了機械優化設計中的幾個基本概念,分析了遺傳算法的實現技術,探討了遺傳算法在機械優化設計中的應用。
關鍵詞遺傳算法機械優化設計
中圖分類號:TH12文獻標識碼:A
1 機械優化設計中的幾個概念
1.1 設計變量
設計變量是指在設計過程中進行選擇并最終必須確定的各項獨立參數,在優化過程中,這些參數就是自變量,一旦設計變量全部確定,設計方案也就完全確定了。設計變量的數目確定優化設計的維數,設計變量數目越多,設計空間的維數越大,優化設計工作越復雜,同時效益也越顯著,因此在選擇設計變量、優化設計反映出人們對于設計規律這一客觀世界認識的深化。設計上的“優化值”是指在一定條件(各種設計因素)影響下所能得到的最佳設計值。最優值是一個相對的概念,它不同于數學上的極值,但在很多情況下可以用最大值或最小值來表示。設計變量、目標函數和約束條件這三者在設計空間(以設計變量為坐標軸組成的空間)中構成設計問題。
1.2 約束條件
約束條件是指對設計變量取值時的限制條件。約束條件的形式有顯約束和隱約束兩種,前者是對某個或某組設計變量的直接限制,后者則是對某個或某組變量的間接限制。約束條件可以用數學等式或不等式來表示。等式約束對設計變量的約束嚴格,起著降低設計變量自由度的作用。其形式為:
( v = 1,2,……,p)(1)
不等式約束在機械優化設計中更為普遍,不等式約束的形式為:
( u = 1,2,……,m )(2)
或( u = 1,2,……,m ) (3)
式中x—設計變量p—等式約束的數目m —不等式約束的數目
上述方程中直接或間接地規定了設計變量的允許變化范圍。優化設計的過程就是在設計變量的允許范圍內,找出一組優化的設計變量值,使得目標函數達到最優值。
1.3 目標函數
目標函數是設計過程預期要達到的目標,是各個設計變量的函數表達式:
(4)
在優化問題中,按照目標函數的數目,可以分為單目標函數優化問題和多目標函數優化問題。在機械優化設計中,最常見的是多目標函數優化,一般而言,目標函數越多,設計的綜合效果越好,但問題求解越復雜。多目標函數表達式可表述如下:
(5)
式中q為優化設計所要求的目標函數數目。
在實際的設計問題中,常常會遇到在多目標函數的某些目標之間存在矛盾的情況,這就要求設計者正確處理各目標函數之間的關系。對這類多目標函數的優化問題的研究,至今還沒有單目標函數那樣成熟,但有時可用一個目標函數表示若干個所需追求目標的加權和,從而把多目標函數問題轉化為單目標函數問題進行求解。這時必須引入加權因子的概念,以平衡各項指標之間的相對重要性,以及它們在量綱和量級上的差異。通過加權因子,用多項指標來構成一個總的目標函數,這時多目標函數的表達式就變成了:
(6)
式中wj是指第j項指標的加權因子。加權因子w是一個非負系數,其大小由設計者根據該項指標在優化設計中所占的重要程度確定,并能客觀地反映整個優化設計過程所要追求的總目標,使之綜合效果達到最優化。
2 遺傳算法的實現技術
2.1 數學模型及其參變量
設求解的優化問題為目標函數問題進行求解,目標函數為:
Minimize (7)
—設計變量;j—設計時間;—設計參數;—設計時間;p—等式約束的數目m —不等式約束的數目。按單目標優化處理。因此新定義目標函數為:
Minimize(int()(8)
約束條件:(1)設計時間約束,假設設計時為k。(2)對每個子系統的設要求為:( u = 1,2,……,m ) 。(3)完成任務時間: i=1,2,…K(4)設計變量自由度的約束:( v = 1,2,……,p)
2.2 原理和運算過程
(1)編碼。解空間中的解數據x,作為遺傳算法的表現形式。遺傳算法在進行搜索之前先將解空間的解數據表示成遺傳串間的基因形串結構數據,這些串結構數據的不同組合就構成了不同的點。
(2)初始群體的生成。隨機產生N 個初始串結構數據。每個串結構數據稱為一個個體,N 個個體構成了一個群體。遺傳算法以這N個串結構作為初始點開始迭代。設置進化代數計數器t←0;設置最大進化代數T;隨機生成M 個個體作為初始群體Pf(0) 。
(3)應度值評價檢測。適應度函數表明個體或解的優劣性。對于不同的問題,適應度函數的定義方式不同。
(4)選擇。將選擇算子作用于群體。
(5)交叉。將交叉算子作用于群體。
(6)變異。將變異算子作用于群體。群體f( t)經過選擇、交叉、變異運算后得到下一代群體f( t + 1) 。
(7)終止條件判斷。若t≤T,則t←t + 1,轉步驟2;若t > T,則以進化過程中所得到的具有最大適應度的個體作為最優解輸出,終止運算。
3算例
以文獻[3]中的例12.3 為例,采用本文所提出的方法對其進行優化設計。遺傳算法的運行參數取為:種群規模為80,交叉概率為50%,變異概率為2%。分別以最小化強度冗余和最小化中心距為目標,求解結果及文獻[3]中的結果如表1所示。
表1 算例求解結果
上表1中附加“*” 號者為最優函數值,均為遺傳算法所得。從表中的結果對比來看,遺傳算法所得的最優結果似乎改進不多,其原因在于文獻[3]中的設計結果也是一個較優的結果,若采用常規的設計方法,要獲得這一結果,需要經過多次的試算才行。采用本文提出的方法,通過多次運行表明,若不計入交互輸入的時間,獲得最優解時遺傳算法的運行時間均在1秒左右。