LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line_opt_solver.h File Reference

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"
Include dependency graph for line_opt_solver.h:

Go to the source code of this file.

Classes

struct  line::opt::LineOptSolverOptions
class  line::opt::LineOptSolver

Namespaces

namespace  line
namespace  line::opt

Detailed Description

The optimizer: search the variable space for the best feasible point.

LineOptSolver drives an OptimizationProblem with the strategy named by LineOptSolverOptions::optimizerevolution (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.