Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
Высшего профессионального образования
Уфимский государственный авиационный технический университет
Кафедра ВМиК
Отчёт по лабораторной работе № 2
по дисциплине «Методы искусственного интеллекта»
Выполнили: студенты гр. МО-417
Шакиров А. Р.
Ибрагимова К. Б.
Рахимова А. М.
Степанова Д. Д.
Проверил: Ризванов Д. А.
Уфа 2022
Постановка задачи
Разработать многоагентную систему для решения задачи:
Учебное расписание (преподаватели (teachers), группы (groups) и аудитории (auditoriums)).
Входные данные:
Серверной части:
Преподаватель
Name, subjects, busy
Где:
Name – имя
Subjects – дисциплины
Busy - занятость
Аудитория
Name, capacity, type
Где:
Name – номер
Capacity – вместимость
Type – тип (0 – для проведения практик, 1 – лекций)
Клиентской части:
Группа
Name, students, subjects, name, lections, practics
Где:
Name – название учебной группы
Students – количество студентов
Subjects – учебный план
Name – название предмета
Lections – количество лекций
Practics – количество практик
Примеры:
Выходные данные:
Список групп и их расписаний в виде таблицы:
Группа, день недели, № занятия, Преподаватель, Предмет, Тип, Аудитория
Теоретические сведения
Агент - все, что действует («агент» произошло от латинского «agere», действовать).
Последовательностью актов восприятия агента - полная история всего, что было когда-либо воспринято агентом.
Выбор агентом действия в любой конкретный момент времени может зависеть от всей последовательности актов восприятия, наблюдавшихся до этого момента времени. Если существует возможность определить, какое действие будет выбрано агентом в ответ на любую возможную последовательность актов восприятия, то может быть дано более или менее точное определение агента.
Поведение некоторого агента может быть описано с помощью функции агента, которая отображает любую конкретную последовательность актов восприятия на некоторое действие.
Может рассматриваться задача табуляции функции агента, которая описывает любого конкретного агента. Такая таблица – внешнее описание агента. Внутреннее описание состоит в определении того, какая функция агента для данного искусственного агента реализуется с помощью программы агента.
Функция агента - абстрактное математическое описание, а программа агента – это конкретная реализация, действующая в рамках архитектуры агента.
Компьютерные агенты в отличие от обычных программ обладают способностью функционировать под автономным управлением, воспринимать свою среду, адаптироваться к изменениям и взять на себя достижение целей, поставленных другими.
Рациональный агент – это агент, который действует таким образом, чтобы можно было достичь наилучшего результата или, в условиях неопределенности, наилучшего ожидаемого результата.
Многоагентная система (МАС) - система, содержащая агентов, взаимодействующих между собою.
Для успешного взаимодействия агенты должны уметь сотрудничать, координировать действия и вести переговоры.
Агент может быть реализован только в виде программы (софтбот, бот) или иметь программно-аппаратную реализацию (робот).
Диаграммы взаимодействия агентов
Логику работы программы можно представить в виде диаграммы работы агентов.
Алгоритм работы программы
Серверного агента:
Происходит чтение информации о преподавателях и аудиториях из файла. Создается контейнер, и на основе этой информации наполняется агентами преподавателей и аудиторий.
Далее происходит ожидание запросов о готовности сервера со стороны всех агентов клиентов. Если были получены сообщения о готовности со стороны всех созданных агентов преподавателей и аудиторий, то ответ положительный.
Ожидаются запросы о готовности самих клиентов.
Как только все клиенты уведомят о готовности, отправляются запросы на получение результатов работы всем агентам преподавателей и аудиторий.
После получения всех результатов данные записываются в выходной файл и останавливается работа всех агентов преподавателей и аудиторий.
Клиентского агента:
Происходит чтение информации о группах студентов из файла. Создается контейнер, и на основе этой информации наполняется агентами групп.
Происходит отправка запроса о готовности сервера. Если ответ отрицательный, запрос повторяется через 3 сек. до получения положительного ответа.
Ожидаются запросы о начале синхронизации от агентов групп.
Как только все агенты групп уведомят о начале синхронизации, группам отправляются запросы на завершение синхронизации всем агентам групп. Таких циклов синхронизаций может быть несколько.
Ожидаются запросы о статусе готовности от агентов групп.
Как только все агенты групп уведомят о готовности, группам отправляются запросы на получение результатов работы. Серверу отправляется запрос о готовности текущего клиента.
После получения всех результатов данные записываются в выходной файл и останавливается работа всех агентов групп.
Агента группы:
Пока список нераспределенных занятий по неотмеченным предметам не пуст:
Спрашивается свободное расписание преподавателя по предмету.
Если есть пересечение со своим расписанием в пределах первых 4 пар:
Преподавателю предлагается зафиксировать наиболее приоритетное для группы занятие. Если ответ положительный, фиксируем занятие, иначе переходим к шагу 1.2.
Иначе отмечается преподаватель как спрошенный и спрашивается следующий. Если преподаватели кончились, то отмечается предмет как спрошенный, с преподавателей снимаются все отметки.
Снимаются все отметки.
Пока список нераспределенных неотмеченных занятий не пуст:
Спрашивается свободное расписание преподавателя по предмету.
Если есть пересечение со своим расписанием в пределах первых 4 пар:
Преподавателю предлагается зафиксировать наиболее приоритетное для группы занятие.
Если ответ положительный, фиксируем занятие.
Иначе у преподавателя спрашивается какая группа зафиксирована в данную ячейку времени.
Получив ответ, группе отправляется запрос на перенос этого занятия. Если ответ положительный, то переход к шагу 3. Иначе занятие отмечается как спрошенное.
Снимаются все отметки. Отправляется запрос клиенту о начале синхронизации.
После получения запроса о завершении синхронизации повторяется шаг 1, но только пересечение с расписанием считается полностью и у преподавателя спрашивается вместо свободного расписания незанятое.
Снимаются все отметки. Отправляется запрос клиенту о начале синхронизации.
После получения запроса о завершении синхронизации повторяются шаги 1–5 для аудиторий.
Отправляется запрос о готовности клиенту.
После получения запроса о получении результатов от клиента, в ответ отправляется информация о расписании группы.
Агента преподавателя/аудитории:
Данные агенты только отвечают на запросы агентов групп.