
- •Москва, 2004
- •Введение
- •1. Основные понятия теории моделирования
- •1.1 Понятие модели. Виды моделей
- •Цель (человека)
- •1.2. Общие вопросы моделирования систем
- •1.3. Основные требования к моделям
- •1.4. Принципы моделирования
- •1.5 Вопросы для самоконтроля
- •5. Основные требования к моделям.
- •6. Принципы моделирования.
- •2. Компьютерное моделирование
- •2.1 Этапы моделирования
- •2.2 Определение цели моделирования.
- •Определение типа системы;
- •Описание рабочей нагрузки;
- •Декомпозиция системы.
- •2.3 Определение типа системы
- •2.4 Описание рабочей нагрузки.
- •2.5 Декомпозиция системы
- •2.6 Выбор между имитационной или аналитической моделью
- •2.7 Вопросы для самоконтроля
- •6. Декомпозиция системы.
- •3.Формализация модели.
- •3.1 Классификация схем построения имитационной модели
- •3.2. Представление динамики системы
- •3.3. Генераторы случайных чисел
- •3.4 Моделирование случайных факторов
- •3.5 Управление модельным временем
- •3.5.1 Виды представления времени в модели
- •3.5.2 Изменение времени с постоянным шагом
- •3.5.3 Моделирование по особым состояниям
- •3.6. Моделирование параллельных процессов
- •3.6.1. Виды параллельных процессов
- •3.6.2. Механизм реализации параллельных процессов в языках моделирования
- •3.7 Вопросы для самоконтроля
- •8. Виды представления времени в модели.
- •4. Программная реализация модели
- •5.Планирование модельных экспериментов
- •5.1 Задачи планирования экспериментов. Стратегическое и тактическое планирование.
- •5.2. Стратегическое планирование имитационного эксперимента
- •5.2.1. Цель стратегического планирования эксперимента
- •5.2.2. Способы построения стратегического плана
- •5.3. Тактическое планирование экспериментов
- •5.4 Вопросы для самоконтроля
- •6. Обработка и анализ результатов моделирования
- •6.1 Основная идея регрессионного анализа
- •6.2 Общая схема проведения расчетов
- •6.3 Оценка качества имитационной модели
- •6.3.1 Адекватность модели
- •6.3.2 Оценка устойчивости
- •6.3.3 Оценка чувствительности
- •6.4 Калибровка модели
- •6.5 Вопросы для самоконтроля
- •6. Оценка чувствительности.
- •7.1 Основные понятия теории массового обслуживания
- •7.2 Марковский процесс
- •7.2.1 Понятие марковского процесса
- •7.2.2 Потоки событий
- •7.3 Уравнения Колмогорова для вероятностей состояний. Финальные вероятности состояний
- •7.4 Схема гибели/размножения.
- •7.5 Формула Литтла.
- •7.6 Моделирование смо как Марковского процесса
- •7.7. Моделирование смо по событиям
- •Заключение
3.3. Генераторы случайных чисел
Имитационное моделирование позволяет исследовать поведение системы с учетом влияния случайных факторов. Эти факторы, в зависимости от их природы, могут быть отражены в модели как случайные события, случайные величины, случайные функции.
Пример 1. Модель исследования надежности ВС. Отказ узла – случайное событие.
Пример 2. Модель оценки временных параметров процесса обслуживания клиентов в автомастерской. Интервал времени между появлениями клиентов описывается как случайная величина, распределенная по некоторому закону.
В основе всех методов и приемов моделирования случайных факторов лежит использование случайных величин, имеющих равномерное распределение на интервале (0,1) – ррсч(0,1) (равномерно распределенные случайные числа).
«Истинно» случайные числа формируются с помощью аналого-цифровых преобразователей (АЦП) на основе сигналов физических генераторов, использующих естественный источник случайных шумов (шум электронных и полупроводниковых устройств, радиоактивный распад и т.д.). При компьютерном моделировании можно воспользоваться электронным генератором шума, и снимать с него сигнал с помощью порогового органа.
Случайные числа, полученные одним из алгоритмических методов, не будут действительно случайными, поскольку получены в соответствии с четким и простым алгоритмом. Однако, применяя к такой выборке методы статистического анализа, можно видеть, что она в большинстве случаев обладает такими же свойствами, как и выборка действительно случайной величины.
Достоинством таких методов является их чисто программная реализация, недостатком — возможность получить "плохой" с вероятностной точки зрения генератор при неудачном подборе параметров.
Метод Середин квадратов. Свое название метод получил от арифметической операции возведения в квадрат, используемой при построении выборки. На самом деле, в процессе вычислений получается последовательность больших целых чисел, которым ставятся в соответствие числа из интервала (0,1). Генератор работает в 4k-разрядной сетке, где k — целое число.
Для получения последовательности необходимо задаться начальным числом-"затравкой" x0 половинной разрядности (2k). Это число проще всего получить, прочитав показания часов реального времени компьютера. В выбранной разрядной сетке последовательность полностью определяется значением x0. Для одинаковых x0 всегда получается одна и та же последовательность.
На каждом шаге текущее целое число xi возводится в квадрат (при этом получается число разрядности 4k), и из центральных 2k разрядов полученного квадрата формируется новое целое число xi+1. Числа ui в диапазоне (0,1) получаются делением xi на число М=100...0 (2k нулей, число записано в той же разрядной сетке, что используется при генерации; очевидно, что M на 1 больше максимального числа, представимого в 2k-разрядной сетке).
Недостатком этого метода является возможность получить на очередном шаге генерации ноль, тогда все последующие числа в последовательности также будут нулевыми. Поэтому при программной реализации данного метода генерации необходимо всегда вводить "проверку на ноль" и при получении нуля считывать новую «затравку» с часов.
Метод Мультипликативного датчика. Генератор, построенный по методу мультипликативного датчика, тоже получает последовательность больших целых чисел и отображает ее в диапазон (0,1), и ему так же нужна «затравка» x0. Последовательность получаемых чисел описывается формулами xi+1 = (axi+b) mod M;
ui = xi/M;
где a, b, M, xi — целые числа, ui — вещественные числа в диапазоне от 0 до 1.
Для получения "хорошего" со статистической точки зрения распределения рекомендуется выбирать параметры M, a и b исходя из следующих соображений:
M — большое целое число, желательно простое;
a — целое число порядка корня квадратного из M, желательно простое, M не должно делиться на a;
a и M выбираются такими, чтобы их произведение не выходило за границы разрядной сетки используемых целых переменных;
b — целое число того же порядка, что и a.
Слагаемое b используется, чтобы устранить потенциальную опасность получения непрерывной последовательности нулей, начиная с определенного шага. Если M и a — простые числа, то такой опасности не существует (axi никогда не будет делиться на M).
Оба рассмотренных генератора основаны на получении последовательности целых чисел, причем каждое следующее число полностью определяется предыдущим числом (и параметрами генератора, которые в процессе счета не изменяются). Поэтому очевидно, что при большом количестве запусков генератора числа в последовательности после какого-то шага начнут повторяться. Очевидно, что из целых чисел, лежащих в диапазоне от 0 до (M-1), можно в лучшем случае сформировать последовательность, не содержащую повторов, длиной не более M.
Периодом генератора называют количество неповторяющихся чисел, которые генератор может сформировать при заданных параметрах и "затравке". Обычно период генератора получается меньше M. Генератор может считаться достаточно хорошим, если он обеспечивает период последовательности более M/4 для большинства "затравок".
Для определения периода генератора необходимо зафиксировать одно из целых чисел, полученных в результате работы процедуры генератора, и подсчитать количество вызовов процедуры генератора до того момента, когда в результате получится то же целое число, сгенерировав, таким образом, не менее M чисел. !!! Проводить проверку повторения вещественных чисел из диапазона [0,1) не следует.
Результаты имитационного моделирования существенно зависят от качества используемых генераторов случайных чисел. Поэтому они должны пройти тесты на пригодность. Таких тестов, как правило, три:
совпадение оценки математического ожидания и дисперсии с мат. ожиданием и дисперсией равномерного распределения;
оценка периодичности последовательности;
оценка равномерности распределения (удовлетворение некоторому критерию, например, Пирсона).