1function [
MMAP]=m3afit_compress(
MMAP, varargin)
2% [
MMAP] = m3afit_compress(
MMAP,
'option1',val1,
'option2',val2,...)
5% Compresses the representation of a Marked Markovian Arrival Process
6% based on the M3A toolbox.
9%
MMAP - a feasible
MMAP={D0,D1,D11,...,D1c}
15% D0=rand(3); D11 = rand(3); D12=rand(3); D1=D11+D12;
16%
MMAP = {D0,D1,D11,D12};
18% MMAP_compressed = m3afit_compress(
MMAP,
'Method',0) % two-state AMAP compression
21%
'Method' - 0, 2-state acyclic MAP (AMAP) compression
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
42for i = 1:size(OptionNames,1)
43 options.(deblank(OptionNames(i,:)))=[];
49% Parse Optional Parameters
50options=ParseOptPara(options,OptionNames,OptionTypes,OptionValues,varargin);
51options.NumClasses = length(
MMAP)-2;
52%% fitting algorithm run parameterization
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);
61 fprintf(1,'Unsupported option.\n');
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);
70 fprintf(1,
'Output: M3A could *not* obtain a valid MMAP.\n');