simopt.solvers.neldmd
Nelder-Mead Algorithm.
Nelder-Mead: An algorithm that maintains a simplex of points that moves around the feasible region according to certain geometric operations: reflection, expansion, contraction, and shrinking. A detailed description of the solver can be found here.
Module Contents
- class simopt.solvers.neldmd.NelderMeadConfig
Bases:
simopt.base.SolverConfigConfiguration for Nelder-Mead solver.
- r: Annotated[int, Field(default=30, gt=0, description='number of replications taken at each solution')]
- alpha: Annotated[float, Field(default=1.0, gt=0, description='reflection coefficient > 0')]
- gammap: Annotated[float, Field(default=2.0, gt=1, description='expansion coefficient > 1')]
- betap: Annotated[float, Field(default=0.5, gt=0, lt=1, description='contraction coefficient > 0, < 1')]
- delta: Annotated[float, Field(default=0.5, gt=0, lt=1, description='shrink factor > 0, < 1')]
- sensitivity: Annotated[float, Field(default=1e-07, gt=0, description='shrinking scale for bounds')]
- initial_spread: Annotated[float, Field(default=0.1, gt=0, description='fraction of distance between bounds used for initial points')]
- class simopt.solvers.neldmd.NelderMead(name: str = '', fixed_factors: dict | None = None)
Bases:
simopt.base.SolverNelder-Mead Algorithm.
The Nelder-Mead algorithm, which maintains a simplex of points that moves around the feasible region according to certain geometric operations: reflection, expansion, contraction, and shrinking.
Initialize a solver object.
- Parameters:
name (str, optional) – Name of the solver. Defaults to an empty string.
fixed_factors (dict | None, optional) – Dictionary of user-specified solver factors. Defaults to None.
- name: str = 'NELDMD'
- config_class: ClassVar[type[simopt.base.SolverConfig]]
Configuration class for the solver.
- class_name_abbr: ClassVar[str] = 'NELDMD'
Short name of the solver class.
- class_name: ClassVar[str] = 'Nelder-Mead'
Long name of the solver class.
- objective_type: ClassVar[simopt.base.ObjectiveType]
Description of objective types.
- constraint_type: ClassVar[simopt.base.ConstraintType]
Description of constraint types.
- variable_type: ClassVar[simopt.base.VariableType]
Description of variable types.
- gradient_needed: ClassVar[bool] = False
True if gradient of objective function is needed, otherwise False.
- solve(problem: simopt.base.Problem) None
Run a single macroreplication of a solver on a problem.
- Parameters:
problem (Problem) – Simulation-optimization problem to solve.
- Returns:
list [Solution]: List of solutions recommended throughout the budget.
- list [int]: List of intermediate budgets when recommended solutions
change.
- Return type:
tuple