Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИИ_МО_417_ЛР2_Шакиров_Ибрагимова_Рахимова_Степанова.docx
Скачиваний:
34
Добавлен:
28.08.2022
Размер:
301.03 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования

Уфимский государственный авиационный технический университет

Кафедра ВМиК

Отчёт по лабораторной работе № 2

по дисциплине «Методы искусственного интеллекта»

Выполнили: студенты гр. МО-417

Шакиров А. Р.

Ибрагимова К. Б.

Рахимова А. М.

Степанова Д. Д.

Проверил: Ризванов Д. А.

Уфа 2022

Постановка задачи

Разработать многоагентную систему для решения задачи:

Учебное расписание (преподаватели (teachers), группы (groups) и аудитории (auditoriums)).

Входные данные:

Серверной части:

  1. Преподаватель

Name, subjects, busy

Где:

Name – имя

Subjects – дисциплины

Busy - занятость

  1. Аудитория

Name, capacity, type

Где:

Name – номер

Capacity – вместимость

Type – тип (0 – для проведения практик, 1 – лекций)

Клиентской части:

Группа

Name, students, subjects, name, lections, practics

Где:

Name – название учебной группы

Students – количество студентов

Subjects – учебный план

Name – название предмета

Lections – количество лекций

Practics – количество практик

Примеры:

Выходные данные:

Список групп и их расписаний в виде таблицы:

Группа, день недели, № занятия, Преподаватель, Предмет, Тип, Аудитория

Теоретические сведения

Агент - все, что действует («агент» произошло от латинского «agere», действовать).

Последовательностью актов восприятия агента - полная история всего, что было когда-либо воспринято агентом.

Выбор агентом действия в любой конкретный момент времени может зависеть от всей последовательности актов восприятия, наблюдавшихся до этого момента времени. Если существует возможность определить, какое действие будет выбрано агентом в ответ на любую возможную последовательность актов восприятия, то может быть дано более или менее точное определение агента.

Поведение некоторого агента может быть описано с помощью функции агента, которая отображает любую конкретную последовательность актов восприятия на некоторое действие.

Может рассматриваться задача табуляции функции агента, которая описывает любого конкретного агента. Такая таблица – внешнее описание агента. Внутреннее описание состоит в определении того, какая функция агента для данного искусственного агента реализуется с помощью программы агента.

Функция агента - абстрактное математическое описание, а программа агента – это конкретная реализация, действующая в рамках архитектуры агента.

Компьютерные агенты в отличие от обычных программ обладают способностью функционировать под автономным управлением, воспринимать свою среду, адаптироваться к изменениям и взять на себя достижение целей, поставленных другими.

Рациональный агент – это агент, который действует таким образом, чтобы можно было достичь наилучшего результата или, в условиях неопределенности, наилучшего ожидаемого результата.

Многоагентная система (МАС) - система, содержащая агентов, взаимодействующих между собою.

Для успешного взаимодействия агенты должны уметь сотрудничать, координировать действия и вести переговоры.

Агент может быть реализован только в виде программы (софтбот, бот) или иметь программно-аппаратную реализацию (робот).

Диаграммы взаимодействия агентов

Логику работы программы можно представить в виде диаграммы работы агентов.

Алгоритм работы программы

Серверного агента:

  1. Происходит чтение информации о преподавателях и аудиториях из файла. Создается контейнер, и на основе этой информации наполняется агентами преподавателей и аудиторий.

  2. Далее происходит ожидание запросов о готовности сервера со стороны всех агентов клиентов. Если были получены сообщения о готовности со стороны всех созданных агентов преподавателей и аудиторий, то ответ положительный.

  3. Ожидаются запросы о готовности самих клиентов.

  4. Как только все клиенты уведомят о готовности, отправляются запросы на получение результатов работы всем агентам преподавателей и аудиторий.

  5. После получения всех результатов данные записываются в выходной файл и останавливается работа всех агентов преподавателей и аудиторий.

Клиентского агента:

  1. Происходит чтение информации о группах студентов из файла. Создается контейнер, и на основе этой информации наполняется агентами групп.

  2. Происходит отправка запроса о готовности сервера. Если ответ отрицательный, запрос повторяется через 3 сек. до получения положительного ответа.

  3. Ожидаются запросы о начале синхронизации от агентов групп.

  4. Как только все агенты групп уведомят о начале синхронизации, группам отправляются запросы на завершение синхронизации всем агентам групп. Таких циклов синхронизаций может быть несколько.

  5. Ожидаются запросы о статусе готовности от агентов групп.

  6. Как только все агенты групп уведомят о готовности, группам отправляются запросы на получение результатов работы. Серверу отправляется запрос о готовности текущего клиента.

  7. После получения всех результатов данные записываются в выходной файл и останавливается работа всех агентов групп.

Агента группы:

  1. Пока список нераспределенных занятий по неотмеченным предметам не пуст:

    1. Спрашивается свободное расписание преподавателя по предмету.

    2. Если есть пересечение со своим расписанием в пределах первых 4 пар:

      1. Преподавателю предлагается зафиксировать наиболее приоритетное для группы занятие. Если ответ положительный, фиксируем занятие, иначе переходим к шагу 1.2.

    3. Иначе отмечается преподаватель как спрошенный и спрашивается следующий. Если преподаватели кончились, то отмечается предмет как спрошенный, с преподавателей снимаются все отметки.

  2. Снимаются все отметки.

  3. Пока список нераспределенных неотмеченных занятий не пуст:

    1. Спрашивается свободное расписание преподавателя по предмету.

    2. Если есть пересечение со своим расписанием в пределах первых 4 пар:

      1. Преподавателю предлагается зафиксировать наиболее приоритетное для группы занятие.

        1. Если ответ положительный, фиксируем занятие.

      2. Иначе у преподавателя спрашивается какая группа зафиксирована в данную ячейку времени.

      3. Получив ответ, группе отправляется запрос на перенос этого занятия. Если ответ положительный, то переход к шагу 3. Иначе занятие отмечается как спрошенное.

  4. Снимаются все отметки. Отправляется запрос клиенту о начале синхронизации.

  5. После получения запроса о завершении синхронизации повторяется шаг 1, но только пересечение с расписанием считается полностью и у преподавателя спрашивается вместо свободного расписания незанятое.

  6. Снимаются все отметки. Отправляется запрос клиенту о начале синхронизации.

  7. После получения запроса о завершении синхронизации повторяются шаги 1–5 для аудиторий.

  8. Отправляется запрос о готовности клиенту.

  9. После получения запроса о получении результатов от клиента, в ответ отправляется информация о расписании группы.

Агента преподавателя/аудитории:

Данные агенты только отвечают на запросы агентов групп.