![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Closing method for open and mixed non-product-form queueing networks, solved with the summation method. More...
#include <cstddef>#include <vector>#include "line/api/sum/sum_closed.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::sum::SumClosingResult< T > |
| Mirrors the [XN, QN, UN, RN, TN, it] return list of the MATLAB function. More... | |
| struct | line::sum::ClosingOptions |
| Closing controls; Kclosed is the population given to the open classes. More... | |
Namespaces | |
| namespace | line |
| namespace | line::sum |
Functions | |
| template<class T> | |
| SumClosingResult< T > | line::sum::sum_closing (const std::vector< T > &lambda0, const std::vector< T > &scva, const Matrix< T > &L, const std::vector< Servers > &mi, const Matrix< T > &scv, const std::vector< long > &N, const std::vector< T > &Z, const ClosingOptions &options=ClosingOptions()) |
| Closing method for open and mixed non-product-form queueing networks, solved with the summation method. | |
Closing method for open and mixed non-product-form queueing networks, solved with the summation method.
Templated port of matlab/src/api/sum/sum_closing.m, cross-checked against jar/src/main/java/jline/api/sum/Sum_closing.java.
The external world of the open classes is replaced by one extra -/G/1 station with demand 1/(Ropen lambda0_r) for open class r, service SCV equal to that class's interarrival SCV, and unit visit ratio. The resulting closed network is solved by sum_closed with a large closing population Kclosed for the open classes (5000 by default, the value recommended for the summation method). Closed classes pass through untouched, which is what makes the method applicable to mixed networks. The open-class throughput approaches lambda0 from below as Kclosed grows.
Reference: G. Bolch, S. Greiner, H. de Meer, K.S. Trivedi, Queueing Networks and Markov Chains, 2nd ed., Wiley, 2006, Sec. 10.1.5.
ARITHMETIC: it is a wrapper around sum_closed, whose bisection stops on a tolerance, so it carries the same has_transcendental gate. The closing itself is exact: it only builds one extra row of demands.
MATLAB marks the open classes by N(r) = Inf; here the class is open exactly when lambda0(r) > 0, and the N entry of an open class is ignored (it is overwritten by Kclosed), so no infinite population ever has to be represented in the number type.
Definition in file sum_closing.h.