Министерство образования и науки Российской Федерации МОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ (государственный университет) ФАКУЛЬТЕТ РАДИОТЕХНИКИ И КИБЕРНЕТИКИ КАФЕДРА ИНФОКОММУНИКАЦИОННЫХ СИСТЕМ И СЕТЕЙ (Магистерская программа «Прикладные математика и физика») Многокритериальный подход к упрощению построения и модификации расписаний Магистерская диссертация студента 517 группы Некрылова Дмитрия Андреевича Научный руководитель Потапов М.А., к.ф.-м.н. г. Долгопрудный 2011 ВВЕДЕНИЕ .................................................................................................................................................................3 ЦЕЛИ СИСТЕМ УПРАВЛЕНИЯ РАСПИСАНИЯМИ[4] ....................................................................................................3 МЕСТО СУП В СИСТЕМЕ УПРАВЛЕНИЯ ПРЕДПРИЯТИЕМ[4] .....................................................................................3 СОДЕРЖАТЕЛЬНОЕ ОПИСАНИЕ ПРОБЛЕМЫ ............................................................................................5 Множество Парето ...........................................................................................................................................5 Метод выделения ядра .......................................................................................................................................6 СПЕЦИФИЧЕСКИЕ ЧЕРТЫ ПРОБЛЕМЫ ........................................................................................................................7 ПОСТАНОВКА ЗАДАЧИ ........................................................................................................................................7 Описание начальных условий .............................................................................................................................7 План исследования ..............................................................................................................................................8 СОВРЕМЕННОЕ СОСТОЯНИЕ ПРОБЛЕМЫ ..................................................................................................9 ОПИСАНИЕ ЭКСПЕРИМЕНТА ......................................................................................................................... 10 Метод текущего Парето [7] .......................................................................................................................... 10 Метод MOGA [1] .............................................................................................................................................. 11 КОМБИНИРОВАНИЕ МЕТОДОВ ОЦЕНКИ ................................................................................................................... 12 ОГРАНИЧЕНИЯ НА ВРЕМЯ ВЫПОЛНЕНИЯ ЗАДАЧ ..................................................................................................... 15 СПОСОБ ПРЕДСТАВЛЕНИЯ ВОЗМОЖНЫХ РЕШЕНИЙ [11] ........................................................................................ 16 Структура геномов .......................................................................................................................................... 16 Выделение и определение порядка групп .................................................................................................................... 18 Распределение задач среди работников ......................................................................................................... 18 Упорядочение задач .......................................................................................................................................... 19 ОПИСАНИЕ АГОРИТМА ПОИСКА .............................................................................................................................. 21 Инициализация первого поколения .................................................................................................................. 22 Условие завершения .......................................................................................................................................... 22 Операция мутации ............................................................................................................................................ 22 Операция скрещивания ..................................................................................................................................... 23 РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТА...................................................................................................................... 23 ЭКСПЕРИМЕНТ “4,20,5” .......................................................................................................................................... 24 ЭКСПЕРИМЕНТ “10,50,50” ...................................................................................................................................... 27 ВЫВОДЫ ИЗ РЕЗУЛЬТАТОВ ...................................................................................................................................... 29 ЗАКЛЮЧЕНИЕ ....................................................................................................................................................... 30 2 Введение В данной работе рассматривается проблема упрощения и частичной автоматизации управления персоналом, выполняющим выездные работы. На сегодняшней день эти задачи являются одними из наиболее приоритетных для компаний, достигших масштабов города или страны. Во многих отраслях ведется разработка стандартов программных инструментов управления предприятием. Цели систем управления расписаниями[4] В международной практике были выделены следующие задачи, которые должна решать СУП: 1. построение расписания работы и перемещений указанного набора инженеров для выполнения указанного набора задач 2. учет зависимостей между задачами 3. учет возможности возникновения случайных поломок в сети 4. усовершенствование уже имеющегося расписания 5. прогнозирование количества рабочей силы, необходимой для выполнения указанного набора работ в будущем В данном тексте будут рассмотрены пункты 1, 2 и 3. Для предприятий они представляют наибольший интерес, так как их автоматизация позволяет снизить риски выполнения повседневных работ. Пункт 4 отличается от первых трех только тонкостями реализации. 5 - отдельная задача по анализу результатов работы СУП. Так как эта работа посвящена тонкостям алгоритмам планирования работ, последний пункт остается за ее пределами. Место СУП в системе управления предприятием[4] В качестве примера в дипломе приводится индустрия телекоммуникаций. Это одна из областей, в которых эта задача наиболее востребована. Составляющие системы 3 управления телекоммуникационным предприятием, алгоритмы их работы и протоколы взаимодействия сейчас активно обсуждаются на международном форуме TMForum[4]. По данным этого источника, в ERP входят следующие ключевые компоненты: Система Краткое описание Система управления имуществом Источник информации о ресурсах компании Поддержка предоставленных услуг Источник информации о неполадках в сети Источник информации о необходимых Предоставление новых услуг модификациях в сети. Источник информации о географическом GIS положении точек проведения работ и маршрутах Источник информации о навыках и рабочем HR система времени инженеров компании. Система, описывающая необходимые изменения сети на основе заказанных Система планирования сети пользователем услуг. Модуль, рассматриваемый в данном тексте. Его задача - построить расписание работы Система управления персоналом (СУП) инженеров с учетом географической удаленности мест проведения работ друг от друга В процессе сопровождения предоставляемых и оказания новых услуг решается ряд задач, три из которых требуют краткого рассмотрения здесь. Это декомпозиция заказов пользователя на задачи для задания полевых работников, планирование передвижения работников между точками работ и непосредственно составление расписания работ. Декомпозиция в большей части относится к частично неформализуемым задачам. Она требует глубокого анализа внутренних процессов предприятия и построения набора правил планирования работ. На сегодняшний день в этой сфере на рынке лидируют такие компании как Amdocs, NetCracker, Panti. 4 Под планированием передвижения понимается нахождение оптимальных по каким-либо критериям маршрутов между двумя географическими точками. То есть одна из задач логистики. Ее решают всем известные службы yandex и google maps, а так же ряд других систем, находящих применение в автомобильных навигаторах. Исследованию некоторых проблем модифицированной постановки СУП посвящена данная работа. Разработкой коммерческих приложений СУП на сегодняшний день занимаются например такие компании как NetCracker, Click и AWAS(Verizon). Здесь будут предложены и проанализированы возможные модификации к алгоритму построения расписаний, позволяющие улучшить его производительность. Содержательное описание проблемы Предполагается, что известен набор задач, порядок выполнения которых требуется определить. Для каждой из них определен список сотрудников, способных ее выполнить. Известно, что при достаточно большой размерности задачи построения расписания (ЗПР) время ее решения растет пропорционально экспоненте размерности задачи. Сегодня для ее решения достаточно часто используют “жадные” алгоритмы. Иногда они дают приемлемые результаты за относительно короткое время. Следующим шагом в исследовании данной проблемы должны стать поисковые методы, которые позволят лицу, принимающему решение, увидеть область доступных опций. Под областью доступных опций здесь понимается набор недоминируемых по Парето, либо какому-либо другому правилу решений. Исходя из них у него будет возможно выбрать вариант, удовлетворяющий политике компании и позволяющий, пусть не по всем, но по некоторым параметрам обойти конкурентов. Множество Парето В многокритериальной постановке многих задач критерии попарно несравнимы. Имея две оценки (a1,a2) и (b1,b2) и зная, что выполняется a1 > b1 и a2 < b2, нельзя сказать, какая из них предпочтительнее. Иными словами доминирует другую. 5 Пусть есть две векторных оценки критериев задачи {ai} и {bi}. Будем говорить, что {ai} доминирует {bi} если и . Если известны векторные оценки всех возможных вариантов решения задачи, очевидно имеет смысл исключить из рассмотрения все те из них, для которых существует хотя бы один доминирующий вариант. Множеством недоминируемых вариантов - множеством Парето - называется набор тех возможных решений задачи, для которых не существует другого решения, доминирующего его. Метод выделения ядра Зачастую на практике требуется не просто найти множество лучших из достижимых решений, но и выбрать из этого множества варианты, позволяющие наилучшим образом выполнить поставленную перед системой цель g. Или же составить конкуренцию аналогичным системам. Пусть имеются два критерия: стоимость решения (q1) и его некоторое обобщенное качество (q2) На диаграме 1 цель, которую требуется достигнуть находится внутри множества достижимых решений. Зачастую в этом случае имеет смысл выбирать доминирующие цель варианты, и рассматривать только те из них, которые дают лучший по всем показателям результат. Диаграма 1 Диаграма2 В случае, изображенном на диаграме 2, поставленная цель в принципе недостижима. Если ставится задача обойти конкурирующую фирму, очевидно, доминируемые целью решения будут бесполезны. Однако выбрав, например, более 6 качественные, но более дорогие варианты, при определенной стратегии управления можно получить конкурентное преимущество. Специфические черты проблемы Исследуемая задача отличается прежде всего тем, что вместо инструмента для составления единственного расписания требуется создать набор механизмов для упрощения выбора подходящего расписания из вычисляемого множества так называемых лучших вариантов. В результате первого этапа автоматического анализа проблемы должно быть построено множество недоминируемых оценок, из которых ЛПР сможет выбрать устраивающий его вариант. Еще одна особенность задачи заключается в том, что требуется учитывать возможность появления задачи после составления расписания. Относительно небольшие модификации набора задач не должны приводить к сильным изменениям исполняемого плана. Так же следует учитывать, что на решение накладывается ряд ограничений. Задачи могут иметь различные зависимости друг от друга, иметь жесткие границы начала и конца выполнения. Рабочий день инженера должен начинаться и заканчиваться в определенной позиции. Приступая к следующей задаче после окончания предыдущей, специалисту необходимо переместиться в новое место выполнения. Постановка задачи Описание начальных условий Приведем описание начальных условий - набор данных, предоставляемых внешними системами. Будем считать, что доступ к этой информации занимает пренебрежимо мало времени по сравнением со временем работы системы СУП. a. данные о каждом работнике i.его рабочие часы ii.задачи, которые он может выполнять b. данные о каждой задаче i.требуемый срок завершения (за несоблюдение накладывается штраф) 7 ii.набор зависящих и зависимых задач iii.место выполнения iv.время выполнения v.интервал времени, в течение которого выполнение задачи имеет смысл vi.набор квалифицированных сотрудников c. данные о географическом положении точек работ – полносвязный направленный граф, на ребрах которого обозначено время, затрачиваемое на передвижение между двумя точками Расписание будет состоять из времени начала выполнения для каждой задачи и сотрудника, который будет ей заниматься. По завершении поиска, как уже было упомянуто выше, мы получим приближение множества недоминируемых вариантов расписаний. Из них ЛПР сможет, руководствуясь некоторой информацией о предпочтительности вариантов, выбрать подходящий для целей предприятия. План исследования Проведенное исследование включает в себя сравнение эффективности различных комбинаций методов оптимизации поиска. Для проведения эксперимента были выбраны следующие подходы 1. Устранение возможности генерации заведомо неверных вариантов 2. Метод текущего Парето (М.А. Потапов, Ю.Г. Евтушенко) (модификация для дискретных множеств) 3. Ранжирование оценок по количеству доминирующих вариантов, являющийся частью многоцелевого генетического алгоритма (MOGA, multi-objective genetic algorhythm) 4. Ранжирование оценок по количеству выполненных целей, так же являющийся частью MOGA. Виды рассматриваемых ограничений на время выполнения задач: а. последовательное выполнение б. выполнение в течение другой задачи в. одновременное начало выполнения Очевидно, что при наличии ограничений б. и в. первый из приведенных подходов необходим. Иначе на каждый правильный вариант расписания будет приходиться как минимум ((W-1)*T)N вариантов, не удовлетворяющих ограничению б) или в). (W - общее 8 число работников, T - число рабочих отрезков времени каждого из работников, N - число групп задач, связанных зависимостями б) или в) ). Приведенная оценка получена исходя из правила: если задачи связаны зависимостью б или в, они должны быть выполнены разными работниками в один и тот же отрезок рабочего времени. Подробнее о способах увеличения вероятности найти верный вариант, а так же о способах уменьшения длины ключа за счет этого будет сказано далее. Современное состояние проблемы В стандарте управления расписаниями вводятя два шага поисковой оптимизации: долгосрочная и краткосрочная. Работающих с данными последующих нескольких недель и следующего дня соответственно. Исходя из оценки 4 задачи на работника в день и пятиста работников, при полном переборе последняя требует рассмотрения более, чем различных вариантов расписаний (приведенная оценка дает точный результат если каждый работник должен иметь ровно 4 задачи в день, при этом опция перераспределения свободного времени между задачами не рассматривается). Сейчас широко развивается теория и практика применения алгоритмов адаптивного поиска, в частности генетических алгоритмов, для решения задач большой размерности. На каждом шаге такого алгоритма формируется “поколение” лучших из найденных вариантов, и в некоторые из рассматриваемых решений вносятся случайные изменения для образования следующего поколения. [11,12] После получения расширенного набора вариантов в результате случайных преобразований поколения мы должны исключить из рассмотрения некоторые из найденных возможных решений. Следует исключать именно те решения, которые уводят поиск в сторону от требуемого результата, и поэтому необходимо каким-то образом сравнить, насколько одно из них ближе к результату, чем другое. Важно заметить, что многокритериальная постановка не позволяет ввести явную функцию приспособленности при отсутствии точной информации о геометрических свойствах множества Парето. Или его подмножества, интересного ЛПР. Это обосновывается тем, что если функция приспособленности не постоянна на всем наборе искомых оценок, ее применение приведет к неоправданному исключению из рассмотрения одинаково удовлетворительных опций. 9 Для обеспечения работоспособности поисковых алгоритмов необходимо ввести некоторый аналог экстремума. Для этого в работе используются два метода: текущего Парето (МТП) и MOGA. Они позволяют упорядочить текущее поколение генетического алгоритма и таким образом обеспечивают его сходимость. Описание эксперимента Метод текущего Парето [7] Суть МТП состоит в выделении в текущем поколении множества недоминируемых вариантов. Это множество будем называть текущим множеством Парето. Оно служит для сравнения друг с другом оставшейся части геномов поколения и определения, какие из них следует использовать в следующей итерации, а какие нужно отбросить. Принцип построения ТП удобно отобразить на диаграме Пусть поколение состоит из пяти элементов: p1-p5. Требуется минимизировать два критерия: y1 и y2. Текущее Парето, очевидно, будет состоять из векторов p1, p2 и p3. Вводится понятие расстояния до текущего Парето: , где ppar - точка Текущего Парето. 10 Согласно исследованиям Ю.Г. Евтушенко и М.А. Потапова, сортировка по расстоянию до текущего Парето при выборе набора лучших геномов для генерации следующего поколения и худших геномов, исключаемых из рассмотрения, ускоряет сходимость поиска к истинному Парето. В данной работе сделано обобщение МТП на дискретный случай. Сложность алгоритма обработки поколения при применении этого метода в худшем случае будет равна Где N - размер поколения Np - количество недоминируемых вариантов в поколении c - количество критериев Оценка реализуется тогда, когда первые (N-Np) геномов поколения попарно не доминируют друг друга и доминируются только последним. Метод MOGA [1] Метод MOGA так же служит для ранжирования геномов текущего поколения. Как уже упоминалось выше, он включает в себя два этапа: 1. Упорядочение элементов по количеству доминирующих вариантов 2. Упорядочение элементов по количеству выполненных целей На первом этапе для каждого элемента находится число геномов того же поколения, которые его доминируют. Исходя из этого числа геному присваивается ранг r по правилу r=n+1, где n - число доминирующих геномов. Диаграма 2 иллюстрирует приведенное правило. Традиционно используются три способа обработки значений рангов: a. поколение сортируется в соответствии с рангом b. геномам присваиваются значения приспособленности линейно пропорционально рангу. 11 c. средние значения функции приспособленности индивидов одного ранга делаются пропорциональными рангу. Таким образом, геномы одного ранга будут обрабатываться с одинаковой частотой. Очевидно варианты a и b дают эквивалентный результат. Варианты b и c эффективны при совместном применении MOGA и какого-либо другого метода, основанного на функции предпочтительности. Ключевым моментов второго этапа является понятие цели. Цель, обозначим ее g, представляет собой векторную оценку в том же пространстве критериев Q. Это может быть оценка уже имеющегося решения, которое мы хотим улучшить. Либо точка за пределами множества допустимых решений, варианты, доминируемые которой, нас не интересуют. Для генома p введем понятие количества выполненных целей G(p). G(p) = (Q - размерность пространства критериев) Назовем геном удовлетворительным, если G(p) = Q. Пусть имеются два варианта: p1, p2 и цель g. Будем считать вариант p1 предпочтительным по отношению к p2 если G(p1) > G(p2). Таким образом, мы получим правило упорядочения вариантов, дающее сходимость поиска -к подмножеству множества Парето, состоящему только из удовлетворительных опций, если цель достижима -к вариантам, доминирующим цель по максимально возможному числу критериев, если цель недостижима. Вычислительная сложность обоих этапов, очевидно, пропорциональна N2. Комбинирование методов оценки Приведенные выше подходы призваны исключить некоторый элемент случайности направления поиска и обеспечить сходимость поколения к требуемому результату. На диаграмах 1 и 2 изображены участки множества Парето, которые скорее всего будут интересны ЛПР в зависимости от положения цели. 12 Диаграма 1 Диаграма2 Для любого из приведенных выше методов сортировки геномов по предпочтительности найдется такая пара оценок, которые будут несравнимы. Смысл применения нескольких методов последовательно - ввести дополнительный порядок для решений, признанных равными предыдущим методом. В попытке улучшить сходимость алгоритма. При этом если метод A отличается от B только порядком несравнимых по B решений, комбинирование A и B не имеет смысла. В противном случае комбинирование A и B требует дополнительного исследования, так как изменение способа применения подходов повлияет на поведение процесса поиска. В данной работе будет произведен анализ совместного использования различных цепочек из пяти перечисленных ниже механизмов: 1. Ранжирования геномов (РГ) 2. Сравнения по количеству достигнутых целей (КДЦ) 3. Текущего Парето (МТП) 4. Выделения Парето (МП) 5. Минимакса дистанции (ММД) Пункты 4 и 5 ранее не упоминались. Суть подхода 4 состоит в предпочтении точек текущего Парето точкам, которые в него не входят. Подход пункта 5 предназначен для предотвращения сходимости поиска к одной точке. Он подразумевает сортировку поколения по возрастанию минимальной удаленности векторной оценки от ближайшей точки того же поколения. В большинстве многокритериальных задач значения критериев попарно несравнимы, в качестве метрики в пространстве оценок чаще всего используется норма ∞. Ее применение логически обосновано и затраты на ее вычисление достаточно малы. Исследование способов обеспечения равномерного покрытия пространства 13 результатов выходит за рамки данной работы. Поэтому именно норма ∞ была выбрана для реализации ММД. Само пространство при этом нормируется и приводится к отрезку [0,1]. Что позволяет работать с разными шкалами для каждого из критериев. Механизм ММД использует скалярную функцию приспособленности, которая вычисляется следующим образом: F= где 1 < i,j < G (G - размер поколения) pi[k] - k-я компонента векторной оценки pi Pk=max0<k<N(p[k]) - min0<k<N(p[k]) Обратим внимание на способ комбинирования произвольных механизмов A и B для упорядочения одного поколения. Комбинацию, в которой механизм A применяется первым, а B - вторым будем обозначать (A,B). Предлагаемый способ их комбинирования заключается в следующем. Если A определил, что p1 более (или менее) предпочтителен, чем p2, способ B не должен менять это соотношение. Если же подход A признал p1 и p2 одинаково предпочтительными (или несравнимыми), предпочтение должно определяться на основе B. Аналогично для оставшихся подходов в цепочке. В работе исследованы следующие комбинации вышеупомянутых подходов ○ (РГ, МТП, ММД, КДЦ) ○ (МТП, РГ, ММД, КДЦ) ○ (РГ, ММД, КДЦ) ○ (МТП, ММД, КДЦ) ○ (МП, ММД, КДЦ) И произведено сравнение сравнение эффективности применения этих цепочек. Эксперимент спроектирован таким образом из следующих соображений: ○ В первую очередь должны применяться механизмы, ускоряющие сходимость поиска к множеству Парето. Иначе результат их работы будет частично или полностью теряться ○ КДЦ предназначен для обеспечения сходимости поиска в область удовлетворительных решений. Остальные механизмы никак не влияют на относительную предпочтительность элементов текущего Парето, поэтому применение КДЦ для ТП может производиться на любом этапе. Однако его применение для остальной части поколения будет сужать 14 рассредоточенность последнего, не давая при этом какого-либо ускорения сходимости поиска к множеству Парето. Все множество Парето может оказаться слишком большим для обработки в рамках поколения, и хранения. Так же ЛПР не сможет принять решение, выбирая из большого числа опций. Поэтому имеет смысл ставить цель найти подмножество множества Парето, равномерно распределенное (в смысле какой-либо метрики) по истинному МП. Это позволит оценить возможности системы в целом и сузить область поиска, введя новую цель, если результат окажется неудовлетворительным. Под сужением области поиска здесь имеется в виду вмешательство ЛПР в процессе работы алгоритма и уточнение цели на основе уже имеющихся промежуточных результатов поиска. Ограничения на время выполнения задач В работе рассматриваются случаи со сложными зависимостями между задачами. Как уже было сказано выше, зависимости подразделяются на три вида: ○ “Одновременный старт” (необходимость одновременного начала) ○ “В течение” (зависимая задача должна быть выполнена в тече) ○ “Конец к началу” (зависимая задача должна начать выполняться после окончания той, от которой она зависит) Пусть задачи t1 и t2 связаны по правилу “Одновременный старт”. Очевидно, что если t1 зависит от t3 по правилу “Конец к началу”, t2 так же будет зависеть от t3 по правилу “Конец к началу”. Предположим, t1 должна быть выполнена в течение задачи t2, то есть t1 зависит от t2 по правилу “В течение”. В этом случае если t2 зависит от t3 по отношению “конец к началу”, t1 так же переймет эту зависимость. Однако t2 не переймет зависимостей “конец к началу” задачи t1. Так же можно показать, что цепочки зависимостей “В течение” и “Конец к началу” порождают слудующее правило: Если справедливо, что t1 -> t2 -> … -> tn то 15 Здесь запись t1 -> t2. означает зависимость t1 от t2 по рассматриваему в выражении правилу. Приведенные правила раскрывают неявные зависимости между задачами условия, которые так же требуется учитывать при построении расписания. По результатам теоретического и экспериментального исследования изложенных ниже способов учета зависимостей при реализации систем управления расписаниями рекомендуется раскрывать эти неявные зависимости перед началом поиска. Способ представления возможных решений [11] В рамках данной работы подробно изучен вопрос оптимизации бинарного представления расписаний. Бинарный код (геном, ключ расписания) представляет из себя последовательность бит, содержащих информацию о структуре расписания. Работа с геномами, по сравнению с работой непосредственно с объектным представлением расписаний, значительно снижает требования к объему памяти, необходимой для хранения поколения. Ее недостатком является необходимость построения расписания с нуля для каждого генома. Однако при наличии сложных зависимостей между задачами и ограничений на время и правила их выполнения, работа с объектной моделью требует анализа всего расписания для выбора случайного изменения или проверки корректности результата. То есть, в зависимости от конкретной проблемы, операции случайного изменения расписания могут иметь линейную сложность по числу задач и ограничений на каждую из них. Вторым важным аргументом в пользу выбора подхода, основанного на кодах расписаний является относительная простота (как будет проиллюстрировано ниже) введения новых типов ограничений в условие задачи. Этот показатель в первую очередь важен для коммерческих приложений. Структура геномов Будем рассматривать код расписания как комбинацию кодов, каждый из которых описывает решение соответствующей подзадачи. Каждый из этих кодов имеет верхний предел, определяемый условием и предыдущими значениями кодов. В процессе построения объектной модели расписания введем дополнительную операцию, которая будет доступна механизму разбора кода в случае обнаружения, что 16 представляет решение, не удовлетворяющее условию задачи в плане выдвинутых ограничений. ○ изменение ключа подзадачи Эта операция полезна в том случае, когда по каким-то причинам нельзя точно верный подключ, но всегда имеется возможность найти ближайшее его верное значение. Общее правило разбора ключа основано на том, что точно известен верхний предел возможных значений всех его подключей до начала разбора. Это позволяет получать подключ по правилу ki=li%Ki li+1=li/Ki где ki - i-й подключ. li - “оставшаяся часть” ключа перед началом вычисления ki. Ki - верхний предел i-го подключа 0<i<c c - общее количество подключей Опишем правило составления ключа после изменения подключа. Для иллюстрации представим ключ в виде функции от его подключей для с=4: l = ((k3*K2+k2)*K1+k1)K0+k0) Нетрудно показать, что в общем случае ключ представляется выражением То есть если в процессе разбора ключа сохранять два коэффициента Ai= ; заметим, что Ai+1=Ai*Ki и Bi= ; заметим, что Bi+1=Ai*ki+Bi*Ki То мы получим возможность на любом этапе разбора кода изменить значение подключа ki на другое и получить новый ключ, который в дальнейшем будет использоваться для идентификации исправленного варианта расписания. 17 Задача поиска расписания подразделяется на три подзадачи: 1. выделение и определение порядка групп 2. распределение заданий среди работников 3. упорядочение заданий каждого инженера и распределение их по отрезкам рабочего времени Такой подход в общем стандартен за исключением того, что сейчас наиболее распространено назначение времени выполнения задач по мере их поступления в систему. То есть в общем случае согласно случайному, за исключением распределения по работникам, ключу. Выделение и определение порядка групп На практике задачи часто делятся на связанные внутренними зависимостями группы размером порядка 1-10 заданий. Группа задач - результат декомпозиции более высокого уровня детализации процесса предоставления услуг. Задачи из двух разных групп не имеют зависимостей друг от друга. То есть если и , то ti,k и tj,l не зависят друг от друга если i не равняется j. Первым шагом разбора генома является выделение описанных выше групп и их перестановка в соответствии с подключом перестановки. Далее для каждой из групп последовательно выполняются два последующих шага. После чего начинается обработка следующей группы. Распределение задач среди работников Пусть задано множество работников W и множество задач T. А так же для каждой задачи ti множество инженеров W i, способных ее выполнить. Так как каждая задача должна быть выполнена одним и только одним инженером, общее количество вариантов распределения задач будет составлять K1= По ключу 0<k(1)<K(1)-1 тривиально строится распределение задач по работникам, если подключем считать номер работника (среди квалифицированных), способного выполнить задачу. Подключ будет вычисляться для каждой задачи. Если принимать во внимание ограничения “Одновременное начало” и “В течение”, требуется учесть следующее правило. Задачи, связанные таким ограничением 18 необходимо назначить двум разным работникам. Уменьшить размер ключа на основе этого правила в общем случае нельзя, так как набор квалифицированных сотрудников уникален для каждой задачи группы, связанной упомянутыми ограничениями. Введем понятие группы задач G(1) - подмножества задач T, в котором любые две задачи связанны цепочкой из ограничений обоих видов (в данной подзадаче эти ограничения не требуется различать) На иллюстрации приведен набор задач, принадлежащих одной группе. Стрелками показаны зависимости “В течение”, линиями - “Одновременное начало”. Для трех задач группы выписано множество квалифицированных рабочих. Не исключено пересечение наборов сотрудников для разных задач группы. В этом случае уменьшение набора доступных рабочих вследствие назначения первой задачи группы какому-либо из них приведет к изменению верхнего предела ключа для последующих задач. До того, как первая задача будет назначена сказать, для каких именно задач изменится верхний предел нельзя. Например, если для задачи t1 будет выбран работник w1, изменится верхний предел подключа t2. Если же будет выбран w2 предел подключа t3. Поэтому необходимо учитывать изменившийся верхний предел при выборе следующего подключа. Очевидно, сложность выполнения этой подзадачи пропорциональна количеству задач. Упорядочение задач Следующим шагов при построении расписания является распределение задач по отрезкам рабочего времени. Здесь необходимо рассматривать ограничение на время перемещения между локациями, в которых выполняются задачи. Промежутки между задачами должны быть не меньше, чем это время. В случае, если в конце отрезка рабочего времени инженеру требуется вернуться в базовую локацию, необходимо, чтобы отрезок времени от момента завершения последней задачи до конца интервала рабочего времени был не меньше времени пути до базовой локации. Пусть работнику wi выделено Ti ∈ T задач. Ti при этом принадлежит обрабатываемой в данной момент группе. Введем дополнительно булево свойство 19 каждой из этих задач - является ли она завершающей в своем отрезке времени. Даже если в этот отрезок помещается следующая в перестановке задача Размер ключа для упорядочения будет ограничен значением K2 = При известных Ti из ключа 0<k2<K2 последовательным делением с остатком выделяется подключ перестановки задач и флаг завершения отрезка рабочего времени для каждой задачи. Флаг вводится для того, чтобы не исключать из рассмотрения те варианты, когда следующая задача может быть начата в i-м отрезке, но будет начата в i+1-м. Кодирование пропуска отрезка рабочего времени не рассматривается, так как на практике такой пропуск не имеет смысла. Если у инженера выходной, отрезок вермени будет удален. Если инженер присутствует на рабочем месте, отказаться от его привлечения полностью всегда менее эффективно, чем назначение ему хотя бы одной задачи. Зависимость “Начало к концу” необходимо учитывать при перестановке задач каждого инженера. Пусть t1 зависит от t2. Очевидно, что если они обе назначены одному и тому же сотруднику, 50% возможных без учета этой зависимости перестановок будут заведомо неверны. Введем новый тип групп задач - G(2) - групп задач, связанных зависимостью “начало к концу” внутри множества заданий, назначенных каждому сотруднику. На приведенной иллюстрации можно выделить две группы типа G(2). Линиями показаны зависимости “Начало к концу” между задачами (без указания направления зависимости). Первая группа состоит из задач t6 и t9. Вторая - из задач t5,t7 и t8. t2 и t3 не входят во вторую группу, так как принадлежат другому работнику. Если бы имела место цепная зависимость t3 -> t7 -> t2, прямая зависимость “начало к концу” t3->t2 была бы вычислена на этапе инициализации. 20 Разбиение на группы типа G(2) позволяет рассматривать не все упорядочения наборов Ti, а только те из них, в которых члены групп упорядочены с учетом зависимостей. То есть размер подключа для i-го инженера будет равен где - группы типа G(2) для i-го инженера. kg(i,j) - предел подключа группы size(i,j) - размер группы Такие группы могут объединять задачи, связанные графами зависимостей. На приведенной иллюстрации возможно несколько вариантов упорядочения задач, отличающихся порядком следования t2, t3, t4 и t5. Если бы группа не включала t5, можно было бы выделить подгруппу задач (t2,t3), внутри которой любой порядок задач давал бы верную перестановку. В последнем случае размер подключа группы был бы равен двум. В общем случае разбиение группы типа G(2) на подгруппы может быть произведено не всегда. Но для каждой из задач в любом случае известен номер минимальной и максимальной позиции в группе. Так как на практике группы типа G(2) имеют относительно небольшие размеры (максимум порядка четырех-пяти задач в группе), можно ввести ключ перестановки внутри подгруппы как произведение номеров позиций каждой задачи среди доступных ей позиций. Если при расшифровке улюча указанная позиция будет занята, выбирается первая доступная. С помощью предложенного способа коррекции ключей можно избежать дубликатов при генерации решений. Вычислительная сложность этой подзадачи в худшем случае оценивается как (T * I ) 2 , где T – среднее число задач, присвоенных работнику, I – среднее ычисло задач 2 в группе.ы Описание агоритма поиска Алгоритм работы поиска представляется следующей блок схемой: 21 Инициализация первого поколения На этапе инициализации выполняется случайное создание первого поколения. Ключи собираются на основе пределов подключей каждого этапа. Каждый подключ вычисляется случайно и равномерно распределен на отрезке [0,K] (K - верхний предел подключа). Условие завершения Для исследования были выбраны два условия завершения. На средних размерностях это неизменность текущего Парето на протяжении N поколений. N принято 20, так как за 20 поколений при 25% новых оценок в каждой итерации перебирается и отсеивается в 5 >> 1 полных поколений. Вычислительная сложность задачи для малых размерностей позволяет охватить порядка 1000 итераций за 10 минут. Это много больше 300 итераций, в среднем требующихся для выполнения предыдущего условия. Поэтому для исследования поведения поиска на малых размерностях в качестве условия завершения было выбрано достижение тысячного поколения. Операция мутации 22 Основная задача операции мутации в генетическом алгоритме - внесение относительно малого случайного изменение в аргумент p. Реализация этой операции в рассматриваемой задаче очевидна: в геноме случайным образом меняется небольшое число бит. Доля изменяемых бит была выбрана равной 10% от длины мутируемого генома. Операция скрещивания Задача операции скрещивания - создание новых геномов p3 и p4 на базе двух имеющихся p1 и p2. Он осуществляется случайным выбором каждого бита p3 из одного из бит соответствующей позиции p1 и p2. p4 формируется аналогично. Если на i-ю позицию p3 был выбран бит i-й позиции p1, то на i-ю позицию p4 будет выбран бит с i-й позиции p2. Доля “обмениваемых” в процессе скрещивания так же равняется с = 10%. Проиллюстрируем физический смысл скрещивания. Пусть длина генома равна n бит. Его можно представить как точку в одной из вершин гиперкуба размерности N. Если рассмотреть возможные пути из p1 в p2 по вершинам этого гиперкуба длины 2*с, то в результате операции скрещивания мы получим две точки одного и того же пути, отстоящие от p1 и p2 на одинаковое число шагов. Результаты эксперимента Эксперимент приводился для каждого из пяти перечисленных выше порядков ранжирования и для двух наборов начальных условий. 4 инженера, 20 локаций, 5 групп задач и 20 инженеров, 100 локаций, 50 групп задач. Каждая группа задач включала в себя все три типа зависимостей, каждой задаче присваивалась локация на основе равномерного распределения. На иллюстрации приведены длительности каждой из задач и их зависимости. Ниже описаны результаты проведенных вычислений (количество рабочих, количество локаций, количество комплектов задач). Все временные параметры приведены в милисекундах. 23 Эксперимент “4,20,5” Время обработки поколения: Размер поколения 100 200 Среднее время обработки поколения 0,5 сек 1,3 сек Для анализа результатов эксперимента полезно выделить общее множество Парето по всем пяти шагам эксперимента и сравнить, насколько парето каждого шага приблизилось к нему. Это имеет смысл, так как помимо размера множества Парето и доли элементов общего Парето в нем нас интересует, насколько недоминируемые оценки каждого эксперимента, не попавшие в общее Парето, близки к нему. Первый эксперимент проводился при размере поколения 100 и условии завершения – 20 итераций без изменения текущего Парето. Шаг Размер вычисленного Парето Вычислено решений общего Парето средние ошибки максимальные ошибки РГ -> МТП -> ММД -> КДЦ 25 5 [647; 0; 1] [1300; 0; 3] МТП -> РГ-> ММД -> КДЦ 31 7 [623; 0; 1] [1300; 0; 3] РГ-> ММД -> КДЦ 20 2 [716; 300; 1] [2200; 300; 3] МТП -> ММД -> КДЦ 26 0 [833; 0; 1] [2000; 0; 3] МП -> ММД > КДЦ 21 11 [640; 0; 1] [1600; 0; 2] На приведенном ниже графике проиллюстрирована эволюция текущего множества Парето (Эксперимент<#>) и эволюция доли решений поколения в общем Парето, найденном по результатам всего эксперимента (Парето<#>). 24 4_20_5 35 30 Эксперимент1 Эксперимент2 Размер Парето 25 Эксперимент3 Эксперимент4 20 Эксперимент5 Парето1 15 Парето2 Парето3 10 Парето4 Парето5 5 0 1 21 41 61 81 101 121 141 161 181 201 221 241 261 281 301 321 итерации Результаты измерений с условием завершения – достижение 500 поколений. Для размера поколения 100: Шаг Размер вычисленного Парето Вычислено решений общего Парето средние ошибки максимальные ошибки РГ -> МТП -> ММД -> КДЦ 30 4 [718; 300; 1] [1700; 300; 3] МТП -> РГ-> ММД -> КДЦ 30 4 [730; 0; 1] [1900; 0; 2] РГ-> ММД -> КДЦ 28 7 [842; 0; 1] [4900; 0; 2] МТП -> ММД -> КДЦ 27 9 [535; 300; 1] [1200; 300; 2] МП -> ММД > КДЦ 25 8 [1493; 300; 1] [4000; 300; 3] 25 500 поколений, размер поколения 100 35 30 Эксперимент1 Эксперимент2 Размер Парето 25 Эксперимент3 Эксперимент4 20 Эксперимент5 Парето1 15 Парето2 Парето3 10 Парето4 Парето5 5 0 1 32 63 94 125 156 187 218 249 280 311 342 373 404 435 466 497 Итерация Результаты измерений с условием завершения – достижение 500 поколений. Для размера поколения 200: Шаг Размер вычисленного Парето Вычислено решений общего Парето средние ошибки максимальные ошибки РГ -> МТП -> ММД -> КДЦ 36 2 [460; 300; 1] [1300; 300; 2] МТП -> РГ-> ММД -> КДЦ 34 6 [484; 300; 1] [1200; 300; 3] РГ-> ММД -> КДЦ 37 7 [435; 0; 1] [900; 0; 4] МТП -> ММД -> КДЦ 27 16 [463; 0; 1] [1100; 0; 1] МП -> ММД > КДЦ 32 9 [585; 0; 1] [2200; 0; 3] 26 500 поколений, размер поколения 200 40 35 Эксперимент1 Эксперимент2 Размер Парето 30 Эксперимент3 25 Эксперимент4 Эксперимент5 20 Парето1 Парето2 15 Парето3 10 Парето4 Парето5 5 0 1 32 63 94 125 156 187 218 249 280 311 342 373 404 435 466 497 Итерация Эксперимент “10,50,50” Шаг Размер вычисленного Парето Вычислено решений общего Парето средние ошибки максимальные ошибки РГ -> МТП -> ММД -> КДЦ 36 7 [1770; 1140; 2] [8400; 1140; 3] МТП -> РГ-> ММД -> КДЦ 37 6 [3062; 1140; 1] [17700; 1140; 1] РГ-> ММД -> КДЦ 41 8 [3487; 1140; 1] [16100; 1140; 2] МТП -> ММД -> КДЦ 39 9 [3475; 3300; 1] [15700; 5460; 1] МП -> ММД > КДЦ 40 9 [2653; 5460; 1] [17500; 5460; 1] 27 10_50_50 45 размер Парето 40 Эксперимент1 35 Эксперимент2 30 Эксперимент3 Эксперимент4 25 Эксперимент5 20 Парето1 Парето2 15 Парето3 10 Парето4 Парето5 5 0 1 18 35 52 69 86 103 120 137 154 171 188 205 222 239 256 273 290 итерация Ниже приведены данные для первых 500 поколений с размером поколения 100: Шаг Размер вычисленного Парето Вычислено решений общего Парето средние ошибки максимальные ошибки РГ -> МТП -> ММД -> КДЦ 32 9 [1847; 1020; 1] [16000; 1740; 1] МТП -> РГ-> ММД -> КДЦ 36 8 [3192; 0; 0] [13200; 0; 0] РГ-> ММД -> КДЦ 39 15 [4275; 870; 1] [37200; 1440; 1] МТП -> ММД -> КДЦ 36 10 [1080; 0; 0] [4600; 0; 0] МП -> ММД > КДЦ 32 6 [3030; 0; 0] [13700; 0; 0] 28 500 поколений, размер поколения 100 50 45 Эксперимент1 Размер Парето 40 Эксперимент2 35 Эксперимент3 30 Эксперимент4 Эксперимент5 25 Парето1 20 Парето2 15 Парето3 Парето4 10 Парето5 5 0 1 32 63 94 125 156 187 218 249 280 311 342 373 404 435 466 497 Итерация Выводы из результатов Средние отклонения от общего множества Парето приведены с учетом только тех вариантов, которые не попали в общее множество Парето. Как видно из приведенных выше результатов, существенных преимуществ в использовании того или иного подхода не наблюдается. Явное превосходство того или иного метода ранжирования над остальными носит скорее случайный характер. Однако можно выделить определенные закономерности. Исходя из средних отклонений от Парето и графиков роста текущего Парето видно, можно заключить, что Метод Текущего Парето хорошо работает на тех итерациях, когда множество оценок уже сосредоточено вблизи истинного Парето. То есть в середине процесса поиска. Совместное использование МТП и РГ позволяет уменьшить среднее отклонение результата от истинного Парето по каждому из параметров. Однако оно не дает хорошей сходимости к множеству Парето, поэтому ее следует использовать на последних итерациях поиска для выравнивания результата. Метод Парето, по сути, осуществляет поиск по так называемому методу «Монте Карло. Уже на средних размерностях подход ненадежен. Это видно из нестабильности его поведения в разных сценариях и максимального среди приведенных средних 29 отклонений от общего Парето. Дополнительно следует заметить, что его текущее Парето уступает по размерам ТП остальных методов. Из сказанного выше следует рекомендация по построению алгоритма поиска расписания: 1. На начальных этапах использовать цепь РГ -> ММД -> КДЦ для оценки множества истинного Парето небольшим количеством точек. 2. В середине поиска – МТП -> ММД -> КДЦ. Это позволит увеличить объем результата и сузить поколение 3. В конце – РГ -> МТП -> ММД -> КДЦ с целью уменьшить среднее расстояние до истинного Парето. Заключение В исследовании рассматривается нетривиальная постановка задачи поиска расписаний. Она отличается от традиционных возможностью одновременного учета сложных зависимостей между задачами и ограничений на время перемещения инженеров. Описанные механизмы обладают достаточной гибкостью, что позволяет легко вводить новые критерии, типы зависимостей и прочие ограничения на время выполнения задач. В рамках данной работы предложено расширение стандартного подхода составления расписаний, предназначенное для организации алгоритмов адаптивного поиска, предложены методы его оптимизации, проанализирована зависимость сложности алгоритма составления расписания от параметров задачи. Предложены и проанализированы комбинации различных способов ранжирования поколений генетического алгоритма поиска. Результаты экспериментальной проверки показали, что задача обладает хорошей масштабируемостью: около 90% всего времени выполнения поиска уходит на независимые друг от друга операции составления расписаний по ключу, а так же на их анализ. И только 10% тратится на организацию поиска. Это означает, что достаточно двух 8-процессорных серверных машин средней мощности, чтобы ускорить поиск в 8-9 раз. Например, для размерности 1000 задач, 50 работников, 100 локаций время генерации одного расписания составляет 7 секунд. При размере поколения 500 время обработки одного поколения (обработка 100 новых задач) в общей сложности составит порядка 15 минут. Или порядка 2 минут в высокопараллельной системе. Что даст возможность 30 обработать 500 поколений - среднее число поколений, необходимых для достижения неизменности множества оценок на меньших размерностях - за 16 часов. Далее в рамках этой темы предполагается более глубокое исследование и оптимизация предложенных и новых алгоритмов поиска. Поиск в практике управления персоналом и исследование более сложных зависимостей между задачами. Анализ возможностей и перспектив применения методов сужения множества Парето, в том числе Теории Важности Критериев (ТВК). Исследование применимости к поиску расписаний подходов нечеткой логики. Так же планируется попытка внедрения описанного прототипа в систему OSS 31 Список литературы 1. Genetic Algorithms for Multiobjective Optimization: Formulation, Discussion and Generalization. Carlos M. Fonsecay and Peter J. Flemingz. Dept. Automatic Control and Systems Eng. University of Sheeld. Sheeld S1 4DU, U.K. 2. Комбинаторные алгоритмы: теория и практика. Рейнгольд Э., Нивергельт Ю., Део Н. год издания - 1980, 476с 3. Computer and job-shop scheduling theory (E.G. Coffman Jr). John Willey & Sons, 1976 4. http://tmforum.org 5. Evtushenko Yu.G., Potapov М.А. Deterministic global optimization // Algorithms Continuous Optimizat. State Art. Kluver: Acad. Publ., 1994. P. 481-500. 6. Евтушенко Ю.Г., Потапов М.А. Методы численного решения многокритериальных задач // Доклады АН, 1986, том 291 №1. С. 25-29. 7. Евтушенко Ю. Г., Потапов М. А. Численные методы решения многокритериальных задач // Кибернетика и вычислит, техника. 1987. Вып. 3. М.: Наука, С. 209 - 218. 8. Подиновский В.В., Ногин В.Д. Парето-оптимальные решения многокритериальных задач. Москва: Наука. 1982. 9. Решение задачи локальной оптимизации расписания при управлении персоналом. Васильев А.В. Материалы XXXVII международной конференции дискуссионного научного клуба “Информационные технологии в науке, образовании, телекоммуникации и бизнесе”. Приложение к журналу ”Открытое образование”. 2010 г. 10. Многокритериальный выбор решений для задачи управления персоналом. Потапов М.А., Некрылов Д.А., Кутафин А.А. Материалы XXXVII международной конференции дискуссионного научного клуба “Информационные технологии в науке, образовании, телекоммуникации и бизнесе”. Приложение к журналу ”Открытое образование”. 2010 г. 11. Генетические алгоритмы (Аналитический обзор) Е.А.Шатохин. Кафедральный сборник научных работ молодых ученых “МИТ-2004” - М.: Компания Спутник+, 2004. 161сMatthew Wall. Galib 2.45 Genetic Algorithms Library Documentation. http://lancet.mit.edu/ga/ 12. Гэри М., Джонсон Д. Вычислительные машины и трудно решаемые задачи. Перевод с английского Е.В. Левнера и М.А. Фрумкина под ред. А.А. Фридмана. М.: Мир, 1982 13. David Beasley. Evolutionary Algorithms – Frequently Asked Questions. //comp.ai.genetic newsgroup, 2001 14. Методы многокритериальной целочисленной оптимизации, основанные на аппроксимации границы Парето. Поспелов А.И. диссертация на соискание ученой степени кандидата физико-математических наук, Москва 2010 15. GruberP.M., Kenderov P. Approximation of convex bodies by polytopes // Rendiconti Circolo mat. Palermo. Ser.II. 1982. T. 31. No 2. P. 195-225. 32 16. Н. Б. Брусникина, Г. К. Каменев, “О сложности и методах полиэдральной аппроксимации выпуклых тел с частично гладкой границей”, Ж. вычисл. матем. и матем. физ., 45:9 (2005),1555–1565 17. Fleming, P. J. (1985). Computer aided design ofregulators using multiobjective optimization. In Proc. 5th IFAC Workshop on Control Applica-tions of Nonlinear Programming and Optimiza-tion, pp. 47{52, Capri. Pergamon Press. 18. Schaer, J. D. (1985). Multiple objective optimization with vector evaluated genetic algorithms. In Grefenstette, J. J., editor, Proc. First Int. Conf. on Genetic Algorithms, pp. 93{100. Lawrence Erlbaum. 33