Генератор случайных чисел как инструмент имитационного моделирования

Описание:
Общие принципы генерации случайных величин
Имитация с инструментом "Генератор случайных чисел"
Доступные действия
Введите защитный код для скачивания файла и нажмите "Скачать файл"
Защитный код
Введите защитный код

Нажмите на изображение для генерации защитного кода

Текст:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ И МОЛОДЕЖНОЙ ПОЛИТИКИ

ХАНТЫ-МАНСИЙСКОГО АВТОНОМНОГО ОКРУГА - ЮГРЫ

Государственное образовательное учреждение

высшего профессионального образования

Ханты-Мансийского автономного округа - Югры

«Сургутский государственный педагогический университет»

Факультет управления

Генератор случайных чисел как инчтрумент имитационного моделирования

реферат

Выполнила:. студентка группы

Б-1181 Мурадова С.В

 

Сургут 2011 г.

ОГЛАВЛЕНИЕ

Введение………………………………………………………………..3

Общие принципы генерации случайных величин………………….3-7

Имитация с инструментом "Генератор случайных чисел"………..7-18

Список источников…………………………………………………..19

Имитационное моделирование требует использования большого количества случайных величин. Например, в моделях систем массового обслуживания требуется получение случайного интервала времени между поступлениями заявок, а также случайное время их обслуживания. Кроме того, случайные числа могут быть нужны для определения маршрута движения транзакта (блок TRANSFER в режиме статистической передачи), розыгрыша объема покупки или спроса на товар в моделях управления запасами, и т.д. Моделирование этих случайных величин может быть выполнено на основе наблюдений за реальной системой. Результаты наблюдений могут быть использованы в модели либо непосредственно (т.е. в “сыром виде”), либо через генераторы случайных чисел, воспроизводящие их статистические аналоги.

В  практике моделирования обычно применяется формирование случайных величин в соответствии с нужным законом распределения. Получение случайных чисел с требуемым законом распределения обычно выполняется в два этапа:

1.
Физическим или программным методом формируется случайное число Ui, равномерно распределенное на интервале [0,1).

2.
Выполняется программный переход от Ui к случайному числу Xi, имеющему требуемое распределение.

Равномерно распределенное на [0,1) случайное число представляется в компьютере в виде n – разрядной последовательности нулей и единиц, причем в каждом разряде нуль или единица должны наблюдаться с вероятностью 0,5.

Физические генераторы равномерно распределенных чисел основаны на регистрации импульсов от счетчика радиоактивных частиц или шумовых

выбросов электронной лампы. [1]Они выполняются в виде приставки к компьютеру и обладают высокой скоростью моделирования. Получаемые числа являются истинно случайными, и не требуется затрат процессорного времени на их генерацию. Однако физические генераторы по своей природе являются нестабильными (зависят от температуры, влажности окружающей среды и т.д.), требуют периодических проверок и стандартизации. Поэтому чаще применяют программные методы генерации случайных чисел.

Программные генераторы равномерно распределенных чисел рассчитывают каждое новое число на основе одного или нескольких предшествующих чисел в соответствии с заданной математической формулой. Таким образом, получаемые числа являются полностью детерминированными и возможно повторение прогона с той же последовательностью получаемых величин. Это свойство является важным преимуществом программных генераторов, т.к. дает возможность сравнивать варианты организации системы при одинаковой нагрузке. Отсутствие дополнительного оборудования и необходимости многократных проверок программных генераторов также являются достоинствами этого подхода.

Числа, выдаваемые программными генераторами, называются “псевдослучайными”. В работе Лемера (1951г) формулируется идея использования псевдослучайных чисел следующим образом: ”последовательность псевдослучайных чисел можно считать случайной, если ее каждый элемент непредсказуем для непосвященных и она удовлетворяет ряду традиционных статистических тестов”.

В n - разрядной сетке компьютера количество различных двоичных чисел равно 2n, т.е. ограничено. Поэтому последовательность генерируемых псевдослучайных чисел рано или поздно начнет повторяться. Количество чисел, генерируемых до начала повторения последовательности, называется периодом генератора L. В лучшем случае период генератора L=2n. Тогда говорят, что генератор имеет полный период. Однако для многих генераторов период гораздо меньше, чем 2n , и может зависеть от начального значения генератора.

