← Back to Optimization0 documentation
Optimization0 - Source Code¶
File: userfiles/NewUseCase_Template/subsystem0/Optimization0.py
# Copyright (C) The DistributedDesignOptimizer Contributors
# Licensed under the GNU General Public License v3.0. See LICENSE file for details.
"""Optimization configuration for Subsystem 0 in the new use-case.
This module defines the Optimization0 class which configures the local
optimization algorithm and its hyperparameters for Subsystem 0 in the
distributed design optimization framework.
"""
from Distributed_Design_Optimizer.subsystem.optimization import OptimizationBasis
from Distributed_Design_Optimizer.subsystem.optimization.solver import (
# Solver_SCBO,
# Solver_Scipy,
# Solver_CMA,
# Solver_IPOPT,
Solver_PyNomadBBO,
# Solver_Pyomo,
# Solver_Fmincon
)
class Optimization0(OptimizationBasis):
"""Optimization configuration class for Subsystem 0.
Configures the local optimization algorithm (PyNomadBBO by default) for
solving the subproblem of Subsystem 0 in the new use-case.
Attributes:
_optimizer: The optimization algorithm instance configured with
appropriate hyperparameters for this subsystem.
"""
def __init__(self) -> None:
"""Initialize the Optimization0 instance with the selected optimizer."""
# Choose you optimizer and its hyperparameters
# super().__init__(Solver_SCBO(option_1=None))
# super().__init__(Solver_Scipy(method="trust-constr",
# constraint_jac="2-point",
# constraint_keep_feasible=False,
# maxiter=None))
super().__init__(Solver_PyNomadBBO(maxevals=10000,
constraint_handling_method="PB",
seed=1,
vns_mads_search=False,
quad_model_search=False,
eqcon_as_ineqcon_tol=1E-8))
# super().__init__(Solver_IPOPT(maxiter=1000,
# acceptable_tol=1e-8,
# constraint_jac="2-point",
# constraint_keep_feasible=False))
# super().__init__(Solver_Pyomo(option_1=None,
# option_2=None))
# super().__init__(Solver_Fmincon(method="active_set",
# maxiter=1000,
# maxfunevals=10000,
# tolfun=1e-8,
# tolcon=1e-8))