Написать библиотеку классов для моделирования включающую следующие
классы:
-- Генератор объектов
тип генерируемого объекта
(объекты в системе представляются номером типа)
среднее время появления и тип случайного распределения
(можно реализовать сначала только равномерное)
включить/выключить
кол-во сгенерированных объектов
указатель на функцию, вызываемую при генерации объекта
-- Очередь объектов к устройству обслуживания
добавить объект
взять объект (возвращает номер типа и удаляет из очереди)
текущее число объектов в очереди
максимальное, минимальное, среднее
времени ожидания в очереди (расчет при моделировании)
максимальная длина очереди (расчет при моделировании)
-- Устройство обслуживания
поставить объект на обработку
среднее время обработки и тип случайного распределения
(можно реализовать сначала только равномерное)
работает/простаивает
коэффициент загрузки (расчет при моделировании)
кол-во обработанных объектов
указатель на функцию, вызываемую при завершении обработки объекта
-- Система в целом
текущее количество объектов в системе
добавить объект в систему
удалить объект из системы
интервал моделирования
текущее время
Очередь событий в системе
(составная часть, может быть определена в закрытой части класса,
если генератор и устройство будут друзьями этого класса)
На карьере работает 2 экскаватора и M машин. В начальный момент
машины поровну делятся между очередями экскаватора. Экскаватор
наполняет кузов машины за 6-10 минут (распределение времени
равномерное). Машина отвозит песок потребителю за 45 минут
(распределение нормальное со стандартным отклонением 15 минут или 30-60 минут).
После возвращения становится под загрузку простаивающего
экскаватора или в самую маленькую очередь. Промоделировать систему
в течении 8 часов при различных M и выбрать M минимизирующее
простой экскаваторов и машин.
Для моделирования поездки машины к потребителю можно
использовать генератор, который необходимо включать, а после
генерации объекта выключать. А можно сделать M устройств обслуживания .