Хороший программный генератор случайных чисел должен обладать следующими свойствами:

1. Получаемые числа должны быть равномерно распределены в интервале [0,1) и не должны иметь корреляции друг с другом. Данное свойство проверяется различными методами: например, исследуется равномерность заполнения r - мерного единичного гиперкуба точками (U1,U2,…,Ur),(Ur+1,Ur+2,…,U2r),…Существуют и другие тесты проверки равномерности и отсутствия корреляции.

2. Генератор должен обладать быстродействием и не требовать больших затрат памяти (удобство использования на практике).

3. В генераторе должен быть предусмотрен простой способ получения отдельных потоков случайных чисел, т.е. независимых последовательностей чисел. Каждый поток можно выделить для конкретного источника случайности при моделировании. Например, один поток – для интервала прихода транзактов, а другой поток – для интервалов обслуживания. Либо один поток – для интервалов прихода транзактов одного типа, а второй – для транзактов другого типа. В этом случае обеспечивается сравнимость результатов моделирования.

4. Генератор должен иметь достаточно большую длину периода.

Линейные конгруентные генераторы

Сегодня очень часто применяются линейные конгруентные генераторы, созданные Лемером. В них последовательность целых чисел Z1,Z2,… определяется по формуле

Zi=(aZi-1+c)(mod m)

Где m – модуль (деление по модулю означает взятие остатка от деления на m), a – множитель, с – приращение и Z0 – начальное значение являются неотрицательными целыми числами.

Очевидно, что остаток от деления всегда меньше делителя, поэтому .

Чтобы получить случайные числа в интервале [0,1), примем Ui=Zi/m.

Если с=0, то линейный конгруентный генератор называется мультипликативным, а при c>0 – смешанным. Мультипликативные генераторы появились раньше и использовались более интенсивно. Большинство генераторов, которые применяются сегодня, являются мультипликативными. У них не может быть полного периода, однако они более изучены и факт улучшения эффективности в связи с введением смешанных генераторов пока не доказан.

Пусть n – число битов в слове компьютера, которые действительно доступны для хранения данных. Например, если в компьютере используются 32 - битные слова, а крайний левый бит является знаковым то n=31. Модуль стараются выбрать равным m=2n=231. В этом случае избегают явного деление на m, которое заменяется обработкой ситуации переполнения разрядной сетки.

В качестве параметра a обычно выбирают числа вида 8k+3 или 8k+5. В этом случае для мультипликативного генератора можно получить период 2n-2, причем операция умножения заменяется сдвигом и сложением (умножение на степень двойки – это, по сути, сдвиг числа в разрядной сетке).

Например, в одном из предлагаемых в литературе генераторов a=1073741821, с=0, m=231, Z0=65539. Используются 32-разрядные числа, причем первый разряд интерпретируется как знаковый. Полный период такого генератора равен 231-2.

Потоки случайных чисел (независимые последовательности) в линейном конгруентном генераторе задаются посредством определения начального числа каждого потока. Например, если нам нужны потоки в 100000 чисел каждый, то зададим для первого потока Z0 =произвольное значение, для второго потока возьмем начальное значение Z100000 , а для третьего – начальное значение Z200000 и т.д. Т.е., в качестве потоков выступают непересекающиеся смежные последовательности случайных чисел.

В системе GPSS World используется мультипликативный конгруентный генератор с периодом 231-2. Он выдает равномерно распределенные числа в интервале [1, 2 147 483 647], которые затем нормируются и преобразуются в числа из интервала 0 – 0,999999 включительно либо в числа от 0 до 999, в зависимости от контекста использования.

Можно использовать любое количество генераторов без специального их объявления, обращаясь к стандартному числовому атрибуту (системной переменной) RNj. Т.е., RNj – это значение генератора случайных чисел, равномерно распределенных на интервале [0,1). Номер генератора j является одновременно и его начальным значением (Z0). Таким образом, каждый генератор задает отдельный поток случайных чисел. Изменить начальное значение генератора в процессе его работы можно только для первых 7 генераторов (с номерами 1 ÷ 7) с помощью оператора

