Generatori di numeri pseudocasuali non uniformi Funzione da generare F(x) funzione di distribuzione strettamente monotona crescente Metodi di generazione • • • • Metodo della trasformaziona inversa Consideriamo: U uniformemente distribuita in (0,1] Trasformazione inversa Composizione Reiezione Decomposizione -1 x = F (U) ha distribuzione cumulativa F • Caratterizzazione • Confronto -1 F è calcolata usando l’espressione esplicita della trasformazione (se F è invertibile) Riferimenti A.M. Law, W.D. Kelton "Simulation Modeling and Analysis" MacGraw-Hill 1982 Esempi: distribuzione esponenziale: Siti web: !"x F(x) = 1 - e http://random.mat.sbg.ac.at/links/rando.html WWW Virtual Library, Random Number Generators !"x U = 1- e e !"x = 1-U x = ln(1-U)/" x = ln(U)/ " S10.1 S10.2 Composizione Distribuzione geometrica k Prob(N = k) p (1-p) Applicabile per variabili casuali da generare rappresentabili come somma di v.c. N = .ln(p) ln(U) # Indipendenti ed identicamente distribuite X = T1 + T2 + T3 + …. Tn Distribuzione di Bernoulli Esempio Prob(X=1) = p Prob(X= 0) = 1-p Distribuzione di Erlang Ti è distribuita esponenzialmente X = 1 se U " p oppure X = 0 se U > p X ha densità di probabilità Distribuzione uniforme nell’intervallo [a,b] !"x k k-1 f(x) = e " x / (k-1)! F(x) = (x-a)/(b-a) K, " > o X!0 -1 F (x) = a+(b-a)x Algoritmo Algoritmo 1. Generare U distribuito uniformemente in (0,1] 1. 2. x= a+(b-a)U 2. generare U1, U2, U3 ,…, Un da un generatore uniforme in (0,1] -1 X = - " ln (U1U2U3 … Un) Reiezione S10.3 S10.4 Si basa su un test di accettazione. Decomposizione Assume che la v.c. X da generare sia definita in un intervallo (a,b) con Assume che la variabile casuale X da generare abbia densità di probabilità della forma f(X) densità di probabilità M f(x) = p1f1(x) + p2f2(x) + … + pkfk(x) valore massimo che tale funzione può assumere • si generano due valori dal generatore uniforme: U1, U2 pi pesi probabilisici (non negativi e sommano ad uno) • • x = a+(b-a) U1 y = M U2 fi (x) • se y " f(x) Si considera una v.c. di Bernoulli a k valori Prob(Z=j) = pj 1"j"k densità di probabilità allora il valore x viene accettato altrimenti viene rifiutato e si ripete la procedura Algoritmo 1. Genera Z 2. Genera X con densità di probabilità fz(x) Esempio !"x !µx f(x) = p " e + (1-p) µ e S10.5 S10.6