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

Port of matlab/src/io/map2renv.m and matlab/src/io/MAPQN2RENV.m (python twin in api/io/converters.py): the Markov-modulated image of a network with MAP/MMPP/MMAP arrival or service processes as a queueing network in a random environment. More...

#include <cstddef>
#include <string>
#include <vector>
#include "line/api/sn/sn_map_modulation.h"
#include "line/lang/lang_types.h"
#include "line/lang/qn/environment.h"
#include "line/lang/qn/network_struct.h"
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for map2renv.h:

Go to the source code of this file.

Classes

struct  line::io::Map2RenvInfo< T >
 The INFO output of map2renv: how the stage set was assembled. More...

Namespaces

namespace  line
namespace  line::io

Functions

template<class T>
env::Environment< T > line::io::map2renv (const qn::NetworkStruct< T > &base, Map2RenvInfo< T > *info=nullptr, std::size_t max_stages=64)
template<class T>
env::Environment< T > line::io::mapqn2renv (const qn::NetworkStruct< T > &base, Map2RenvInfo< T > *info=nullptr, std::size_t max_stages=64)
 Retained name for the transformation now implemented by map2renv, which generalizes it from a single MMPP2 service process to any number of MAP, MMPP2 or MMAP processes of arbitrary phase order.

Detailed Description

Port of matlab/src/io/map2renv.m and matlab/src/io/MAPQN2RENV.m (python twin in api/io/converters.py): the Markov-modulated image of a network with MAP/MMPP/MMAP arrival or service processes as a queueing network in a random environment.

Every non-renewal process is a point process modulated by the CTMC with generator Q = D0 + D1, whose conditional intensity in phase k is lambda(k) = sum_j D1(k,j). The transformation freezes each phase into an environment stage in which the process is the Poisson process of that intensity, and lets the environment switch stages at the rates of Q. With P modulated processes the stage set is the Cartesian product of their phase spaces and the environment generator is the Kronecker sum of the individual Q's, so only one process changes phase at a time. The image is exact in structure for an MMPP (diagonal D1); for a general MAP the phase jumps AT an event epoch are aggregated into Q and their correlation with the event stream is lost. Populations are carried across stage switches unchanged (identity reset), as a phase switch moves no job.

ARITHMETIC: field, through sn_map_modulation and the struct refresh.

Definition in file map2renv.h.