^ RMULT A,B,C,D,E,F,G

Где A, B, …, G - начальные значения генераторов 1, 2, …, 7 соответственно.

Например, RMULT ,,111

Генератор номер 3 получает начальное значение 111. (остальные значения не изменяются).

Инструмент предназначен для автоматической генерации множества данных (генеральной совокупности) заданного объема, элементы которого характеризуются определенным распределением вероятностей. При этом могут быть использованы 7 типов распределений: равномерное, нормальное, Бернулли, Пуассона, биномиальное, модельное и дискретное. Применение инструмента "Генератор случайных чисел", как и большинства используемых в этой работе функций, требует установки специального дополнения "Пакет анализа"

Для демонстрации техники применения этого инструмента изменим условия примера 6.1, определив вероятности для каждого сценария развития событий следующим образом (табл. 6.8). Мы также будем исходить из предположения о нормальном распределении ключевых переменных. Количество имитаций оставим прежним – 500.

Приступим к формированию шаблона. Как и в предыдущем случае, выделим в рабочей книге два листа: "Имитация" и "Результаты анализа".Формирование шаблона целесообразно начать с листа "Результаты анализа" (рис. 6.8.).

Как следует из рис. 6.8 этот лист практически соответствует ранее разработанному для решения предыдущей задачи (см. рис. 6.2). Отличие составляют лишь формулы для расчета вероятностей, которые приведены в табл. 6.9.

Используемые в нем собственные имена ячеек также взяты из аналогичного листа предыдущего шаблона (см. табл. 6.7).

Для быстрого формирования нового листа "Результаты анализа" выполните следующие действия.

1.Загрузите предыдущий шаблон SIMUL_1.XLT и сохраните его под другим именем, например – SIMUL_2.XLT

2.Удалите лист "Имитация". Для этого установите указатель мыши на ярлычок этого листа и нажмите правую кнопку. Результатом выполнения этих действий будет появления списка операций в виде контекстного меню. Выберите операцию "Удалить". Подтвердите свое решение нажатием кнопки "ОК" в появившемся диалоговом окне.

3.Перейдите в лист "Результаты анализа". Удалите строки 17–18. Откорректируйте заголовок ЭТ.

4.Добавьте формулы из табл. 6.9. Для этого введите соответствующие формулы в ячейки блока В17.В20 и скопируйте их в блок С17.F20. Введите соответствующие комментарии.

5.Сверьте полученную таблицу с рис. 6.8.

Перейдите к следующему листу и присвойте ему имя – "Имитация". Приступаем к его формированию (рис. 6.9).

Рис. 6.9. Лист "Имитация" (шаблон II)

Первая часть этого листа (блок ячеек А1.Е10) предназначена для ввода исходных данных и расчета необходимых параметров их распределений. Напомним, что нормальное распределение случайной величины характеризуется двумя параметрами – математическим ожиданием (средним) и стандартным отклонением. Формулы расчета указанных параметров для ключевых переменных модели заданы в блоках ячеек В7.D7 и B8.D8 соответственно (см. табл. 6.11). Для удобства определения формул и повышения их наглядности блоку ячеек Е3.Е5 присвоено имя "Вероятности" (см. табл. 6.10).

Обратите внимание на то, что для расчета стандартных отклонений используются формулы-массивы, правила задания которых были рассмотрены в предыдущей главе (см. параграф 5.5). Для формирования блока формул достаточно определить их для ячеек В7.В8 и затем скопировать в блок С7.D8.

Формула в ячейке Е10 по заданному числу имитаций (ячейка В10) вычисляет номер последней строки для блоков, в которых будут храниться сгенерированные значения ключевых переменных.

Ячейки D13.E13 содержат уже знакомые нам формулы для расчета величины потока платежей NCF и его чистой современной стоимости NPV.

