Опубликован: 15.02.2013 | Доступ: свободный | Студентов: 235 / 0 | Длительность: 16:52:00
ISBN: 978-5-9556-0146-5
Лекция 9:

Модель предоставления ремонтных услуг

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Сегмент Мастера

Сегмент Мастера предназначен для имитации ожидания освобождения мастеров, непосредственно времени выполнения соответствующего вида ремонта и отправки выполненной заявки в сегмент учёта.

Сегмент построен на четырёх объектах queue и четырёх объектах delay.

  1. Из палитры Презентация перетащите элемент Прямоугольник. Оставьте имя, предложенное системой.
  2. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 740, Y: 30, Ширина: 200, Высота: 410.
  3. Перетащите элемент text на прямоугольник и на странице Основные панели Свойства в поле Текст: введите Мастера.
  4. Перетащите указанные объекты из Основной библиотеки на диаграмму класса Main. Разместите, дайте имена и соедините их так, как показано на рис. 8.4.
  5. У объектов очМастеров1…очМастеров4 укажите максимальную вместимость и класс заявки Заявка.
  6. У объектов мастера1…мастера4 установите свойства:
    • Класс заявки: Заявка
    • Задержка задается Явно
    • Время задержки entity.времяР
    • Включить сбор статистики Установите флажок
  7. Свойство Вместимость у этих же объектов укажите колМастеров1…колМастеров4 соответственно.

С выходов 0…2 объекта видРемЗаяв1 заявки сразу поступают в объект очМастеров1 (queue).

С выходов объектов видРемЗаяв2…видРемЗаяв4 заявки поступают на объекты свобМастер1_2, свобМастер1_3, свобМастер1_4 соответственно. В принятых именах первая цифра означает группу мастеров, а вторая - тип заявки. Этими объектами проверяются условия. Например, объектом свобМастер1_3 проверяется условие:

(очМастеров1.size()==0)&&
(мастера1.size()<колМастеров1)&&(мастера3.size()!=0)

Пуста ли очередь мастеров 1 группы? И есть ли свободные мастера 1 группы? И заняты ли мастера 3 группы? Если сложное условие, состоящее из трёх простых условий, выполняется, то заявка с выхода true объекта свобМастер1_3 на объект мастера1.

Аналогичные проверки осуществляются в объектах свобМастер1_3, свобМастер1_4.

Если условие не выполняется, то заявка с выходов false поступает в очередь очМастеров2…очМастеров4 соответственно.

Объекты свобМастер2_3, свобМастер2_4 проверяют возможности в текущий момент времени выполнения заявок 3 и 4 типов мастерами 2 группы.

Объект свобМастер3_4 проверяет возможность выполнения заявок 4 типа мастерами 3 группы.

Сегменты Диспетчеры и Мастера

увеличить изображение
Рис. 8.4. Сегменты Диспетчеры и Мастера
Сегмент Учёт выполненных заявок

Сегмент предназначен для учёта количества выполненных заявок по типам и видам ремонтов, а также для определения вероятности выполнения заявок в целом.

