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

Classification of a solution method, as printed in the solver banner: "<accuracy>, <randomness>" with accuracy in {exact, approximate, bound} and randomness in {deterministic, randomized}. More...

#include <map>
#include <string>
Include dependency graph for method_type.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::util

Functions

std::string line::util::method_type (const std::string &solvername, const std::string &method)
 Banner classification of a solution method.

Detailed Description

Classification of a solution method, as printed in the solver banner: "<accuracy>, <randomness>" with accuracy in {exact, approximate, bound} and randomness in {deterministic, randomized}.

Conventions, applied uniformly across the four codebases (MATLAB line_method_type.m, JAR MethodType.java, python solvers/base.py):

  • exact: the algorithm targets the metric with no modeling approximation. Numerical truncation and floating-point error do not make a method approximate, so an integral representation or a transform inversion is exact while an asymptotic expansion is not.
  • approximate: the algorithm introduces a heuristic, an asymptotic expansion, a decomposition, or a statistical estimate.
  • bound: the algorithm returns a formal one-sided bound on the metric, not a point estimate: the value is guaranteed to lie on the stated side of the exact one, and the two sides of a family bracket it. The side is read off the method label and printed with it ('gb.upper' -> 'upper bound').
  • randomized: the algorithm consumes pseudo-random numbers, so two runs agree only if the seed does.

Perfect sampling (cftp) is classified by the law it samples from, which is the stationary one, hence exact; the ordinary simulators are approximate because a finite horizon leaves warm-up bias on top of the sampling error.

The C++ CLI keeps its own key=value banner grammar, so this classification is printed there as type=exact,deterministic rather than inside the bracketed field list the other three codebases use.

Definition in file method_type.h.