LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
ctmc_signal_lossy.m
1function lossy = ctmc_signal_lossy(sn, arvRates, probSysState, wset, isf)
2% LOSSY = CTMC_SIGNAL_LOSSY(SN, ARVRATES, PROBSYSSTATE, WSET, ISF)
3%
4% Classes whose jobs can be annihilated by a G-network signal at the stateful
5% node ISF, as a 1 x nclasses logical row. Such a job leaves the station
6% without a service completion, so the arrival-based utilization estimator
7% (offered load) is invalid there and only the departure-based (carried load)
8% estimator UN = T * E[S] / c is meaningful.
9%
10% A signal class R is active at ISF when its stationary arrival rate there is
11% positive. A targeted signal (SN.SIGNALTARGET(R) >= 1) only removes that
12% class; an untargeted one is class-agnostic and removes any non-signal class,
13% matching State.afterEventStationSignal, MAM and LDES.
14%
15% Copyright (c) 2012-2025, Imperial College London
16% All rights reserved.
17
18K = sn.nclasses;
19lossy = false(1,K);
20if ~isfield(sn,'issignal') || isempty(sn.issignal) || ~any(sn.issignal)
21 return
22end
23if isempty(arvRates) || isempty(wset)
24 return
25end
26issignal = logical(sn.issignal(:)');
27for r=1:K
28 if ~issignal(r)
29 continue
30 end
31 if probSysState*arvRates(wset,isf,r) <= 0
32 continue
33 end
34 tgt = -1;
35 if isfield(sn,'signaltarget') && numel(sn.signaltarget) >= r
36 tgt = sn.signaltarget(r);
37 end
38 if tgt >= 1 && tgt <= K
39 lossy(tgt) = true;
40 else
41 lossy(~issignal) = true;
42 end
43end
44end
Definition Station.m:245