Комплекс алгоритмов построения расписания вуза. Часть 1. Система оценки качества расписания на основе нечетких множеств, особенности алгоритма поиска оптимального расписания

УДК 517.977.58

А. Н. Безгинов, С. Ю. Трегубов КОМПЛЕКС АЛГОРИТМОВ ПОСТРОЕНИЯ РАСПИСАНИЯ ВУЗА

ЧАСТЬ 1. СИСТЕМА ОЦЕНКИ КАЧЕСТВА РАСПИСАНИЯ НА ОСНОВЕ НЕЧЕТКИХ МНОЖЕСТВ,

ОСОБЕННОСТИ АЛГОРИТМА ПОИСКА ОПТИМАЛЬНОГО РАСПИСАНИЯ

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

A new approach for evaluating the quality of University timetables is proposed. This approach uses a multicriterion expert system with two quality indexes: the average penalty imposed on timetabling and highest penalty imposed on one of the constraints. The system based on a series of intelligible rules and use the algorithms of fuzzy logic for getting the final evaluation of timetabling was created. An algorithm for searching a set of Pareto optimal timetables based on the Pareto simulated annealing algorithm is constructed.

Ключевые слова: составление расписания вуза, оценка качества расписания, нечеткая логика, парето-имитации отжига.

Key words: university course timetabling, evaluating the quality of timetable, fuzzy logic, Pareto simulated annealing.

Введение

Задача построения расписания занятий для вуза относится к классу NP-полных многокритериальных оптимизационных задач. Ввиду неэффективности точных методов для решения задач данного класса при разработке систем автоматизированного составления расписаний занятий применяют эвристические методы, с помощью которых найти оптимальное решение (даже если понятие «оптимального» решения четко определено), как правило, невозможно. В рассматриваемом же случае ситуация усугубляется многокритериальностью задачи. В настоящей работе под «оптимальным» мы будем понимать любое парето-оп-тимальное решение. Соответственно, обобщенно назначение создаваемого алгоритма составления расписания вуза сформулируем так: алгоритм должен обеспечивать поиск некоторого подмножества множества парето-оптимальных решений, причем совокупность найденных решений должна быть, во-первых, обозримой для диспетчера, использующего алгоритм, и, во-вторых, отображать характер всего парето-множества.

12?

Вестник Балтийского государственного университета им. И. Канта. 2011. Вып. 5. С. 127—135.

128

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

1) построение одного или множества опорных допустимых расписаний;

2) оценка качества данного расписания;

3) поиск подмножества парето-оптимальных расписаний путем последовательного изменения текущего расписания (или множества расписаний) в направлении его (их) улучшения в соответствии с принятыми показателями качества.

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

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

1. Система оценки качества расписания

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

Сформулируем качественное понимание «справедливости» расписания: будем называть его справедливым, если среди субъектов — участников учебного процесса нет такого, чьи интересы учтены значительно хуже других. Тогда вместо одного скалярного показателя качества расписания целесообразно использовать два:

• средневзвешенную оценку штрафов за полное или частичное невыполнение требований, предъявляемых к расписанию;

• наибольший штраф среди штрафов, назначаемых за полное или частичное невыполнение требований участников расписания.

Для формализации показателей качества расписания необходима схема формализации требований, предъявляемых к расписанию. Пояс-

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

Каждое требование в экспертной системе изначально характеризуется следующим:

1) смысловой функцией, которая дает обобщенную характеристику отклонения текущего расписания от ситуации идеального выполнения требования;

2) лингвистической переменной «приоритет требования», например с множеством значений T = {«высокий», «средний», «низкий»};

3) весом требования ю е [0,1];

4) областью допустимых значений смысловой функции;

5) целевой функцией требования.

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

q

i

где с'г — число занятий в г-й рабочий день в идеальном случае; с — реальное число занятий в г-й рабочий день (с = (й, ..., с/)); ] — количество рабочих дней вуза в неделю.

Функция q(c) может быть модифицирована, например, так: в определенные («приоритетные») дни недели, выбранные преподавателем, в (1) вместо величины | с\ - сг | используется пороговая оценка, равная нулю, если | с\ - ci| = 0, или некоторому максимальному возможному значению — в противном случае.

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