Сегмент построен на пяти объектах selectOutput5 и одном объекте sink.

  1. Из палитры Презентация перетащите элемент Прямоугольник. Оставьте имя, предложенное системой.
  2. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 970, Y: 30, Ширина: 250, Высота: 410.
  3. Перетащите элемент text на прямоугольник и на странице Основные панели Свойства в поле Текст: введите Учёт выполненных заявок.
  4. Перетащите указанные элементы на прямоугольник. Разместите, соедините и дайте имена согласно рис. 8.5.
    Сегменты Мастера и Учёт выполненных заявок

    Рис. 8.5. Сегменты Мастера и Учёт выполненных заявок
  5. Свойства элементов установите согласно табл. 8.3.
    Таблица 8.3.
    Свойства Значение
    Имя поТипамЗаяв1
    Использовать Условия
    Условие 0 entity.типЗ==1
    Действие при выходе 0 выпЗаявТип1++;
    выпЗаявТип++;
    верВыпЗаяв1=
    выпЗаявТип1/постЗаявТип1;
    Условие 1 entity.типЗ==2
    Действие при выходе 1 выпЗаявТип2++;
    выпЗаявТип++;
    верВыпЗаяв2=
    выпЗаявТип2/постЗаявТип2;
    Условие 2 entity.типЗ==3
    Действие при выходе 2 выпЗаявТип3++;
    выпЗаявТип++;
    верВыпЗаяв3=
    выпЗаявТип3/постЗаявТип3;
    Условие 3 entity.типЗ==4
    Действие при выходе 3 выпЗаявТип4++;
    выпЗаявТип++;
    верВыпЗаяв4=
    выпЗаявТип4/постЗаявТип4;
    Имя выпРемЗаяв1
    Использовать Условия
    Условие 0 entity.видР==1
    Действие при выходе 0 выпРемВида11++;
    Условие 1 entity.видР==2
    Действие при выходе 1 выпРемВида12++;
    Условие 2 entity.видР==3
    Действие при выходе 2 выпРемВида13++;
    Имя выпРемЗаяв2
    Использовать Условия
    Условие 0 entity.видР==1
    Действие при выходе 0 выпРемВида21++;
    Условие 1 entity.видР==2
    Действие при выходе 1 выпРемВида22++;
    Условие 2 entity.видР==3
    Действие при выходе 2 выпРемВида23++;
    Имя выпРемЗаяв3
    Использовать Условия
    Условие 0 entity.видР==1
    Действие при выходе 0 выпРемВида31++;
    Условие 1 entity.видР==2
    Действие при выходе 1 выпРемВида32++;
    Условие 2 entity.видР==3
    Действие при выходе 2 выпРемВида33++;
    Имя выпРемЗаяв4
    Использовать Условия
    Условие 0 entity.видР==1
    Действие при выходе 0 выпРемВида41++;
    Условие 1 entity.видР==2
    Действие при выходе 1 выпРемВида42++;
    Условие 2 entity.видР==3
    Действие при выходе 2 выпРемВида43++;
  6. Установите значения свойств объекта sink1:
    • Класс заявки: Заявка
    • Действие при входе верВыпЗаяв=выпЗаявТип/постЗаявТип

Объект поТипамЗаяв1 осуществляет разделение и учёт выполненных заявок по типам, а также рассчитывает вероятности выполнения заявок каждого типа. В количество поступивших заявок, а, следовательно, и в расчёт вероятностей входят и те заявки, которым отказано в обслуживании.

Объекты выпРемЗаяв1…выпРемЗаяв4 учитывают количество видов ремонтов, выполненных по заявкам каждого типа.

Объект sink1 уничтожает поступающие заявки. Введённый в поле Действие при входе код рассчитывает вероятность выполнения всех заявок.

Отладка модели

Построение модели закончено. Выделите в окне Проекты Simulation:Main. На странице Основные установите Фиксированное начальное число (воспроизводимые прогоны) и Начальное число: 892. Перейдите на страницу Модельное время, выберите из списка Остановить: В заданное время. Введите Конечное время: 1440000.0 (модельное время \uparrow в 1000).

Результаты моделирования

увеличить изображение
Рис. 8.6. Результаты моделирования

Запустите модель. Если вы всё делали согласно нашим рекомендациям, то ошибок не будет.

По завершении работы модели или в ходе её перейдите на область просмотра Данные. Поскольку мы для переключения между областями просмотра своего ничего не делали, используйте приём, предлагаемый AnyLogic.

Результаты моделирования при исходных данных согласно постановке задачи должны быть такими как на рис. 8.6. Например, заявок 1 типа выполнено 37,412. Вероятность выполнения составляет 0, 978. Всего выполнено заявок всех типов 187,756 с вероятностью 0,978.

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Алексей Гроссман
Алексей Гроссман

Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио.

Елена Блинаева
Елена Блинаева