Задача составления расписаний: решение на основе многоагентного подхода

ЗАДАЧА СОСТАВЛЕНИЯ РАСПИСАНИЙ: РЕШЕНИЕ НА ОСНОВЕ МНОГОАГЕНТНОГО ПОДХОДА

Т.С. Бабкина,

старший преподаватель кафедры информационных систем и технологий Нижегородского филиала Государственного университета — Высшей школы экономики

Г----------------------------------------------------------------------------Ч

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

^ *

Общая постановка задачи и математическая модель

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

Основа построения собственного многоагентного алгоритма составления учебного расписания — точная постановка задачи в виде математической модели. В целях упрощения изложения в такой модели будем называть лиц, заинтересованных в результатах процесса составления расписания, пользователями расписания. К ним относятся преподаватели и учебные группы. Роль первых — провести лекционное или практическое занятие; роль последних — присутствовать на занятиях. Введём следующие обозначения.

Учебные группы и потоки.

g е G — номер учебной группы.

G — множество номеров всех учебных групп.

= у — количество групп.

Каждая группа входит в один или несколько потоков. При объединении групп в один поток используются следующие принципы:

1. Группы в потоке используют один и тот же аудиторный фонд. Например, поток «Гуманитарные предметы, ФИСТ, 4-ый курс», состоящий из групп 99-ПМ, 99-РРТ, 99-Р-1, 99-Р-2, 99-ССК, использует аудиторный фонд из двух аудиторий на 120 мест.

2. Лекции читаются всему потоку одновременно.

3. У каждого потока есть хотя бы одно занятие.

4. Поток может состоять из одной учебной группы. Например, поток «Прикладная математика, предметы по специальности, 4-ый курс» состоит из одной группы 99-ПМ.

R — множество номеров учебных потоков.

|^= р — количество потоков.

г е R — номер потока. Каждая группа самостоятельный поток, поэтому р > у.

Cr С G — поток. Потоком называется любое подмножество множества групп.

