![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Port of matlab/src/solvers/BA/solver_ba_qrf_analyzer.m, the adapter that bridges the sn struct to the QRF (Quadratic Reduction Framework) bounds. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <string>#include <utility>#include <vector>#include "line/api/mam/map_moment.h"#include "line/api/mapqn/mapqn_qr_bounds_bas.h"#include "line/api/mapqn/mapqn_qr_bounds_rsrd.h"#include "line/api/mapqn/mapqn_qrf_bas_nlp.h"#include "line/api/sn/sn_to_qrf_alpha.h"#include "line/api/sn/sn_to_qrf_blocking.h"#include "line/api/mapqn/mapqn_qrf_noblo.h"#include "line/lang/qn/network_struct.h"#include "line/solvers/ba/solver_ba_analyzer.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::ba |
Functions | |
| template<class T> | |
| BaSolution< T > | line::ba::solver_ba_qrf_analyzer (const qn::NetworkStruct< T > &L, const BaOptions &opt) |
| Port of solver_ba_qrf_analyzer. | |
Port of matlab/src/solvers/BA/solver_ba_qrf_analyzer.m, the adapter that bridges the sn struct to the QRF (Quadratic Reduction Framework) bounds.
WHAT THE ADAPTER IS FOR. qrf_noblo_* speaks in MAPs, phase counts and a station-to-station routing matrix, not in a NetworkStruct; the whole of this file is that translation plus the reconstruction of [Q,U,R,T,C,X] from the utilizations the optimizer returns. The optimization itself lives in api/mapqn/mapqn_qrf_noblo.h and is not repeated here.
WHAT IT REFUSES AND WHY. The qrf_noblo_* formulation models every station as ONE server and has no infinite-server notion, so a delay station reaches the program as an unbounded direction and a c>1 station solved as c=1 is not a bound in either direction. Both are refused by name, as the reference and the Python twin do, rather than answered wrongly.
THE THROUGHPUT COMES FROM A UTILIZATION, NOT FROM THE REFERENCE STATION. UN_qrf(i) is P(n_i >= 1) marginalised over phase, so U_i = X V_i S_i is exact at a single server and any loaded station determines X. Inverting instead at the reference station assumes R == S there, which holds only for an infinite server and returned an X above the bottleneck capacity.
Definition in file solver_ba_qrf_analyzer.h.