第一章 緒論
1.2 文獻回顧
1.2.3 結構最佳化分析方法及工具
1.2.3.1 數學規劃法
一般解決非線性規劃問題,大多採用數值法,在數值方法中可分為兩類:直
5
直接法一般以數學規劃法(Mathematical Programming,MP)為主,無論是無 束制最佳化問題或束制最佳化問題,於邏輯上皆可以視為相同的迭代過程。於迭 代初始給予設計變數的初值(initial design variables),運用各種數學規劃法計算每 一次迭代過程中的微小改變量x( )k ,其中此微小改變量包括步長(step size)k及 方向(direction)d( )k 兩部分。最佳化迭代過程就是尋找出第 k 次迭代時的方向及 沿該方向的步長,得到新的設計變數x(k1),其中x(k1) x( )k x( )k 。直接法的迭代 過程是當設計變數沒有新的增(減)量時,就達到停止條件並得到最佳解。
無束制最佳化問題與束制最佳化問題兩者最大的差異,是束制最佳化問題在 每一次迭代中,決定搜尋方向及步長都要受到限制條件的約束,故其是將外在懲 罰函數最小化;而無束制最佳化問題則可以直接計算方向及步長使得目標函數最 小化。
非直接方法則以最佳化條件法(Optimum Criteria Method,OC)為代表。OC 方法必須先根據停駐定理(stationary principle)推導出最佳化的必要條件(Kuhn - Tucker condition),以此條件建立最佳化的迭代過程,使目標函數值隨著迭代過程 逐漸趨於極值。每次迭代過程得到新的設計變數為xi(k1) xi(k)(ik),依此來更新設
計變數的值,其中(ki )為最佳化指標(optimality index),在最佳點時需滿足(ik) 1, 才能使設計變數收斂(黃仲偉1996)。
一般而言,當最佳化問題的設計變數個數愈多,對於直接法(數學規劃法)
往往需要大量的迭代次數,且當接近最佳解時,收斂的速度通常會很慢(Kirsch 1993);而對於非直接法(OC Method),收斂至最佳解所需的迭代次數與問題的設 計變數多寡無關,因此,OC 法一般適用於大型問題之最佳化設計。但非直接法一 般對於有不同的限制條件的最佳化問題,其收斂情形往往較不穩定(Khan 1984),
即目標函數值在迭代過程中會有跳動的情形,直接法則較為普遍,且適用於各種 限制條件的最佳化問題,其數值計算上收斂的情形比較穩定。
本研究團隊所用的數學規劃法是屬於直接法的一種。數學規劃法包含循序線 性規劃法(Sequential Linear Programming,SLP)及循序二次規劃法(Sequential Quadratic Programming,SQP)等,本研究團隊所採用的是循序二次規劃法(SQP)。
SQP 一般被認為是目前求解非線性最佳化問題之最好的方法之一(Schittkowski 1981)。該法係將原來的非線性規劃問題在每次迭代過程中轉換為二次規劃問題,
Subject to:
( ) ( ) ( )
上式中 d 為搜尋方向(search direction);L 為拉格蘭治方程式(Lagrange function),其定義如下:
1 1 1989);初始的設計變數x(0)不必為可行的設計變數(feasible solution)。在求解完 搜尋方向之後,尚須計算步長參數k,以決定設計變數增量。另外,在迭代過程 中需要目標函數與約束條件的梯度計算,但大多數的結構最佳化問題屬於隱式函 數(implicit function),因此,我們採用有限差分法(finite difference method)來計 算梯度值,如下式,其中設計變數差分量 取x
7
本研究團隊使用 CFSQP(Lawrence et al. 1997)和 IMSL 函式庫(IMSL C Numerical Library 2003)中的 constrained_nlp()函式作為利用 SQP 求解非線性最佳 化問題的工具,以下將介紹本研究所使用的CFSQP 工具。
CFSQP 是由 Lawerence et al.(1997)利用 C 語言所撰寫求解最佳化問題的程 式。主要的演算法是以循序二次規劃法(SQP method)為基礎,但與其他用循序 二次規劃法求解最佳化問題的軟體不同之處,是CFSQP 於最佳化開始前會先判斷 所給定的設計變數初始值(initial values)是否屬於最佳化問題的可行解區域
(feasible solution domain),如果屬於非可行解區域(infeasible solution domain),
CFSQP 程式則會自動產生另外一組可行解的初始值做最佳化分析。另外,最佳化 過程中每次迭代的設計變數值也是屬於可行解區域,即設計變數一定會滿足等式 與不等式約束條件的限制(李宗豪2005)。