Logo

Getting Started

  • Installation
  • What is a Daitum Model?
  • Quickstart

Tutorials

  • Introduction to Modelling
  • Data Stores
  • Data Processors
  • Reports
  • Integration
  • Templates & Versioning
  • Best Practices

API Documentation

  • daitum-model
  • daitum-ui
  • daitum-configuration
    • Quickstart
    • Configuration Builder
    • Model Configuration
    • Algorithms
      • Genetic Algorithm
      • CMA-ES
      • Variable Neighbourhood Search
      • Steepest Dynamic Local Search
        • SteepestDynamicLocalSearch
      • Adaptive Large Neighbourhood Search
      • Algorithm base
      • NumericExpression
    • Schedule
    • Data Sources
    • Model Properties
    • Reports
Daitum
  • daitum-configuration
  • Algorithms
  • Steepest Dynamic Local Search
  • View page source

Steepest Dynamic Local Search

Steepest Descent local search with a dynamic step-size schedule. Each iteration perturbs every decision variable by ±``step_size`` and accepts the best neighbour; when an iteration finds no improvement the step shrinks toward ..._lowest_step by ..._step_change until the lowest step has been reached.

Integer-typed and real-typed variables use independent step controls (integer_* and decimal_*). allow_neutral_walks permits accepting equal-objective neighbours, letting the search drift across plateaus.

SteepestDynamicLocalSearch configuration for steepest-descent local search.

class SteepestDynamicLocalSearch(log_info=False, evaluations=100000, max_evaluations_without_improvement=10000, max_time_without_improvement=300, min_improvement=1e-06, max_restart_count=0, prng_seed=None, time_limit=60, allow_neutral_walks=False, integer_step_size=10, decimal_step_size=0.1, integer_step_change=1, integer_lowest_step=1, decimal_step_change=0.001, decimal_lowest_step=0.001)[source]

Steepest Descent local search with a dynamic step-size schedule.

Each iteration perturbs every decision variable by ±``step_size`` and accepts the best neighbour. integer_step_size applies to integer-typed variables; decimal_step_size applies to real-typed variables. When an iteration finds no improvement the step shrinks toward ..._lowest_step by ..._step_change; once at the lowest step with no further improvement the search terminates (subject to the base stopping criteria inherited from Algorithm).

allow_neutral_walks permits accepting equal-objective neighbours, letting the search drift across plateaus.

allow_neutral_walks: bool = False

Accept neighbours with equal objective value (plateau drift).

integer_step_size: int | NumericExpression | Parameter | Calculation = 10

Initial perturbation magnitude for integer-typed variables.

decimal_step_size: float | NumericExpression | Parameter | Calculation = 0.1

Initial perturbation magnitude for real-typed variables.

integer_step_change: int | NumericExpression | Parameter | Calculation = 1

Amount by which the integer step is reduced after a non-improving iteration.

integer_lowest_step: int | NumericExpression | Parameter | Calculation = 1

Floor below which the integer step will not shrink.

decimal_step_change: float | NumericExpression | Parameter | Calculation = 0.001

Amount by which the decimal step is reduced after a non-improving iteration.

decimal_lowest_step: float | NumericExpression | Parameter | Calculation = 0.001

Floor below which the decimal step will not shrink.

property key: str

The algorithm key emitted as algorithmKey in the serialised output.

Previous Next

© Copyright 2026, Daitum.