ZÁPADOČESKÁ UNIVERZITA V PLZNI Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky ------------------------------------------------------------------------------------------- Autor: Antonín Neumann Studijní číslo: A14N0139P Datum narození: 7. 9. 1989; {k = (3*7 + 3*3) mod 10 = (21 + 9) mod 10 = 30 mod 10 = 0} E-mail: neumann@students.zcu.cz Akademický rok: 2015/2016 ------------------------------------------------------------------------------------------- KIV/VSP Markovské náhodné procesy a systémy hromadné obsluhy (Okruh 2, úkol 0) # Zadání Do bufferu s neomezenou kapacitou přicházejí zprávy, doba mezi příchodem zpráv je náhodná a má exponenciální rozdělení s parametrem ? = 9. Zprávy jsou z bufferu vybírány (pokud tam nějaké jsou) opět náhodně, doba mezi po sobě jdoucími výběry zpráv je též náhodná a má exponenciální rozdělení s parametrem µ = 10. S využitím markovského modelu určete: * střední počet zpráv, které se v bufferu nachází, * kolik procent času při dlouhodobém sledování bude buffer prázdný, * jak často (průměrná perioda) se buffer úplně vyprázdní. Poznámka: Pro numerický výpočet pomocí nástroje MARKOV počet stavů modelu nějak (rozumně) omezte. # Graf přechodů Graf přechodů je uveden v příloze 1. # Soustava rovnic pro určení limitních pravděpodobností stavů modelu Soustava rovnic je uvedena v příloze 2. # Popis modelu bufferu v programu Markov2 Vzhledem k nekonečné velikosti bufferu, byla pro program Markov 2 jeho velikost omezena na 1200 požadavků, řešení takto omezeného modelu se ukázalo jako bezproblémové. ## Zdrojový kód module buffer [1200]; #define size 1200 #define lambda 9.0 #define mu 10.0 for (i ;0; size-2){ [i]->lambda [i+1]; } for (i; 0; size-2){ [i+1]->mu [i]; } # Zjištění požadovaných veličin Všechny požadované veličiny byly zjištěny pomocí programu Markov 2. Vykonání dotazu vždy předchází načtení modulu a definování velikosti fronty: load "buffer" as buf define size := 1200; ///--- zde dosadit příslušný MMQL dotaz ---/// ## Limitní pravděpodobnosti stavů select i as stav, p[i] as ppst from buf for i := 0 to size-1 order stav Výsledek: (výpis byl omezen na 15, dotaz vrátí všech 1200 pravděpodobností) stav ppst 0 0.1 1 0.09 2 0.081 3 0.0729 4 0.06561 5 0.059049 6 0.0531441 7 0.0478297 8 0.0430467 9 0.038742 10 0.0348678 11 0.0313811 12 0.028243 13 0.0254187 14 0.0228768 ## Střední počet zpráv, které se v bufferu nachází select sum(i*p[i]) as Lw from buf for i := 0 to size-1 group 1; Výsledek --> 9 ## Kolik procent času při dlouhodobém sledování bude buffer prázdný select p[0]*100 as result from buf Výsledek --> 10 ## Jak často (průměrná perioda) se buffer úplně vyprázdní . define mi := 10; select 1/(mi*p[1]) as result from buf Výsledek ---> 1,11111 Pokud parametrům lamba a mi přiřadíme fyzikální jednotku 1/s potom můžeme konstatovat, že se buffer v průměru vyprázní každých 1,11111 vteřiny.