Диденко Дмитрий Георгиевич Старший преподаватель...

29
Качество генерации псевдослучайных чисел в системах имитационного моделирования OpenGPSS, GPSS World и AnyLogic Диденко Дмитрий Георгиевич Старший преподаватель кафедры ММСА ННК «ІПСА» Национальный технический университет Украины «Киевский политехнический институт» Киев, Украина

description

Качество генерации псевдослучайных чисел в системах имитационного моделирования OpenGPSS, GPSS World и AnyLogic. Диденко Дмитрий Георгиевич Старший преподаватель кафедры ММСА ННК «ІПСА» Национальный технический университет Украины «Киевский политехнический институт» Киев, Украина. - PowerPoint PPT Presentation

Transcript of Диденко Дмитрий Георгиевич Старший преподаватель...

Page 1: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

Качество генерации псевдослучайных чисел в системах имитационного моделирования OpenGPSS, GPSS

World и AnyLogic Диденко Дмитрий ГеоргиевичСтарший преподаватель кафедры ММСА ННК «ІПСА»Национальный технический университет Украины «Киевский политехнический институт»Киев, Украина

Page 2: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 2

Диденко Д.Г. © 2011www.simulation.kiev.ua 2

От Бернулли до Вейбула: OpenGPSS (29 распределений); GPSS World (24 распределения); AnyLogic (29 распределений).

1. Большое количество вероятностных распределений

Page 3: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 3

Диденко Д.Г. © 2011www.simulation.kiev.ua 3

Наборы (батареи) тестов: NIST; TEST-U01; CRYPT-X; The pLab Project; DIEHARD; ENT.

2. Тесты псевдослучайных последовательностей

Page 4: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 4

Диденко Д.Г. © 2011www.simulation.kiev.ua 4

Наборы (батареи) тестов: NIST; TEST-U01; CRYPT-X; The pLab Project; DIEHARD; ENT.

2. Тесты псевдослучайных последовательностей

Page 5: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 5

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 6: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 6

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 7: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 7

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 8: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 8

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 9: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 9

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 10: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 10

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 11: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 11

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 12: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 12

Диденко Д.Г. © 2011

3.1. Схема проведения эксперимента

OpenGPSS,GPSS World,

AnyLogic

TXT-Файл

46 МБайт4 млн. строк

TXT-Файл

результатов

GP

SS

-программ

а,JA

VA

-программ

а

BIN-Файл15 МБайт

VB

-скрипт

Тесты

Diehard

Page 13: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 13

Диденко Д.Г. © 2011www.simulation.kiev.ua 13

RMULT 300;начальное смещениеGENERATE 1

;переносим псевдослучайное число в сохраняемую;величинуSAVEVALUE XN1,RN1TERMINATE

;временной сегментGENERATE 1024TERMINATE 1START 1

4.1. Тестовая программа для OpenGPSS

Page 14: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 14

Диденко Д.Г. © 2011www.simulation.kiev.ua 14

FACTORY FUNCTION RN1,C20,-0.5/1,0.5;Scale1 = 2 ^ 32 - 1=4294967295PLATE VARIABLE FN$FACTORY#4294967295\1GENERATE 1WRITE V$PLATE,1TERMINATE

;генерируем один из транзактов, который будет открывать/закрывать файлGENERATE 1,,,1OPEN "d:\test.txt",1,ERROR_BLOCK_1ADVANCE 4000000;устанавливаем количество сгенерированных чиселCLOSE 100,1TERMINATE 1ERROR_BLOCK_1 TERMINATE 1

RMULT 200START 1

4.2. Тестовая программа для GPSS World

Page 15: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 15

Диденко Д.Г. © 2011www.simulation.kiev.ua 15

double x;

int z;

for( int i=0; i<4000000; i++ ) { //генерируем 4 млн чисел

x = uniform(-1,1)*2147483647;

z = (int)x;

my_file.println(z);

}

4.3. Тестовая программа для AnyLogic

Page 16: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 16

Диденко Д.Г. © 2011

5. Результаты прохождения тестов из пакета DIEHARD

№ Тест OpenGPSS GPSS World AnyLogic

1 Дни рождения + - +

2 Пересекающиеся перестановки - + -

3 Ранги матриц +/-/- +/+/+ +/+/+

4 Поток битов + - +

5 Обезьяньи тесты - + +

6 Подсчёт единичек -/- -/+ +/+

7 Тест на парковку - + +

Page 17: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 17

Диденко Д.Г. © 2011

6. Результаты прохождения тестов из пакета DIEHARD (продолжение)

№ Тест OpenGPSS GPSS World AnyLogic

8 Тест на минимальное расстояние - + +

9 Тест случайных сфер + + +

10 Тест сжатия - + -

11 Тест пересекающихся сумм + + +

12 Тест последовательностей + + +

13 Тест игры в кости -/- +/+ +/+

Page 18: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 18

Диденко Д.Г. © 2011

7. Проверка статистической гипотезы о случайности потока данных

Система моделирования

Количество пройденных

тестов

Критерий Хи-квадрат

Анализ результата

OpenGPSS 5 90,00 -

GPSS World 10 29,45 +

AnyLogic 11 28,17 +

Табличное значение критерия Хи-квадрат 36,2

Page 19: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 19

Диденко Д.Г. © 2011www.simulation.kiev.ua 19

