Модуль III·Статья I·~3 мин чтения
Агентное моделирование: от клеточных автоматов до ABM
Агентное моделирование и имитация
Превратить статью в подкаст
Выберите голоса, формат и длину — AI запишет аудио
Агентное моделирование: от клеточных автоматов до ABM
Агентное моделирование — вычислительный подход к изучению сложных систем «снизу вверх»: задаём правила поведения отдельных агентов и наблюдаем эмерджентное поведение системы. Этот подход позволяет изучать системы, для которых уравнения слишком сложны или неизвестны.
Клеточные автоматы (CA)
Модель: сетка ячеек, каждая в одном из конечных состояний. Дискретное время. Следующее состояние ячейки = функция состояний соседей. Формально: sₜ₊₁(i,j) = f(sₜ(N(i,j))), где N(i,j) — соседство ячейки (i,j).
Игра «Жизнь» Конвея (1970): 2 состояния (живой/мёртвый), 8 соседей (Мур). Правила: живая с 2-3 соседями → выживает; с <2 → умирает (одиночество); с >3 → умирает (перенаселение); мёртвая с 3 соседями → оживает. Простые правила → невероятное разнообразие: глайдеры, осцилляторы, паттерны роста, самовоспроизводящиеся структуры (доказано).
Правило 30 и правило 110 Вольфрама: одномерные CA с 3 соседями, 8 возможных конфигураций → 2⁸ = 256 правил. Правило 110 — доказанно Тьюринг-полное. Вольфрам («A New Kind of Science», 2002): сложные системы природы работают как CA.
Агентное моделирование (ABM)
ABM обобщает CA: агенты гетерогенны (разные параметры и состояния), движутся в пространстве, взаимодействуют локально, могут обучаться. ABM = «виртуальная лаборатория» для социальных, биологических и экономических систем.
Модель Шеллинга (1971) — сегрегация из умеренных предпочтений:
Сетка 20×20 клеток. Агенты двух типов (красные и синие), ≈40% клеток пустые. Правило: агент доволен, если ≥30% его соседей одного с ним цвета; иначе — переезжает на случайную пустую клетку.
Результат после симуляции: несмотря на очень умеренные предпочтения (30%), возникает сильная сегрегация — однородные кластеры. «Умеренные индивидуальные предпочтения создают сильный коллективный паттерн» — классический пример эмерджентности.
Математический анализ: если p — минимальный желаемый процент «своих», то сегрегация индекса достигает ≈ (1−2p)/2 при p ∈ [0, 0.5]. При p = 0.3: индекс ≈ 0.35 (значительная сегрегация).
Модели птичьих стай Boids (Reynolds, 1987):
Агенты (птицы) следуют трём простым правилам:
- Разделение (separation): избегай соседей ближе r₁ (избегание столкновений)
- Выравнивание (alignment): лети в среднем направлении соседей (r₁ < r₂)
- Сплочение (cohesion): лети к центру масс соседей (r₂ < r₃)
Результат: реалистичные рои птиц, косяки рыб, стаи насекомых — без лидера, без центрального управления. Используется в кино (Batman Returns, 1992 — летучие мыши), видеоиграх.
SUGARSCAPE (Эпштейн-Акстель, 1996):
Агенты ищут «сахар» (ресурсы) на двумерном поле с неравномерным распределением. Каждый агент: обмен зрения (дальность поиска), уровень метаболизма. Результаты: распределение богатства → степенной закон (Парето), торговля улучшает благосостояние, миграция — самоорганизована, болезни эволюционируют.
Платформы ABM
NetLogo (Northwestern University): стандарт академического ABM. Простой синтаксис, богатые библиотеки, активное сообщество.
Mesa (Python): гибкий, интегрируется с научным Python (numpy, pandas, matplotlib). Лучший выбор для исследователей.
Repast (Java): промышленный масштаб — моделирование миллиардов агентов. Используется для транспортной симуляции городов, military simulations.
Применения ABM
Эпидемиология: COVID-19 модели Ferguson et al. (Imperial College) — ABM 66 миллионов агентов Великобритании. Учёт возраста, работы, домохозяйств, транспорта. Предсказывали эффект разных сценариев. Повлияли на политику локдаунов.
Финансовые рынки: ABM трейдеров с разными стратегиями → воспроизводит «стилизованные факты»: тяжёлые хвосты, кластеризацию волатильности, автокорреляцию объёма.
Транспорт: SUMO (Simulation of Urban MObility) — открытый ABM городского транспорта. Используется для оптимизации светофоров, оценки автономных автомобилей.
Численный пример: Shelling на 20×20 сетке
Начальное состояние: случайное размещение 200 красных и 200 синих агентов, 400 пустых клеток. Индекс сегрегации = 0.12 (почти случайный). После 50 итераций: индекс = 0.68 (высокая сегрегация), хотя порог удовлетворённости = 30%. Число переездов на итерацию: 40 → 20 → 5 → 0 (сходимость).
Задание: Реализуйте ABM Шеллинга в Python (numpy + matplotlib). (1) Проведите 10 симуляций для каждого порога p ∈ {0.1, 0.2, 0.3, 0.4, 0.5}. Постройте зависимость среднего индекса сегрегации от p. (2) Реализуйте Boids: 100 агентов, параметры отделения r₁=2, выравнивания r₂=5, сплочения r₃=8. Визуализируйте анимацию. (3) Реализуйте SugarScape: 100 агентов, поле 50×50, постройте распределение «богатства» через 500 шагов. Соответствует ли оно закону Парето?
§ Акт · что дальше