![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The optimizer: search the variable space for the best feasible point. More...
#include <algorithm>#include <chrono>#include <cmath>#include <cstddef>#include <cstdint>#include <limits>#include <map>#include <optional>#include <set>#include <string>#include <utility>#include <vector>#include "line/opt/de/differential_evolution.h"#include "line/opt/problem.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::opt::LineOptSolverOptions |
| class | line::opt::LineOptSolver |
Namespaces | |
| namespace | line |
| namespace | line::opt |
The optimizer: search the variable space for the best feasible point.
LineOptSolver drives an OptimizationProblem with the strategy named by LineOptSolverOptions::optimizer – evolution (differential evolution, the default, over the normalized [0,1] box) or a gradient method that uses the derivatives of sensitivity.h where they exist and finite differences where they do not. Constraints enter through the penalty of Objective::evaluate_with_penalty.
LineOptSolverOptions carries the usual DE controls (strategy, popsize, the mutation_low/mutation_high dither, recombination, tolerance, max_iterations, seed), the stopping time_limit, and the finite-difference steps, which are separate for the flat and layered cases (fd_step, fd_step_layered) because an LQN demand and a service rate are not of comparable scale. scenario_aggregation says how a multi-scenario objective is combined – worst by default, so a design is judged by its worst load rather than its average one. Every setter returns *this.
Definition in file line_opt_solver.h.