Сформируйте элементы оформления листа "Имитация", определите необходимые имена для блоков ячеек (табл. 6.10) и задайте требуемые формулы (табл. 6.11). Сверьте полученную ЭТ с рис. 6.9. Сохраните полученный шаблон под именем SIMUL_2.XLT.

Введите исходные значения постоянных переменных (табл. 6.2) в ячейки В2.В4 и D2.D4 листа "Результаты анализа". Перейдите к листу "Имитация". Введите значения ключевых переменных и соответствующие вероятности (табл. 6.8). Полученная в результате ЭТ должна иметь вид рис. 6.10.

Рис. 6.10. Лист "Имитация" после ввода исходных данных

Установите курсор в ячейку А13. Приступаем к проведению имитационного эксперимента.

1.Выберите в главном меню тему "Сервис" пункт "Анализ данных". Результатом выполнения этих действий будет появление диалогового окна "Анализ данных", содержащего список инструментов анализа.

2.Выберите из списка "Инструменты анализа" пункт "Генерация случайных чисел" и нажмите кнопку "ОК" (рис. 6.11).

3.На экране появится диалоговое окно "Генерация случайных чисел". Укажите в списке "Распределения" требуемый тип – "Нормальное". Заполните остальные поля изменившегося окна согласно рис. 6.12 и нажмите кнопку "ОК". Результатом будет заполнение блока ячеек А13.А512 (переменные расходы) сгенерированными случайными значениями.

Рис. 6.11. Выбор инструмента "Генерация случайных чисел"

Рис. 6.12. Заполнение полей окна "Генерация случайных чисел"

Приведем необходимые пояснения. Первым заполняемым аргументом диалогового окна "Генерация случайных чисел" является поле "Число переменных". Оно задает количество колонок ЭТ, в которых будут размещаться сгенерированные в соответствии с заданным законом распределения случайные величины. В нашем примере оно должно содержать 1, так как ранее мы отвели под значения переменной V (переменные расходы) в ЭТ одну колонку – "А". В случае, если указывается число больше 1, случайные величины будут размещены в соответствующем количестве соседних колонок, начиная с активной ячейки. Если это число не введено, то все колонки в выходном диапазоне будут заполнены.

Следующим обязательным аргументом для заполнения является содержимое поля "Число случайных чисел" (т.е. – количество имитаций). Согласно условиям примера оно должно быть равно 500 (см. рис. 6.12). При этом ППП EXCEL автоматически подсчитывает необходимое количество ячеек для хранения генеральной совокупности.

Необходимый вид распределения задается путем соответствующего выбора из списка "Распределения". Как уже отмечалось ранее, могут быть получены 7 наиболее распространенных в практическом анализе типов распределений, каждое из которых характеризуется собственными параметрами. Выбранный тип распределения определяет внешний вид диалогового окна. В рассматриваемом примере выбор типа распределения "Нормальное" повлек за собой появление дополнительных аргументов – его параметров "Среднее" и "Стандартное отклонение", рассчитанных ранее для исследуемой переменной V в ячейках В7 и В8 листа "Имитация". К сожалению эти аргументы могут быть заданы только в виде констант. Использование адресов ячеек и собственных имен здесь не допускается!

Указание аргумента "Случайное рассеивание" позволяет при повторных запусках генератора получать те же значения случайных величин, что и при первом. Таким образом одну и ту же генеральную совокупность случайных чисел можно получить несколько раз, что значительно повышает эффективность анализа (сравните с предыдущим шаблоном!). В случае если этот аргумент не задан (равен 0), при каждом последующем запуске генератора будет формироваться новая генеральная совокупность. В нашем примере этот аргумент задан равным 1, что позволит нам оперировать с одной и той же генеральной совокупностью и избежать постоянных перерасчетов ЭТ.

Последний аргумент диалогового окна "Генерация случайных чисел" – "Параметры вывода" определяет место расположения полученных результатов. Место вывода задается путем установления соответствующего флажка. При этом можно выбрать три варианта размещения:

-выходной блок ячеек на текущем листе – введите ссылку на левую верхнюю ячейку выходного диапазона, при этом его размер будет определен автоматически и в случае возможного наложения генерируемых значений на уже имеющиеся данные на экран будет выведено предупреждающее сообщение;

