最適化したい機能を備えたコンポーネントが既にあります。ただし、OpenMDAO Alpha 1.0 には (私の知る限り) 遺伝的オプティマイザーのラッパーが含まれていません。私は自分で書いたので、それをドライバーにしたいと思います。ここで少し迷っています。何かアドバイスをお願いできますか?
ありがとうございました!
最適化したい機能を備えたコンポーネントが既にあります。ただし、OpenMDAO Alpha 1.0 には (私の知る限り) 遺伝的オプティマイザーのラッパーが含まれていません。私は自分で書いたので、それをドライバーにしたいと思います。ここで少し迷っています。何かアドバイスをお願いできますか?
ありがとうございました!
OpenMDAO にはまだ遺伝的オプティマイザがないということは正しいです。pyopt ライブラリから NSGAII を使用することもできますが、使用したいものがあるため、独自のドライバーを作成するのはかなり簡単です。従うのが最も簡単な例は、オプティマイザーのscipy ラッパーです。ラッパーは次のようになります。
from openmdao.core.driver import Driver
class GeneticOptimizer(Driver):
def __init__(self):
super(GeneticOptimizer, self).__init__()
#some stuff to setup your genetic optimizer here
def run(self, problem):
"""function called to kick off the optimization
Args
----
problem : `Problem`
Our parent `Problem`.
"""
#NOTE: you'll use these functions to build your optimizer
#to execute the model
problem.root.solve_nonlinear()
#function to set values to the design variables
self.set_param(var_name, value)