C = {^, ^..^ ^ — множество всех потоков. Потоки могу пересекаться между собой.

Преподаватели.

р е P — номер преподавателя;

P — множество всех преподавателей.

^|= П — количество преподавателей.

Пользователи расписания.

Объединение множества всех групп с множеством всех преподавателей: М = G ^ P, т е M — уникальный номер пользователя расписания.

Время.

м е Wg — номер учебного дня недели; Wg е W = {1, 2,..., 7} — множество учебных дней группы; g, W

— множество всех дней недели. у е J = {1, 2,..., 8} — номер учебной пары. T = {(м, у) | м е W, у е J} — множество таймслотов. Таймслотом называется элементарная единица времени в задаче составления расписания. Например, таймслот (1, 2) означает: понедельник, вторая пара. Для каждого пользователя т известно множество таймслотов, когда он свободен, то есть в это время занятие может быть проведено С T,

и множество недоступных таймслотов ^ С T (^ ^ Tm = Т; Tm П Tm = 0), например, выходные дни, когда занятия не могут быть проведены.

Занятия.

Преподаватели проводят лекционные и практические занятия. Лекционные занятия проводятся у всего потока сразу. Практические занятия — только у одной группы; требуют другого аудиторного фонда. Например, практические занятия по информатике должны проходить в компьютерном классе. Введём следующие обозначения для занятий.

Sг = {1, 2, ..., Фг} — множество номеров лекционных занятий, читаемых на потоке г; е Sг — номер лекционного занятия;

Qг = {1, 2, ..., 0Г} — множество номеров практических занятий, проводимых на потоке г; #г е Qг — номер практического занятия;

Глобально уникальным идентификатором занятия будет пара «номер потока — номер занятия на потоке». Занятия существенно зависят от потока. Так, «физика на 2-м курсе» отличается по содержанию от «физика на 3-м курсе».

Лекционное занятие однозначно идентифицируется парой значений «номер потока — номер лекционного занятия»: (г, sp), где

есть множество всех лекционных занятий.

Количество лекционных занятий:

Практическое занятие однозначно идентифицируется тройкой значений «номер потока — номер практического занятия — номер группы»: (г, g, #г) е RQG, где

= {( г, gr ,4,.) | геК,Чге С>г, gr ес} (2) есть множество всех практических занятий.

Количество практических занятий:

где: ^ — количество групп в потоке .

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

Е = Ы8иКС)С (0.2).

Учебный план закрепляет за каждым преподавателем предметы, которые он должен будет провести в течение семестра. Назначение лекционных занятий:

5; :Ы8->Р,

где: P — множество преподавателей;

RS — множество лекционных занятий.

Например, 81(1, 2) = 4 означает, что преподаватель номер 4 ведет занятие номер 2 из списка лекционных занятий потока номер 1.

Учебный план практических занятий:

62: яде -> Р

где: RQG — множество троек: «номер потока — номер практического занятия — номер группы».

Например, ^ = {3, 4, 5} — поток 1 состоит из групп 3, 4, 5; Q1 = {1, 2} — у потока 1 всего два практических занятия; запись 82(1, 2, 4) = 7 означает, что у группы с номером 4, которая входит в поток 1, практическое занятие номер 2 ведёт преподаватель 7.

В общем случае учебный план можно записать так:

5 : Е —» Р

Зная учебный план, можно вычислить следующую величину: множество занятий, проводимых пользователем-преподавателем (или для пользова-теля-группы) с номером т:

Аудиторный фонд — множество аудиторий, где могут быть проведены занятия.

A — множество всех аудиторий и помещений.

Для каждого занятия е выделяется некоторое подмножество аудиторий Ae С А; аудитория для проведения занятия выбирается только из этого подмножества.

Неизвестные функции задачи. Неизвестные в данной задаче — расписание времени и расписание аудиторий. Расписание времени — отображение множества предметов на множество таймслотов:

где: E — множество всех занятий;

X — множество всех таймслотов.

Пример 1. Т(1, 2) = (4, 4), означает, что лекция номер 2 на потоке 1 будет проводиться в четверг на четвертой паре.

Пример 2. С = {3, 4, 5} — поток 1 состоит из групп 3, 4, 5; Gl = {1, 2} — у потока 1 всего два практических занятия; запись означает, что у группы с номером 4, которая входит в поток 1, практическое занятие номер 2 будет проводиться в четверг на четвертой паре.

Расписание аудиторий — это отображение множества занятий на множество аудиторий:

где: Е — множество всех занятий;

А — множество всех аудиторий.

Пример 1. а(1, 2) = 101 означает, что занятие 2 потока 1 проводится в аудитории 101.

Пример 2. С1 = {3, 4, 5} — поток 1 состоит из групп 3, 4, 5; Gl = {1, 2} — у потока 1 всего два практических занятия; запись означает, что у группы с номером 4, которая входит в поток 1, практическое занятие номер 2 будет проводиться в аудитории 101.

Ограничения. Введём в задаче следующие ограничения.

1. Один преподаватель в каждый момент времени может проводить не более одного занятия.

Ур е ¥,Уе{,е2 е Е: е{ + е2 л5

2. В одной аудитории в каждый момент времени может проводиться не более одного занятия.

У а € А, \/е{,е2 еЕ :е1 Фе2 да

3. У одной группы в каждый момент времени может проводиться не более одного занятия.

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

входят все занятия, которые читаются группе g персонально или в каком-либо потоке. Ограничение 3 будет выполнено тогда и только тогда, когда все занятия групп одного класса проводятся в разное время.

Приоритеты занятий. Очевидно, что не все занятия имеют одинаковую важность в рамках учебного процесса. Для них можно задать порядок по приоритету. Более приоритетные занятия будут в первую очередь занимать время и место; менее приоритетные занятия уже не смогут претендовать на эти ресурсы. Итак, приоритеты занятий — отношение частичного порядка на множестве занятий.

е, <^>и{е1)> и

где: еь е2 е Е;

— «полезность» занятия е ;

— множество групп, у которых проводится занятие е;

к\(е) е {0, 5, 10} — характеризует степень важности занятия для специальности (0 — «ненужные занятия», 5 — важное, но не по специальности, 10 — занятие по специальности); к2(е) е {0, 2} — 0 — младшие курсы, 2 — старшие курсы;

ре = р, 8(е) = р — номер преподавателя, который ведет занятие е;

к3(ре) е {0...5} — оценка преподавателя как научного сотрудника; больше — значит, что преподаватель более ценный научный сотрудник. В случае равенства занятия упорядочиваются в лексикографическом порядке.

Предпочтения пользователей. Важная часть предлагаемой модели — предпочтения пользователей. Каждое предпочтение — это числовая оценка в диапазоне от 0 до 1. 0 соответствует наименьшему уровню предпочтения; 1 — наибольшему. В модели имеют место два вида предпочтений:

Ф предпочтения пользователя т е M о времени проведения занятия:

/» :ЕтхТ; ->[0,1]

Ф предпочтения пользователя т е M о месте проведения занятия:

/т : ЕА,„ —> [0,1],

— множество допустимых пар «занятие — аудитория».

Графически предпочтения можно представить в виде таблиц (см. табл. 1, 2). Более тёмный цвет отмечает более предпочтительное время (место) для проведения занятия.

Таблица 1

Предпочтения пользователя m о времени проведения занятия,

Номер пары, і

1 2 3 4 5 6 7 8

ПН

ВТ

СР

ЧТ

ПТ

СБ

ВС

Таблица 2

Предпочтения пользователя m о месте проведения занятия, 1т

Аудитория, a 1 2 3 4 5

Оценка, fm

Критерий качества решения. Критерий качества — обобщённый критерий, состоящий из нескольких частных критериев — оценивает найденное решение, т.е. пару функций .

Частный критерий

ре

определяет сумму предпочтений пользователей о времени занятия е. Частный критерий

определяет сумму предпочтений пользователей о месте проведения занятия е. Обобщённый критерий

р(т’а)= X№ + Ре )”> тах (15^

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

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

Анализ возможностей многоагентного подхода

В информатике и программной инженерии агент — самостоятельный объект системы, обладающий свойством коммуникабельности и наделённый собственной системой принятия решений. Коммуникабельность — способность агента обмениваться сообщениями с другими агентами и прочими объектами системы.

Суть применения агентного подхода к какой -либо задаче: задача разбивается на несколько более мелких задач. Для решения каждой мелкой задачи выделяется агент. Цель агента — найти решение своей задачи такое, чтобы оно согласовалось с решениями других агентов. Агенты добиваются согласования друг с другом путем обмена информационными сообщениями. В итоге агенты находят решения для своих задач, значит и для исходной задачи; либо выясняется, что решения нет.

Идея применения агентного подхода к задаче составления табличного расписания состоит в том, чтобы заменить агентами каждого пользователя расписания. Цель каждого агента — найти такое расписание для пользователя, чтобы оно:

Ф соответствовало ограничениям задачии и ограничениям самого пользователя;

Ф имело бы наибольший уровень пользы для пользователя;

Ф не противоречило расписаниям других пользователей.

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

Основные достоинства агентного подхода (по сравнению с классическими централизованными методами решения задачи составления расписаний) представлены в табл. 3.

В идеале пользователь расписания может один раз запрограммировать своего агента-представителя,

Таблица 3

Преимущества агентных алгоритмов по сравнению с централизованными

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

Многоагентные алгоритмы можно разделить не несколько типов.

Первый тип алгоритмов — это алгоритмы, использующие экономическую модель в том или ином виде [1—3]. Как правило, в моделях таких алгоритмов агенты взаимодейтсвуют в рамках некоторого аукциона. Чтобы получить какой-либо ресурс, они должны выиграть торги за этот ресурс у других агентов. Торги осуществляются с помощью «денег». Агенты делятся на продавцов и покупателей. Продавцы контролируют распределение ресурсов; покупатели пытаются, используя свои ограниченные денежные ресурсы, максимизировать свою функцию полезности путем приобретения у продавцов ресурсов. Такие алгоритмы предназначены для применения в автоматических электронных аукционах и электронной коммерции. Основной недостаток таких алгоритмов

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

Второй тип алгоритмов предлагает методы для решения распределённых задач удовлетворения ограничений (Distributed Constraint Satisfaction Problem - DisCSP) [4, 5]. Обычная нераспределённая задача удовлетворения ограничений (Constraint Satisfaction Problem — CSP) состоит из n переменных x1, x2, ..., xn, чьи значения берутся из конечных дискретных множеств D1, D2, ..., Dn и набора ограничений на переменные. Ограничение задается предикатом. То есть ограничениеpk(xk1, xk2, ..., xkj) — предикат, опре-дел'нный на декартовом произведении Dk1 X Dk2 X Dkj. Этот предикат истинен тогда и только тогда, когда все его переменные удовлетворяют его ограничению. Решить CSP означает найти значения всех переменных такие, что все ограничения выполнены.

Распределенная CSP (DisCSP) — это CSP, в которой переменные и ограничения распределены между автоматическими агентами. Мы предполагаем, что имеет место следующая модель общения между агентами:

Ф агенты общаются путём посылки сообщений. Агент может посылать сообщения другим агентам тогда и только тогда, когда он знает адреса других агентов;

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

Каждый агент имеет несколько переменных и его задача — определить значения этих переменных. Но существуют межагентные ограничения и значения переменных должны им тоже удовлетворять. Формально, существует m агентов 1, 2, ..., m. Каждая

Название Описание

Сильная индивидуальность предпочтений Каждый пользователь имеет возможность высказать свои предпочтения (в централизованной системе речь идет, как правило, только об абстрактном "общем благе"), может заложить любую программу принятия решений в своего агента

Распределенность Агент - это достаточно самостоятельный программный модуль. Все агенты могут исполняться на разных компьютерах, объединенных в сеть

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

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

Существование частичного решения В каждый момент времени существует частичное решение задачи

переменная принадлежит одному агенту i (это отношение выражается предикатом belongsfXj, i)). Если Xj принадлежит агенту i, мы можем назвать Xj локальной переменной агента i. Ограничения также, как и переменные, распределены между агентами. Факт того, что агент k знает предикат ограничения pl представлен с помощью отношения knownfpi, k). Ограничение, заданное только на локальных переменных, будем называть локальным ограничением.

Мы говорим, что DCSP решена тогда и только тогда, когда выполнены следующие условия:

V i, Vx, belongsfXj, i) значение Xj равно dj и Vk, Vpi, knownfpi, k), pi = true.

