2016-03-01 35 views
0

我需要能夠指定退出標誌,如果失敗。 pyoptsparse_driver的OpenMDAO文檔可以選擇退出標誌。但是,當我使用退出標誌作爲選項運行它時,它說Option 'exit_flag' has not been added。此外,我也不確定如何實際指定是否失敗。我是否需要將這個標誌從solve_nonlinear()中失敗的組件中傳出,並以某種方式使用它來設置pyoptsparse_driver上的選項?我想要做的事有點像這一點,但我不知道語法和我不能找到一個例子:退出標誌在pyOptSparseDriver

def solve_nonlinear(self, params, unknowns, resids): 
    unknowns['y'], exit_flag = function(params['x']) 
    self.exit_flag = exit_flag 

回答

1

有一些問題在這裏:

1) 「我如何將失敗信息從組件傳播到優化器?」 我們目前沒有辦法處理這個問題。它的東西,我們將在不久的將來,但

2)如果一個組件失敗,什麼是適當的響應? 取決於你在做什麼。對於DOE,您應該只記錄失敗的案例並繼續。對於無梯度的方法,可能需要某種客觀的懲罰。對於基於梯度的算法,您可能需要回溯行搜索(或使用其他類似的回溯機制)。

3)如果全部失敗,駕駛員是否可以報告總體退出狀態。 同樣,我們還沒有以一般的方式實現這一點。您在pyopt_sparse驅動程序中找到的選項在doc字符串中是錯誤的。有一個exit_flag attribute that gets set based on the internal pyopt state though.