Янков И.А, Шибанов С.В. МЕТОДИКА АВТОМАТИЗИРОВАННОГО ПОСТРОЕНИЯ И ДИНАМИЧЕСКОГО УПРАВЛЕНИЯ СИЛЬНОСВЯЗАННЫМ РАСПИСАНИЕМ С УЧЕТОМ ВНУТРЕННЕЙ МЕТАИНФОРМАЦИИ
В статье выделяется группа сильносвязанных расписаний и области их применения, описываются основные требования для систем автоматизированного построения сильносвязанных расписаний. Предлагается оригинальная методика построения и динамического управления таких типов расписания. Автор подробно освещает основные принципы функционирования методики, приводя примеры ее применения из разных областей. В заключение приводятся данные об эффективности использования предложенной подхода , перспективах его развития.
Введение. Теория расписания берет свое начало в 50-е годы 20-го века с работ Джонсона и Джексона [1] . В связи с бурным развитием автоматизации промышленности происходит и быстрое становление данного направления прикладной математики. В наше время теория расписаний помогает решать сложные оптимизационные задачи в самых разных областях человеческой деятельности: управлении,
производстве, транспорте, образовании, сельском хозяйстве и т.д.
К настоящему времени довольно хорошо исследованы многие классические задачи теории расписаний, которые являются схематичными теоретическими моделями задач, встречающимися на практике. К их числу можно отнести одно и много приборные задачи, однородные и неоднородные распределительные задачи, одностадийные и многостадийные задачи [2] и т.д. Во всех этих случаях задача составления расписания сводится к поиску оптимального расположения работ или операций на одном или нескольких однотипных ресурсах. При этом, как правило, ресурсы не могут выполнять в один момент времени более одной работы и не могут объединяться с другими ресурсами в процессе выполнения одной работы, а расписание представляет собой последовательность несвязанных операций. Важно отметить, что во всех этих случаях каждая работа задействует лишь один ресурс и при этом не зависит от параметров выполнения других работ.
Принципиально другими являются задачи построения таких расписаний, где каждая работа требует одновременного использования нескольких ресурсов. И даже не ресурсов, а участников, т.к. в этом случае часто грани между требованиями и исполнителями стираются. Классическим примером может являться расписание школьных занятий, когда каждая операция (урок) ссылается на несколько участников: преподаватель, аудитория, класс. И каждый из участников содержит в своем расписании ссылку
на эту операцию. Т.е. в этом случае начинают проявляться сильные вертикальные связи (см. рисунок 1), которые делают его сильносвязанным, т.е. изменение расписания одного участника сразу же воздействует и на другого.
I—1—I—1—I—1—I
Преподаватель 11 Урок 1 I Урок 2 I Урок_3_|
Преподаватель 2 | Урок 4 |
Аудитория 1 I Урок 1 I Урок 2 I Урок 3 | Урок 4 |
Класс 11 Урок 1 | Урок 2 |
Класс 2 | Урск3 I ^□
Рисунок 1 - Пример расписания школьных занятий.
Кроме того, такие связи могут быть сложнее, нежели простое одновременное участие нескольких ресурсов в решение одной задачи. Они могут содержать в себе метаинформацию о внутренних зависимостях взаимодействия участников. Например, ресурсы в процессе выполнения некоторых работ могут требовать выполнить другие работы в целях подготовки к основному процессу (переналадка станка, подвоз детали, доставка транспортного средства и т.д.). При этом для их выполнения будут привлечены новые ресурсы. В каждой предметной области существуют свои внутренние связи между выполняемыми работами, но наиболее ярким примером является расписание работы водителей и машин в компаниях сдающих автомобили в аренду(rent-a-car companies) потому что, водитель, выполняя передвижения по доставке/забору машин, вынужден задействовать другие ресурсы, чтобы перемещаться в точки расположения автомобилей. Т.е. особенностью сводного плана в таких областях является сильная связанность всех ресурсов, когда расписание одного участника тесно переплетается с другими и почти не может быть изменено без серьезного перестроения всего плана.
В данной статье мы хотим предложить методику построения и управления сильносвязанными расписаниями, примеры которых мы привели выше. Для начала рассмотрим основные требования, предъявляемые к системам автоматизированного построения расписаний, в основу которых может быть положен предлагаемый нами подход.
Требования к методике. Т.к. сильносвязанные расписания очень часто встречаются в предметных областях транспортной логистики, то одним из важных требований является необходимость динамического управления расписанием. Т.е. в любой момент исполнения ранее созданного плана может прийти срочной событие, свидетельствующее о том, что выполнить операцию определенному ресурсу не удалось из-за непредвиденных обстоятельств (авария, поломка транспорта, невыход водителя на работу и т.д.). Получив данное сообщение, автоматизированный планировщик должен перестроить все расписание таким образом, чтобы минимизировать возможные негативные последствия. Кроме того, в данной предметной области большую роль играют автомобильные пробки и, как следствие, неопределенность в сроках выполнения каждой операции передвижения. В ответ на это наша методика должна предоставлять возможность контролировать ход выполнения работ и корректировать его с точки зрения планирования. Т.е. должна уметь учитывать опоздания ресурсов в режиме on-line.
Кроме того, следует отметить, что сильносвязанные расписания могут строиться в автоматическом режиме, но пользователь всегда должен иметь возможность вмешаться и подкорректировать итоговый план. Очевидно, в случае большого числа вертикальных связей сделать это только в локальной области расписания довольно сложно, но необходимо дать возможность пользователю переопределить ресурсы для задач верхнего уровня.
Предлагаемая методика должна генерировать и анализировать расписания в режиме мягко реального времени. Что накладывает обязательство перестраивать расписание по внешним экстренным событиям за определенное время для подавляющего большинства событий.
Как правило, ресурсы в таких предметных областях не однородны по своей природе (имеют сложную классификацию, дополнительные признаки и характеристики), а значит, в процессе планирования требуется учитывать их особенности для ограничения и оптимизации поиска соответствия задача-ресурс.
Важным требованием является предоставление пользователю возможности настраивать критерии оценки качества расписания, чтобы в процессе построения плана система могла, используя подтвержденные пользователем приоритеты, оптимизировать наиболее желаемые показатели. В каждой предметной области могут существовать самые разные критерии оценки оптимальности, как всего расписания, так и его участков. К наиболее распространенным критериям можно отнести: суммарный штраф за опоздания
задач верхнего уровня (заказов), суммарный простой ресурсов и т.д. Таким образом, целевая функция должна задаваться пользователем.
Описание методики. Итак, рассмотрим общий процесс начального построения расписания. Пусть в нашей системе имеется множество ресурсов N типов и множество работ (заказов) одного типа. Требуется составить расписание для каждого ресурса таким образом, чтобы целевая функция принимала минимальное значение. Как уже было сказано выше, особенность рассматриваемого вида расписаний заключается в том, что заказ в общем случае, размещаясь на одном ресурсе, создает дополнительные задачи поиска необходимых ему ресурсов другого типа или этого же типа. При этом то, какие именно будут созданы дополнительные задачи, зависит не только от заказа (задачи верхнего уровня), но и от ресурса и от его состояния на момент выполнения заказа. Например, если мы планируем определенный автобус на рейс, то в зависимости от того, в каком он состоянии будет находиться (чистом или грязном), мы создадим или не создадим дополнительную задачу помывки автобуса. Точнее это зависит от того, какую работу этот автобус выполнял до этого (успел ли он загрязнится). Сам процесс создания задач, подчиненных задачам верхнего уровня назовем ветвлением задач.
Процесс ветвления должен быть детерминированным и однозначно определять для каждого типа задач, при каких условиях они будут создавать подзадачи. На рисунке 2 и 3 показаны схема создания подзадач для предметной области сдачи автомобилей в аренду и составления школьного расписания соответственно.
Рисунок 2 - Схема ветвления для предметной области сдачи автомобилей в аренду
Стрелки на этих схемах изображают возможность создания подзадачи определенного типа. Т.е. "Задача поиска машины для заказа" может создать три подзадачи в зависимости от того, в каком состоянии находится ресурс перед использованием, требуется ли его помыть, доставить или забрать на станцию. Кроме того, некоторые задачи могут образовывать подчиненные себе такого же типа. Например "Задача поиска водителя для доставки водителя" может создавать такую же задачу в том случае, если требуется доставить перевезти водителя, который собирается быть водителем.
Рисунок 3 - Схема ветвления для предметной области составления школьного расписания.
Итак, каждая задача может образовывать подчиненные себе задачи. Это приводит к тому, что в процессе построения расписания образуется дерево задач, на вершине которого находится задача верхнего уровня (заказ). Глубина этого дерева ограничивается возможностями к ветвлению, но в общем случае может быть бесконечной. Пример такого дерева представлен на рисунке 4.
Рисунок 4 - Пример дерева задач.
Итак, процесс планирования одного заказа происходит следующим образом. Сначала задача верхнего уровня осуществляет планирование, т.е. поиск ресурса и времени оптимального размещения на нем. Для каждой задачи однозначно задан определенный тип ресурса. Далее, исходя из вышеописанной схемы ветвления, осуществляется генерация подчиненных задач. После этого запускается процесс плани-
рования первой подчиненной задачи, который идентичен процессу планирования задачи верхнего уровня. После получения управления от первой подчиненной задачи происходит процесс согласования полученных результатов с другими еще не решенными задачами и запускается процесс решения второй подчиненной задачи и т.д. Если подчиненные задачи не образуются в процессе ветвления, то управление передается задаче верхнего уровня. Это означает, что данная задача смогла запланироваться на один из ресурсов без дополнительных требований. В результате планирования одного заказа образуется дерево задач и набор операций на расписаниях задействованных ресурсов.
Планирование набора заказов происходит как последовательность планирований единичных заказов, где порядок определяется приоритетом заказа или временными рамками (более ранние заказы, как правило, размещаются на более ранних участках расписания).
Теперь рассмотрим общий механизм планирования каждой задачи. Фактически это процесс определения наиболее оптимального размещения задачи. Он включает в себя поиск ресурса и временных рамок выполнения задачи. По нашему мнению, наиболее эффективным способом реализации процесса планирования является мультиагентный подход, который позволяет создать для каждой задачи и ресурса по агенту и организовать процесс их взаимодействия для поиска оптимального соответствия. Кроме того, такой подход дает возможность распределить логику принятия решений на различных уровнях для дальнейшего наращивания функционала, повышения масштабируемости и надежности, для индивидуальной оценки каждого ресурса и задачи [4-5].
Согласно предложенному подходу каждая задача будет обращаться к ресурсу соответствующего типа с запросом получения предварительной цены размещения. Логика формирования этого значения будет полностью зависеть от состояния ресурса: текущего расписания ресурса, статусов активности, характеристик ресурса. Фактически это нижняя граница оценки цены размещения, включающая в себя стоимостные оценки данного соответствия ресурс-задача. Чем она больше, тем менее выгодно данное соответствие.
На основе предварительной цены размещения всех ресурсов данного типа формируется список с лучшими вариантами (опциями) отсортированными по цене. Далее происходит опрос всех ресурсов на предмет выявления точной цены размещения, начиная с самой предварительно дешевой (лучшей) опции. Процесс останавливается, если на каком-то этапе текущее значение точной цены будет меньше, чем предварительная цена следующей опциил
bi < ai+i,
где i = (1..m) , a — предварительная цена размещения, bt — точная цена размещения, m — число элементов в списке опций.
Именно в таком виде применяется метод ветвей и границ [3]. Верхней границей является точная цена, нижней - предварительная цена. Определяя заведомо неоптимальные опции, мы исключаем ветку из рассмотрения.
Точная цена размещения включает в себя стоимости размещения всех подчиненных задач, полученные при их планировании, а значит в некоторых случаях невозможно по одной числовой характеристике, основанной на учете только одного ресурса, сказать насколько предварительно хорошо или плохо может быть запланирована данная задача на данном ресурсе, ведь предугадать как запланируются подчиненные задачи очень сложно. Для этого некоторые задачи, которые склонны к активному ветвлению, на этапе подсчета предварительной цены могут формировать несколько числовых характеристик, оценивающих минимальную границу разных парето-оптимальных решений [6]. При этом сортировка опций происходит уже по нескольким значениям, так чтобы в предварительный список попали лучшие опции по независимым стратегиям выбора.
Как уже отмечалось, каждый ресурс имеет своего агента, который отвечает на запросы задач. Именно он формирует предварительную и точную цены размещения задач на данном ресурсе, на основе которых задача принимает все свои решения. Рассмотрим подробнее, чем руководствуются ресурсы, определяя стоимость планирования задач.
Стоимость это характеристика удачности соответствия задача-ресурс. Совокупность таких соответствий и есть значение целевой функции, а так как мы стремимся к поиску такого плана, при котором целевая функция принимает наименьшее значение, то при расчете стоимости соответствия мы должны, прежде всего, учесть его вклад в значение целевой функции. Минимизируя каждое такое соответствие, мы минимизируем значение глобальной целевой функции. Именно поэтому, чтобы понять логику расчета стоимости соответствия, рассмотрим сначала целевую функцию и ее наиболее вероятные составляющие. Она имеет вид:
n
Q = 2ai' x,
i=1
где x - параметр расписания, n - количество параметров, a. — значимость i-го параметра. К основным параметрам можно отнести: штрафы за плохое соответствие ресурс-задача, стоимость пробега одной мили автомобиля, стоимость часа работы станка, стоимость простоя ресурса, стоимость переработки вне нормы, стоимость нарушения сроков заказа и т.д. Все то, что оптимизируется в процессе построения расписания.
Но в тоже время, ресурс должен учитывать и собственное расписание, а точнее сочетание планируемой задачи с теми задачами, которые на нем уже размещены. Ведь рамки их временных расположений могут мешать размещению новой задачи, загонять ее в невыгодные области размещения. В классической литературе по теории планирования [3] очень много внимания уделяется именно этому вопросу, т.к. правильная стратегия выбора размещения нескольких задач определяет гибкость алгоритма, скорость работы, эффективность результатов. Существуют несколько основных подходов: drop&go,
drop&schedule, open slot, shift. В том случае, если эффективность принятого решения о размещении зависит только от расположения каждой работы в расписании ресурса и не зависит от последовательности расположения других работ, то применять можно любой из описанных методов, но в случае, если последовательность работ обуславливает разные затраты на подготовку каждой из работ, то предпочтительнее использовать drop&go стратегию. Смысл которой заключается в том, чтобы мешающие размещению нашей задачи работы удалить с расписания ресурса и отправить на планирование заново. Но в момент принятия решения вычислить только предварительную цену перепланирования задачи, а реальный процесс перепланирования удаленных работ инициировать потом, после того, как все текущие задачи будут запланированы.
Итак, важным понятием в предлагаемой методике является цена перепланирования задачи. Это предполагаемая оценка того, насколько может ухудшиться оптимальность соответствия задача-ресурс для перепланируемой задачи, а значит и оптимальность значения общей целевой функции. В момент расчета
мы должны, прежде всего, учитывать альтернативные ресурсы для возможности перепланирования, т.е. те ресурсы, которые в данный момент свободны и могут разместить на себе эту работу. Т.к. выбор стратегии предполагает выявление только предварительной оценки, то от того, насколько она будет точной, зависят многие характеристики работы планировщика. В ходе апробации нескольких методик определения цены перепланирования, мы выявили наиболее эффективную, принцип работы которой следующий. Во время начального планирования список лучших опций сохраняется вместе с версиями ресурсов, для которых были рассчитаны предварительные цены размещения задачи. Данный список, поддерживается в актуальном состоянии. И в момент, когда требуется перепланировать задачу, цена перепланирования рассчитывается как усредненное значение N точных цен опций.
В решаемом классе задач огромную роль играет понятие сроков исполнения заказа. Как правило, целевая функция настраивается так, чтобы появление опозданий заказов сильно увеличивало ее значение и делало итоговый план неоптимальным. Наиболее удобным способом настройки стоимости опозданий является использование графика вида penalty = f (t), где t - величина опоздания, penalty- величина штрафа за опоздание. На рисунке 5а представлен график учета опозданий.
Для каждого типа заказа задается свой график, что позволяет приоритизировать важность выполнения в срок тех или иных работ. Во время планирования задачи верхнего уровня данный график используется агентом ресурсов, чтобы принять решение о правильных сроках выполнения работы. В момент ветвления задачи он также должен быть учтен теми подчиненным задачами, планирование которых может привести к опозданию и задачи верхнего уровня.
Но в том случае, если во время планирования задачи был выбран вариант, который предусматривает опоздание, то подчиненным задачам следует учитывать не первоначальный график, а смещенный на величину опоздания. На рисунке 5б приведен график учета опозданий подчиненных задач, если родительская задача допустила опоздание на 600 секунд.
Все задачи, которые в ходе планирования заказа были отправлены на перепланирование, помещаются в специальную очередь задач и планируются заново по вышеописанным правилам. Среди таких задач могут оказаться задачи, как верхнего уровня, так и задачи, являющие подчиненными. В случае если подчиненная задача не может запланироваться, то на перепланирование отправляется задача, являющаяся родителем данной. Если не может быть запланирована задача верхнего уровня (она не может иметь родителя), то считается, что ее заказ будет не выполнен. Данный подход гарантирует непротиворечивость расписания, т.к. система может не запланировать заказ, но не может не запланировать часть заказа в виде отдельных задач.
Рисунок 5а. Пример графика учета опозданий
Рисунок 5б. Пример графика опозданий с учетом опоздания родительской задачи
Таким образом, обработка внешнего события (приход нового заказа, изменение параметров существующего, блокировка ресурса и т.д.) может приводить к наполнению очереди задачами, которые в ходе планирования других задач были отправлены на перепланирование. В этом случае событие будет считаться обработанным, если очередь станет нулевой длинны, т.е. не останется ни одной не запланированной задачи. Чтобы предотвратить угрозу зацикливания и гарантировать рассмотрение более широкого числа вариантов, используются запреты на перепланирование связанных задач. Т.е. если задача N в процессе своего планирования стала причиной перепланирования задачи М, то при попытке запланироваться М и всех ее потомков будет запрещено инициировать перепланирования N и всех ее родителей.
Предложенная методика планирования имеет эвристическую природу и не гарантирует построение оптимального плана для всех ресурсов на каждый момент времени. Это приводит к тому, что в некоторых участках расписания присутствуют неоптимальности использование ресурсов. Для решения этой проблемы широкое распространение получило использование различных видов проактивности. Например, проактивность агентов ресурсов предоставляет ресурсам возможность поиска себе наиболее выгодных задач. Точнее подбора таких задач, для которой бы данный ресурс был более выгоден, чем для тех задач, которые размещены на нем в текущий момент. Существуют и другие виды проактивностей, которые находят неоптимальные соответствия и инициируют процесс перепланирования целых участков расписания. Т.е. система планирования постоянно запускается для постепенной оптимизации расписания. Сводный план как бы дестабилизируется, рвутся старые связи между задачами и ресурсами, временно нарушается целостность расписания, Но при решении этих проблем, формируется новое расписание, которое построено на основе актуальных данных, а значит, может не содержать в себе проблемы предыдущего. Постоянный процесс активизации проактивности сопровождается учетом состояния текущего плана. Если количественные оценки расписания не улучшаются то, деятельность проактивностей претерпевает изменения, рассматриваются другие участки расписаний.
Заключение. Методика, описанная в данной статье, позволяет разрабатывать сложные системы автоматизированного планирования в целом ряде областей. Главными ее достоинствами являются учет индивидуальных особенностей заказов и ресурсов, способность перестраивать расписания в режиме динамического управления, возможность гибкого задания критериев оптимизации, учет сложных внутренних связей расписания.
На основе предложенного подхода была разработана программная реализация системы автоматизированного построения расписаний, которая была внедрена в качестве основной системы оперативного планирования в двух регионах британского отделения международной компании по сдаче автомобилей в аренду. В данный момент происходит внедрение этой системы на всей территории Англии, а также подготовка для внедрения ее в других странах.
Кроме того, нами ведется исследование вопроса распараллеливания процесса построения и перестроения сильносвязанных расписаний на базе предлагаемой методики. Это позволит существенно повысить эффективность и надежность систем автоматизированного планирования.
Литература
1. Jackson J.R. Scheduling a production line to minimize maximum tardiness// Los Angeles, CA: University of California, 1955.- Manag. Sci. Res. Project. Research Report N 43.
2. Танаев В. С, Гордон В. С, Шафранский Я. М. Теория расписаний. Одностадийные системы. М.: Наука, 1984.
3. Handbook of Scheduling: Algorithms, Models and Performance Analysis. Edited by J. Y-T. Leung // Chapman & Hall / CRC Computer and Information Science Series. - 2004.
4. Himoff, J., Skobelev, P., Wooldridge, M. MAGENTA Technology: Multi-Agent Systems for Industrial Logistics - The Fourth International Joint Conference on Autonomous Agents and Multi Agent Systems. Proceedings - Industry Track , July 2005 .
5. Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психоло-
гия, информатика. - М.: Эдиториал УРСС, 2002
6. Ю.М. Коршунов. Математические основы кибернетики. Для студентов ВУЗов. - М.: Энергоатомиз-дат, 1987