Без потери общности мы делаем следующие предположения. Эти ограничения достаточно просто могут быть сняты при рассмотрении общего случая:

Ф Каждый агент знает все предикаты ограничений, касающиеся его переменных.

Ф Все ограничения двоичные, т.е. определены на двух переменных.

Мы можем представить БСЗР с двоичными ограничениями как сеть, где переменные являются вершинами, а ограничения — ребрами (рис. 1).

Рис. 1. Пример сети ограничений

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

Идея методов решения задач DisCSP заключается в применении распределённых алгоритмов поиска в пространстве решений задачи [4, 5]. Наиболее эффективный алгоритм, способный обрабатывать случай нескольких локальных переменных, предложен в работе [4] Это Multi-AWS (Multi Asynchronous Weak-commitment Search — асинхронный алгоритм со слабой фиксацией) — полный распределённый алгоритм эвристического поиска. Универсальность предложенных алгоритмов приводит к тому, что они не используют дополнительной информации о модели решаемой задачи, что приводит к увеличению перебора в пространстве решений.

Наиболее эффективными алгоритмами оказываются алгоритмы третьего типа, использующие всю информацию о структуре конкретной задачи и изначально разрабатывались для её решения. В работах [6—9] предлагаются решения задачи многагентного составления расписания встреч. Алгоритмы в этих статьях хорошо вписываются в модель составления расписания, и имеют хорошие оценки производительности.

