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

Revenue sensitivities and implied costs of a loss network. More...

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <string>
#include <vector>
#include "line/api/lossn/lossn_erlangfp.h"
#include "line/api/lossn/lossn_kr.h"
#include "line/api/lossn/lossn_links.h"
#include "line/api/lossn/lossn_manjunath.h"
#include "line/api/lossn/lossn_mci.h"
#include "line/api/lossn/lossn_rec.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/linalg.h"
#include "line/util/lu.h"
#include "line/util/matrix.h"
Include dependency graph for lossn_revsens.h:

Go to the source code of this file.

Classes

struct  line::lossn::LossnRevsensResult< T >
 Result of lossn_revsens. More...

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::lossn

Functions

template<class T>
LossnRevsensResult< T > line::lossn::lossn_revsens (const std::vector< T > &nu, const Matrix< T > &A, const std::vector< T > &C, const std::vector< T > &w, const std::string &method="exact", const LossnMciOptions< T > &mciopt=LossnMciOptions< T >(), std::uint64_t seed=0)
 Revenue sensitivities and implied costs of a loss network.

Detailed Description

Revenue sensitivities and implied costs of a loss network.

Templated port of matlab/src/api/lossn/lossn_revsens.m.

A route-r call in progress earns revenue at rate w_r, so the long-run revenue rate is W = sum_r w_r E[n_r]. Under the product form the sensitivity of W to the offered load of route k is (Kelly 1988; Ross 1995, Sec. 6.3)

 dW/dnu_k = (1 - B_k) (w_k - c_k),   c_k = W(C) - W(C - A e_k),

where the implied cost c_k is the revenue lost by permanently removing the units one route-k call holds. A positive dW_k means that admitting more route-k traffic raises the revenue; a negative value means route k displaces more valuable traffic than it earns. The link implied cost clink(j,r) = W(C) - W(C - A(j,r) e_j) is the revenue lost by removing the units of one route-r call from link j alone.

Methods:

  • 'exact' (also 'manjunath', 'ms'): implied costs by one exact solution per route and per distinct (link, requirement) pair, needs integral A and C.
  • 'rec': as exact with MDD-rec, also for fractional A and C.
  • 'erlangfp': Kelly's approximation from the Erlang fixed point. The link implied costs solve the linear system c(j,k) = sum_l eta(j,l) [B_jl(C_j - A_jk) - B_jl(C_j)] (w_l - sum_{i ~= j} c(i,l)) with eta(j,l) the load of route l reduced by the other links and B_jl(.) the Kaufman-Roberts blocking of link j, and c_k = sum_j c(j,k), dW_k = prod_j (1 - E(j,k)) (w_k - c_k). It reproduces Ross Table 5.1.
  • 'mci': the score-function estimator dW/dnu_l = Cov(n_l, r(n))/nu_l of lossn_mci, with confidence intervals in ci.

ARITHMETIC. The fixed point and the Monte Carlo estimator are transcendental, so the header is gated on num_traits<T>::has_transcendental.

References: F. P. Kelly, "Routing in circuit-switched networks: optimization, shadow prices and decentralization", Adv. Appl. Probab. 20, 1988. K. W. Ross, "Multiservice Loss Models for Broadband Telecommunication Networks", Springer, 1995, Sec. 6.3 and Table 5.1.

See also
lossn_links, lossn_mci, lossn_erlangfp, lossn_kr

Definition in file lossn_revsens.h.