LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
dmap_geo_mul_sum.m
1function d = dmap_geo_mul_sum(DMAPA,DMAPB,alA,alB)
2% d=dmap_geo_mul_sum(DMAPA,DMAPB,alA,alB) - Geometric sum for
3% autocorrelation distance computation of discrete-time MAPs.
4%
5% Reference (continuous-time formulation):
6% G. Horvath, "Measuring the distance between MAPs and some
7% applications," in Proc. ASMTA 2015, LNCS 9081, pp. 95-109.
8% https://link.springer.com/chapter/10.1007/978-3-319-18579-8_8
9%
10% Discrete-time extension by QORE Lab (https://qore.doc.ic.ac.uk/)
11%
12% Input:
13% DMAPA: first D-MAP in the form of {D0,D1}
14% DMAPB: second D-MAP in the form of {D0,D1}
15% alA,alB: (optional) stationary vectors at arrival epochs
16%
17% Output:
18% d: geometric sum value
19
20D0A=DMAPA{1}; D1A=DMAPA{2};
21D0B=DMAPB{1}; D1B=DMAPB{2};
22NA = size(D0A,1); NB = size(D0B,1);
23if nargin<4, alB=dtmc_solve(inv(eye(NB)-D0B)*D1B); end
24if nargin<3, alA=dtmc_solve(inv(eye(NA)-D0A)*D1A); end
25
26IA = eye(NA); IB = eye(NB);
27D0Ai = inv(IA-D0A);
28D0Bi = inv(IB-D0B);
29
30PAh = D0Ai*D1A - ones(NA,1)*alA;
31PBh = D0Bi*D1B - ones(NB,1)*alB;
32
33M = eye(NA*NB) - kron(PBh', PAh);
34if rcond(M)<1e-10
35 d = 1/rcond(M);
36else
37 X = dlyap(PAh, PBh, sum(D0Ai,2)*(alB*D0Bi));
38 d = sum(alA*D0Ai*X*D0Bi);
39end
40end