Вы можете настроить блок Source для создания агентов в соответствии с метками времени, которые содержит БД.
Source может создавать либо одного агента на одну запись БД, либо несколько агентов за один раз.
Демо-модель: Source With Arrivals From Database Table Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.Пусть у нас есть внешняя БД, хранящая информация о временах прибытия агентов и данные (значения атрибутов) этих агентов:
Как указать блоку Source создавать агентов в соответствии с записями БД из расчета один агент на одну запись
- Импортируйте данные из внешней БД во встроенную БД AnyLogic.
- В свойствах блока Source выберите Прибывают согласно: Расписанию прибытий из БД.
- В поле Таблица базы данных выберите имя внутренней таблицы AnyLogic, которая содержит времена прибытия агентов.
- В поле Время прибытия выберите столбец этой таблицы БД, который содержит метки времен прибытия агентов.
- Если вы хотите создавать агентов с настраиваемыми атрибутами, нужно создать другой тип агента в вашей модели. Если атрибуты для агента указаны в БД, мы рекомендуем создать новый тип агента, используя эту таблицу БД как шаблон.
- Чтобы создать новый тип агента с параметрами, которые будут соответствовать данным в столбцах таблицы БД, щелкните правой кнопкой мыши по этой таблице в панели Проекты и выберите из выпадающего меню Создать > Тип агента. Выполните операции мастера настройки Создание нового агента, укажите Имя нового типа, выберите анимацию и настройте свойства агента на следующей странице мастера.
- Теперь у вас есть новый тип агента с нужными свойствами. Откройте свойства блока Source снова и укажите ему создавать агентов этого нового типа. В пункте Новый агент выберите имя нового агента. В таблице ниже можно настроить соответствие параметров агента столбцам таблицы БД, которую вы ранее выбрали.
- Теперь этот блок Source будет создавать агентов в соответствии с записями БД. Каждая запись определяет прибытие одного агента. Атрибуты агента будут считаны и сохранены в его соответствующих настройках.
Вы можете задать блоку Source создавать несколько агентов за один раз. К примеру, маршрутный автобус приезжает к терминалу аэропорта и в модели появляется несколько новых пассажиров, или приезжает грузовой автомобиль и появляется несколько паллет.
Давайте использовать тот же пример, что и выше, но предположим, что мы определяем обработку не грузового автомобиля, а груза. При каждом прибытии грузового автомобиля, блок Source должен создавать определенное количество агентов(паллет).
Как указать блоку Source создавать нескольких агентов на одну запись БД
- Повторите действия 1-8 из предыдущего примера.
- В свойствах блока Source установите флажок За 1 раз создается несколько агентов.
- В поле Количество агентов, прибывающих за 1 раз можно указать количество агентов, которое необходимо создать для 1 записи в БД. Если у вас нет данных, можно создавать агентов произвольно, прописав в поле стохастическое выражение. По умолчанию выражение указывает создавать количество агентов случайным образом от 3 до 5: uniform_discr(3,5). Вы можете заменить его другой функцией вероятности, просто удалите существующую запись и нажмите на кнопку панели инструментов Выберите распределение вероятностей, которая откроет окно мастера со списком всех функций распределения вероятностей, поддерживаемых AnyLogic.
- Если у вас есть данные относительно количества создаваемых агентов, используйте эти данные. Предположим, в нашей таблице БД есть еще один столбец с именем n. Этот столбец содержит информацию о количестве паллет, которые доставил грузовой автомобиль. Давайте укажем блоку Source использовать данные из этого столбца.
- Щелкните по иконке справа от поля Количество агентов, прибывающих за 1 раз и выберите пункт Столбец таблицы из выпадающего списка. Теперь вам осталось только выбрать имя необходимого столбца (n) из списка Количество агентов, прибывающих за 1 раз.
-
Как мы можем улучшить эту статью?
-