Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 63
Текст из файла (страница 63)
Второй шаг функции правее состоит в том, чтобы изменить положение всех тех муравьев, которые не стоят из-за наличия препятствия перед ними (если их параметр оьвеьс1е на данном шаге равен пп11). Каждый муравей продвигается вперед в направлении„которое определяется его вектором скорости (гх, чу), а исполнительная система также получает информаци|о о том, что его состояние изменено (вызывается функция этого агента весиоаьгьед). Муравьи, таким образом, продвига1отся вперед каждый шаг Глава 15. Многоагентные системы времени веер. Такой прием синхронной организации движения агентов оказывается с вычислительной точки зрения намного более эффективным, чем моделирование движения каждого агента с помощью дифференциальных уравнений. В то же время выбором шага синхронного продвижения времени в модели можно получить достаточно адекватную модель движения коллектина агентов в пространстве.
Анимация модели Анимация представляет движение всех агентов в двумерном пространстве. Кроме положения муравья, "показывается также его состояние здоровья (инфицирован или нет) и состояние движения (ожидает он у препятствия или нет). Состояние здоровья представляется цветом геометрических элементов, выступающих в роли муравьев. У каждого из них в окне динамического значения цвета указано: с)оссох? со1от.ь1асх: оеа1еь.ьввсаеехссьче)оеа1сь.ох)? со1от.'о1ие: Со1от.тест В соответствии с таким определением, цвет будет установлен черным (со1ох.ь1аск), если булева переменная аосеот данного объекта имеет значение истина (иными словами, если данный муравей — доктор). Если нет, то цвет будет установлен в синий (со1ох.ь1ие), если в стейтчарте )теа1сь активно состояние ох (т. е.
если данный муравей здоров). Наконец, если все предыдущие условия не выполняются, цвет будет выбран красным. Муравей в состоянии ожидания показывается кружком (поэтому в его поле ВндИМОСтЬ СтОИт оЬвсьс1е . = еа11), а В СОСтсяНИИ данжвиня ПОКаЗЫВаЕтСя ОтрЕЗКОМ ПряМОй (ПОЭтОМу В ПОЛЕ ВИдИМОЕП ОтрЕЗКа СтОИт оъвсзс1е).
ПЕ- риодический поворот отрезка, представляющего муравья, на +ОЗ радиана относительно его основного направления движения с помощью функции иасц.взп) десТ1ве)) " 2 ) * 0.3 создает эффект колебаний в процессе движения. Развернутое изображение муравья показывается (поле Видимость кружка), если у него нет на пути препятствия, т. е. если указатель оьвеьс1е пуст. Свернутое изображение, соответственно, показывается, если препятствие есть.
Чтобы свернутое изображение представлялось сегментом кольца, в анимации введен отрезок прямой, закрыва)ощий часть изображения кольца. Движение некоторых муравьев в анимации (тех, у которых параметр стасе установлен в етое) отслеживается — траектория их движения некоторос время отрисовывается. Для того чтобы нарисовать траекторию этих нескольких муравьев, изображение траектории (и фиксирующего круга- прицела) определяется у всех, но в поле ее видимости установлен параметр сеасе, т. е. видна будет траектория только у некоторых — у тех, у которых значение переменной стасе истинно. Траектория движения муравья задается ломаной с именем раен. Перерисовка траектории муравьев, если они не зю Часть! К Современные парадигмы в имитационном моделировании стоят перед препятствием, осушествляется запуском кода, находяшегося в поле Код обновления окна Код в анимации класса лпе, каждый раз, как изображение в поле анимации обновляется: 1Е( Стасе аа оьвеьс1е == си11) ( рать.весвотае( О, х, у ); Гог( ьсе 1=раен.десготссв()-1: 1>=1; 1-- ) рать.весвоът е( 1, раен.яетвоьпсх(1-1), рась.яесво1пеу(1-1) ) ) Построенная модель открыта для внесения дополнений и изменений.
15.9. Заключение Агентный подход применяется для решения проблем во всех тех случаях, когда именно индивидуальное поведение объектов является сушественным в системе, а интегральные характеристики и динамика всей системы выводятся из зтих индивидуальных поведений. С помошыо агентов можно моделировать рынки (агент представляет потенциального покупателя со своей историей, возрастом и родом занятий), конкуренциго компаний на рынке (агент — компания со своим капиталом, стратегией и бизнес-процессами), динамику населения (агент — семья, житель нли избиратель со своими политическими предпочтениями, уровнем образования, местом проживания) и многое другое.
Глава 16 Использование различных парадигм при разработке моделей Сушествуют классы проблем, удобно и естественно решаемые в рамках традиционных парадигм моделирования. Например, одни проблемы следует решать в рамках системной динамики„другие — в рамках дискретно- событийного подхода. Системы управления естественно моделировать в рамках подхода, традиционно принятого лля моделирования динамических систем. Многие проблемы решаются на основе новой парадигмы моделирования: агентного подхода.
Удобство Апу1лрс состоит в том, что каждый из перечисленных подходов достаточно просто может быть реализован средствами данного инструмента. Поэтому при использовании Апу1лрс для разработки люделей разумно ставить вопрос: "Какой подход наиболее удобен и адекватен лля решения поставленной проблемы?" Подобный вопрос не имеет смысла, например, при использовании инструментов типа РовегБпп — выйти за границы установленной там парадигмы системной динамики разработчик не может. В данной главе мы рассмотрим зти проблемы.
16.1. Агентные и системно-динамические модели Понимание и предсказание развития сложных систем является ключевой целью имитационного моделирования. Такие системы, конечно, можно исследовать по-разному, используя различные парадигмы при разработке модели. В исследовании зкономических и социальных систем широкое применение получил подход системной динамики, рассматриваюший систему на высоком уровне абстракции. Как мы видели в главе 13, системная динамика абстрагируется от единичных событий. Причинно-следственные зависимости и зак 4248 312 Часть 1К Современные парадигмы в имитационном моделировании параметров и характеристик системы являются основным средством выражения структуры и функционирования систем в концепции системной динамики.
Обыкновенные дифференциальные уравнения описывшот законы функционирования системы интегрально, агрегированно, как законы изменения взаимозависимых потоков вещества, денег, заказов, людей и т. п. При таком агрегировании могут быть упущены существенные особенности моделируемых явлений. Например, в "модели развития мира", построенной Медоузом в рамках парадигмы системной динамики 1М0711 с целью моделирования сценариев развития человечества и его взаимоотношений с биосферой, обобщеннные переменные не учитывали особенности и традиции различных культур, за что эта модель подвергалась критике. Агентный подход, напротив, использует совершенно другую парадигму моделирования: он основан на представлении именно единичных объектов системы, каждый со своим повелением и своими параметрами, на использовании единичных событий и реакций на них конкретных активных объектов. Глобальные законы поведения коллектива активных объектов "выводятся" в агентных моделях как интегральные характеристики индивидуальных поведений агентов и их взаимодействий.
В некоторых случаях эти подходы взаимозаменяемы. Рассмотрим пример того, как системно-динамическая модель может быть представлена в виде агентной модели. »т»»рньн г»»»т»ге4 ьте»тн» гма »»$»ч»роев»ее Рис. 16, т. Модель распространения инфекции в терминах системной динамики и агентной парадигмы Рисунок 16.1 является аналогом рис.
13.1, который представляет структуру зависимостей переменных и параметров в системно-динамической модели распространения инфекции. Очевидно, что вместо жидкости в накопителях можно рассматривать дискретные множества людей, нахождение конкретного человека в том или ином накопителе можно рассматривать как состояние Глава тб. Использование различных парадигм при разработхе моделей 313 этого человека, а уровни жидкости в накопителях можно рассматривать как количества людей в соответствующих состояниях. Прохождение дискретного обьеки между накопителями можно смоделировать изменением состояния объекза. Для рис. 16.1 факт нахождения каждого индивидуального обьекта в накопителях аиасереьь1е, 1пгессаб и хасоуахаб можно представить соответствующим состоянием (здоровый, инфицированный, выздоровевший) этого объекта, а переходы объектов между накопителями естественно моделируются изменениями состояния объекта.
В рамках АпуЕой(с два этих подхода иногда взаимозаменяемы. Для построения агентной модели в Апу(.ов)с по системно-динамической модели, следует системно-динамическую модель представить как набор накопителей, интенсивность потоков между которыми определяется функциональными зависимостями межлу параметрами модели. В агентной модели в стейтчарте соответствующего класса активных объектов (агентов) предусмотрим свое состояние для каждого накопителя. В модели распространения инфекций следует определить стейтчарт с тремя состояниями: "здоров", "инфицирован" и "выздоровел". Рассмотрим, как интенсивность потоков между накопителями в системно- динамической модели может быть выражена переходами стейтчартов из одного состояния в другое в агентной модели. Пусть, например, известно, что интенсивность потока такова, что за единичный интервал времени количество объектов, которые переходят из накопителя я в накопитель в, пропорционально числу объектов в накопителе л, причем коэффициент пропорциональности равен р.
Это означает, что за единицу времени часть р агентов переходит из состояния л в состояние в, и эта часть как раз составляет р. Это именно то правило, которое используется в модели распространения инфекции (рис. 16.1): число заболевших в единицу времени пропорционально количеству оставшихся неинфицированных людей, а число выздоровевших пропорционально числу больных: а=аиасерезые*ьпйесс1оп хаее, а к1=1пгессей*хесонеху гасе.
Как определить переход между состояниями агента в случае, когда каждый раз по прошествии единичного интервала времени р-я часть агентов переходит из одного состояния в другое? Рисунок 16.2 показывает два варианта возможной реализации такого перехода. Самый простой путь — зто построить синхронный стейтчарт, в котором на каждом единичном шаге по времени каждый агент с вероятностью р изменит свое состояние. При этом в массе агентов именно р-я их часть за единицу времени перейдет в состояние в (конечно, можно одновременно уменьшить шаг по времени и вероятность перехода).
Второй путь, более эффективный с вычислительной точки зрения, состоит в том, что для каждого агента время перехода из состояния д в состояние в рассчитывается 314 Часть! К Современные парадипиы в имитационном моделировании заранее. В нашем случае нетрудно видеть, что если каждый агент независимо от других агентов за елиницу времени должен перейти с вероятностью р из состояния я в состояние в, то время нахождения его в состоянии л распределено по экспоненциальному закону с параметром р. Именно это показано на рис.
1б.2. рис. 16.2. Переход от непрерывных потоков к дискретной модели В общем случае всегда можно найти достаточно простой метод предварительного определения условия, при котором каждый агент переходит из состояния в состояние, а вся совокупность агентов ведет себя в соответствии с системно-динамической моделью, в которой изменение состояний множества дискретных объектов в потоке представлено накопителями. Это условие может затем пересчитываться.