- •Глава 1. Предмет и задачи исследования операций.
- •§ 2. Основные понятия и принципы исследования операций
- •§ 3. Математические модели операций
- •Глава 2 разновидности задач исследования операций и подходов к их решению
- •§ 4. Прямые и обратные задачи исследования операций. Детерминированные задачи
- •§ 5. Проблема выбора решения в условиях неопределенности
- •§ 6. Многокритериальные задачи исследования операций. «Системный подход»
- •Глава 3 линейное программирование
- •§ 7. Задачи линейного программирования
- •§ 8. Основная задача линейного программирования
- •§ 9. Существование решения озлп в способы его нахождения
- •§ 10. Транспортная задача линейного программирования
- •Тогда задача сводится к задаче с правильным балансом, так как
- •Может встретиться также случай
- •§ 11. Задачи целочисленного программирования. Понятие о нелинейном программировании
- •Глава 4 динамическое программирование
- •§ 12. Метод динамического программирования
- •§ 13. Примеры решения задач динамического программирования
- •§ 14. Задача динамического программирования в общем виде. Принцип оптимальности
- •Глава 5 марковские случайные процессы
- •§ 15. Понятие о марковском процессе
- •§ 16. Потоки событий
- •§ 17. Уравнения Колмогорова для вероятностей состояний. Финальные вероятности состояний
- •Глава 6 теория массового обслуживания
- •§ 18. Задачи теории массового обслуживания. Классификация систем массового обслуживания
- •§ 19. Схема гибели и размножения. Формула Литтла
- •§ 20. Простейшие системы массового обслуживания и их характеристики
- •§ 21. Более сложные задачи теории массового обслуживания
- •Глава 7 статистическое моделирование случайных процессов (метод монте-карло)
- •§ 22. Идея, назначение и область применимости метода
- •§ 23. Единичный жребий и формы его организации
- •3. Какое значение приняла случайная величина X?
- •§ 24. Определение характеристик стационарного случайного процесса по одной реализации
- •Глава 8 игровые методы обоснования решений
- •§ 25. Предмет и задачи теории игр
- •§ 26. Антагонистические матричные игры
- •§ 27. Методы решения конечных игр
- •§ 28. Задачи теории статистических решений
3. Какое значение приняла случайная величина X?
Если случайная величина Х дискретна, т. е. имеет значения х1, x2, ..., xk с вероятностями р1, р2, ..., pk, то, очевидно, случай сводится к предыдущему. Теперь рассмотрим случай, когда случайная величина непрерывна и имеет заданную плотность вероятности f(x). Чтобы разыграть ее значение, достаточно осуществить следующую процедуру: перейти от плотности вероятности f(x) к функции распределения F(r) по формуле
(23.1)
затем найти для функции F обратную ей функцию Ψ. Затем разыграть случайное число R от 0 до 1 и взять от него эту обратную функцию:
X=Ψ(R). (23.2)
Можно доказать (мы этого делать не будем), что полученное значение Х имеет как раз нужное нам распределение f(x).

