Generatori di numeri pseudocasuali non uniformi Metodi di

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