AnyLogic
Развернуть
Размер шрифта

Source создает агентов в соответствии с метками времени в БД

Вы можете настроить блок Source для создания агентов в соответствии с метками времени, которые содержит БД.

Source может создавать либо одного агента на одну запись БД, либо несколько агентов за один раз.

Демо-модель: Source With Arrivals From Database Table Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Создание одного агента на запись БД

Пусть у нас есть внешняя БД, хранящая информация о временах прибытия агентов и данные (значения атрибутов) этих агентов.

Как указать блоку Source создавать агентов в соответствии с записями БД, из расчета один агент на одну запись

  1. Импортируйте данные из внешней БД во встроенную БД AnyLogic.
  2. В свойствах блока Source, выберите Прибывают согласно: Расписанию прибытий из БД.
  3. В поле Таблица базы данных, выберите имя внутренней таблицы AnyLogic, которая содержит времена прибытия агентов.
  4. В поле Время прибытия, выберите столбец этой таблицы БД, который содержит метки времен прибытия агентов.

  5. Если вы хотите создавать агентов с настраиваемыми атрибутами, нужно создать другой тип агента в вашей модели. Если атрибуты для агента указаны в БД, мы рекомендуем создать новый тип агента, используя эту таблицу БД как шаблон.
  6. Чтобы создать новый тип агента с параметрами, которые будут соответствовать данным в столбцах таблицы БД, щелкните правой кнопкой мыши по этой таблице в панели Проекты и выберите из выпадающего меню Создать > Тип агента. Выполните операции мастера настройки Создание нового агента, укажите Имя нового типа, выберите анимацию и настройте свойства агента на следующей странице мастера.
  7. Теперь у вас есть новый тип агента с нужными свойствами. Откройте свойства блока Source снова и укажите ему создавать агентов этого нового типа. В пункте Новый агент, выберите имя нового агента. В таблице ниже можно настроить соответствие параметров агента столбцам таблицы БД, которую вы ранее выбрали.
  8. Теперь этот блок Source будет создавать агентов в соответствии с записями БД. Каждая запись определяет прибытие одного агента. Атрибуты агента будут считаны и сохранены в его соответствующих настройках.

Создание нескольких агентов на одну запись

Вы можете задать блоку Source создавать несколько агентов за один раз. К примеру, маршрутный автобус приезжает к терминалу аэропорта и в модели появляется несколько новых пассажиров, или приезжает грузовой автомобиль и появляется несколько паллет.

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

Как указать блоку Source создавать нескольких агентов на одну запись БД

  1. Повторите действия 1-8 из предыдущего примера.
  2. В свойствах блока Source установите флажок За 1 раз создается несколько агентов.

  3. В поле Количество агентов, прибывающих за 1 раз, можно указать количество агентов, которое необходимо создать для 1 записи в БД. Если у вас нет данных, можно создавать агентов произвольно, прописав в поле стохастическое выражение. По умолчанию выражение указывает создавать количество агентов случайным образом от 3 до 5: uniform_discr(3,5). Вы можете заменить его другой функцией вероятности, просто удалите существующую запись и нажмите на кнопку панели инструментов Выберите распределение вероятностей, которая откроет окно мастера со списком всех функций распределения вероятностей, поддерживаемых AnyLogic.
  4. Если у вас есть данные относительно количества создаваемых агентов, используйте эти данные. Предположим, в нашей таблице БД есть еще один столбец с именем n. Этот столбец содержит информацию о количестве паллет, которые доставил грузовой автомобиль. Давайте укажем блоку Source использовать данные из этого столбца.

  5. Щелкните по иконке справа от поля Количество агентов, прибывающих за 1 раз и выберите пункт Столбец таблицы из выпадающего списка. Теперь вам осталось только выбрать имя необходимого столбца (n) из списка Количество агентов, прибывающих за 1 раз.

Как мы можем улучшить эту статью?