simopt.solvers.aloe =================== .. py:module:: simopt.solvers.aloe .. autoapi-nested-parse:: 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 --------------- .. py:class:: ALOEConfig Bases: :py:obj:`simopt.base.SolverConfig` Configuration for ALOE solver. .. py:attribute:: r :type: Annotated[int, Field(default=30, gt=0, description='number of replications taken at each solution')] .. py:attribute:: theta :type: Annotated[float, Field(default=0.2, gt=0, lt=1, description='constant in the Armijo condition')] .. py:attribute:: gamma :type: Annotated[float, Field(default=0.8, gt=0, lt=1, description='constant for shrinking the step size')] .. py:attribute:: alpha_max :type: Annotated[int, Field(default=10, gt=0, description='maximum step size')] .. py:attribute:: alpha_0 :type: Annotated[int, Field(default=1, gt=0, description='initial step size')] .. py:attribute:: epsilon_f :type: Annotated[int, Field(default=1, gt=0, description='additive constant in the Armijo condition')] .. py:attribute:: sensitivity :type: Annotated[float, Field(default=1e-07, gt=0, description='shrinking scale for variable bounds')] .. py:attribute:: lambda_ :type: Annotated[int, Field(default=2, gt=0, description='magnifying factor for n_r in the finite difference function', alias='lambda')] .. py:class:: ALOE(name: str = '', fixed_factors: dict | None = None) Bases: :py:obj:`simopt.base.Solver` Adaptive Line-search with Oracle Estimations. Initialize a solver object. :param name: Name of the solver. Defaults to an empty string. :type name: str, optional :param fixed_factors: Dictionary of user-specified solver factors. Defaults to None. :type fixed_factors: dict | None, optional .. py:attribute:: name :type: str :value: 'ALOE' .. py:attribute:: config_class :type: ClassVar[type[simopt.base.SolverConfig]] Configuration class for the solver. .. py:attribute:: class_name_abbr :type: ClassVar[str] :value: 'ALOE' Short name of the solver class. .. py:attribute:: class_name :type: ClassVar[str] :value: 'ALOE' Long name of the solver class. .. py:attribute:: objective_type :type: ClassVar[simopt.base.ObjectiveType] Description of objective types. .. py:attribute:: constraint_type :type: ClassVar[simopt.base.ConstraintType] Description of constraint types. .. py:attribute:: variable_type :type: ClassVar[simopt.base.VariableType] Description of variable types. .. py:attribute:: gradient_needed :type: ClassVar[bool] :value: False True if gradient of objective function is needed, otherwise False. .. py:method:: solve(problem: simopt.base.Problem) -> None Run a single macroreplication of a solver on a problem. :param problem: Simulation-optimization problem to solve. :type problem: Problem :returns: - list [Solution]: List of solutions recommended throughout the budget. - list [int]: List of intermediate budgets when recommended solutions change. :rtype: tuple