UNU.RAN – Універсальны неаднародных выпадковых лікаў

Original: http://statmath.wu.ac.at/unuran/

UNU.RAN (Універсальны Non-Uniform генератар выпадковых лікаў) уяўляе сабой набор алгарытмаў для генерацыі неаднароднае псеўдавыпадковых зменнымі ў бібліятэку функцый C, распрацаваных і рэалізуюцца ARVAG (Аўтаматычная Выпадковы вар’іраваць пакалення) праектнай групы ў Вене, і выпушчаны пад ДНУ Public License (GPL). Яна спецыяльна распрацавана для такіх сітуацыях, калі

    нестандартная распаўсюджванне або усечаны размеркаванне неабходнасці.
Эксперыменты з рознымі тыпамі размеркаванняў зробленыя.
Выпадковыя зменнымі для метадаў скарачэння дысперсіі выкарыстоўваюцца.
хуткія генератары прадказальным якасцю неабходныя.

Вядома, гэта таксама добра падыходзіць для стандартных размеркаванняў. Аднак з-за яго больш складаным інтэрфейсам праграмавання гэта можа быць не так лёгка выкарыстоўваць, калі вы глядзіце толькі для генератара для стандартнага нармалёвага размеркавання. (Хоць UNU.RAN забяспечвае генератары, якія пераўзыходзяць ў многіх аспектах на тыя, што ў цэлым шэрагу іншых бібліятэк.)

UNU.RAN рэалізуе некалькі метадаў генерацыі выпадковых лікаў. Выбар залежыць у асноўным, на інфармацыі аб размеркаванні можа быць прадастаўлена і – калі карыстальнік знаёмы з рознымі метадамі – ад пераваг карыстальніка.

Праектныя мэты UNU.RAN тым, каб забяспечыць надзейны, партатыўны і трывалы (наколькі гэта магчыма) функцыі з consisent і просты ў выкарыстанні інтэрфейс. Яна падыходзіць для ўсіх сітуацыі, калі эксперыменты з рознымі дыстрыбутывамі у тым ліку нестандартных размеркаванняў. Напрыклад, гэта не з’яўляецца праблемай, каб замяніць нармальнае размеркаванне з дапамогай эмпірычнага размеркавання ў мадэлі.

Першапачаткова распрацаваны як бібліятэка для так званага чорнага скрыні або універсальных алгарытмаў яго інтэрфейс адрозніваецца ад іншых бібліятэк. (Тым не менш ён таксама змяшчае спецыяльныя генератары для стандартных размеркаванняў.) Ён не забяспечвае падпраграмы для генерацыі выпадковых вар’іраваць для канкрэтных размеркаванняў. Замест гэтага ён выкарыстоўвае аб’ектна-арыентаваны інтэрфейс. Размеркавання і генератары разглядаюцца як незалежныя аб’екты. Такі падыход дазваляе не толькі мець розныя метады для генерацыі нераўнамерныя выпадковыя зменнымі. Такім чынам, можна выбраць той, які з’яўляецца аптымальным на працягу сітуацыі (напрыклад, хуткасць, якасць выпадковых лікаў, выкарыстоўваючы для метадаў скарачэння дысперсіі і г.д.). Гэта таксама дазваляе паспрабаваць з нестандартнага размеркавання або нават ад размеркаванняў, якія ўзнікаюць у мадэлі і могуць быць вылічаныя толькі ў складанай падпраграмы.

Адбор спроб з вызначанага размеркавання неабходныя наступныя крокі:

    Стварэнне аб’екта размеркавання. (Аб’екты для стандартных размеркаванняў у бібліятэцы)
Абярыце метад.
Ініцыялізацыя генератара, г.зн. стварыць аб’ект генератара. Калі Выбіраецца метад не падыходзіць для дадзенага размеркавання (ці, калі аб’ект змяшчае размеркаванне занадта мала інфармацыі аб размеркаванні) падпраграма ініцыялізацыі не атрымоўваецца, і вырабляе паведамленне пра памылку. Такім чынам, аб’ект робіць генератар (напэўна) не ілжывыя вынікі (выпадковыя зменнымі рознага размеркавання).
Выкарыстоўвайце гэты аб’ект генератар для выбаркі з размеркавання.

Для атрымання падрабязнай інфармацыі звярніцеся да інтэрактыўнай дакументацыі.

Ёсць чатыры тыпу аб’ектаў, якімі можна маніпуляваць незалежна:

Аб’екты размеркавання: правесці ўсю інфармацыю аб выпадковых зменнымі, якія павінны быць атрыманы. Наступныя віды размеркаванняў даступныя:

    Бесперапынныя і дыскрэтныя размеркавання
Эмпірычныя размеркавання
Шматмерныя размеркавання

Вядома, бібліятэка стандартных размеркаванняў ўваходзіць (і гэта можа быць зменены, каб атрымаць, напрыклад, ўсечаныя размеркавання). Акрамя таго, бібліятэка дае падпраграмы, каб пабудаваць амаль адвольныя размеркавання.

Генератар аб’екты: трымаеце генератар для дадзенага размеркавання. Можна пабудаваць незалежныя аб’екты генератар таго ж аб’екта размеркавання, якія могуць выкарыстоўваць аднолькавыя або розныя метады для генерацыі. (Калі метад Выбіраецца ня падыходзіць для дадзенага метаду, пусты паказальнік вяртаецца на этапе ініцыялізацыі).

Параметр аб’екты: Кожны метад трансфармацыя патрабуе некалькі параметраў для налады генератара на зададзеным размеркаванні. Аб’ект дадзенага параметру мае ўсю гэтую інфармацыю. Калі створаны, ён змяшчае ўсе неабходныя параметры па змаўчанні. Ён выкарыстоўваецца толькі для стварэння аб’екта генератара і неадкладна знішчаны.
Altough няма неабходнасці мяняць гэтыя параметры або нават ведаць пра іх існаванне для «звычайных» дыстрыбутываў, яны дазваляюць дакладная налада генератара для працы з размеркавання з некаторымі нязручных уласцівасцяў. Бібліятэка прадастаўляе ўсе неабходныя функцыі, каб змяніць гэтыя параметры па змаўчанні.

Адзіныя генератары выпадковых лікаў: Усе аб’екты генератар трэба адзін (ці больш) патокаў аднародных выпадковых лікаў, якія пераўтворацца ў выпадковыя зменнымі дадзенага размеркавання. Яны прыведзены ў якасці паказальнікаў на адпаведныя функцыі або структуры (аб’екты). Два аб’екта генератар можа мець свае ўласныя адзіныя генератары выпадковых лікаў або падзяляюць агульную адзін. Любыя функцыі, якія вырабляюць аднастайныя (псеўда-) выпадковых лікаў можа быць выкарыстаны. Мы прапануем бібліятэку Otmar Лендл ў PRNG.

UNU.RAN Бібліятэка ўваходзіць у некалькіх праграмных пакетаў:

    КОРАНЬ (аб’ектна-арыентаванага аналізу дадзеных Framework)
Сістэма R Праект статыстычных разлікаў (гл пакетаў Runuran).
SSJ (стахастычнага мадэлявання ў Java).
EcoLab (пакет праграмнага забеспячэння і навукова-даследчы праект, які, гледзячы на ​​дынаміку эвалюцыі).

Для заўваг, праблемы, пытанні, прапановы, калі ласка, звяжыцеся з Джозэфам Leydold.

Бягучая версія гэтага пакета можна знайсці на хатняй старонцы ARVAG (Аўтаматычная Выпадковы вар’іраваць пакалення) праектнай групы ў Вене.

 

Comments are closed.