![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Knessl-Tier asymptotic expansion of the normalizing constant. More...
#include <cmath>#include <cstddef>#include <vector>#include "line/api/pfqn/pfqn_aql.h"#include "line/api/pfqn/pfqn_asympt_common.h"#include "line/api/pfqn/pfqn_bs.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/lu.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::pfqn::KtResult< T > |
| Return value of pfqn_kt, mirroring [G, lG, X, Q]. More... | |
Namespaces | |
| namespace | line |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| KtResult< T > | line::pfqn::pfqn_kt (const Matrix< T > &L0, const std::vector< T > &N0, const std::vector< T > &Z0) |
| Knessl-Tier asymptotic expansion of the normalizing constant. | |
| template<class T> | |
| KtResult< T > | line::pfqn::pfqn_kt (const Matrix< T > &L, const std::vector< T > &N) |
Knessl-Tier asymptotic expansion of the normalizing constant.
Templated port of matlab/src/api/pfqn/pfqn_kt.m, including the two fixes the MATLAB header documents (the think-time term, absent from stock pfqn_kt in both the exponent and the Hessian, and the evaluation of the exponent at the exact saddle point rather than at the AQL throughput). In LINE's convention Cauchy extraction plus steepest descent on
F(u) = sum_r Z_r u_r - sum_k log(1 - U_k) - sum_r N_r log u_r, U_k = L(k,:) u
gives log G = F(u*) - sum_r log u*_r - (R/2) log(2 pi) - (1/2) log det H with
H_rs = delta_rs N_r/u_r^2 + sum_k L_kr L_ks/(1 - U_k)^2
and u* the solution of N_r = u_r (Z_r + sum_k L_kr/(1 - U_k)), found by damped Newton from the AMVA throughput.
SELF-LOOPING CLASSES. A class that visits exactly one station and has no think time would drive U_k to 1. Extracting u_r^N_r from 1/(1-U_ist) is exact and leaves L(ist,r)^N_r with that station's factor raised to (1-V_ist)^-(1+N_r), so the class is dropped, the station replicated N_r times and N_r log L(ist,r) added to the exponent. Classes looping at the SAME station share one factor of exponent 1+sum N_r and add the multinomial (sum N_r)!/prod N_r!.
ARITHMETIC. Logarithms, an asymptotic expansion and a Newton iteration, so gated on num_traits<T>::has_transcendental.
Definition in file pfqn_kt.h.