Лабораторная работа: "Распределенное принятие решений в мультиагентной системе с использованием байесовских сетей"

 

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. Реализовать простой аукцион (например, закрытые ставки) и проследить, как БС агентов обновляется после каждого раунда, когда раскрывается информация о победителе и его ставке.

Анализ: Сравнить результативность агентов (чистую прибыль) использующих байесовскую стратегию против агентов со случайными или детерминированными стратегиями. Показать, как байесовские агенты учатся на поведении конкурентов.

 

 

Последнее изменение: среда, 22 октября 2025, 11:03