LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::mva::MvaOptions Struct Reference

The options SolverMVA reads. More...

#include <line/solvers/mva/mva_types.h>

Collaboration diagram for line::mva::MvaOptions:

Public Attributes

std::string method = "default"
double tol = 1e-4
double iter_tol = 1e-6
int iter_max = 1000
std::string multiserver = "default"
std::string highvar = "default"
std::string np_priority = "default"
 options.config.np_priority: which non-preemptive priority correction a HOL station takes.
std::string fork_join = "default"
 options.config.fork_join: which fork-join arm the fixed point takes.
bool has_init_sol = false
 Warm start, (nstations x nchains) chain-aggregated queue lengths; empty for none.
bool base_has_fork = false
 Whether the model this solve came from has a Fork, which the model handed to the analyzer no longer does.
std::string rqt_regime
 options.config.rqt_regime: which service adaptation regime of the Robust Queueing Theory Table 1 the RQT analyzer takes.
bool rqt_exact = false
 options.config.rqt_exact: use the exact worst case over the uncertainty sets instead of the closed-form bound of Theorem 3.
double rqt_alpha_a = 0.0
 options.config.rqt_alpha_a: arrival tail coefficient in (1,2]; 0 = 2.
double rqt_alpha_s = 0.0
 options.config.rqt_alpha_s: service tail coefficient in (1,2]; 0 = 2.
std::vector< std::vector< double > > interlock
 options.config.interlock: the interlocked-flow matrix of Franks (1999), Eq.

Detailed Description

The options SolverMVA reads.

Defaults are SolverOptions('MVA').

Definition at line 31 of file mva_types.h.

Member Data Documentation

◆ base_has_fork

bool line::mva::MvaOptions::base_has_fork = false

Whether the model this solve came from has a Fork, which the model handed to the analyzer no longer does.

mvaDispatch.m tests self.model.hasFork – the BASE model – to force default onto AMVA, and by the time the analyzer runs the fork-join transform has already replaced the fork with a router, so the struct in hand cannot answer the question. Testing the transformed struct instead silently sends the model to exact mixed MVA, which the auxiliary near-zero-rate open classes degenerate.

Definition at line 65 of file mva_types.h.

Referenced by line::mva::solver_mva_run_analyzer(), and line::nc::solver_nc_solve().

◆ fork_join

std::string line::mva::MvaOptions::fork_join = "default"

options.config.fork_join: which fork-join arm the fixed point takes.

default, mmt and fjt are the MMT transform of fj_mmt.h; ht and heidelberger-trivedi are the Heidelberger-Trivedi transform of fj_ht.h, which is closed-model only. Read only by a model with a Fork.

Definition at line 51 of file mva_types.h.

Referenced by line::nc::solver_nc_solve().

◆ has_init_sol

bool line::mva::MvaOptions::has_init_sol = false

Warm start, (nstations x nchains) chain-aggregated queue lengths; empty for none.

Definition at line 53 of file mva_types.h.

◆ highvar

std::string line::mva::MvaOptions::highvar = "default"

Definition at line 37 of file mva_types.h.

◆ interlock

std::vector<std::vector<double> > line::mva::MvaOptions::interlock

options.config.interlock: the interlocked-flow matrix of Franks (1999), Eq.

(4.7), CLASS-indexed and row-major (nclasses x nclasses). interlock[r][s] is the share of the class-s queue that a class-r arrival must not see, because that work was itself caused by the class-r request. Empty for every model but the layers of SolverLN. It is kept CLASS-indexed, not chain-indexed, so that a later chain refresh cannot leave it stale: the analyzer aggregates it to chains against the struct it is about to solve. Doubles rather than T because the probabilities come from a fixed-point iterate and never enter an exact computation of their own.

Definition at line 91 of file mva_types.h.

◆ iter_max

◆ iter_tol

double line::mva::MvaOptions::iter_tol = 1e-6

◆ method

◆ multiserver

std::string line::mva::MvaOptions::multiserver = "default"

Definition at line 36 of file mva_types.h.

Referenced by line::mva::solver_amva().

◆ np_priority

std::string line::mva::MvaOptions::np_priority = "default"

options.config.np_priority: which non-preemptive priority correction a HOL station takes.

default and cl are Chandy-Lakshmi, which discounts the higher-priority utilization by the Linearizer's throughput difference; shadow is Sevcik's shadow server, which does not.

Definition at line 44 of file mva_types.h.

◆ rqt_alpha_a

double line::mva::MvaOptions::rqt_alpha_a = 0.0

options.config.rqt_alpha_a: arrival tail coefficient in (1,2]; 0 = 2.

Definition at line 77 of file mva_types.h.

◆ rqt_alpha_s

double line::mva::MvaOptions::rqt_alpha_s = 0.0

options.config.rqt_alpha_s: service tail coefficient in (1,2]; 0 = 2.

Definition at line 79 of file mva_types.h.

◆ rqt_exact

bool line::mva::MvaOptions::rqt_exact = false

options.config.rqt_exact: use the exact worst case over the uncertainty sets instead of the closed-form bound of Theorem 3.

Definition at line 75 of file mva_types.h.

◆ rqt_regime

std::string line::mva::MvaOptions::rqt_regime

options.config.rqt_regime: which service adaptation regime of the Robust Queueing Theory Table 1 the RQT analyzer takes.

Empty and independent leave the service distribution unknown; normal and pareto are the service-dependent fits.

Definition at line 72 of file mva_types.h.

◆ tol


The documentation for this struct was generated from the following file: