УПРАЖНЕНИЯ 18.4
1. С помощью шаблона chl8RandomNumberGenerator.xls сгенерируйте последовательность случайных чисел с начальными параметрами Ь = 17, с= 111, и0 = 7 и/71= 103 (см. пример 18.4.1) и определите длину цикла этой последовательности.
2. Найдите программу генератора случайных чисел для вашего компьютера и сгенерируйте с его помощью 1000 случайных чисел из интервала [0,1]. Постройте гистограмму полученных чисел и визуально убедитесь в том, что есть веские основания считать, что они подчинены равномерному распределению из интервала [0, 1]. Впрочем, чтобы проверить последовательность надлежащим образом, вам необходимо использовать следующие тесты: критерий согласия хи-квадрат (раздел 12.6), тест на независимость и корреляционный тест [2].
18.5. МЕХАНИКА ДИСКРЕТНОЙ ИМИТАЦИИ
Как указывалось выше, все дискретные имитационные модели в той или иной форме представляют ситуации, связанные с очередями, в которых есть два типа основных событий: прибытие и уход. Эти события определяют моменты, в которые могут происходить изменения в статистике системы. В этом разделе детально обсуждаются вопросы сбора статистических данных, полученных в процессе наблюдений над имитационной моделью. В разделе 18.5.1 на числовом примере детально рассмотрена имитация простой модели очереди с одним сервисом. В разделе 18.5.2 показана реализация такого же процесса в электронной таблице Excel.
18.5.1. Ручная имитация модели очереди с одним сервисом
Время между приходом клиентов в парикмахерскую является случайной величиной, изменяющейся по экспоненциальному закону с математическим ожиданием 15 мин. В парикмахерской работает один мастер, который выполняет мужскую стрижку от 10 до 15 мин., время стрижки имеет равномерное распределение на этом интервале. Клиенты обслуживаются в порядке очереди. Требуется определить следующие параметры работы парикмахерской.
1. Среднюю занятость парикмахера.
2. Среднее количество ожидающих клиентов.
3. Среднее время ожидания клиента в очереди.
Логику работы имитационной модели можно описать в терминах событий, связанных с прибытием и уходом клиентов, следующим образом. Событие, связанное с прибытием клиента
1. Сгенерировать и сохранить время события, связанного с прибытием следующего клиента (текущее время моделирования + промежуток времени между приходами клиентов).
2. Если средство обслуживания (парикмахер) свободно,
а) начать обслуживание поступившего клиента, изменить состояние системы на рабочее и скорректировать данные использования системы;
б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания).
3. Если средство обслуживания занято, поставить поступившего клиента в очередь и увеличить ее длину на единицу.
Событие, связанное с уходом клиента (окончание обслуживания)
1. Если очередь пуста, объявить систему свободной. Скорректировать данные использования системы.
2. Если очередь не является пустой,
а) начать обслуживание первого в очереди клиента. Уменьшить длину очереди на единицу и скорректировать данные использования системы;
б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания).
В рассматриваемом примере время между приходом клиентов изменяется по экспоненциальному закону с математическим ожиданием 15 мин., а время обслуживания распределено равномерно в интервале от 10 до 15 мин. Обозначим через р и q случайные значения времени между прибытием клиентов и их обслуживанием соответственно. Используя результаты раздела 18.3.2, получаем
р = -10 1п(Д) мин., 0 < R <1,
q = 10 + 5Rмин., 0<R <1.
В этом примере используем случайные числа R из табл. 18.1, начиная с первого столбца. Обозначим через Т время моделирования (время наблюдения над моделью). Предположим также, что первый клиент приходит в момент времени Т = 0 и средство обслуживания свободно.
Поскольку в процессе имитации выполняется много вычислений, ограничимся имитацией прихода только пяти клиентов. При этом рассмотрим все возможные ситуации, возникающие в процессе имитации. В следующем разделе с помощью шаблона Excel покажем имитацию без проведения вычислений вручную.
Прибытие клиента 1 в момент Т = 0. Второй клиент прибудет в момент времени
Т = 0 +Pl = -15 1п(0,0589) = 42,46 мин.
Так как при Т = 0 система свободна, немедленно начинается обслуживание первого клиента. Соответствующее время обслуживания вычисляется с использованием равномерно распределенного случайного числа R= 0,6733. Первый клиент уйдет из парикмахерской в момент времени
7=0+9, = 10+ 5х 0,6733 = 13,37 мин. Получаем следующий хронологический перечень будущих событий
Время т | Событие |
13,37 | Уход клиента 1 |
42,48 | Приход клиента 2 |
Уход клиента 1 в момент Т = 13.37. Так как очередь пуста, средство обслуживания становится свободным. В то же время фиксируем, что система была занята от момента времени Т = 0 до Т= 13,37. Имеем следующий скорректированный перечень будущих событий (в данном случае имеется только одно событие).
Время т | Событие |
42,48 | Приход клиента 2 |
Прибытие клиента 2 в момент Т = 42,48. Третий клиент прибудет в момент времени
Т = 42,48 + [-15 1п(0,4799)] = 53,49 мин.
Так как средство обслуживания свободно, начинается обслуживание второго клиента, и система объявляется занятой. Второй клиент оставит систему в момент времени
Т = 42,48 + (10 + 5 х 0,9486) = 57,22 мин.
Список будущих событий изменяется следующим образом.
Время т | Событие |
53,49 | Приход клиента 3 |
57,22 | Уход клиента 2 |
Прибытие клиента 3 в момент Т = 53,49. Клиент 4 прибудет в момент времени
Т = 53,49 + [-15 1п(0,6139)] = 60,81 мин.
Так как система в это время занята (она занята до Т = 57,22), третий клиент помещается в очередь в момент Т - 53,49. Откорректированный список будущих событий принимает следующий вид.
Время Г | Событие |
57,22 | Уход клиента 2 |
60,81 | Приход клиента 4 |
Уход клиента 2 в момент Т = 57,22. Клиент 3 покидает очередь для начала обслуживания. Время его ожидания в очереди равно
W3 = 57,22 - 43,22 = 3,73 мин.
Время ухода (время окончания обслуживания) третьего клиента:
Т = 57,22 + (10 + 5 х 0,5933) = 70,19 мин.
Список будущих событий принимает следующий вид.
Время т | Событие |
60,81 | Приход клиента 4 |
70,19 | Уход клиента 3 |
Прибытие клиента 4 в момент Т = 60,81. Клиент 5 прибудет в момент времени
Т = 60,81 + [-15 1п(0,9341)] = 61,83 мин.
Так как система занята до Т = 70,19, четвертый клиент помещается в очередь. Откорректированный список будущих событий принимает следующий вид.
Время 7" | Событие |
61,83 | Приход клиента 5 |
70,19 | Уход клиента 3 |
Приход клиента 5 в момент Т = 61,83. Поскольку наша имитация ограничивается пятью клиентами, время прибытия шестого клиента генерировать не будем.