Работа с системным пакетом dbms_random:

1) начальное смещение для ГПЧ

dbms_random.seed(300);

2) получение следующего числа

a := dbms_random.random;

8. Использование встроенного ГПЧ из СУБД Oracle

Page 20: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 20

Диденко Д.Г. © 2011www.simulation.kiev.ua 20

Преимущества и недостатки dbms_random:

+ встроенный в Oracle;

+ широкое использование;

- нельзя получить текущее смещение.

8. Использование встроенного ГПЧ из СУБД Oracle (продолжение)

Page 21: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 21

Диденко Д.Г. © 2011www.simulation.kiev.ua 21

линейный конгруэнтный метод Xn+1 = (aXn + c) mod m;

квадратичный конгруэнтный метод Хn+1 = (dXn

2+aXn+c) mod m; генератор на основе объединения путём

сложения по mod 232 двух генераторов: запаздывающего генератора Фибоначчи Xn = Xn-99 Xn-33 mod 232 и генератора на основе произведения с переносом Yn = 30903 Yn-1 carry mod 216;

генератор М-последовательностей; вихрь Мерсена.

9. Способы улучшения ГПЧ

Page 22: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 22

Диденко Д.Г. © 2011www.simulation.kiev.ua 22

расширенный конгруэнтный генератор - Xn = 213 (Xn-1 + Xn-2 + Xn-3 ) mod (232 - 5);

алгоритм “Marsaglia-Multicarry” (Джордж Марсаглия);

алгоритм “xor-shift” (Джордж Марсаглия); алгоритм Блюма-Блюма-Шуба; генератор на базе произведения с переносом -

Xn = (2111111111 Xn-4 + 1492 Xn-3 + 1778 Xn-2 + 5115 Xn-1) carry mod 232;

генератор на базе произведения с переносом - Xn = a Xn-1 carry mod 232.

10. Модификации Линейного Конгруэнтного Метода

Page 23: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 23

Диденко Д.Г. © 2011

11. Примеры Линейного Конгруэнтного Метода

№ Источник m a c Биты

1 Numerical Recipes 232 1664525 1013904223 0..31

2 Borland C/C++ 232 22695477 1 0..30

3 GNU Compiler Collection 232 69069 5 16..30

4 glibc (используется в GCC) 232 1103515245 12345 0..30

5ANSI C: Open Watcom,

Digital Mars, Metrowerks, IBM VisualAge C/C++

232 1103515245 12345 16..30

6 Borland Delphi, Virtual Pascal 232 134775813 1 0..31

7 Microsoft Visual/Quick C/C++ 232 214013 2531011 16..30

8 Apple CarbonLib 231-1 16807 0 0..31

Page 24: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 24

Диденко Д.Г. © 2011

11. Примеры Линейного Конгруэнтного Метода (продолжение)

№ Источник m a c Биты

9Microsoft Visual Basic (версия 6 и

ниже)224 1140671485 12820163 0..23

10 RtlUniform from Native API 231-1 2147483629 2147483587 0..31

11 MMIX Дональда Кнута 264 6364136223846793005

1442695040888963407

0..63

12VAX's MTH$RANDOM (старая

версия библиотеки glibc)232

69069 1 0..31

13LC53 в языке программирования

Forth232-5

232 − 33333333

30 0..31

14 Random class in Java API 248 25214903917 11 16..47

15 MS Fortran 231-1 48271 0 0..31

Page 25: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 25

Диденко Д.Г. © 2011

12. Результаты прохождения тестов из пакета DIEHARD

№ ТестOpenGPSS

GPSS World AnyLogic1.2.1.0 1.2.2.0

1 Дни рождения + - - +

2 Пересекающиеся перестановки - + + -

3 Ранги матриц +/-/- +/+/- +/+/+ +/+/+

4 Поток битов + - - +

5 Обезьяньи тесты - + + +

6 Подсчёт единичек -/- -/+ -/+ +/+

7 Тест на парковку - + + +

Page 26: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 26

Диденко Д.Г. © 2011

12. Результаты прохождения тестов из пакета DIEHARD (продолжение)

№ ТестOpenGPSS

GPSS World AnyLogic1.2.1.0 1.2.2.0

9 Тест случайных сфер + + + +

10 Тест сжатия - + + -

11 Тест пересекающихся сумм + + + +

12 Тест последовательностей + + + +

13 Тест игры в кости -/- +/+ +/+ +/+

Page 27: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 27

Диденко Д.Г. © 2011

13. Проверка статистической гипотезы о случайности потока

данныхСистема

моделированияКоличество

пройденных тестов Критерий Хи-

квадратАнализ результата

OpenGPSS 1.2.1.0 5 90,00 -

OpenGPSS 1.2.2.0 MS Fortran

12 24,46 +

GPSS World 10 29,45 +

AnyLogic 11 28,17 +

Табличное значение критерия Хи-квадрат 36,2

Page 28: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 28

Диденко Д.Г. © 2011www.simulation.kiev.ua 28

14. Настройка ГПЧ в системе OpenGPSS

Page 29: Диденко Дмитрий Георгиевич Старший преподаватель кафедры  ММСА ННК «ІПСА»

www.simulation.kiev.ua Качество генерации псевдослучайных чисел в системах моделирования 29

Диденко Д.Г. © 2011

Спасибо за внимание

www.simulation.kiev.ua