Какой же подход лучше использовать?
§ Если проблема хорошо «ложится» на традиционные подходы системной динамики и дискретно-событийного моделирования и допускает соответствующую абстракцию, лучше использовать традиционные подходы
§ Если система содержит активные объекты (люди, компании, животные, машины или проекты, акции, продукты) с временами, событиями или индивидуальным поведение любого другого рода, можно выбрать от использования агентного моделирования
§ Также нужно помнить о возможности совмещения подходов
Ø Могут быть модели системной динамики внутри дискретно взаимодействующих агентов
Ø Агенты могут взаимодействовать в среде, которая описана в терминах системной динамики
Ø Агенты могут взаимодействовать с другими агентами в рамках дискретно-событийной модели
Достоинства и недостатки агентного моделирования в AnyLogic:
§ Недостаток: Создание агентной модели – это не «несколько щелчков мыши». В любом случае придется писать какие0-то строчки кода.
§ Достоинство: AnyLogic минимизирует количество необходимого кода, предлагая графические конструкции, где это возможно. В то же время AnyLogic дает гораздо более гибкий язык моделирования
Агент – активный объект AnyLogic. Ему можно добавлять ориентацию в пространстве, мобильность, социальные свойства, обучаемость, активность и реактивность и т.д.
Поведение агента может быть описано по-разному:
- С помощьюфункций Java
strategy () {
if( enemy in range ) {
if(friends > enemies )
attack();
else
retreat();
}
}
- С помощью карты состояний
- С помощьютаймера
Cyclic: yes
Timeout: exponential( MoveRate )
Action: move();
- С помощьюдиаграммы системной динамики
§ С помощью любой комбинации этих элементов
Архитектура агентных моделей:
- Объект Environment обычно – корневой объект модели, инкапсулирующей агентов
|
- Агенты могут быть разного типа
- Агенты могут инкапсулировать других агентов
|
Среда играет важную роль в агентных моделях:
- «Нулевая» среда – среда никак не влияет на агентов, но может, например, собирать агрегатную статистику
- Пассивная среда – агенты меняют и читают переменные среды (обратная связь через среду), но у среды нет собственной динамики
§ Активная среда – у среды есть собственная динамика и, таким образом, она является активным игроков в агентной модели, динамика среды может задаваться уравнениями, картой состояний, потоковой диаграммой и т.д.
Таким образом, агенты взаимодействуют со средой (есть доступ к агенту из среды и к среде из агента), друг с другом (существует возможность выбора случайного другого агента и прямой доступ к запомненного другому агенту). Агенты могут также создавать и убивать своих агентов.
Агенты взаимодействуют также в пространстве. Существует 3 типа пространств:
§ Непрерывное – используется, если нужно проверять столкновения, или есть другие причины учитывать точное физическое положение
§ Дискретное упорядоченное пространство – используется, если нужно различать «близко» и «далеко», но точное расстояние не так важно
§ Дискретное неупорядоченное – используется, если важно знать «в том же» или «в другом» месте, а где именно – неважно
Агент может иметь свою анимациюили использовать репликацию фигур.
Если нужно моделировать большое число объектов, то нет необходимости запускать такое же большое число агентов. Нужно использовать две основные техники «масштабирования»:
§ Те же агенты, уменьшенная среда
§ Та же среда, укрупненные агенты