0. 目錄
1. 老駱提醒
2. 問題描述
Minimize Objective Function
f(x,y):
f(x,y)=(x2+y2)10−cos(x)cos(y)
Subject to the Constraint Equation
g(x,y):
g(x,y)=(x2+y2)≥1.5
Design Variables (Side Constraints)
:
−2≤x≤2−2≤y≤4
Initial Conditions
:
x=2y=2
3. Design of Experiments (DOE)
在 VDOC_01_PythonEquation 裡,利用了Gradient Based Optimization
直接求解問題。這樣的方法雖然簡單直接,但卻須不斷呼叫PythonEquation Component
進行。在小規模最佳化題目,這沒有問題;但有時須要呼叫的component
,其所須進行的計算量非常大,會耗費相當高的計算及時間成本(通俗點講,就是這個計算很貴),例如CFD 分析
,或是碰撞分析
等。
Design of Experiments (DOE) 是一種考慮各變數關係的選點策略,讓使用者可以僅針對所挑選的點位,進行昂貴的計算。接著藉由所算得的結果,將整個問題,近似成一個以函數來描述的模型。最後再以此模型為基礎,進行Optimization
或是Response Surface Approximation(RSA)
。
Optimization
的操作流程為:
- 選定
DOE
策略並建立點位。
- 計算各
DOE
點位的Response
。
- 利用求得的
Response
將整個問題,近似成一個以函數來描述的模型,再對此模型進行最佳化求解。當最佳化過程中須要新的Response
來進行運算時,可以直接代入新點位到模型求得近似的Response
,不須要真正進行如步驟2
中的昂貴計算。
RSA
的操作流程為:
- 選定
DOE
策略並建立點位。
- 計算各
DOE
點位的Response
。
- 利用求得的
Response
將整個問題,近似成一個以函數來描述的模型,再對此模型進行最佳化求解。當最佳化過程中須要新的Response
來進行運算時,須要藉由訂立適合的邏輯(也就是設定一個好的Move Limit
)來挑選新的點位,並真正進行如步驟2
中的昂貴計算,再以此Response
更新模型。
Optimization
與RSA
的主要差別是在於是否利用昂貴的計算,來增加新的DOE
點位及Response
。如果近似模型已經足夠代表問題,那麼可以選擇Optimization
直接求解問題;如果模型僅是由少量的DOE
點位及Response
所構成,則可能須要選擇RSA
,先增加新的DOE
點位及Response
來提升模型的品質後,再基於此更新模型進行最佳化求解。
什麼是Move Limit
呢?因為近似模型是由於DOE
點位及其Response
所建立的,我們會相信越靠近這些點位,其近似的Response
會越準確;而越遠離這些點位,其近似的Response
會越不準。所以當Response Surface Approximation
在挑選新點位加入模型時,不應該挑選離原始點位過遠的點位,而應該循序漸進,從原始點位附近開始挑選,如此可以保證更新模型的準確度將逐步提昇。
3.1 DOE Action
VisualDOC
提供3
種DOE
操作。
-
Create DOE points only
Create DOE points only
僅產生DOE
的點位,但不進行Response
的計算。
-
Create DOE points with responses
Create DOE points with responses
除了產生DOE
的點位,也會計算其Response
。
適用於想利用此DOE
作為後續RSA
的Starting Stategy
時使用。
-
Create DOE with approximations (Default)
Create DOE with approximations
除了產生DOE
的點位及計算Response
後,再進行Approximation
,將問題轉變為一個以函數來近似的模型。
適用於想利用DOE
+Optimization
時使用。
3.2 DOE Model
VisualDOC
提供6
種DOE Model
操作。不同的DOE Model
會有不同的最低點位數要求,VisualDOC
會自動顯示。
Linear
Mixed:Linear + Interactions
Mixed:Linear + Quadratic
Full Quadratic
Forward Stepwise Regression (Default)
Kriging Model
3.3 Desgin Strategy
VisualDOC
提供8
種(還有一種User Defined
)策略。每種策略會產生不同的點位數,VisualDOC
會自動顯示。
Factorial
Composite (Default)
Box-Beheken
Koshal
Latin Hypercube
Tagucui
Simplex
Random
User Defined
4. VisualDOC操作細節
本節,我們介紹Create DOE points with responses
及Create DOE with approximations
兩種操作。
4.1 前置作業
本節講述如何將Component Ediror外層
由Optimization
置換為DOE
。
4.1.1 Work Flow
打開Opt Using PythonEquation
task
,另存一個新的task
,命名為DOE with responses
。接著至E欄
中將Add Design of Experiments component
拖曳至F欄
。
將PythonEquation
component
自Optimization
component
中剪下貼上至DOE
中。
刪除Optimization
component
並重新連接Work Flow
。
接著使用Automatically rearrange all models
重新排版。
4.1.2 Data Linker
點選C欄
Data Linker
,使用左側Automatically add data to the selected model
自動連接。
4.1.3 Component Editor
點選C欄
Component Editor
外層的DOE
component
,依照題目輸入x
及y
的Lower Bound
及Upper Bound
。
4.1.4 Simulation Monitors
點選C欄
Simulation Monitors
,刪除於Optimization
中所建立的圖表,因為這些圖表在DOE
中不適用。但是,如先前提過的,Simulation Monitors
僅是一個輔助工具,如果不想多一道刪除手續的話,程式雖然會提示有錯誤,但DOE
仍然可以正常運行。
至此,完成前置作業的設定。
4.2 Create DOE points with responses
於DOE Action
中選擇Create DOE points with responses
,並維持Design Strategy
為composite
。從VisualDOC
的顯示中可以看出,composite
這個策略會產生9
個點位。
執行VisualDOC
後,點選C欄
Post Processing
中的Show Design Points Table
,即可看到composite
策略所產生9
個點位。按下下方的Write tab delimited file
另存這個結果為DOE_with_responses.txt
,可以供 VDOC_03_OptRSA_DOE 裡的RSA
分析,作為DOE
的Starting Strategy
使用。
4.3 Create DOE with approximations
打開DOE with responses
task
,另存一個task
,命名為DOE with approximations
。於DOE Action
中選擇Create DOE with approximations
,並維持Design Strategy
為composite
且DOE Model
為Forward Stepwise Regression
。
點選C欄
Simulation Monitors
,為f
及g
這2
個response
分別新增2
張圖表Add DOE actual vs predict plot
及Add DOE residual plot
(Type
選擇Residual
),並加以連接。
執行VisualDOC
後,可以透過這幾張圖表,了解經過DOE
後,f
及g
的近似情況。觀察後發現f
的residual
值就比較高,部份預測值偏離了實際值,預測的比較差。
而g
的residual
值很低,預測值很貼近實際值,預測的比較好。
點選C欄
Post Processing
中的Show Design Points Table
,會發現其結果與 4.2 Create DOE points with responses 是相同的。當然如果我們已經有Design points table
的話,可以利用User Defined
這個功能讀入這些點位(例如4.2節中儲存的DOE_with_responses.txt
),不必重新計算response
,而只進行approximation
。
接著點選Post Processing
中的Generate summary report
,拉到最下方後,可以找到f
及g
的近似函數。
f=−0.058149602072−0.085913557709y+0.144063159781y2g=−1.33226763∗10−15−2.77555756∗10−16x+x2+y2
5. 聯絡老駱
如果您或貴單位:
- 有導入
VR&D
產品的意願,但是有報價、採購及發票等問題。
- 有教育訓練或顧問需求。
- 有些建言指教。
- 想交個朋友。
歡迎透過 camel@caeml.ai 聯絡老駱。
0. 目錄
1. 老駱提醒
VisualDOC
進行DOE
。2. 問題描述
Minimize Objective Function
Subject to the Constraint Equation
Design Variables (Side Constraints)
:Initial Conditions
:3. Design of Experiments (DOE)
在 VDOC_01_PythonEquation 裡,利用了
Gradient Based Optimization
直接求解問題。這樣的方法雖然簡單直接,但卻須不斷呼叫PythonEquation Component
進行。在小規模最佳化題目,這沒有問題;但有時須要呼叫的component
,其所須進行的計算量非常大,會耗費相當高的計算及時間成本(通俗點講,就是這個計算很貴),例如CFD 分析
,或是碰撞分析
等。Design of Experiments (DOE) 是一種考慮各變數關係的選點策略,讓使用者可以僅針對所挑選的點位,進行昂貴的計算。接著藉由所算得的結果,將整個問題,近似成一個以函數來描述的模型。最後再以此模型為基礎,進行
Optimization
或是Response Surface Approximation(RSA)
。Optimization
的操作流程為:DOE
策略並建立點位。DOE
點位的Response
。Response
將整個問題,近似成一個以函數來描述的模型,再對此模型進行最佳化求解。當最佳化過程中須要新的Response
來進行運算時,可以直接代入新點位到模型求得近似的Response
,不須要真正進行如步驟2
中的昂貴計算。RSA
的操作流程為:DOE
策略並建立點位。DOE
點位的Response
。Response
將整個問題,近似成一個以函數來描述的模型,再對此模型進行最佳化求解。當最佳化過程中須要新的Response
來進行運算時,須要藉由訂立適合的邏輯(也就是設定一個好的Move Limit
)來挑選新的點位,並真正進行如步驟2
中的昂貴計算,再以此Response
更新模型。Optimization
與RSA
的主要差別是在於是否利用昂貴的計算,來增加新的DOE
點位及Response
。如果近似模型已經足夠代表問題,那麼可以選擇Optimization
直接求解問題;如果模型僅是由少量的DOE
點位及Response
所構成,則可能須要選擇RSA
,先增加新的DOE
點位及Response
來提升模型的品質後,再基於此更新模型進行最佳化求解。什麼是
Move Limit
呢?因為近似模型是由於DOE
點位及其Response
所建立的,我們會相信越靠近這些點位,其近似的Response
會越準確;而越遠離這些點位,其近似的Response
會越不準。所以當Response Surface Approximation
在挑選新點位加入模型時,不應該挑選離原始點位過遠的點位,而應該循序漸進,從原始點位附近開始挑選,如此可以保證更新模型的準確度將逐步提昇。3.1 DOE Action
VisualDOC
提供3
種DOE
操作。Create DOE points only
Create DOE points only
僅產生DOE
的點位,但不進行Response
的計算。Create DOE points with responses
Create DOE points with responses
除了產生DOE
的點位,也會計算其Response
。適用於想利用此
DOE
作為後續RSA
的Starting Stategy
時使用。Create DOE with approximations (Default)
Create DOE with approximations
除了產生DOE
的點位及計算Response
後,再進行Approximation
,將問題轉變為一個以函數來近似的模型。適用於想利用
DOE
+Optimization
時使用。3.2 DOE Model
VisualDOC
提供6
種DOE Model
操作。不同的DOE Model
會有不同的最低點位數要求,VisualDOC
會自動顯示。Linear
Mixed:Linear + Interactions
Mixed:Linear + Quadratic
Full Quadratic
Forward Stepwise Regression (Default)
Kriging Model
3.3 Desgin Strategy
VisualDOC
提供8
種(還有一種User Defined
)策略。每種策略會產生不同的點位數,VisualDOC
會自動顯示。Factorial
Composite (Default)
Box-Beheken
Koshal
Latin Hypercube
Tagucui
Simplex
Random
User Defined
4. VisualDOC操作細節
本節,我們介紹
Create DOE points with responses
及Create DOE with approximations
兩種操作。4.1 前置作業
本節講述如何將
Component Ediror外層
由Optimization
置換為DOE
。4.1.1 Work Flow
打開
Opt Using PythonEquation
task
,另存一個新的task
,命名為DOE with responses
。接著至E欄
中將Add Design of Experiments component
拖曳至F欄
。將
PythonEquation
component
自Optimization
component
中剪下貼上至DOE
中。刪除
Optimization
component
並重新連接Work Flow
。接著使用
Automatically rearrange all models
重新排版。4.1.2 Data Linker
點選
C欄
Data Linker
,使用左側Automatically add data to the selected model
自動連接。4.1.3 Component Editor
點選
C欄
Component Editor
外層的DOE
component
,依照題目輸入x
及y
的Lower Bound
及Upper Bound
。4.1.4 Simulation Monitors
點選
C欄
Simulation Monitors
,刪除於Optimization
中所建立的圖表,因為這些圖表在DOE
中不適用。但是,如先前提過的,Simulation Monitors
僅是一個輔助工具,如果不想多一道刪除手續的話,程式雖然會提示有錯誤,但DOE
仍然可以正常運行。至此,完成前置作業的設定。
4.2 Create DOE points with responses
於
DOE Action
中選擇Create DOE points with responses
,並維持Design Strategy
為composite
。從VisualDOC
的顯示中可以看出,composite
這個策略會產生9
個點位。執行
VisualDOC
後,點選C欄
Post Processing
中的Show Design Points Table
,即可看到composite
策略所產生9
個點位。按下下方的Write tab delimited file
另存這個結果為DOE_with_responses.txt
,可以供 VDOC_03_OptRSA_DOE 裡的RSA
分析,作為DOE
的Starting Strategy
使用。4.3 Create DOE with approximations
打開
DOE with responses
task
,另存一個task
,命名為DOE with approximations
。於DOE Action
中選擇Create DOE with approximations
,並維持Design Strategy
為composite
且DOE Model
為Forward Stepwise Regression
。點選
C欄
Simulation Monitors
,為f
及g
這2
個response
分別新增2
張圖表Add DOE actual vs predict plot
及Add DOE residual plot
(Type
選擇Residual
),並加以連接。執行
VisualDOC
後,可以透過這幾張圖表,了解經過DOE
後,f
及g
的近似情況。觀察後發現f
的residual
值就比較高,部份預測值偏離了實際值,預測的比較差。而
g
的residual
值很低,預測值很貼近實際值,預測的比較好。點選
C欄
Post Processing
中的Show Design Points Table
,會發現其結果與 4.2 Create DOE points with responses 是相同的。當然如果我們已經有Design points table
的話,可以利用User Defined
這個功能讀入這些點位(例如4.2節中儲存的DOE_with_responses.txt
),不必重新計算response
,而只進行approximation
。接著點選
f=−0.058149602072−0.085913557709y+0.144063159781y2g=−1.33226763∗10−15−2.77555756∗10−16x+x2+y2
Post Processing
中的Generate summary report
,拉到最下方後,可以找到f
及g
的近似函數。5. 聯絡老駱
如果您或貴單位:
VR&D
產品的意願,但是有報價、採購及發票等問題。歡迎透過 camel@caeml.ai 聯絡老駱。