Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

UNU.RAN (Universal Non-Uniform RAndom Number generator)


UNU.RAN (Universal Non-Uniform RAndom Number generator) jeste kolekcija algoritama za generisanje ne-uniformnih, pseudoslučajnih promenljivih kao što je to zbirka (biblioteka programa) C funkcija, koja je dizajnirana i implementirana u ARVAG (Automatic Random VAriate Generation) projektnoj grupi u Beču i objavljena u okviru GNU Public License (GPL). Specijalno je dizajnirana za situacije gde:

● je potrebna nestandardna ili skraćena distribucija.
●su uradjeni eksperimenti sa različitim tipovima distribucija.
● su slučajne promenljive iskorišćene za tehnike redukovanja slučajnih promenljivih.
● su potrebni brzi generatori predvidljivog kvaliteta.

Naravno takođe je jako dobro prilagođen i za standardne distribucije. Mađutim, zbog svog visokosofisticiranog interfejsa programiranja moguće je njegovo otežano korišćenje u slučaju da ga koristite samo kao generator za standardnu distribuciju (iako UNU.RAN obezbedjuje generatore koji su u mnogim aspektima superiorniji u odnosu na one koji se mogu naći u velikom broju drugih biblioteka programa)

UNU.RAN primenjuje nekoliko metoda za generisanje slučajnih brojeva. Izbor prvenstveno zavisi od dostupne informacije o distribuciji i - ako je korisnik upoznat sa različitim metodama - od preferenci korisnika.

Ciljevi stvaranja UNU.RAN su da se obezbede pouzdane, prenosive i snažne (onoliko koliko je to moguće) funkcije sa interfejsom koji je konzistentan i lak za korišćenje. Primenljiv je u svim situacijama gde eksperimenti sa različitim distribucijama uključuju nestandardne distribucije. Primera radi, nije nikakav problem da normalnu disribuciju zameni empirijskom distribucijom u okviru modela.

Iako originalno kreiran kao zbirka programa za takozvane black-box ili univerzalne algoritme , njegov interfejs se razlikuje od drugih zbirki programa (bez obzira na to, on takođe sadrži specijalne generatore za standardne distribucije). Ne obezbedjuje podprocedure za generisanje slučajnih promenljivih za određene distribucije. Umesto toga koristi interfejs koji je usmeren ka objektu. Distribucije i generatori se tretiraju kao nezavisni objekti. Ovaj pristup omogućava nekome da koristi ne samo različite metode za generisanje ne-uniformnih slučajnih promenljivih, već je tako moguće da se izabere ona koja je optimalna za određenu situaciju (npr. brzina, kvalitet slučajnih brojeva, korišćenje za tehnike redukcije promenljivih, itd). Takođe omogućava da se uzorkuje sa nestandardne distribucije ili čak i sa distribucija koje se javljaju u modelima i koji jedino mogu biti izračunate u okviru komplikovanih podprocedura.

Uzorkovanje iz određene distribucije zahteva sledeće korake:

1.Stvaranje objekta distribucije (objekti za standardne distribucije su dostupni u zbirci programa)
2. Izbor metode.
3. Inicijalizacija generatora tj. kreiranje objekta generatora. Ako izabrana metoda nije odgovarajuća za datu distribuciju (ili objekat distribucije sadrži premalo informacija o distribuciji) procedura inicijalizacije ne uspeva i za posledicu ima “error message”. Tako objekat generatora (verovatno) ne proizvodi pogrešne rezultate (slučajne promenljive od različitih distribucija).
4. Korišćenje ovog objekta generatora za uzorkovanje iz distribucije.

Za detalje vidi online documentation .

Postoji četiri tipa objakata koji mogu biti nezavisno korišćeni:

Objekti distribucije: sadrže sve informacije o slučajnim promenljivim koje treba generisati. Na raspolaganju su sledeći tipovi distribucija:

- Kontinualne i Diskretne distribucije
- Empirijske distribucije
- Multivarijantne distribucije

Naravno zbirka programa za standardne distribucije je uključena (a ovo može biti i nakon toga modifikovano kako bi se dobila tzv. skraćena distribucija). Štaviše, zbirka programa obezbedjuje podprograme sa kojima je gotovo moguće stvoriti arbitražnu distribuciju.

Objekti generatora: sadrže generator za datu distribuciju. Moguće je stvoriti nezavisne objekte generatora za one objekte generatora koji bi mogli da koriste iste ili različite metode generisanja (ako odabrana metoda ne odgovara zadatoj metodi, NULL pokazivač se vraća na početni korak).

Parametri objekata: Svaka metoda transformacije zahteva nekoliko parametara kako bi se generator prilagodio zadatoj distribuciji. Parametar objekta sadrži sve ove informacije i od trenutka kreiranja sadrži sve neophodna “default” podešavanja. Koristi se samo za kreiranje generatora objekta a zatim se odmah uništava.
Mada ne postoji potreba da se ovi parametri menjaju, ili čak ni potreba da se, za “uobičajenu distribuciju”, za njih uopšte i zna, oni omogućavaju fino podešavanje generatora kako bi mogao raditi distribucije sa nekim nezgodnim osobinama. Zbirka programa obezbedjuje sve neophodne funkcije radi promene ovako definisanih parametara.

Jednoobrazni generator slučajnih brojeva: Svim objektim generatora je potreban jedan (ili više) niz jednoobraznih slučajnih brojeva koji su pretvoreni u slučajne promenljive za zadatu distribuciju. Oni su zadati kao pointeri za odgovarajuću funkciju ili strukture (objekte). Dva različita objekta generatora mogu imati svoje sopstvene generatore jednoobraznih slučajnih brojeva ili da dele jedan zajednički. U upotrebi može biti svaka funkcija koja proizvodi jednoobrazne (pseudo-) slučajne brojeve. Mi predlažemo Otmar Lendl's PRNG zbirku programa.

The UNU.RAN zbirka programa je sastavni deo nekoliko paketa softvera:

ROOT (an Object-Oriented Data-Analysis Framework)
R Project for Statistical Computing (vidi paket Runuran ).
SSJ (Stochastic Simulation in Java).
EcoLab (softver paket i istraživački projekat koji se bavi dinamikom evolucije).

Za primedbe, probleme, pitanja i sugestije molimo kontaktirajte Josef Leydold.

Trenutna verzija ovog paketa može se naći na home page ARVAG (Automatic Random VAriate Generation) projektne grupe u Beču.



Published (Last edited): 17-10-2012 , source: http://statistik.wu-wien.ac.at/unuran/