← Back to Optimization0 documentation
Optimization0 - Source Code¶
File: userfiles/SpeedReducer/subsystem0/Optimization0.py
# Copyright (C) The DistributedDesignOptimizer Contributors
# Licensed under the GNU General Public License v3.0. See LICENSE file for details.
"""Optimization configuration module for Speed Reducer subsystem 0.
Configures the local optimization algorithm for the gear subsystem in the
Speed Reducer distributed optimization problem.
"""
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 Speed Reducer subsystem 0.
Configures the local optimizer (PyNomadBBO by default) and its
hyperparameters for solving the gear subsystem subproblem.
Attributes:
_optimizer: The configured optimizer instance.
"""
def __init__(self) -> None:
"""Initialize Optimization0 with selected optimizer settings."""
# 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_CMA(maxevals=10000,
# maxiter=1000,
# tolfun=1e-9,
# tolx=1e-9,
# seed=1,
# adaptsigma=True,
# elitism=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-9,
# tolcon=1e-8))