simopt.solvers.aloe

Stochastic line search algorithm with gradient estimation.

The solver is a stochastic line search algorithm with the gradient estimate recomputed in each iteration, whether or not a step is accepted. The algorithm includes the relaxation of the Armijo condition by an additive constant. A detailed description of the solver can be found here.

Module Contents

class simopt.solvers.aloe.ALOEConfig

Bases: simopt.base.SolverConfig

Configuration for ALOE solver.

r: Annotated[int, Field(default=30, gt=0, description='number of replications taken at each solution')]
theta: Annotated[float, Field(default=0.2, gt=0, lt=1, description='constant in the Armijo condition')]
gamma: Annotated[float, Field(default=0.8, gt=0, lt=1, description='constant for shrinking the step size')]
alpha_max: Annotated[int, Field(default=10, gt=0, description='maximum step size')]
alpha_0: Annotated[int, Field(default=1, gt=0, description='initial step size')]
epsilon_f: Annotated[int, Field(default=1, gt=0, description='additive constant in the Armijo condition')]
sensitivity: Annotated[float, Field(default=1e-07, gt=0, description='shrinking scale for variable bounds')]
lambda_: Annotated[int, Field(default=2, gt=0, description='magnifying factor for n_r in the finite difference function', alias='lambda')]
class simopt.solvers.aloe.ALOE(name: str = '', fixed_factors: dict | None = None)

Bases: simopt.base.Solver

Adaptive Line-search with Oracle Estimations.

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 = 'ALOE'
config_class: ClassVar[type[simopt.base.SolverConfig]]

Configuration class for the solver.

class_name_abbr: ClassVar[str] = 'ALOE'

Short name of the solver class.

class_name: ClassVar[str] = 'ALOE'

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