Выводы

Построенная математическая модель — основа для практической реализации многоагентного алгоритма составления расписания учебного заведения. Анализ существующих методов многоагентной оптимизации и планирования показал: наибольший интерес представляет разработка алгоритмов, основанных на парадигме динамического планирования расписания встреч многих участников, предложенной в [9].

Литература

1. Cheng J.Q., Wellman M.P. The WALRAS Algorithm: A Convergent Distributed Implementation of General Equilibrium Outcomes // Journal of Computational Economics, 12. 1998. C. 1-23.

2. Wellman M.P., Walsh W.E., Wurman P.R., MacKie-Mason J.K. Auction Protocols for Decentralized Scheduling // Games and Economic Behavior 35. 2001. C. 271-303.

3. Walsh W.E., Yokoo M., Hirayama K., Wellman M.P. On Market-Inspired Approaches to Propositional Satisfiability. Proceedings of Int. Conf. IJCAI-2000. 2001. C. 1152-1160.

4. Yokoo M., Hirayama K. Distributed Constraint Satisfaction Algorithm for Complex Local Problems. Proceedings of the Int. Conf. ICMAS-98. 1998. C.372-379.

5. Yokoo M., Hirayama K. Algorithms for Distributed Constraints Satisfaction: A Review. Proceedings of Int. Conf. AAMAS-02. Vol.3. No.2. 2000. C. 185 - 207.

6. Garrido L., Sycara K. Multi-Agent Meeting Scheduling: Preliminary Experimental Results. Proceedings of the Int. Conf. ICMAS-96. Kyoto, Japan.1996.

7. Franzin M.S., Freuder E.C., Rossi F., and Wallace R. Multiagent Meeting Scheduling with Preferences: Efficiency, Privacy Loss, and Solution Quality. Proceedings of Intrl. Conf. AAAI-02 (workshop on preference in AI and CP). 2002.

8. BenHassine A., Ito T., Ho T.B. A New Distributed Approach to Solve Meeting Scheduling Problems. Proceedings of IEEE/WIC Int. Conf. IAT, 2003. C. 588-591.

9. BenHassine A., D?efago X., Ho T.B. Agent-Based Approach to Dynamic Meeting Scheduling Problems. Proceedings of Int. Conf.AAMAS-04.V.3. 2004. C. 1132-1139.