Біріктірілген сызықтық конгруденциялы генератор - Combined linear congruential generator

A біріктірілген сызықтық конгруденциялы генератор (CLCG) Бұл жалған кездейсоқ сан генераторы алгоритм екі немесе одан көп біріктіруге негізделген сызықтық конгруденциялы генераторлар (LCG). Дәстүрлі LCG а кезең бұл жүйені күрделі модельдеу үшін жеткіліксіз.[1] Екі немесе одан да көп LCG-ді біріктіру арқылы кезеңі ұзағырақ және статистикалық қасиеттері жақсы кездейсоқ сандар жасауға болады.[1]Алгоритм келесідей анықталады:[2]

қайда:

бұл «модуль «бірінші LCG
болып табылады менмың ішінен кіріс jмың LCG
болып табылады менмың кездейсоқ бүтін сан

бірге:

қайда Бұл біркелкі бөлінген 0 мен 1 арасындағы кездейсоқ сан.

Шығу

Егер Wмен,1, Wмен,2, ..., Wмен, к кез келген тәуелсіз, дискретті, кездейсоқ-айнымалылар және олардың біреуі 0-ден біркелкі үлестірілген м1 - 2, содан кейін Змен 0 мен аралығында біркелкі бөлінеді м1 - 2, мұнда:[2]

Келіңіздер Xмен,1, Xмен,2, ..., Xмен,к шығу болуы керек к LCG. Егер Wмен,j ретінде анықталады Xмен,j - 1, содан кейін Wмен,j 0-ден шамамен біркелкі бөлінеді мj − 1.[2] Коэффициент «(−1)j−1«біреуін алып тастауды жасырын түрде орындайды Xмен,j.[1]

Қасиеттері

CLCG жалған кездейсоқ сандарды есептеудің тиімді әдісін ұсынады. LCG алгоритмін пайдалану есептеу үшін арзан.[3] Бірнеше LCG алгоритмдерінің нәтижелері CLCG алгоритмі арқылы ұзағырақ жалған кездейсоқ сандарды құру үшін біріктіріледі кезең LCG әдісімен өздігінен қол жеткізуге болады.[3]

CLCG кезеңі болып табылады ең кіші ортақ еселік модульдерден бір кем жеке генераторлардың периодтары. Барлық модульдер тақ қарапайым болғандықтан, периодтар жұп болады және осылайша, кем дегенде, 2-дің ортақ бөлгішін бөледі, бірақ егер модульдер таңдалса, 2 ең үлкен ортақ бөлгіш әр жұптың нәтижесі:[1]

Мысал

Төменде 32 биттік компьютерлерде қолдануға арналған алгоритмнің мысалы келтірілген:[2]

LCG келесі қасиеттермен қолданылады:

CLCG алгоритмі келесідей орнатылған:

1. Бірінші LCG тұқымы, , [1, 2147483562] аралығында таңдау керек.

Екінші LCG тұқымы, , [1, 2147483398] аралығында таңдау керек.
Жинақ:

2. Екі LCG төмендегідей бағаланады:

3. CLCG теңдеуі төменде көрсетілгендей шешіледі:

4. Кездейсоқ санды есептеңіз:

5. Есептегішті көбейтіңіз (мен = мен + 1) содан кейін 2-қадамға оралып, қайталаңыз.

Қолданылған екі LCG максималды кезеңі мына формула бойынша есептеледі :.[1]

Бұл 2,1 × 10-ға тең9 пайдаланылған екі LCG үшін.

Осы мысалда көрсетілген CLCG максималды кезеңіне ие:

Бұл жеке LCG кезеңінде айтарлықтай жақсаруды білдіреді. Біріктірілген әдіс периодты 9 дәрежеге арттыратынын көруге болады.

Таңқаларлықтай, осы CLCG мерзімі барлық қосымшалар үшін жеткіліксіз болуы мүмкін.[1] CLCG әдісін қолданатын басқа алгоритмдер периодтары 3 × 10 дейінгі псевдо-кездейсоқ сандар генераторларын құруда қолданылған.57.[4][5][6]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ а б c г. e f Банктер, Джерри; Карсон, Джон С .; Нельсон, Барри Л .; Никол, Дэвид М. (2010). Дискретті оқиғалар жүйесін модельдеу (5-ші басылым). Prentice Hall. § 7.3.2. ISBN  0-13-606212-1.
  2. ^ а б c г. L'Ecuyer, Pierre (1988). «Кездейсоқ сандардың тиімді және портативті генераторлары» (PDF). ACM байланысы. 31 (6): 742–749, 774. CiteSeerX  10.1.1.72.88. дои:10.1145/62959.62969.
  3. ^ а б Пандей, Нирадж (6 тамыз 2008). Сызықтық конгруэнтті және артта қалған фибоначчи генераторлары үшін секіру функциясын жүзеге асыру (PDF) (Магистрлік диссертация). Флорида штатының университеті. § 2.2. Архивтелген түпнұсқа (PDF) 2011 жылғы 12 шілдеде. Алынған 13 сәуір 2012.
  4. ^ L'Ecuyer, Pierre (қыркүйек-қазан 1996). «Біріктірілген бірнеше рекурсивті сандардың генераторлары». Операцияларды зерттеу. 44 (5): 816–822. дои:10.1287 / opre.44.5.816.
  5. ^ Л'Экуйер, Пьер (қаңтар-ақпан 1999). «Біріктірілген бірнеше рекурсивті кездейсоқ сандардың генераторлары үшін жақсы параметрлер және енгізу». Операцияларды зерттеу. 47 (1): 159–164. CiteSeerX  10.1.1.48.1341. дои:10.1287 / opre.47.1.159.
  6. ^ Л'Экуйер, Пьер; Р.Симард; Э.Дж. Чен; Келтон (қараша-желтоқсан 2002). «Көптеген ұзақ ағындары мен ағындары бар нысанға бағытталған рандондық нөмір» (PDF). Операцияларды зерттеу. 50 (6): 1073–1075. CiteSeerX  10.1.1.25.22. дои:10.1287 / opre.50.6.1073.358.

Сыртқы сілтемелер