![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The objectives to minimize and the constraints to respect. More...
#include <algorithm>#include <cmath>#include <memory>#include <string>#include <vector>#include "line/opt/results.h"Go to the source code of this file.
Classes | |
| class | line::opt::Constraint |
| class | line::opt::ResponseTimeConstraint |
| class | line::opt::SystemResponseTimeConstraint |
| class | line::opt::ThroughputConstraint |
| class | line::opt::UtilizationConstraint |
| class | line::opt::BudgetConstraint |
| class | line::opt::Objective |
| class | line::opt::MinimizeCost |
| class | line::opt::MinimizeSystemResponseTime |
| class | line::opt::MaximizePerformance |
Namespaces | |
| namespace | line |
| namespace | line::opt |
Typedefs | |
| using | line::opt::ConstraintPtr = std::shared_ptr<Constraint> |
| using | line::opt::ObjectivePtr = std::shared_ptr<Objective> |
The objectives to minimize and the constraints to respect.
A Constraint returns its VIOLATION, not a boolean: zero when satisfied and the amount by which it is breached otherwise, so a search can follow the gradient of an infeasible point back into the feasible region. An unobtainable metric gives infinity rather than zero, so a model that failed to solve cannot read as feasible. ResponseTimeConstraint, SystemResponseTimeConstraint, ThroughputConstraint and UtilizationConstraint read the solved model; BudgetConstraint reads the variable values instead, costing each by a per-variable rate.
An Objective carries its own constraint list, and evaluate_with_penalty folds the violations in at a weight (default 1e6), which is how the derivative-free solvers handle constraints. Every objective is a MINIMIZATION: MaximizePerformance returns the negated score.
Formatting note: the class bodies here are written one per line, unlike the rest of the tree.
Definition in file objectives.h.