Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function SP_LR_3_KHMELEV
- % Variant 16
- pn = [0.355, 0.356]; % veroyatnost', s kotoroy N-objekt porojdaet (1) N-objekt - Sn1 ili (2) N-objekta - Sn2
- pm1 = 0.302; % veroyatnost', s kotoroy M-objekt porojdaet M-objekt - Sm1
- gamma = [0.25, 0.20];
- pn11 = 1 - pn(1) - pn(2); % veroyatnost', s kotoroy N-objekt porojdaet odin N-objekt i odin M-objekt - Sn3
- pm0 = 1 - pm1; % veroyatnost', s kotoroy M-objekt nichevo ne porojdaet - Sm0
- N = M = 0; % chislo objektov do momenta vremeni t - vremeni rojdeniya objekta
- param = lambda(N, M);
- Type = {};
- d = 1;
- TABLE_1 = {};
- i = 1; I(i) = i;
- t_sob(i) = 0;
- Type{i} = 'Sn(1)'; % sobytie - okonchanie jizni lyubogo iz objektov i odnovremennoe poyavlenie novyh objektov
- t_z1(i) = exprnd(1/param, 1, 1); % Время будем считать с помощью exprnd(1/lambda, 1, N); где N, видимо, равен 1: нам же нужен один элемент на выходе
- t_z2(i) = -1; % priznal togo, chto poyavilsya tol'ko odin objekt
- N += 1;
- C = [N, M]; % = [1, 0]
- t_oz(i) = t_z1(1);
- J_kz(i) = 1;
- Gen_kz{i} = 'N';
- TABLE_2 = {};
- j = 1; J(j) = j;
- J(j) = j;
- Gen{j} = 'N'; % ili 'M'
- t_b(j) = 0;
- t_l(j) = t_z1(1);
- t_d(j) = t_b(1) + t_l(1);
- Des_1(j) = Des_2(j) = -1;
- %TABLE_1{i} = {i, t_sob, Type, t_z1, t_z2, C, t_oz, J_kz, Gen_kz};
- w = rand(1);
- i = j += 1;
- w = 0.9
- Type{i} = whichType(Gen_kz{i-1}, w);
- i += 1;
- w = 0.4
- Type{i} = whichType(Gen_kz{i-1}, w);
- i += 1;
- w = 0.1
- Type{i} = whichType(Gen_kz{i-1}, w);
- i += 1;
- w = rand(1);
- Type{i} = whichType(Gen_kz{i-1}, w);
- w = rand(1);
- Type{i} = whichType(Gen_kz{i-1}, w);
- TABLE_1 = {{'nomer:', I}, {'mom sob-ya:', t_sob}, {'tip sob-ya:', Type}, {'vremya jizni 1', t_z1}, {'vremya jizni 2', t_z2}, {'sostoyanie sistemy', C}, {'vremya do sled sob-ya', t_oz}, {'nomer objekta, u kot raneye konec', J_kz}, {'ego vid', Gen_kz}}
- TABLE_2 = {{'nomer:', J}, {'Vid:', Gen}, {'mom poyavl:', t_b}, {'vremya jizni:', t_l}, {'mom izch:', t_d}, {'potomok 1:', Des_1}, {'potomok 2:', Des_2}}
- %______________________________________used functions:
- function S = whichType(GEN, w)
- S = ' ';
- switch GEN
- case 'N'
- N -= 1;
- if w < pn(1)
- S = 'Sn(1)'; % N-objekt porojdaet 1 N-objekt
- table_fill(S);
- j += 1;
- elseif w < pn(1) + pn(2)
- S = 'Sn(2)'; % N-objekt porojdaet 2 N-objekta
- table_fill(S);
- j += 1;
- elseif w <= 1
- S = 'Sn(3)'; % N-objekt porojdaet odin N-objekt i odin M-objekt
- table_fill(S);
- j += 1;
- endif
- case 'M'
- M -= 1;
- if 0 <= w < pm1
- S = 'Sm(1)'; % M-objekt porojdaet M-objekt
- table_fill(S);
- j += 1;
- else
- S = 'Sm(0)'; % M-objekt nichevo ne porojdaet, poetomu j ne uvelichivayem
- table_fill(S);
- endif
- endswitch
- %______________________________________
- function table_fill(S)
- switch S
- case 'Sm(0)'
- I(i) = i;
- t_sob(i) = t_sob(i-1) + t_oz(i-1);
- Type{i} = S;
- t_z1(i) = t_z2(i) = -1;
- C(i, :) = [N, M];
- t_oz(i) = t_z2(i-1) - t_oz(i-1);
- J_kz(i) = J(end);
- Gen_kz(i) = 'N';
- d += 1;
- case 'Sm(1)'
- M += 1;
- param = mu(N, M);
- t_M = exprnd(1/param, 1, 1);
- % tablica 1:
- t_z1(i) = t_M;
- Des_1(i-1) = j; % tablica 2, proshlaya stroka
- I(i) = i;
- t_sob(i) = t_sob(i-1) + t_oz(i-1);
- Type{i} = S;
- t_z2(i) = -1;
- C(i, :) = [N, M];
- t_oz(i) = min( t_z1(i), t_d(j) - t_sob(i) )
- if t_oz == t_d(j) - t_sob(i)
- J_kz(i) = j;
- Gen_kz(i) = 'N';
- else
- J_kz(i) = j+1;
- Gen_kz(i) = 'M';
- endif
- % tablica 2:
- d = J(j) = j;
- Gen(j) = 'M';
- t_b(j) = t_sob(i);
- t_l(j) = t_z1(i);
- t_d(j) = t_b(j) + t_l(j);
- Des_1(j) = Des_2(j) = -1;
- case 'Sn(1)'
- N += 1;
- param = lambda(N, M);
- t_N = exprnd(1/param, 1, 1);
- % tablica 1:
- t_oz(i) = t_z1(i) = t_N;
- Des_1(i-1) = j; % tablica 2, proshlaya stroka
- I(i) = i;
- t_sob(i) = t_sob(i-1) + t_oz(i-1);
- Type{i} = S;
- t_z2(i) = -1;
- C(i, :) = [N, M];
- J_kz(i) = J(end);
- Gen_kz(i) = 'N';
- % tablica 2, tekuschaya stroka:
- d = J(j) = j;
- t_b(j) = t_sob(i);
- t_l(j) = t_z1(i);
- t_d(j) = t_b(j) + t_l(j);
- Gen(j) = 'N';
- j += 1; J(j) = j;
- t_b(j) = t_sob(i);
- t_l(j) = t_z2(i);
- t_d(j) = t_b(j) + t_l(j);
- Des_1(j) = Des_2(j) = -1;
- case 'Sn(2)'
- N += 2;
- param = lambda(N, M);
- t_N1 = exprnd(1/param, 1, 1);
- param = lambda(N, M);
- t_N2 = exprnd(1/param, 1, 1);
- % tablica 1:
- if t_N1 < t_N2
- t_z1(i) = t_N1;
- t_z2(i) = t_N2;
- else
- t_z1(i) = t_N2;
- t_z2(i) = t_N1;
- endif
- t_oz(i) = t_z1(i);
- Des_1(i-1) = j; % tablica 2, proshlaya stroka
- Des_2(d) = Des_1(i-1) + 1; % tablica 2, proshlaya stroka
- I(i) = i;
- t_sob(i) = t_sob(i-1) + t_oz(i-1);
- Type{i} = S;
- C(i, :) = [N, M];
- J_kz(i) = J(end);
- Gen_kz(i) = 'N';
- % tablica 2, tekuschaya stroka:
- d = J(j) = j;
- t_b(j) = t_sob(i);
- t_l(j) = t_z1(i);
- t_d(j) = t_b(j) + t_l(j);
- Gen(j) = Gen(j+1) = 'N';
- j += 1; J(j) = j;
- t_b(j) = t_sob(i);
- t_l(j) = t_z2(i);
- t_d(j) = t_b(j) + t_l(j);
- Des_1(j) = Des_2(j) = -1;
- case 'Sn(3)'
- N += 1;
- M += 1;
- param = lambda(N, M);
- t_N = exprnd(1/param, 1, 1);
- param = mu(N, M);
- t_M = exprnd(1/param, 1, 1);
- % tablica 1:
- if t_N < t_M
- t_z1(i) = t_N;
- t_z2(i) = t_M;
- Gen_kz(i) = 'N';
- % tablica 2:
- Gen(j) = 'N';
- Gen(j+1) = 'M';
- else
- t_z1(i) = t_M;
- t_z2(i) = t_N;
- Gen_kz(i) = 'M';
- % tablica 2:
- Gen(j) = 'M';
- Gen(j+1) = 'N';
- endif
- t_oz(i) = t_z1(i);
- Des_1(i-1) = j; % tablica 2
- Des_2(d) = Des_1(i-1) + 1; % tablica 2
- I(i) = i;
- t_sob(i) = t_sob(i-1) + t_oz(i-1);
- Type{i} = S;
- C(i, :) = [N, M];
- J_kz(i) = j
- % tablica 2:
- d = J(j) = j;
- t_b(j) = t_sob(i);
- t_l(j) = t_z1(i);
- t_d(j) = t_b(j) + t_l(j);
- Des_1(j) = Des_2(j) = -1;
- j += 1; J(j) = j;
- t_b(j) = t_sob(i);
- t_l(j) = t_z2(i);
- t_d(j) = t_b(j) + t_l(j);
- Des_1(j) = Des_2(j) = -1;
- endswitch
- endfunction
- % function d = descendants
- % if Type{i-1} == 'Sn(2)' || Type{i-1} == 'Sn(3)'
- % d = J(end-1);
- % else
- % d = J(end);
- % endif
- % endfunction
- endfunction
- function l = lambda(N, M) % pokazatel'noe raspredelenie dlya vremeni jizni N-objekta
- l = 0;
- l = gamma(1)*(N + 2*M) + 0.1;
- endfunction
- function m = mu(N, M) % pokazatel'noe raspredelenie dlya vremeni jizni M-objekta
- m = 0;
- m = gamma(2)*(3*N + M);
- endfunction
- %______________________________________konec osnovnoy funkcii
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement