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

Solves the model at one point of the variable space. More...

#include <chrono>
#include <cmath>
#include <functional>
#include <map>
#include <string>
#include <utility>
#include <variant>
#include <vector>
#include "line/opt/results.h"
#include "line/opt/sensitivity.h"
#include "line/opt/variables.h"
#include "line/solvers/ln/solver_ln.h"
#include "line/solvers/mva/solver_mva_runner.h"
#include "line/solvers/solver_chain_tables.h"
Include dependency graph for evaluator.h:

Go to the source code of this file.

Classes

struct  line::opt::LayerSensitivity
class  line::opt::LineEvaluator

Namespaces

namespace  line
namespace  line::opt

Detailed Description

Solves the model at one point of the variable space.

LineEvaluator takes the model, the variables and the fixed values, applies a VariableValues to a copy of the model, solves it, and returns an EvaluationResult. This is the only place the optimizer touches a solver, so a caller can substitute its own by passing a SolveFunction – which is what the tests do, and what lets a search run against a surrogate.

evaluation_count() reports how many solves have been paid for, which is the cost measure the results carry. LayerSensitivity carries the per-layer derivatives the gradient optimizer of line_opt_solver.h consumes.

Definition in file evaluator.h.