Значение лингвистической переменной «приоритет требования» устанавливается диспетчером и является обобщенной экспертной оценкой относительной важности рассматриваемого требования, которая формируется на базе статуса преподавателя, его пожеланий и влияния требования на учебный процесс.

На множестве всех требований с одинаковым значением лингвистической переменной «приоритет требования» на основе значения их веса задается дополнительное отношение предпочтения. Итак, вес требования и лингвистическая переменная «приоритет требования» задают отношение предпочтения на множестве всех требований.

Целевая функция йг(2г) требования геЯ (где Я — множество требований, а 2Г = q(c) — значение смысловой функции) имеет смысл штрафа и отображает множество допустимых значений смысловой функции на отрезок [0, 1]. Вид данной функции определяется экспертом на этапе разработки системы, а ее значения — это экспертная оценка степени нарушения рассматриваемого требования для возможных значений

130

смысловой функции. При этом полагаем, что требования, целевые функции которых в изучаемом расписании равны 1, полностью не выполнены, 0 — полностью выполнены.

Отметим, что семантика термина «целевая функция» в настоящей работе отличается от семантики, принятой в алгоритмах четкой скалярной оптимизации. Здесь «четкие» целевые функции dr(zr), которые соответствуют различным требованиям, это только промежуточные конструкции при построении обобщенных показателей качества расписания, позволяющие формализовать предпочтения субъектов — участников расписания. В целом же алгоритм итерационного построения подмножества парето-оптимальных расписаний строится в рамках методологии нечетких алгоритмов.

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

Рассмотрим наиболее важные элементы такого подхода.

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

Разобьем множество всех требований на подмножества по значению лингвистической переменной «приоритет требования». Для каждого подмножества получим четкие оценки расписания по указанным компонентам векторного показателя качества:

5ld = • dr (Zr )/ ; ^2d = maXK • dr (Zr )},

reR, / reR, rER‘

где §1d — средневзвешенная оценка штрафа за невыполнение требований приоритета d (|id e [0, 1]); §2d — наибольший штраф, соответствующий требованиям приоритета d (|2d e [0, 1]); d — приоритет требований (для упрощения индексации переменных в качестве множества значений d вместо множества T используем равномощное множество D = {1, 2, 3}, d eD); Rd — множество требований приоритета d; rar — вес требования r e Rd, юг e[0, 1]; zr — значение смысловой функции требования r e Rd; dr(zr) — целевая функция требования r e Rd.

Для получения общей оценки расписания по рассматриваемым показателям качества разработаем систему правил вида «IF a, THEN р», где а, р — высказывания на естественном языке. Пример: Если по показателю средневзвешенная оценка штрафа требования высокого приоритета выполнены удовлетворительно, требования среднего и низкого при-

оритета выполнены плохо, то расписание по этому показателю плохого качества.

Для формализации системы подобных правил каждому значению лингвистической переменной «приоритет требования» сопоставим лингвистическую переменную «степень выполнения требований данного приоритета по рассматриваемому показателю качества расписания» с множеством значений Т1 = {«хорошо», «удовлетворительно», «плохо»}. Полученное множество лингвистических переменных — это множество входных переменных изучаемой системы. Возможный вид функций принадлежности, соответствующих различным значениям входной лингвистической переменной, представлен на рисунке 1, где показатели |;й, / є{1, 2}, й є О играют роль четких входных переменных. Вид функций принадлежности взят из числа рассмотренных в работе [1]. Каждая функция принадлежности, определенная на четком множестве возможных значений входной переменной ^й є [0, 1], описывает нечеткое множество ЛН, Н є О1 = {1, 2, 3} (1 — «хорошо», 2 — «удовлетворительно», 3 — «плохо»).

Рис. 1. Функция принадлежности для входных лингвистических переменных