Рис.
23.3.
Z = R1, + R2 + ... + R6 (23.3)
имеет распределение, настолько близкое к нормальному, что в большинстве практических задач им можно заменить нормальное. Для того чтобы математическое ожидание и среднее квадратическое отклонение этого нормального распределения были равны заданным mx, ơx, нужно подвергнуть величину Z линейному преобразованию и вычислить.
Х
=
(23.4)
Это и будет нужная нам нормально распределенная случайная величина.
4. Какую совокупность значений приняли случайные величины Х1, Х2,...,Хk? Если случайные величины независимы, то достаточно k раз повторить процедуру, описанную в предыдущем пункте. Если же они зависимы, то разыгрывать каждую последующую нужно на основе ее условного закона распределения при условии, что все предыдущие приняли те значения, которые дал розыгрыш (более подробно останавливаться на этом случае мы не будем).
Таким образом, мы рассмотрели все четыре варианта единичного жребия и убедились, что все они сводятся к розыгрышу (одно- или многократному) случайного числа R от 0 до 1.
Возникает вопрос: а как же разыгрывается это число R? Существует целый ряд разновидностей так называемых «датчиков случайных чисел», решающих эту задачу. Остановимся вкратце на некоторых из них.
Самый простой из датчиков случайных чисел — это вращающийся барабан, в котором перемешиваются перенумерованные шарики (или жетоны). Пусть, например, нам надо разыграть случайное число R от 0 до 1 с точностью до 0,001. Заложим в барабан 1000 перенумерованных шариков, приведем его во вращение и после остановки выберем первый попавшийся шарик, прочтем его номер и разделим на 1000.
Можно поступить и немного иначе: вместо 1000 шариков заложить в барабан только 10, с цифрами 0, 1,2,..., 9. Вынув один шарик, прочтем первый десятичный знак дроби. Вернем его обратно, снова покрутим барабан и возьмем второй шарик — это будет второй десятичный знак и т. д. Легко доказать (мы этого делать не будем), что полученная таким образом десятичная дробь будет иметь равномерное распределение от 0 до 1. Преимущество этого способа в том, что он никак не связан с числом знаков, с которым мы хотим знать R.
Отсюда один шаг до рационализаторского предложения: не разыгрывать число R каждый раз, когда это понадобится, а сделать это заранее, т. е. составить достаточно обширную таблицу, в которой все цифры 0, 1, 2, .... 9 встречаются случайным образом и с одинаковой вероятностью (частотой). До этого приема люди давно додумались: такие таблицы действительно составлены и применяются на практике. Они называются таблицами случайных чисел. Выдержки из таблиц случайных чисел приводятся во многих руководствах по теории вероятностей и математической статистике (например, [201]). Краткие выдержки из таблиц случайных чисел приведены и в популярной книжке автора [21], где, кстати, даны и примеры моделирования случайных процессов с помощью таблиц случайных чисел.
При ручном применении метода Монте-Карло таблицы случайных чисел — наилучший способ розыгрыша случайного числа R от 0 до 1. Если же моделирование осуществляется не вручную, а на ЭВМ, то пользование таблицами случайных чисел (как и вообще таблицами) нерационально — они слишком загрузили бы память. Для розыгрыша R на ЭВМ применяются специальные датчик и, которыми оснащены многие вычислительные машины. Это могут быть как «физические датчики», основанные на преобразовании случайных шумов, так и вычислительные алгоритмы, по которым сама машина вычисляет так называемые «псевдослучайные числа». Приставка «псевдо» означает «как бы», «якобы». И в самом деле, числа, вычисляемые с помощью таких алгоритмов, фактически случайными не являются, но практически ведут себя как случайные; все значения от 0 до 1 встречаются в среднем одинаково часто и, кроме того, связь между последовательными значениями получаемых чисел практически отсутствует. Существует ряд алгоритмов вычисления псевдослучайных чисел, различающихся между собой по простоте, равномерности и другим признакам (см. [22]). Один из самых простых алгоритмов вычисления псевдослучайных чисел состоит в следующем. Берут два произвольных n-значных двоичных числа а1 и a2, перемножают их и в полученном произведении берут п средних знаков; это будет число a3. Затем перемножают a1 и а2, в произведении снова берут п средних знаков и т. д. Полученные таким образом числа рассматривают как последовательность двоичных дробей с п знаками после запятой. Такая последовательность дробей ведет себя практически как ряд значения случайного числа R от 0 до 1. Существуют и другие алгоритмы, основанные' не на перемножении, а на «суммировании со сдвигом». Подробнее останавливаться на конкретных алгоритмах получения псевдослучайных чисел не имеет смысла: в настоящее время практически все ЭВМ снабжены либо датчиками случайных чисел, либо проверенными алгоритмами вычисления псевдослучайных1).
