Некоторое количество жуков живут в тороидальном двумерном дискретном пространстве, содержащем nxn ячеек. В каждой ячейке пространства в каждый момент времени может быть не более чем по одному жуку. Время в модели дискретно, т. е. модель синхронна. На каждом временном шаге происходят следующие события: жуки двигаются, выделяют некоторое количество тепла, это тепло распространяется в среде, а также тепло "испаряется".
Каждая ячейка среды имеет некоторое количество тепла. Тепло в ячейке синхронно изменяется: оно "испаряется" и распространяется из данной ячейки в соседние 8 ячеек. Правило изменения температуры н со временем в ячейках следующее:
H(t+1) = е * (H(t) * k*(AvgH(t) - H(t))),
где е — интенсивность "испарения" тепла, ее(0..1), к — интенсивность распространения тепла, k принадл.(0..1) и AvgH — среднее значение H в 8 соседних ячейках.
Каждый жук изначально создается со своими "идеальной" температурой и выделяемым теплом, выбранными случайно из некоторых интервалов. На каждом шаге по времени жук выделяет некоторое количество тепла в ту ячейку, которую он занимает, находит среди своих 8 соседних ячеек ту, температура которой наиболее близка к его "идеальной" температуре, и перемещается в эту ячейку. Имеется фиксированная вероятность для жука двигаться в произвольном направлении вместо направления, выбранного "рационально".
У каждого жука есть коэффициент "неудовлетворенности" U его текущей ситуацией, показывающий, насколько температура в ячейке, которую он занимает, далека от его "идеальной" температуры:
U = abs(Н - I) / mах(Н),
где н — температура в ячейке, которую занимает жук, I — его идеальная температура и mах(H) — максимально возможная температура в ячейках. Очевидно, что задача каждого жука — уменьшить этот коэффициент.
Модель
Простая агентная модель, демонстрирующая динамику мира "тепловых жуков", содержит два класса активных объектов: агента-жука (вид) и корневой объект-среду Main, в которой живет множество агентов-жуков. Корневой объект имеет анимацию, в которой динамика этого мира представлена наглядно (рис. 20.4). Одного из агентов можно выделить, щелкнув на нем мышью. Выделенный агент показывается в белом круге. Все характеристики выделенного агента отражаются на вставке.
Модель жука
Эта модель очень проста: она имеет в качестве переменных идеальную температуру U, выходное тепло н, которое в единицу времени выделяет жук во внешнюю среду, пару координат клетки внешней среды х и у, в которой в каждый момент времени будет находиться жук, и его коэффициент "неудовлетворенности" U текущей ситуацией. Значения первых двух переменных устанавливаются как реализация случайной величины, равномерно распределенной в соответствующих интервалах. Координаты х и у, а также коэффициент U будут изменяться со временем жизни жука. Каждый раз, когда из среды вызывается функция update, агент выполняет поиск той клетки в среде, куда нужно ему двинуться, если его уровень неудовлетворенности больше, чем его толерантность.
Модель среды
Среда Model содержит numberofBugs жуков, несколько переменных, в которых хранятся интегральные характеристики всего коллектива жуков, и циклический таймер. В этой простой модели поведение системы на каждом шаге регулируется централизованно: функция update, определенная в поле Дополнительный код класса окна Код активного объекта Model будет вызываться каждую единицу времени при срабатывании циклического таймера. Эта функция вычисляет на каждом шаге сначала новую температуру для каждой клетки по приведенной ранее формуле, а затем перебирает всех жуков
и обращается к функции update каждого жука, чтобы тот определил, куда он будет на этом шаге двигаться.
Заключение
Описанные в этой главе модели представляют одну из весьма перспективных областей исследования — так называемые модели "Искусственной жизни". Основной мотивацией исследований в этой области является желание понять формальные принципы организации земной биологической жизни. Искусственная жизнь пытается смоделировать биологическое поведение в различных средах при различных условиях и целевых установках. Это жизнь, созданная человеком, а не природой. Исследования искусственной жизни направлены не только на теоретические исследования свойств жизни, но и на практические приложения, такие как мобильные роботы, динамика социальных систем и другие применения.
Построение анимационных моделей искусственной жизни играет основную роль в этих исследованиях. Фактически, "организмы" в искусственной жизни — это придуманные людьми объекты, живущие в мире компьютерных программ. AnyLogic предоставляет широкие возможности разработки моделей искусственной жизни на основе агентного подхода.
Глава 21 Медицина
В работе [CS99] обсуждаются возможности применения моделирования в здравоохранении, в частности, анализируется использование имитационного моделирования для организации работы госпиталей. Автор утверждает, что эта технология является идеальным инструментом для решения широкого круга проблем в данной области. Уже в 60-х годах прошлого века имитационное моделирование было использовано для оптимизации расписания приема пациентов. В последние годы моделирование все чаше используется для анализа коэффициента использования ресурсов, выявления узких мест и улучшения качества функционирования больших организационных систем медицинского профиля, таких, например, как госпитали.
Приведенная в этой главе модель функционирования отделения скорой помощи (Emergency Department) явилась одним из результатов исследования, призванного повысить эффективность работы реального госпиталя в г. Чикаго, США. Отделение скорой помощи данного госпиталя принимает более 40 000 пациентов в год.