1

最適化したい機能を備えたコンポーネントが既にあります。ただし、OpenMDAO Alpha 1.0 には (私の知る限り) 遺伝的オプティマイザーのラッパーが含まれていません。私は自分で書いたので、それをドライバーにしたいと思います。ここで少し迷っています。何かアドバイスをお願いできますか?

ありがとうございました!

4

1 に答える 1

3

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)
于 2015-08-11T12:32:11.847 に答える