Utilities and Constants

Constants and enumerations

These modules provide utility functions, constants, and enumerations.

Constants and Enumerations (matlab/src/lang/constant/)

The constants module defines enumerations and global constants used throughout the LINE Solver package.

Scheduling Strategies (SchedStrategy)

FCFS

First-Come First-Served

LCFS

Last-Come First-Served (non-preemptive)

LCFSPR

Last-Come First-Served Preemptive-Resume

LCFSPI

Last-Come First-Served Preemptive-Independent

PS

Processor Sharing (egalitarian)

DPS

Discriminatory Processor Sharing

GPS

Generalized Processor Sharing

INF

Infinite Server (delay station)

HOL

Head-of-Line priority (non-preemptive)

SJF

Shortest Job First

LJF

Longest Job First

SEPT

Shortest Expected Processing Time

LEPT

Longest Expected Processing Time

SIRO

Service In Random Order

POLLING

Polling-based service

EXT

External (arrivals from outside)

FORK

Fork behavior

REF

Reference (for reference stations)

Routing Strategies (RoutingStrategy)

DISABLED

Routing disabled

FIRING

Petri net transition firing

JSQ

Join Shortest Queue

KCHOICES

Power of k choices

PROB

Probabilistic routing

RAND

Random (uniform) routing

RROBIN

Round-robin routing

WRROBIN

Weighted round-robin

Process Types (ProcessType)

EXP

Exponential

ERLANG

Erlang

HYPEREXP

Hyperexponential

APH

Acyclic Phase-Type

PH

Phase-Type

COXIAN

Coxian

DET

Deterministic

UNIFORM

Uniform

GAMMA

Gamma

PARETO

Pareto

WEIBULL

Weibull

LOGNORMAL

Log-normal

MAP

Markovian Arrival Process

MMPP2

Two-state MMPP

REPLAYER

Trace replayer

TRACE

Generic trace

DISABLED

Disabled process

IMMEDIATE

Instantaneous

Node Types (NodeType)

SOURCE

Arrival source

SINK

Departure sink

QUEUE

Service queue

DELAY

Infinite server station

ROUTER

Routing node

FORK

Fork node

JOIN

Join node

CACHE

Cache station

CLASSSWITCH

Class-switching node

LOGGER

Logging node

PLACE

Petri net place

TRANSITION

Petri net transition

Job Class Types (JobClassType)

OPEN

Open class (external arrivals)

CLOSED

Closed class (fixed population)

DISABLED

Disabled class

Service Strategies (ServiceStrategy)

LI

Load-Independent service

LD

Load-Dependent service

Solver Types (SolverType)

MVA

Mean Value Analysis

CTMC

Continuous-Time Markov Chain

FLUID

Fluid approximation

MAM

Matrix-Analytic Methods

NC

Normalizing Constant

SSA

Stochastic Simulation Algorithm

JMT

Java Modelling Tools

AUTO

Automatic selection

LQNS

Layered QN Solver

QNS

QN Solver

LN

Layered Network

ENV

Random Environment

Metric Types (MetricType)

ArvR

Arrival rate

DropRate

Drop rate

FCRMemOcc

FCR memory occupation

FCRWeight

FCR total weight

FJQLen

Fork-join number of customers

FJRespT

Fork-join response time

QLen

Number of customers (queue length)

QueueT

Queue time

ResidT

Residence time

RespT

Response time

RespTSink

Response time per sink

SysQLen

System number of customers

SysRespT

System response time

SysTput

System throughput

Tput

Throughput

TputSink

Throughput per sink

TranQLen

Transient number of customers

TranRespT

Transient response time

TranTput

Transient throughput

TranUtil

Transient utilization

Util

Utilization

Drop Strategies (DropStrategy)

WAITQ

Waiting queue (infinite buffer)

DROP

Drop arriving customers when full

BAS

Blocking after service

Replacement Strategies (ReplacementStrategy)

LRU

Least Recently Used

FIFO

First-In First-Out

RR

Random Replacement

SFIFO

Static FIFO

MRU

Most Recently Used

LFU

Least Frequently Used

Join Strategies (JoinStrategy)

STD

Standard join (wait for all)

PARTIAL

Partial join (k-of-n)

GUARD

Guarded join

Call Types (CallType)

SYNC

Synchronous call

ASYNC

Asynchronous call

Activity Precedence Types (ActivityPrecedenceType)

PRE_SEQ

Sequential precedence

PRE_AND

AND split/join

PRE_OR

OR split/join

POST_SEQ

Post-sequential

POST_AND

Post-AND

POST_OR

Post-OR

POST_LOOP

Post-loop

Polling Types (PollingType)

EXHAUSTIVE

Exhaustive polling

GATED

Gated polling

KLIMITED

K-limited polling

Verbose Levels (VerboseLevel)

SILENT

No output

STD

Standard output

DEBUG

Debug output

GlobalConstants

The GlobalConstants class provides global configuration options:

CoarseTol

Coarse tolerance for comparisons (default: 1e-3)

FineTol

Fine tolerance for comparisons (default: 1e-6)

Zero

Near-zero threshold (default: 1e-14)

Immediate

Immediate service rate (default: Inf)

MaxInt

Maximum integer value (default: 2147483647)

Usage Examples

Setting Scheduling Strategy

model = Network('Example');
queue = Queue(model, 'Queue1', SchedStrategy.PS);  % Processor Sharing

Setting Routing Strategy

model.link(Network.serialRouting(source, queue, sink));
% or use probabilistic routing
P = model.initRoutingMatrix();
P{class1}(source, queue) = 1.0;
P{class1}(queue, sink) = 1.0;
model.link(P);

Setting Distribution Type

queue.setService(jobclass, Exp(1.0));       % Exponential
queue.setService(jobclass, Erlang(2, 0.5)); % Erlang
queue.setService(jobclass, HyperExp([0.5 0.5], [1.0 2.0])); % Hyperexponential