LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
m3afit_compress.m
1function [MMAP]=m3afit_compress(MMAP, varargin)
2% [MMAP] = m3afit_compress(MMAP,'option1',val1,'option2',val2,...)
3%
4% DESCRIPTION
5% Compresses the representation of a Marked Markovian Arrival Process
6% based on the M3A toolbox.
7%
8% INPUT
9% MMAP - a feasible MMAP={D0,D1,D11,...,D1c}
10%
11% OUTPUT
12% MMAP - compressed MMAP
13%
14% EXAMPLE
15% D0=rand(3); D11 = rand(3); D12=rand(3); D1=D11+D12;
16% MMAP = {D0,D1,D11,D12};
17% MMAP = mmap_normalize(MMAP);
18% MMAP_compressed = m3afit_compress(MMAP,'Method',0) % two-state AMAP compression
19%
20% OPTION LIST
21% 'Method' - 0, 2-state acyclic MAP (AMAP) compression
22%
23% REFERENCES
24% [1] A. Sansottera, G. Casale, P. Cremonesi. Fitting Second-Order Acyclic
25% Marked Markovian Arrival Processes. IEEE/IFIP DSN 2013.
26% [2] G. Casale, A. Sansottera, P. Cremonesi. Compact Markov-Modulated
27% Models for Multiclass Trace Fitting. European Journal of Operations
28% Research, 2016.
29%
30
31%% options
32OptionNames = [
33 'Method ';
34 'NumStates ';
35 ];
36
37OptionTypes = [
38 'numeric';
39 'numeric'];
40
41OptionValues = [];
42for i = 1:size(OptionNames,1)
43 options.(deblank(OptionNames(i,:)))=[];
44end
45
46% Default settings
47options.NumStates = 2;
48
49% Parse Optional Parameters
50options=ParseOptPara(options,OptionNames,OptionTypes,OptionValues,varargin);
51options.NumClasses = length(MMAP)-2;
52%% fitting algorithm run parameterization
53%N/A
54
55%% fitting
56if options.Method==0 % two-state AMAP compression
57 MMAPType=sprintf('%d-state AMAP[%d]',options.NumStates,options.NumClasses);
58 fprintf(1,'Init: M3A will search for a %s\n',MMAPType);
59 MMAP = mamap2m_fit_gamma_fb_mmap(MMAP);
60else
61 fprintf(1,'Unsupported option.\n');
62 MMAP={};
63 return
64end
65
66MMAPResType=sprintf('%d-state M3PP[%d]',length(MMAP{1}),size(MMAP,2)-2);
67if mmap_isfeasible(MMAP)
68 fprintf(1,'Output: M3A found a valid %s.\n',MMAPResType);
69else
70 fprintf(1,'Output: M3A could *not* obtain a valid MMAP.\n');
71end
72
73end