Для оценки расписания введем выходные лингвистические переменные «качество расписания по показателю "средневзвешенная оценка штрафа"» и «качество расписания по показателю "наибольший штраф"» с множеством значений Т2 = {«очень хорошее», «хорошее», «среднее», «плохое», «очень плохое»}. Возможный вид функций принадлежности Н-(П/), соответствующих различным значениям выходных лингвистических переменных, подобен по характеру функциям, показанным на рисунке 1. Здесь ц/ — оценка расписания по /-му показателю качества, рассматриваемая как четкая выходная переменная, ц/ е [0, 1], / е {1, 2}. Каждая функция принадлежности описывает нечеткое множество Вт, т е 02 = {1, 2, 3, 4, 5}, где множество 02 значений индекса т соответствует множеству Т2.

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

131

132

та от диспетчера, который оперирует только нечеткими значениями соответствующей лингвистической переменной — «качество расписания хорошее» и т. п.

Рассмотрим теперь структуру применяемых нечетких предикатных правил. При этом используем следующие обозначения: для четких переменных — символы |1d, ^1 и так далее, а для соответствующих лингвистических переменных — X1d, Л)1 и др.

Нечеткие предикатные правила будут иметь вид

Ry. IF (xj1 это Ah11j AND Xj2 это Ащщ AND Xj3 это Аш;) THEN (уу это B'1);

Rn{. IF (Xj1 это AhN1j AND Xj2 это Aumy AND хуз это Aumj) THEN (yy это BN),

где j — индекс рассматриваемого показателя качества расписания, j = {1, 2} (1 — средневзвешенная оценка штрафа, 2 — наибольший штраф); Rkj, k = {1, ..., N} — k-е правило для j-го показателя качества; N

— количество нечетких правил (с учетом мощностей введенных выше множеств T и T1 и структуры условной части рассматриваемых правил имеем N = 33 = 27, но алгоритм строится для общего случая); Xj1, Xj2, хуз — входные лингвистические переменные «степень выполнения требований высокого приоритета», «степень выполнения требований среднего приоритета», «степень выполнения требований низкого приоритета» соответственно; уу — выходная лингвистическая переменная «качество расписания»; Auky Auk2j, Ahk3j — нечеткие множества, соответствующие приведенным в k-м правиле значениям входных лингвистических переменных «степень выполнения требований высокого приоритета», «степень выполнения требований среднего приоритета», «степень выполнения требований низкого приоритета» соответственно; B'k e {B1, ..., B5} — нечеткое множество, соответствующее рассматриваемому в k-м правиле значению выходной лингвистической переменной «качество расписания».

Вход данной системы — некоторые конкретные четкие значения £и, £12, £13 (£1; e [0, 1]), соответствующие показателю качества «средневзвешенная оценка штрафа» и £21, £22, £23 (£2; e [0, 1]) и показателю «наибольший штраф». Выход приведенной системы нечетких правил — множество новых нечетких множеств B*k, к = {1, ., N}.

Для получения результирующей оценки расписания применяется аппарат теории нечетких множеств, при этом процесс поиска решения может быть разбит на три этапа [1, с. 45].

1. Фазификация. Конкретным входным значениям £11, £12, £13 и £21, £22, £23 сопоставляются нечеткие множества Amy, Auky Amj, j = {1, 2}.

2. Выработка решения. Находятся нечеткие выводы всех нечетких правил, входящих в систему.

3. Дефазификация. На основе анализа нечетких множеств B*k, k = {1, ., N} рассчитывается количественная оценка рассматриваемого расписания по каждому показателю качества.

Основные особенности построения этих трех этапов были рассмотрены нами в работе [2].

2. Особенности алгоритма поиска оптимального расписания

Для получения подмножества Xp множества парето-оптимальных расписаний авторами был разработан алгоритм поиска, являющийся адаптацией для задачи составления расписания метода Pareto simulated annealing (PSA) [З; 4, с. 1S], который в свою очередь, оказывается частным случаем адаптации метода simulated annealing (SA) [5] для многокритериальных задач.

Идея PSA (как и SA) схожа с идеей классического метода «наискорейшего спуска», в котором на каждой итерации с некоторого опорного решения в текущее решение вносят изменения, максимально приближающие его к цели. Как известно, метод наискорейшего спуска в общем случае дает только локальный минимум. В PSA указанный недостаток сглаживается за счет разрешения на начальных итерациях поиска заменять текущее решение более плохим (по одному или обоим показателям качества) с вероятностью P < 1. Заметим, что здесь предполагается исключительно субъективная трактовка понятия «вероятность», а значения P формируются на основе эвристических правил, предложенных в работе [б].

В качестве начального приближения для PSA в настоящей работе используется множество опорных расписаний XD. На базе каждого расписания из данного множества организуется независимый процесс поиска оптимального расписания. Конечное подмножество Xp парето-оп-тимальных расписаний формируется на основе множества недоминируемых расписаний, проанализированных в процессе поиска.

Для исследования эффективности предложенного подхода, включающего систему оценки расписания на базе нечетких предикатных правил и алгоритм поиска множества парето-оптимальных расписаний на основе PSA, в среде C++ был разработан программный комплекс формирования оптимального расписания. С помощью генератора тестовых задач составления расписания, входящего в состав указанного программного комплекса, было порождено большое количество тестовых задач различной размерности (по числу I занятий в неделю) и сложности (по характеру нежестких требований к расписанию со стороны субъектов — участников расписания). Зависимость доли P от числа занятий I оценивалась на основе анализа всего множества тестовых задач и задач, при решении которых нежесткие требования субъектов

— участников расписания были выполнены полностью. Пример такой зависимости показан на рисунке 2.

P

1

250

5ОО

75О

>

1ООО I

О

1SS

Рис. 2. Доля задач, успешно решенных с помощью разработанного программного комплекса

134

Пример иллюстрирует то, что созданный программный комплекс достаточно успешно справляется с задачей поиска расписания, удовлетворяющего трудно совместимым требованиям субъектов — участников расписания. Долю задач, в которых не удается полностью выполнить все требования участников, в принципе можно было бы уменьшить, изменив подходящим образом некоторые исходные данные задачи и запустив процесс поиска заново. Дополнительно эффективность предложенного подхода была подтверждена при решении реальных задач составления расписания для филиала ГОУ МГИУ в Сергиевом Посаде. В филиале имеется 29 групп студентов, обучающихся по четырем специальностям, 73 преподавателя и 17 аудиторий. Проведенные вычислительные эксперименты показали, что разработанному программному комплексу для построения оптимального расписания этого вуза требуется ~1,5 часа вычислительного времени на компьютере с процессором ЛМБ ЛШ1оп64 3800+. При этом экспертами, участвующими в вычислительных экспериментах, было отмечено, что в итоговых расписаниях все требования, выделенные ими как высокоприоритетные, были удовлетворены в максимально возможном объеме.

Заключение

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

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

Список литературы

1. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. М., 2004.

2. Безгинов А. Н., Трегубов С. Ю. Система оценки расписания на основе нечетких множеств || Известия МГИу. 2007. № 1 (б). С. 2 — S.

3. Czyak P., Hapke M., Jaszkiewicz A. Application of the Pareto-simulated annealing to the multiple criteria shortest path problem I Institute of Computing Science, Poznan University of Technology. Poznan, 1994.

4. Jaszkiewicz A. Multiple objective metaheuristic algorithms for combinatorial optimization | Poznan University of Technology. Poznan, 2001.

5. Kirkpatrick S., Gelatt C. D., Vecchi M. P. Optimization by simulated annealing // Science. 1983. Vol. 220, N4598. P. 671 — 680.

6. Serafim P. Simulated annealing for multiple objective optimization problems // Multiple criteria decision making: proc. of the Xth intern. conf. Taipei, 1994. P. 283 — 292.

Об авторах

Анатолий Николаевич Безгинов — д-р техн. наук, проф., филиал Московского государственного индустриального университета, г. Сергиев Посад, e-mail: mail@spf-mgiu.ru.

Сергей Юрьевич Трегубов — ассист., филиал Московского государственного индустриального университета, г. Сергиев Посад, e-mail: s.tregubov@gmail.com.

Authors

Prof Anatoliy Bezginov — Branch of Moscow state industrial university in Sergiev Posad (SPF MSIU), e-mail: mail@spf-mgiu.ru.

Sergey Tregubov — assistant, Branch of Moscow state industrial university in Sergiev Posad (SPF MSIU), e-mail: s.tregubov@gmail.com.