Чем сложнее действие, тем проще персонажи /Карел Чапек/
Познаём мир… Задумка, теория вопроса, термины и определения, методы моделирования систем описаны в первой части.
“Усложним” систему до многоканальной (n приборов обслуживания) с ограниченной очередью (k — вместимость накопителя) и источником бесконечного числа заявок (M/M/n/k). Предполагается, что заявки на обслуживание в систему поступают в случайные моменты времени. Случайной величиной является и время обслуживания заявки. Поступающие заявки обслуживаются по принципу “первым вошёл — первым вышел” (FIFO). Потери в системе возникают из-за ограниченности очереди — k мест для ожидания заявок. Если все приборы заняты, накопитель полностью заполнен — заявка теряется.
Математическое описание системы M/M/n/k опускаем — мудрено, строим новую имитационную модель (ИМ): в рамках дискретного подхода, на основе сканирования активностей, используя универсальный язык программирования. Состояние системы изменяется только в моменты свершения событий. В промежутке состояние системы неизменно, её динамический “портрет” получаем продвижением модельного времени от события к событию (принцип δz).
ИМ не использует формул, не имеет ограничений, наглядна. Модель универсальна, но об этом ниже…
Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал /Альберт Эйнштейн/
Решим, найденную на просторах Сети, задачу: имеем поток авто(мобилей), требующих технического обслуживания (ТО), и поток их освобождений с параметрами: λ=6; μ=2. На станции ТО работают три бригады (n=3). Помимо трёх машин на обслуживании допускается хранение на площадке не более пяти авто (k=5). Согласно решённой (кем-то) аналитической модели: среднее число авто в очереди на ТО Lоч=1,9; среднее время ожидания авто в очереди Wоч=0,36; среднее число занятых бригад Lоб=2,62 — отдыхают мало…
Проверяем на ИМ…
Всё верно!!! Модель адекватна.
Об универсальности модели. “Обнулим” накопитель — получаем ИМ классической системы с отказами (потерями) — очереди нет. Если заявка приходит, а все каналы заняты — заявка покидает систему (теряется).
Итак, λ=6; μ=2; n=3; k=0. Запускаем ИМ…
Очереди нет — простоев нет — логично. Остаётся проверить достоверность среднего числа занятых каналов (бригад) — Lоб=1,96.
Идём от обратного — пользуемся “аналитикой”. Рассчитаем (устно) вероятность отказа в обслуживании — Pотк=0,653. Относительная и абсолютная пропускные способности системы: Q=1-Pотк=0,346; A=λ·Q=3,921. Среднее число занятых бригад — Lоб=A/μ=3,921/2=1,96. Одну бригаду можно смело "самоизолировать" (актуально).
Ура! Заработало! /Кот Матроскин/
Вспомним систему из первой части опуса — M/M/1 (λ=1; μ=2; n=1). Был получен следующий результат Lоч=Wоч=Lоб=0,5.
В текущей ИМ “сделаем” накопитель “безразмерным” — k=1000000. Убеждаемся, что теперь это ИМ классической системы без потерь, с неограниченным ожиданием и источником с бесконечным числом заявок и т.д…
Работает!! Осталось почудить…
Вспоминаем исходные данные: λ=6; μ=2; n=3; k=5.
Пусть λ=0 — все авто исправны…
Заявок нет — жизнь замерла, бригады “курят”.
Теперь μ=0 — не хотим работать…
Заявки есть — много, очередь стабильна — пять машин, а почему? Задействованы все бригады, но работают плохо — авто на площадке ждут своего часа, долго ждут…
Ну и напоследок — и то и другое λ=μ=0…
Заявок мало, работаем спустя рукава — очереди практически нет, можно сокращать персонал — оставить одну бригаду. Случается — задействованы все бригады, а площадка не пустует — простои растут…
Теория — это когда всё известно, но ничего не работает. Практика — это когда всё работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает, и никто не знает почему! /Альберт Эйнштейн/
Будьте здоровы!!!