现代机械优化设计
【Lesson 1】9月14日
【Lesson 2】9月28日
(1)優(yōu)化設(shè)計一般實施步驟
- 設(shè)計要求與目的→定義優(yōu)化設(shè)計問題
- 建立問題的數(shù)學(xué)模型
- 選用合適的優(yōu)化算法
- 確定必要數(shù)據(jù)和設(shè)計初始點
- 編寫程序,利用計算機(jī)求解計算最優(yōu)備選方案
- 分析結(jié)果數(shù)據(jù)和方案,判斷是否符合工程實際,進(jìn)行參數(shù)分析
(2)優(yōu)化問題建模:選擇和確定各個獨立參數(shù)
- 表示:X=[x1,x2,...,xn]TX=[x_1,x_2,...,x_n]^TX=[x1?,x2?,...,xn?]T
- 維數(shù):變量數(shù) nnn
- 類型:連續(xù)/離散變量
- 設(shè)計空間:各獨立變量構(gòu)成的空間
- 超空間:n>3n>3n>3 時的設(shè)計空間
(3)目標(biāo)函數(shù):設(shè)計中預(yù)期達(dá)到的目標(biāo)
- 表示:f(X)=f(x1,x2,...,xn)f(X)=f(x_1,x_2,...,x_n)f(X)=f(x1?,x2?,...,xn?)
- 分類:單目標(biāo)函數(shù)、多目標(biāo)函數(shù)、綜合目標(biāo)函數(shù)
(4)約束條件:設(shè)計變量和響應(yīng)取值的限制條件
- 邊界約束/區(qū)域約束
- 性能約束
- 顯約束/隱約束
(5)數(shù)學(xué)模型:
find:X=[x1,x2,...,xn]T——設(shè)計變量min:f(X)——目標(biāo)函數(shù)s.t.:gu(X)≥0(u=1,2,...,m)hv(X)=0(u=1,2,...,p)}——約束條件\begin{aligned} &{\rm find}:X=[x_1,x_2,...,x_n]^{T}{\qquad}{\qquad}\ ——設(shè)計變量 \\ &{\rm min}:f(X){\qquad}{\qquad}{\qquad}{\qquad}{\qquad}{\ \ \ }——目標(biāo)函數(shù)\\ &{\begin{matrix}\begin{aligned}{\rm s.t.:}&g_u(X)≥0(u=1,2,...,m)\\&h_v(X)=0(u=1,2,...,p)\end{aligned}\end{matrix}}\bigg\}{\ \ \ \ \ \ }——約束條件 \end{aligned} ?find:X=[x1?,x2?,...,xn?]T?——設(shè)計變量min:f(X)???——目標(biāo)函數(shù)s.t.:?gu?(X)≥0(u=1,2,...,m)hv?(X)=0(u=1,2,...,p)??}??????——約束條件?
① 約束優(yōu)化與無約束優(yōu)化;② 線性優(yōu)化與非線性優(yōu)化;③ 單目標(biāo)優(yōu)化與多目標(biāo)優(yōu)化;④ 可行設(shè)計點與可行域;⑤ 局部最優(yōu)與全局最優(yōu)。
復(fù)習(xí):
-
泰勒展開
-
等等
優(yōu)化設(shè)計方法分類;
- 任務(wù):① 找到最優(yōu)解;② 提高求優(yōu)過程的效率。
- 對于非線性優(yōu)化問題,基本是使用迭代算法
【Lesson 3】10月12日
迭代算法:按照一定的邏輯結(jié)構(gòu)進(jìn)行反復(fù)的數(shù)值計算,尋求函數(shù)值不斷下降的設(shè)計點,直到最后獲得足夠精度的近似解時就截斷計算。
迭代種植條件
- 點距準(zhǔn)則
∣∣x(k+1)?x(k)∣∣≤ε||x^{(k+1)}-x^{(k)}||{\leq}\varepsilon ∣∣x(k+1)?x(k)∣∣≤ε - 目標(biāo)函數(shù)下降量準(zhǔn)則
若∣f(x(k+1))∣?1,∣f(x(k+1))?f(x(k))∣≤ε若∣f(x(k+1))∣?1,∣f(x(k+1))?f(xk)∣∣f(x(k))∣≤ε\begin{aligned} {\rm 若}|f(x^{(k+1)})|{\ll}1&,|f(x^{(k+1)})-f(x^{(k)})|{\leq}\varepsilon\\ {\rm 若}|f(x^{(k+1)})|{\gg}1&,\frac{|f(x^{(k+1)})-f(x^{k})|}{|f(x^{(k)})|}{\leq}\varepsilon \end{aligned} 若∣f(x(k+1))∣?1若∣f(x(k+1))∣?1?,∣f(x(k+1))?f(x(k))∣≤ε,∣f(x(k))∣∣f(x(k+1))?f(xk)∣?≤ε? - 梯度準(zhǔn)則
∣∣▽f(x(k+1))∣∣≤ε||{\triangledown}f(x^{(k+1)})||{\leq}\varepsilon ∣∣▽f(x(k+1))∣∣≤ε
設(shè)計變量的坐標(biāo)變換
- 原因:變量的數(shù)值大小相差極大,無法用統(tǒng)一步長尋優(yōu),無法使用統(tǒng)一的終止條件,需要采用坐標(biāo)變換對設(shè)計變量進(jìn)行標(biāo)準(zhǔn)化處理。
- 標(biāo)準(zhǔn)化處理:將設(shè)計變量用變量區(qū)間內(nèi)的相對坐標(biāo)來表示,將設(shè)計變量真實值化為變量區(qū)間的相對值,是變化范圍在0~1之間。
對于xli<xti<xui,設(shè)計參數(shù)xtixri=xti?xlixui?xli∈[0,1]{\rm 對于\ }x_{li}<x_{ti}<x_{ui}\ {\rm ,設(shè)計參數(shù)}x_{ti}\\\ \\ x_{ri}=\frac{x_{ti}-x_{li}}{x_{ui}-x_{li}}\in[0,1] 對于?xli?<xti?<xui??,設(shè)計參數(shù)xti??xri?=xui??xli?xti??xli??∈[0,1]
優(yōu)化設(shè)計方法分類
一維優(yōu)化方法
一維優(yōu)化方法是多維優(yōu)化方法的基礎(chǔ)
要求出
X(K+1)=X(k)+α(k)S(k)minf(X(K+1))=minf(X(k)+α(k)S(k))≈f(X(k))+[▽f(X(k))]TαS(k)+12α2[S(k)]TH(X(k))S(k)f′(x)≈f(x+Δx)?f(x)Δx=0?α=[▽f(X(k))]TS(k)[S(k)]TH(X(k))S(k)X^{(K+1)}=X^{(k)}+\alpha^{(k)}S^{(k)}\\\ \\ \begin{aligned} {\rm min}f(X^{(K+1)})=&{\rm min}f(X^{(k)}+\alpha^{(k)}S^{(k)})\\ {\approx}&f(X^{(k)})+[{\triangledown}f(X^{(k)})]^T{\alpha}S^{(k)}+\frac{1}{2}{\alpha}^2[S^{(k)}]^TH(X^{(k)})S^{(k)} \end{aligned}\\\ \\ f'(x){\approx}\frac{f(x+{\Delta}x)-f(x)}{{\Delta}x}=0\ \Rightarrow\ \alpha=\frac{[{\triangledown}f(X^{(k)})]^TS^{(k)}}{[S^{(k)}]^TH(X^{(k)})S^{(k)}} X(K+1)=X(k)+α(k)S(k)?minf(X(K+1))=≈?minf(X(k)+α(k)S(k))f(X(k))+[▽f(X(k))]TαS(k)+21?α2[S(k)]TH(X(k))S(k)??f′(x)≈Δxf(x+Δx)?f(x)?=0???α=[S(k)]TH(X(k))S(k)[▽f(X(k))]TS(k)?
步驟:
- 確定搜索區(qū)間
- 確定步長求解最優(yōu)
進(jìn)退法
- 試探計算
初選一個初始點 x1x_1x1? 和初始步長 h0h_0h0?,前進(jìn)點為 x2=x1+h0x_2=x_1+h_0x2?=x1?+h0?,計算函數(shù)值 y1=f(x1)y_1=f(x_1)y1?=f(x1?) 和 y2=f(x2)y_2=f(x_2)y2?=f(x2?)
(1)當(dāng) y2>y1y_2>y_1y2?>y1? 時, - y2<y1y_2<y_1y2?<y1? 前進(jìn)計算
計算第二個前進(jìn)點 - 后退運算
目的是:形成一個“高-低-高”的區(qū)間
算例:
【2021.11.2】
變尺度法
DFP變尺度法能夠適用于多參數(shù)函數(shù) f(x)f(x)f(x) 優(yōu)化,下面以例子來說明。
使用DFP變尺度法對函數(shù) f(x)=4(x1?5)2+(x2?6)2f(x)= 4(x_1-5)^2+(x_2-6)^2f(x)=4(x1??5)2+(x2??6)2 進(jìn)行優(yōu)化,初始點為 [00]T[0\ 0]^T[0?0]T ,要求迭代結(jié)束條件為梯度 ξ\xiξ 小于0.01。
該函數(shù)的梯度向量為
▽f(x)=[8(x1?5)2(x2?6)]T\triangledown f(x)=\left[\begin{matrix}8(x_1-5)&2(x_2-6)\end{matrix}\right]^T ▽f(x)=[8(x1??5)?2(x2??6)?]T
初始變量值、梯度為
x(0)=[00]T▽f(x(0))=[?40?12]Tx^{(0)}=\left[\begin{matrix}0&0\end{matrix}\right]^T\\\ \\ \triangledown f(x^{(0)})=\left[\begin{matrix}-40&-12\end{matrix}\right]^T x(0)=[0?0?]T?▽f(x(0))=[?40??12?]T
初始海塞矩陣為
H(0)=[1001]H^{(0)}=\left[\begin{matrix}1&0\\0&1\end{matrix}\right] H(0)=[10?01?]
第一次迭代后的變量值為
x(1)=x(0)+αS(0)=x(0)?αH(0)▽f(x(0))=[40α12α]Tx^{(1)}=x^{(0)}+\alpha S^{(0)}=x^{(0)}-\alpha H^{(0)}\triangledown f(x^{(0)}) = \left[\begin{matrix}40\alpha&12\alpha\end{matrix}\right]^T x(1)=x(0)+αS(0)=x(0)?αH(0)▽f(x(0))=[40α?12α?]T
則第一次迭代后的函數(shù)值為
f(x(1))=4(40α?4)2+(12α?6)2=6544α2?1744α+136f(x^{(1)})=4(40\alpha-4)^2+(12\alpha-6)^2=6544\alpha ^2-1744\alpha +136 f(x(1))=4(40α?4)2+(12α?6)2=6544α2?1744α+136
該值取最小時 α=109/818\alpha=109/818α=109/818,將其帶入 x(1)x^{(1)}x(1) 和 ▽f(x(1))\triangledown f(x^{(1)})▽f(x(1))。有
x(1)=[5.331.60]T,▽f(x(1))=[2.64?8.8]Tx^{(1)}=\left[\begin{matrix}5.33&1.60\end{matrix}\right]^T,{\quad} \triangledown f(x^{(1)})=\left[\begin{matrix}2.64&-8.8\end{matrix}\right]^T x(1)=[5.33?1.60?]T,▽f(x(1))=[2.64??8.8?]T
可分別計算變量和梯度的差值
△x(0)=x(1)?x(0)=[5.331.60]T△g(0)=▽f(x(1))?▽f(x(0))=[42.643.2]T\vartriangle x^{(0)}=x^{(1)}-x^{(0)}=\left[\begin{matrix}5.33&1.60\end{matrix}\right]^T\\\ \\ \vartriangle g^{(0)}=\triangledown f(x^{(1)})-\triangledown f(x^{(0)})=\left[\begin{matrix}42.64&3.2\end{matrix}\right]^T\\ △x(0)=x(1)?x(0)=[5.33?1.60?]T?△g(0)=▽f(x(1))?▽f(x(0))=[42.64?3.2?]T
變尺度法中海塞矩陣的迭代矯正公式為
E(k)=△x(k)[△x(k)]T[△x(k)]T△g(k)?H(k)△g(k)[△g(k)]TH(k)[△g(k)]TH(k)△g(k)H(k+1)=H(k)+E(k)E^{(k)}=\frac{\vartriangle{x^{(k)}}[\vartriangle{x^{(k)}}]^T}{[\vartriangle{x^{(k)}}]^T\vartriangle{g^{(k)}}} -\frac{H^{(k)}\vartriangle{g^{(k)}}[\vartriangle{g^{(k)}}]^TH^{(k)}}{[\vartriangle g^{(k)}]^TH^{(k)}\vartriangle{g^{(k)}}}\\\ \\ H^{(k+1)}=H^{(k)}+E^{(k)} E(k)=[△x(k)]T△g(k)△x(k)[△x(k)]T??[△g(k)]TH(k)△g(k)H(k)△g(k)[△g(k)]TH(k)??H(k+1)=H(k)+E(k)
故可以計算出
H(1)=H(0)+E(0)=[1001]+△x(0)[△x(0)]T[△x(0)]T△g(0)?H(0)△g(0)[△g(0)]TH(0)[△g(0)]TH(0)△g(0)=[0.128?0.038?0.0381.104]\begin{aligned} H^{(1)}&=H^{(0)}+E^{(0)} \\\ \\&=\left[\begin{matrix}1&0\\0&1\end{matrix}\right]+\frac{\vartriangle{x^{(0)}}[\vartriangle{x^{(0)}}]^T}{[\vartriangle{x^{(0)}}]^T\vartriangle{g^{(0)}}} -\frac{H^{(0)}\vartriangle{g^{(0)}}[\vartriangle{g^{(0)}}]^TH^{(0)}}{[\vartriangle g^{(0)}]^TH^{(0)}\vartriangle{g^{(0)}}} \\\ \\&=\left[\begin{matrix}0.128&-0.038\\-0.038&1.104\end{matrix}\right] \end{aligned} H(1)???=H(0)+E(0)=[10?01?]+[△x(0)]T△g(0)△x(0)[△x(0)]T??[△g(0)]TH(0)△g(0)H(0)△g(0)[△g(0)]TH(0)?=[0.128?0.038??0.0381.104?]?
由此,可以依次邏輯繼續(xù)向下迭代,直至最終使得梯度小于0.01。
總結(jié)