function R = generateTask(Mt,St,N,M,Tend)
% R = generateTask(Mt,St,N,M,Tend)
% genera una realizzazione dei task e la salva in TaskRealization.mat.
% Mt = stuttura dei tempi medi di interarrivo.
% St = struttura dei tempi medi di servizio.
% N = numero agenti.
% M = numero aree.
% Tend = ultimo istante di simulazione.

R.op = cumsum(exprnd(Mt.op,[Tend/Mt.op 1]));
R.trk = cumsum(exprnd(Mt.trk,[Tend/Mt.trk 1])); 
R.str = cumsum(exprnd(Mt.str,[Tend/Mt.str 1])); 
R.op = [R.op exprnd(St.op,size(R.op)) randint(length(R.op),1,[1,N])];
R.trk = [R.trk exprnd(St.trk,size(R.trk)) randint(length(R.trk),1,[1,M])];
R.str = [R.str exprnd(St.str,size(R.str)) randint(length(R.str),1,[1,M])];
save TaskRealization.mat Mt St R;
end