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

Maximum-entropy algorithm for mixed open/closed multiclass networks. More...

#include <cstddef>
#include <vector>
#include "line/api/me/me_cqn.h"
#include "line/api/me/me_oqn.h"
#include "line/api/me/me_types.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for me_mqn.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::me

Functions

template<class T>
MeResult< T > line::me::me_mqn (std::size_t M, std::size_t R, const std::vector< char > &open_classes, const Matrix< T > &lambda0, const Matrix< T > &Ca0, const std::vector< long > &N, const Matrix< T > &mu, const Matrix< T > &Cs, const std::vector< Matrix< T > > &P, const std::vector< long > &c, const std::vector< long > &refstat, const std::vector< char > &insens, const MeOptions &opt=MeOptions())
 Maximum-entropy algorithm for mixed open/closed multiclass networks.

Detailed Description

Maximum-entropy algorithm for mixed open/closed multiclass networks.

Templated port of matlab/src/api/me/me_mqn.m, cross-checked against jar/src/main/java/jline/api/nc/Me_mqn.java. Kouvatsos (1994) notes that the closed two-stage treatment carries over to mixed networks (Section 2.3) but gives no algorithm; both LINE implementations compose the open (3.2) and closed (3.3) algorithms by product-form-style conditioning:

  1. the open classes are solved by the open GE-type fixed point on the station set, ignoring the closed classes;
  2. the closed classes are solved on servers whose capacity is reduced by the open-class utilization, mu_c(i,r) = mu(i,r) (1 - rho_o(i));
  3. the open mean queue lengths are inflated by the closed occupancy, L_o(i,r) <- L_o(i,r) (1 + Lc(i)), at single-server stations.

Steps 2-3 are exact in the BCMP product-form limit, where they reduce to the classical mixed MVA treatment, and are GE-type approximations otherwise. Only single-server and infinite-server stations are supported.

ARITHMETIC: composes two tolerance-stopped fixed points. static_assert(num_traits<T>::has_transcendental)

Definition in file me_mqn.h.