Лабораторная работа-4
Лабораторная работа: "Распределенное принятие
решений в мультиагентной системе с использованием байесовских сетей"
1. Цель работы:
Разработать и реализовать модель мультиагентной системы,в
которой интеллектуальные агенты, оснащенные байесовскими сетями, кооперируются
для решения общей задачи в условиях неопределенности.
Получение практических
навыкоа по:
· Построению и использованию байесовских сетей для
представления знаний агента.
· Реализации логики принятия решений на основе байесовского
вывода.
· Организации коммуникации и кооперации между агентами.
· Анализу эффективности коллективного поведения по сравнению
с индивидуальным.
2. Теоретическая основа:
· Байесовские сети (БС): Графические модели для
представления вероятностных зависимостей между переменными. Основные операции:
вывод (inference) и обучение.
· Интеллектуальные агенты: Автономные программные сущности,
способные воспринимать среду, действовать в ней для достижения целей и
взаимодействовать с другими агентами.
· Мультиагентные системы (МАС): Системы, состоящие из
множества взаимодействующих агентов. Ключевые аспекты: кооперация, координация,
коммуникация.
3. Постановка задачи: "Совместное патрулирование
территории с поиском аномалий"
Сценарий:
Группа автономных дронов(агентов) патрулирует территорию,
разделенную на сектора. Цель системы — с максимальной эффективностью
обнаруживать и подтверждать "аномалии" (например, возгорания, разливы
нефти). Каждый дрон обладает ограниченными и ненадежными сенсорами.
Описание предметной области:
· Среда: Карта 5x5 секторов.
· Агенты: 3-4 дрона. Каждый дрон имеет:
· Сенсор: Может
определить наличие аномалии в текущем секторе с вероятностью P(Сенсор = Да |
Аномалия = Да) = 0.9 (True Positive) и P(Сенсор = Да | Аномалия = Нет) = 0.1
(False Positive).
· Батарея:
Ограниченный запас энергии.
· Коммуникатор:
Может обмениваться сообщениями с другими дронами в пределах прямой видимости.
· Неопределенность: Сенсоры зашумлены. Агенты не знают
истинного состояния среды априори.
4. Пояснения к заданиям:
Этап 1: Проектирование байесовской сети для одного агента
Спроектировать БС, которая моделирует знания агента о своем
текущем секторе. Пример структуры сети:
· Аномалия_в_секторе (родительская node): P(Аномалия = Да) =
0.05 (априорная вероятность).
· Показание_сенсора (дочерняя node): Зависит от
Аномалия_в_секторе.
· P(Показание = Да |
Аномалия = Да) = 0.9
· P(Показание = Да |
Аномалия = Нет) = 0.1
· Сообщение_от_агента_X (дополнительные дочерние nodes):
Зависят от Аномалия_в_секторе агента X и надежности коммуникации. Это позволит
агенту интегрировать информацию от других.
Задание: Реализовать эту сеть на Python (используя
библиотеку pgmpy) и проверить вывод. Например, как изменится P(Аномалия = Да)
после того, как сенсор агента показал "Да"?
Этап 2: Разработка логики поведения агента
На основе БС реализовать стратегию принятия решений для
агента.
1. Восприятие: Агент считывает показания своего сенсора.
2. Байесовский вывод: Агент обновляет свою уверенность в
наличии аномалии: P(Аномалия | Показание_сенсора).
3. Решение: Если уверенность превышает порог (например,
0.8), агент объявляет сектор "кандидатом на аномалию".
4. Коммуникация: Агент рассылает сообщение о своем убеждении
соседним агентам. При получении сообщений от других, агент обновляет свою БС,
включая новые свидетельства (Сообщение_от_агента_X = Подтверждаю).
Этап 3: Реализация мультиагентного взаимодействия
Создать систему, в которой агенты взаимодействуют по
протоколу "Голосования за гипотезу".
1. Агент A обнаруживает потенциальную аномалию и рассылает
"запрос на подтверждение" с указанием сектора и своего уровня
уверенности.
2. Агенты, находящиеся рядом с целевым сектором,
перемещаются к нему (координация) и проводят собственные измерения.
3. Каждый агент B, выполнивший измерение, обновляет свою
локальную БС (учитывая свое свидетельство и сообщение от A) и отправляет ответ
со своим P(Аномалия | Свидетельства_B).
4. Агент A собирает все ответы и вычисляет общую
(коллективную) уверенность, например, путем усреднения или взвешивания.
5. Если коллективная уверенность превышает более высокий
порог (например, 0.95), аномалия считается подтвержденной.
Этап 4: Эксперименты и анализ
Студентам предлагается провести серию экспериментов и
проанализировать:
1. Эффективность кооперации: Сравнить процент верно
обнаруженных аномалий и ложных срабатываний в одиночном режиме и в
кооперативном режиме.
2. Влияние надежности сенсоров: Как изменится эффективность
системы, если у одного из агентов сенсор менее надежен
(P(Сенсор=Да|Аномалия=Да)=0.7)?
3. Анализ коммуникации: Построить график, показывающий, как
меняется уверенность агента A в наличии аномалии с каждым полученным
подтверждающим или опровергающим сообщением.
5. Стек технологий:
· Язык программирования: Python.
· Библиотеки:
· pgmpy для
построения байесовских сетей и вероятностного вывода.
· mesa или pygame
для визуализации мультиагентной симуляции (опционально, но очень желательно).
· numpy, matplotlib
для расчетов и построения графиков.
6. Ожидаемые результаты:
· Исходный код проекта, включающий классы для Agent и
BayesianNetwork.
· Отчет, содержащий:
· Описание
архитектуры системы.
· Обоснование
структуры БС и выбранных вероятностей.
· Результаты
экспериментов с графиками и таблицами.
· Выводы о
преимуществах и ограничениях байесовского подхода в мультиагентных системах.
Критерии оценки:
· Корректность реализации байесовского вывода и логики
агентов (40%).
· Качество реализации мультиагентного взаимодействия и
кооперации (30%).
· Глубина анализа результатов и качества выводов (20%).
· Чистота и структурированность кода (10%).
Кейсы:
Кейс 1: "Скоординированная ликвидация лесного
пожара"
Задача: Группа автономных роботов-пожарных (агентов)
должна локализовать и потушить несколько очагов лесного пожара. Огнь
распространяется с вероятностью, зависящей от типа местности (лес, поле,
болото).
Роли агентов:
· Разведчики (Scouts): Оснащены камерами и датчиками
температуры. Их БС оценивает P(Пожар | Данные_сенсора, Тип_местности) и
прогнозирует P(Распространение_пожара).
· Пожарные (Firefighters): Оснащены средствами для тушения.
Их БС оценивает P(Успешное_тушение | Интенсивность_огня, Тип_агента,
Количество_воды).
Задание:
1. Реализовать БС для Разведчика, которая по текущим
показаниям и типу местности оценивает интенсивность пожара и вероятность его
распространения на соседние клетки.
2. Реализовать БС для Пожарного, которая определяет,
достаточно ли его ресурсов для тушения целевого очага.
3. Организовать кооперацию: Разведчики сообщают Пожарным не
просто факт пожара, а распределение вероятностей по его интенсивности. Пожарные
на основе этой информации и своей БС принимают решение, атаковать очаг в
одиночку или запрашивать помощь.
Анализ: Сравнить скорость ликвидации пожара при кооперации
на основе вероятностных оценок vs. при простом обмене бинарными сообщениями
("огонь есть"/"огня нет").
Кейс 2: "Распределенный диагноз технической
системы"
Задача: Сложная промышленная установка (например,
энергоблок) оснащена множеством датчиков. Агенты "живут" на разных
датчиках и контроллерах. Некоторые неисправности проявляются только в комплексе
показаний.
Роли агентов:
· Сенсорные агенты: Каждый привязан к своему датчику
(температура, давление, вибрация). Их простая БС моделирует
P(Неисправность_датчика | Показание).
· Диагносты (Diagnosticians): Агенты более высокого уровня.
Их БС объединяет показания от нескольких сенсорных агентов и знает о
вероятностных связях между различными неисправностями системы (например, утечка
масла → падение давления → рост температуры).
Задание:
1. Создать иерархическую МАС: Сенсорные агенты сообщают
Диагностам не сырые данные, а свои апостериорные beliefs о состоянии своего
узла.
2. Реализовать для Диагноста сложную БС, которая интегрирует
сообщения от нескольких сенсорных агентов и вычисляет P(Основная_причина |
Belief_агента_1, ..., Belief_агента_N).
3. Реализовать механизм "запроса дополнительной
информации": Если уверенность Диагноста низка, он может целенаправленно
запросить у конкретного сенсорного агента провести повторное точное измерение.
Анализ: Оценить точность диагноза при использовании
распределенной байесовской сети vs. централизованной обработки всех данных.
Измерить объем пересылаемых данных в обоих случаях.
Кейс 3: "Стратегическое планирование в командной
игре (Capture the Flag)"
Описание среды: Две команды агентов в симметричной
среде. Цель — захватить флаг противника. Агенты не видят всю карту, а общаются
с ограниченной дальностью.
Роли агентов:
· Бегуны (Runners): Их цель — захватить флаг.
· Защитники (Defenders): Их цель — защищать свою базу и
преследовать противника.
· Наблюдатели (Observers): Находятся на возвышенностях,
имеют больший обзор.
Задание:
1. Реализовать для каждого агента БС, моделирующую мнение о
намерениях противника. Узлы БС: P(Противник_здесь), P(Сила_противника),
P(Направление_атаки).
2. Агенты обмениваются своими "beliefs" о
местоположении и силе противника.
3. На основе обновленной БС агент принимает решение:
атаковать, отступать, объединиться с соседом или ждать в засаде. Решение
основано на максимизации ожидаемой полезности (Expected Utility).
Анализ: Протестировать две стратегии: 1)
Детерминированная, основанная на последнем известном местоположении врага. 2)
Вероятностная, основанная на байесовских belief-ах. Сравнить процент побед в
серии матчей.
Кейс 4: "Умная логистика и управление
трафиком"
Описание предметной области: В сети городских дорог
движутся грузовики-агенты. Цель каждого — доставить груз в пункт назначения с
минимальными затратами времени. В узлах сети происходят случайные события
(аварии, пробки, ремонт).
Роли агентов:
· Грузовики (Trucks): Их БС оценивает P(Задержка_на_участке
| Время_дня, Сообщения_о_пробках, История).
· Дорожные сенсоры (Road Sensors): Агенты на перекрестках,
собирающие данные о загруженности.
Задание:
1. Грузовики строят маршрут, используя свою БС для
прогнозирования времени прохождения каждого сегмента.
2. При приближении к перекрестку грузовик
"опрашивает" дорожные сенсоры и других грузовиков, получая от них
актуальные вероятностные оценки задержки.
3. Грузовик динамически перестраивает свой маршрут,
пересчитывая БС с новыми свидетельствами. Он выбирает путь с наименьшим
математическим ожиданием времени в пути.
Анализ: Сравнить общее время доставки всех грузовиков
в системе: а) при полностью независимой маршрутизации; б) при кооперации на
основе обмена вероятностными прогнозами. Проанализировать, как кооперация
предотвращает образование "волн пробок".
Кейс 5: "Аукцион за неполную информацию"
Описание предметной области: Группа
агентов-инвесторов участвует в серии аукционов за права на разработку
месторождений. Стоимость месторождения неизвестна и зависит от нескольких
скрытых факторов (глубина залегания, чистота ресурса).
Роли агентов:
· Геологи-разведчики (Geologists): Проводят предварительную
разведку. Их БС строит оценку P(Истинная_стоимость | Данные_разведки). Эта
оценка — их частная информация.
· Инвесторы (Bidders): Участвуют в аукционе. Их БС должна
моделировать не только стоимость актива, но и beliefs других участников. Узлы:
Моя_оценка_стоимости, Оценка_стоимости_конкурента_A, Ставка_конкурента_A.
Задание:
1. Реализовать для Инвестора БС, которая на основе его
частной информации (от геолога) и публичных действий других участников (их
ставок) пытается смоделировать их скрытые beliefs.
2. Агент делает ставку, стремясь максимизировать ожидаемую
прибыль: E[Прибыль] = (Истинная_Стоимость - Ставка) * P(Победа_на_аукционе |
Моя_ставка, Beliefs_о_ставках_других).
3. Реализовать простой аукцион (например, закрытые ставки) и
проследить, как БС агентов обновляется после каждого раунда, когда раскрывается
информация о победителе и его ставке.
Анализ: Сравнить результативность агентов (чистую
прибыль) использующих байесовскую стратегию против агентов со случайными или
детерминированными стратегиями. Показать, как байесовские агенты учатся на
поведении конкурентов.