-новый рабочий лист – в рабочей книге будет открыт новый лист, содержащий результаты генерации случайных величин, начиная с ячейки A1;

-новая рабочая книга – будет открыта новая книга с результатами имитации на первом листе.

В рассматриваемом примере для проведения дальнейшего анализа необходимо, чтобы случайные величины размещались в специально отведенные для них блоки ячеек (см. табл. 6.10). В частности для хранения 500 значений первой переменной ранее был отведен блок ячеек А13.А512. Поскольку для этого блока определено собственной имя – "Перем_расх", оно указано в качестве выходного диапазона. Отметим, что при увеличении либо уменьшении количества имитаций необходимо также переопределить и выходные блоки, предназначенные для хранения значений переменных.

Генерация значений остальных переменных Q и Р осуществляется аналогичным образом, путем выполнения шагов 1–3. Пример заполнения окна "Генерация случайных чисел" для переменной Q (количество) приведен на рис. 6.13.

Рис. 6.13. Заполнение полей окна для переменной Q

Для получения генеральной совокупности значений потока платежей и их чистой современной стоимости необходимо скопировать формулы базовой строки (ячейки D13.E13) требуемое число раз (499).

С проблемой копирования больших диапазонов ячеек мы уже сталкивались в предыдущем примере.

Ее решение осуществляется выполнением следующих действий.

1.Выделите и скопируйте в буфер ячейку D13.

2.Нажмите клавишу [F5]. На экране появится диалоговое окно "Переход".

3.Укажите в поле "Ссылка" имя блока "Поступления" и нажмите кнопку "ОК". Результатом этих действий будет выделение заданного блока.

4.Нажмите клавишу [ENTER].

5.В случае, если в ЭТ был установлен режим ручных вычислений, нажмите клавишу [F9].[2]

Аналогичным образом копируется формула из ячейки Е13. При этом в поле "Ссылка" диалогового окна "Переход" необходимо указать имя блока – "ЧСС". Вы также можете выбрать необходимое имя из списка "Перейти к".

Полученные автором результаты решения примера приведены на рис. 6.14 – 6.15.

Результаты проведенного имитационного эксперимента ненамного отличаются от предыдущих. Величина ожидаемой NPV равна 3412,14 при стандартном отклонении 2556,83. Коэффициент вариации (0,75) несколько выше, но меньше 1, таким образом риск данного проекта в целом ниже среднего риска инвестиционного портфеля фирмы. Результаты вероятностного анализа показывают, что шанс получить отрицательную величину NPV не превышает 9%. Общее число отрицательных значений NPV в выборке составляет 32 из 500. Таким образом с вероятностью около 91% можно утверждать, что чистая современная стоимость проекта будет больше 0. При этом вероятность того, что величина NPV окажется больше чем М(NPV) + s , равна 16% (ячейка F19). Вероятность попадания значения NPV в интервал [М(NPV) - s ; М(NPV)] равна 34%.

Рис. 6.14. Результаты имитационного эксперимента (шаблон II)

Рис. 6.15. Результаты анализа (шаблон II)

СПИСОК ИСТОЧНИКОВ:

1. http://www.cfin.ru/finanalysis/imitation_model-2-2.shtml

2. http://gendocs.ru/v10074/лекция_-_имитационное_моделирование_экономических_процессов?page=3

3. http://baumanpress.ru/books/186/186.pdf



[1] http://gendocs.ru/v10074/лекция_-_имитационное_моделирование_экономических_процессов?page=3

[2] http://www.cfin.ru/finanalysis/imitation_model-2-2.shtml


Информация о файле
Название файла Генератор случайных чисел как инструмент имитационного моделирования от пользователя z3rg
Дата добавления 9.2.2013, 17:55
Дата обновления 9.2.2013, 17:55
Тип файла Тип файла (zip - application/zip)
Скриншот Не доступно
Статистика
Размер файла 443.42 килобайт (Примерное время скачивания)
Просмотров 2652
Скачиваний 77
Оценить файл