б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания). 3. Если средство обслуживания занято, поставить поступившего клиента в очередь и увеличить ее длину на единицу. Событие, связанное с уходом клиента: 1. Если очередь пуста, объявить систему свободной. Скорректировать данные использования системы. 2. Если очередь не является пустой, а) начать обслуживание первого клиента в очереди. Уменьшить длину очереди на единицу и скорректировать данные использования системы; б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания). В пункте 3.3 мы пришли к выводу, что по имеющимся исходным данным, в магазине в среднем будет работать 1,3 кассы. Поскольку в процессе имитации выполняется много вычислений, ограничимся имитацией прихода к кассе пяти покупателей. Пусть время между приходом покупателей на канал обслуживания (кассу) является случайной величиной X, изменяющейся по экспоненциальному закону с определенным математическим ожиданием. Через р и q обозначим значения времени между приходом покупателей и их обслуживанием соответственно. Обозначим через Т время моделирования (время наблюдения над моделью). Предположим также, что первый покупатель приходит в момент времени Г=0 и касса свободна. Время между приходом покупателей к кассе является случайной величиной, изменяющееся по экспоненциальному закону с математическим ожиданием 5 мин. Процесс обслуживания длится от четырех до пяти минут, время обслуживания имеет равномерное распределение на этом интервале. По131 |
718 Глава 18. Имитационное моделирование 1. С помощью шаблона ch l8RandomNumberGenerator.xls сгенерируйте последовательность случайных чисел с начальными параметрами b = 17, с= 111, и0= 7 ит = 103 (см. пример 18.4.1) и определите длину цикла этой последовательности. 2. Найдите программу генератора случайных чисел для вашего компьютера и сгенерируйте с его помощью 1000 случайных чисел из интервала [0,1]. Постройте гистограмму полученных чисел и визуально убедитесь в том, что есть веские основания считать, что они подчинены равномерному распределению из интервала [0, 1]. Впрочем, чтобы проверить последовательность надлежащим образом, вам необходимо использовать следующие тесты: критерий согласия хиквадрат (раздел 1 2 .6 ), тест на независимость и корреляционный тест [2]. 18.5. МЕХАНИКА ДИСКРЕТНОЙ ИМИТАЦИИ Как указывалось выше, все дискретные имитационные модели в той или иной форме представляют ситуации, связанные с очередями, в которых есть два типа основных событий: прибытие и уход. Эти события определяют моменты, в которые могут происходить изменения в статистике системы. В этом разделе детально обсуждаются вопросы сбора статистических данных, полученных в процессе наблюдений над имитационной моделью. В разделе 18.5.1 на числовом примере детально рассмотрена имитация простой модели очереди с одним сервисом. В разделе 18.5.2 показана реализация такого же процесса в электронной таблице Excel. 18.5.1. Ручная имитация модели очереди с одним сервисом Время между приходом клиентов в парикмахерскую является случайной величиной, изменяющейся по экспоненциальному закону с математическим ожиданием 15 мин. В парикмахерской работает один мастер, который выполняет мужскую стрижку от 10 до 15 мин., время стрижки имеет равномерное распределение на этом интервале. Клиенты обслуживаются в порядке очереди. Требуется определить следующие параметры работы парикмахерской. 1. Среднюю занятость парикмахера. 2. Среднее количество ожидающих клиентов. 3. Среднее время ожидания клиента в очереди. Логику работы имитационной модели можно описать в терминах событий, связанных с прибытием и уходом клиентов, следующим образом. Событие, связанное с прибытием клиента 1. Сгенерировать и сохранить время события, связанного с прибытием следующего клиента (текущее время моделирования + промежуток времени между приходами клиентов). 2. Если средство обслуживания (парикмахер) свободно, а) начать обслуживание поступившего клиента, изменить состояние системы на рабочее и скорректировать данные использования системы; б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания). 3. Если средство обслуживания занято, поставить поступившего клиента в очередь и увеличить ее длину на единицу. УПРАЖНЕНИЯ 18.4 18.5. Механика дискретной имитации 719 1. Если очередь пуста, объявить систему свободной. Скорректировать данные использования системы. 2. Если очередь не является пустой, а) начать обслуживание первого в очереди клиента. Уменьшить длину очереди на единицу и скорректировать данные использования системы; б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания). В рассматриваемом примере время между приходом клиентов изменяется по экспоненциальному закону с математическим ожиданием 15 мин., а время обслуживания распределено равномерно в интервале от 10 до 15 мин. Обозначим через р и q случайные значения времени между прибытием клиентов и их обслуживанием соответственно. Используя результаты раздела 18.3.2, получаем р = -10 1п(Д) мин., 0 18.1, начиная с первого столбца. Обозначим через Т время моделирования (время наблюдения над моделью). Предположим также, что первый клиент приходит в момент времени Т = 0 и средство обслуживания свободно. Поскольку в процессе имитации выполняется много вычислений, ограничимся имитацией прихода только пяти клиентов. При этом рассмотрим все возможные ситуации, возникающие в процессе имитации. В следующем разделе с помощью шаблона Excel покажем имитацию без проведения вычислений вручную. Прибытие клиента 1 в момент Т = 0. Второй клиент прибудет в момент времени Т = 0 +р, = -15 1п(0,0589) = 42,46 мин. Так как при Т = 0 система свободна, немедленно начинается обслуживание первого клиента. Соответствующее время обслуживания вычисляется с использованием равномерно распределенного случайного числа і? =0,6733. Первый клиент уйдет из парикмахерской в момент времени 7 = 0 + 9, = 1 0 + 5х 0,6733 = 13,37 мин. Получаем следующий хронологический перечень будущих событий Событие, связанное с уходом клиента (окончание обслуживания) Время Т Событие 13,37 Уход клиента 1 42,48 Приход клиента 2 Уход клиента 1 в момент Т = 13.37. Так как очередь пуста, средство обслуживания становится свободным. В то же время фиксируем, что система была занята от момента времени Т = 0 до Т = 13,37. Имеем следующий скорректированный перечень будущих событий (в данном случае имеется только одно событие). Время Т Событие 42,48 Приход клиента 2 |