Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 71
Текст из файла (страница 71)
20.5. Анимация модели Анимация поведения цепи стрелков в модели показывается для каждого момента модельного времени как последовательность состояний объектов, прелставленных прямоугольниками. Каждому состоянию соответствует свой цвет прямоугольника. Каждую новую линейку состояний объектов системы рисует функция србзеехлзльезоп, вызываемая на каждом такте модельного времени при срабатывании таймера атаыэеасея в объекте аоое. Функция барс)лееллъвасъал определена в поле Дополнительный код класса активного объекта воое. При каждом обращении к ней она лобавляет в новую строку в анимацию прямоугольники, соответствуюц)ие каждому объекту. Ширина кажлой строки 1О. Координата г'очередной строки возрастает с увеличением времени: зпс у = 10 * )злс)дестппе)); Поэтому строки, соответствующие последующим шагам, будут располагаться одна под другой.
В каждой строке сначала создается прямоугольник размером 1Ох!0, соответствующий Генералу, затем в цикле создаются и прямоугольников для стрелков и последним — лля Сержанта. Прямоугольники создаются вызовом функции стеасеаесе) 1пе х, зпс у, со1от со1сх ) которая использует конструктор вьвревесс класса вьлреяесе для формирования нового прямоугольника. После вызова этой функции устанавливаются Глава 20, Модели коллективного поведения координаты и цвет заливки каждого прямоугольника.
Цвет определяется функцией сихтелесо1оеы, вызываемой у соответствуюшего объекта. Эта функция определена в поле Дополнительный код класса у активных объектов аепехв1„вехяевле и вс1бьее и возвращает цвет. соответствующий текущему состоянию активного объекта. 20.6. Упражнения с моделью Читатель может представить анимацию последовательных состояний цепочки стрелков в другой, более наглядной форме. Например, для каждого состояния можно использовать свое изображение. Другое упражнение состоит в исследовании иных алгоритмов поведения стрелков.
реализованный в нашей модели алгоритм посьшает по цепи стрелков кроме основной волны только одну волну сигналов, двигающуюся со скоростью в три раза медленнее основной. Олнако можно послать несколько подобных волн, в результате чего все автоматы могут быстрее прийти в заключительное состояние (рис. 20.3).
Рис. 20.3. Слева — решение, реализованное в нашей модели', справа — возможное более аффективное решение 350 Часть К Примеры моделей для различных областей применения Читателю предлагается разработать свой алгоритм стрелка, имеющий либо меньшее число состояний, либо работающий быстрее. Алгоритмов, решающих эту проблему, можно построить множество, они могут отличаться как по числу состояний стрелков, так и по времени, которое требуется для приведения из начального в заключительное состояние одновременно всей цепочки из н стрелков. Очевидно, что число шагов, которое требуется для перехода всех стрелков в заключительное состояние, зависит от длины цепочки, но оно не может быть меньшим, чем гн-г.
Различные решения проблемы, т. е. спецификации различных графов переходов автоматов, представляющих поведение одного стрелка, можно найти в Интернете на многих сайтах по ключевым словам "Бг1пй Бйиаб РгоЫепт". 20.7. Модель Неа1 Вида (Тепловые жуки) ноас виве (Тепловые жуки) — это простая модель коллективного поведения, впервые разработанная в пакете агентного моделирования Бчтагпь В дискретной тороидальной среде, состоящей из ячеек, двигаются несколько жуков, которые выделяют тепло. Тепло распространяется в среле.
Каждый жук имеет свою собственную "идеальную" температуру, в которой он предпочитает находиться, и имеет сенсор, с помощью которого он может определить, в каком направлении температура среды ближе к его "идеальной" температуре. Это позволяет жуку найти направление, в котором он должен лвигаться в среде, чтобы постигнуть ячейки с устраивающей его температурой. Среда илгеет следующие характеристики: П тепло распространяется равномерно во всех направлениях со скоростью, пропорциональной разнице температур в соседних ячейках; П тепло "испаряется" (уменьшается) в каждой ячейке пропорционально теплу, которым обладает ячейка. Система является динамической и сложно предсказуемой, поскольку даже находясь в ячейке с его "идеальной" температурой, жук нагревает ее, выделяя тепло, поэтому он со временем может из этой клетки направиться в более комфортную для него ячейку.
Кроме того, жук может поступать и нерационально: он может направиться не напрямую к области, наиболее близкой к его "идеальной" температуре. С этой простой моделью могут быть проведены интересные эксперименты, демонстрирующие, как изменение простых параметров (например, интенсивность распространения тепла, фактор "иррациональности" поведения жука и т. п.) влияет на результирующее изменение всего глобального повеления коллектива обьектов. Глава 20. Г(()одели ноллентивного поведения 20.7.1. Формальная постановка задачи Некоторое количество жуков живут в тороилальном двумерном дискретном пространстве, содержащем нх)) ячеек. В каждой ячейке пространства в каждый момент времени может быть не более чем по одному жуку.
Время в модели дискретно, т. е. молель синхронна. На каждом временном шаге происходят следующие события: жуки двигаются, выделяют некоторое количество тепла, это тепло распространяется в среде, а также тепло "испаряется". Каждая ячейка среды имеет некоторое количество тепла. Тепло в ячейке синхронно изменяется: оно "испаряется" и распространяется из данной ячейки в соседние 8 ячеек. Правило изменения температуры н со временем в ячейках следующее: н(с+1) = е * ( н(е) * 1с*( йчдн(е) — н(е) ) ), где е — интенсивность "испарения" тепла, ее(0..)), и — интенсивность распространения тепла, хв(0..1) и л дн — среднее значение н в 8 соседних ячейках. Каждый жук изначально создается со своими "идеальной" температурой и выделяемым теплом, выбранными случайно из некоторых интервалов.
На каждом шаге по времени жук выделяет некоторое количество тепла в ту ячейку, которую он занимает, находит срели своих 8 соседних ячеек ту, температура которой наиболее близка к его "идеальной" температуре, и перемешается в эту ячейку. Имеется фиксированная вероятность для жука лвигаться в произвольном направлении вместо направления, выбранного "рационально". У каждого жука есть коэффициент "неудовлетворенности" и его текущей ситуацией, показывающий, насколько температура в ячейке„которую он занимает, далека от его "идеальной" температуры: и = аьв( и — 1 ) / шах(Н), где и — температура в ячейке, которую занимает жук, т — его идеальная температура и ~ея(и) — максимально возможная температура в ячейках.
Очевидно, что задача каждого жука — уменьшить этот коэффициент. 20.7.2. Модель Простая агентная модель, демонстрирующая динамику мира "тепловых жуков", содержит два класса активных объектов: агента-жука (вод) и корневой объект-среду маьс, в которой живет множество агентов-жуков. Корневой объект имеет анимацию, в которой линамика этого мира представлена наглядно (рис. 20.4). Олного из агентов можно вылелить, щелкнув на нем мышью. Выделенный агент показывается в белом круге. Все характеристики выделенного агента отражаются на вставке.
352 Часть К Примеры моделей для различных областей применения Рис. 20.4. Анимационное представление динамики мира "тепловых жуков" 20.7.3. Модель жука Эта модель очень проста: она имеет в качестве переменных идеальную температуру п, выходное тепло н, которое в единицу времени выделяет жук во внешнюю среду, пару координат клетки внешней среды х и у, в которой в каждый момент времени будет находиться жук, и его коэффициент "неудовлетворенности" о текущей ситуацией. Значения первых двух переменных устанавливаются как реализация случайной величины, равномерно распределенной в соответствующих интервалах.
Координаты х и у. а также коэффициент и будут изменяться со временем жизни жука. Каждый раз, когда из среды вызывается функция цровсе, агент выполняет поиск той клетки в среде, куда нужно ел1у двинуться, если его уровень неудовлетворенности больше, чем его толерантность. 20.7.4.
Модель среды Среда моае1 содержит пцвазехогвцпв жуков, несколько переменных, в которых хранятся интегральные характеристики всего коллектива жуков, и циклический таймер. В этой простой модели повеление системы на каждом шаге регулируется централизованно: функция вровсе, определенная в поле Дополнительный код класса окна Код активного объекта моае1 будет вызываться каждую единицу времени при срабатывании циклического таймера. Эта функция вычисляет на каждом шаге сначала новую температуру для каждой клетки по приведенной ранее формуле, а затем перебирает всех жуков Глава 20. Модели коллективного поведении и обращается к функции срвагв каждою жука, чтобы тот определил, куда он будет на этом шаге двигаться.
20.8. Заключение Описанные в этой главе модели представляют одну из весьма перспективных областей исследования — так называемые модели "Искусственной жизни". Основной мотивацией исследований в этой области является желание понять формальные принципы организации земной биологической жизни, Искусственная жизнь пытается смоделировать биологическое поведение в различных средах при различных условиях и целевых установках.
Это жизнь, созданная человеком, а не природой. Исследования искусственной жизни направлены не только на теоретические исследования свойств жизни, но и на практические приложения, такие как мобильные роботы, динамика социальных систем и другие применения. Построение анимационных моделей искусственной жизни играет основную роль в этих исследованиях. Фактически, "организмы" в искусственной жизни — это придуманные людьми обьекты, живущие в мире компьютерных программ. Ануа.оя1с предоставляет широкие возможности разработки моде.~ей искусственной жизни на основе агентного подхода. Глава 21 Медицина В работе ~СБ991 обсуждаются возможности применения моделирования в здравоохранении, в частности, анализируется использование имитационного моделирования для организации работы госпиталей.