将遗传优化器转换为驱动器

Convert a genetic optimiser into a Driver

我的组件已经有了我想要优化的功能。然而,OpenMDAO Alpha 1.0 不包含(据我所知)遗传优化器的包装器。我自己写了,现在想把它变成一个驱动程序。我在这里有点迷路,我可以寻求任何指导吗?

谢谢!

你说得对,OpenMDAO 还没有遗传优化器。您可以使用 pyopt 库中的 NSGAII,但既然您有一个想要使用的库,那么编写您自己的驱动程序应该相当简单。最容易遵循的例子是我们的 scipy wrapper 优化器。您的包装器必须看起来像这样:

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)