Математическая формализация задач проектного планирования в расширенной
постановке
'A.C. Аничкин <[email protected]> '■2В.А. Семенов <[email protected]> Институт системного программирования РАН, 109004, Россия, г. Москва, ул. А. Солженицына, д. 25 2Московский физико-технический институт, 141700, Московская область, г. Долгопрудный, Институтский пер., 9
Аннотация. Задачи теории расписаний и проектного планирования находят широкое применение в научных и индустриальных областях. В статье обсуждаются возможности обобщенной математической постановки задач проектного планирования и их эффективного решения эвристическими алгоритмами полиномиальной сложности.
Ключевые слова: теория расписаний; проектное планирование.
DOI: 10.15514/ISPRAS-2017-29(2)-9
Для цитирования: Аничкин A.C., Семенов В.А. Математическая формализация задач проектного планирования в расширенной постановке. Труды ИСП РАН, том 29, вып. 2, 2017 г., стр. 231-256. DOI: 10.15514/ISPRAS-2017-29(2)-9
1. Введение
Теория расписаний и методы проектного планирования находят широкое применение в научных и индустриальных областях, связанных с управлением производством, организацией транспортных потоков, управлением вычислительными ресурсами. Однако многообразие существующих и перманентное появление новых математических моделей приводят к необходимости обобщения классов прикладных задач и применения универсальных подходов к их решению. Необходимость подобных обобщений возникает, в частности, при создании перспективных систем календарно-сетевого планирования индустриальных проектов, в которых задачи составления расписаний решаются в расширенной постановке с учетом разнообразных факторов, влияющих на ход выполнения проектных работ. В
такой постановке учитываются не только типовые отношения предшествования между работами и простые ресурсные ограничения, но и директивные сроки, рабочие календари, условия финансового и логистического обеспечения проектных работ, специфические требования их пространственно-временной согласованности. Примерами подобных требований могут служить особенности монтажа элементов конструкций возводимого сооружения, условия резервирование рабочих зон при организации проектных работ, правила размещения и использования оборудования. Учет всех перечисленных выше факторов крайне важен для масштабных индустриальных программ, в которых риски организационных и технологических ошибок чрезвычайно высоки, а сроки и бюджеты жестко ограничены.
Задачи теории расписаний обычно описываются общепринятой нотацией Грэхема а\р\у, которая представляет собой комбинацию трёх основных характеристик, определяющих тип условий задачи. Кратко поясним ее, используя привычные для теории расписаний термины «задание», «операция» и «машина». В проектном планировании для этих понятий применяются термины «составная работа», «работа» и «ресурс».
Первая характеристика а описывает модель операций и модель машин (модель исполнения работ и модель ресурсов для проектного планирования). Предопределенные значения задают, например, постановки «рабочего цеха», «потоковой линии», «открытой линии». Дополнительный параметр обычно определяет число машин. В ресурсном планировании он применяется также для уточнения общего количества доступных ресурсов и их типа как возобновимых, невозобновимых, частично возобновимых, логистических или непрерывно разделяемых.
Вторая характеристика /? описывает модель исполнения операций. Она обычно задается одним или несколькими значениями, которые определяют допустимость прерываний, наличие отношений предшествования, задание директивных сроков на начало и завершение операций, а также возможность пакетирования операций.
Наконец, третья обязательная характеристика у определяет целевую функцию, минимум которой должен достигаться на составленном расписании. При поиске допустимого расписания целевая функция может использоваться для оценки качества найденного приближенного решения. Типовые значения у соответствуют целевой функции для минимизации времени завершения всех операций, наибольшей задержки завершения операции, общего взвешенного времени завершения операций, общего взвешенного запаздывания операций и общих взвешенных опережений и запаздываний операций. Выбор целевых функций в задачах проектного планирования существенно шире, поскольку оптимизационная задача может ставиться как задача выравнивания используемых ресурсов или как задача минимизации общей или приведенной стоимости проекта. Допустим выбор целевых функций, направленных на достижение многокритериальных показателей проекта.
Примечательно, что задачи проектного планирования RCPSP (Resource-Constrained Project Scheduling Problem) в значительной степени обобщают постановки теории расписаний и поэтому алгоритмы проектного планирования часто рассматриваются в качестве универсальных инструментов для их решения. Тем не менее, в зависимости от индивидуальных характеристик задачи вычислительная сложность составления расписания может существенно варьироваться и поэтому для частных постановок обычно применяют специальные алгоритмы. Например, задача проектного планирования RCPSP, являющаяся NP-полной, редуцируется к частным постановкам «открытой линии», «рабочего цеха» или «потоковой линии», имеющим полиномиальную сложность при небольшом числе машин, простых моделях обслуживания и отсутствии директивных сроков.
Вместе с тем, на практике возникает необходимость в обобщении задач проектного планирования, обусловленная особенностями осуществления проектной деятельности разными организациями и индустриальными сообществами, различиями в представлении проектных данных, а также альтернативными способами математической формализации задач проектного планирования. Большое число существующих программных приложений для календарно-сетевого планирования и управления проектами с близкими функциями подтверждает этот факт. В качестве таких приложений следует указать популярные программные системы Oracle Primavera, MS Project, Synchro, Spider Project, Gemini, Merlin, Zoho Projects, ManagePro, обеспечивающие автономную работу планировщиков и управленческого персонала на изолированных компьютерах или групповую работу в корпоративной сети. Ряд систем конфигурируется в виде универсальных Интернет-сервисов и web-клиентов к ним. К подобным решениям относятся сервисы Smartsheet, GanttPro, Asana, Acunóte, Teamweek, Bitrix24, Jira, ISETIA. Примечательно, что почти все приложения реализуют алгоритмы для поиска критического пути или вычисления критических работ, а большая часть приложений — алгоритмы решения задач RCPSP в расширенных постановках. В типовых приложениях речь идет о проектных планах, содержащих десятки тысяч работ, поэтому для решения задач RCPSP применяются приближенные, основанные на эвристиках алгоритмы полиномиальной сложности. Применение точных методов при составлении оптимальных расписаний для проектных планов с числом работ выше сотни не представляется возможным из-за экстремально высокой вычислительной сложности задач RCPSP. В представленной работе предпринимается попытка математического обобщения и формализации задач проектного планирования с учетом особенностей расширенных постановок RCPSP, встречаемых в программных приложениях. Ожидается, что полученные результаты позволят разработать программно-инструментальную среду общего назначения, обеспечивающую задание условий и эффективное решение разнообразных классов задач проектного планирования. Развитые инструментальные возможности среды
позволят относительно просто адаптировать ее к новым постановкам прикладных задач.
В разделе 2 приводится классическая постановка задач RCPSP, и кратко упоминаются алгоритмы их приближенного решения. Недостатки и ограничения математической постановки детально обсуждаются в разделе 3, в котором особое внимание уделяется вопросам структуризации проектного плана и моделям исполнения работ. Кратко обсуждаются вопросы математической формализации, связанные с заданием альтернативных целевых функций оптимизационной задачи и возможным переопределенным характером системы наложенных алгебраических ограничений. Раздел 4 посвящен математической формализации обобщенной задачи проектного планирования GCPSP (Generally Constrained Project Scheduling Problem), a также доказательству некоторых утверждений о достаточных условиях существовании решения. В разделе 5 описывается алгоритм приближенного решения задач GCPSP, который можно рассматривать в качестве развития известного алгоритма последовательной диспетчеризации. Формулируется утверждение об эквивалентности алгоритмов в случаях, когда обобщенная задача редуцируется к классической постановке RCPSP. В заключении кратко резюмируются результаты и определяются возможные направления для дальнейших исследований.
2. Классическая постановка RCPSP
Рассмотрим классическую постановку задач RCPSP, следуя работам [[1], [2], [3]].
Пусть проект состоит из N работ, R возобновимых ресурсов и L связей с соответствующими индексами i = l,2,...,N, r = l,2,...,R и l = l,2,...,L соответственно. Пусть задано время старта проекта t0, а для каждой работы i определено ее время выполнения ¿¡>0 и количества потребляемых ей ресурсов qi r > 0. Требуется найти расписание проекта (время старта каждой работы xiyi = 1,2,..., N). при котором минимизируется время выполнения всего проекта.
Уточним условия задачи. Потребление работой i ресурса г в количестве ql r означает, что с началом выполнения работы данное количество ресурса становится недоступным для использования в других работах, а с ее окончанием — высвобождается. Одна работа может потреблять несколько разных ресурсов. Один ресурс может одновременно использоваться несколькими работами при условии, что его суммарное потребление не превышает доступное количество Qr > 0. Пусть /(t, г) = {i = 1,.., n \ xL < t < Xj + di 8i ql r Ф О] — множество индексов работ, выполняемых в момент времени t > t0 и использующих ресурс г. Тогда условие корректного потребления ресурса г и необходимое условие существования решения задачи может быть выражено следующим образом:
^ 4i,r < Qr
iei(t,r)
Наконец, связи определяют бинарные отношения предшествования между работами таким образом, что работа-последователь не может стартовать до того, как работа-предшественник завершится. Пусть i.(ij — индекс работы-предшественника, участвующего в связи I, a i® — индекс работы-последователя, участвующего в связи I. Тогда данное отношение имеет вид + di(li < Xj(i). В дальнейшем будем записывать i -» у, если существует связь
I, такая что i = i щ и у = i®.
Тогда задача RCPSP формализуется следующим образом:
min ( max (xt + dt))
i=l,...N
при Xj > t0,i = 1, ...,N
xiw+dim<xi(i),l = l,2.....L
V t > t0 имеет место Y,iei(t,r) 4i,r ^ Qr>r = 1-2, ■■■, R Неизвестные переменные в постановке задачи обычно целочисленные, поскольку на практике обычно используется дискретное представление временных параметров. Задача считается корректно поставленной, если заданные связи не образуют циклов и уровни потребления ресурсов индивидуальными работами не превышают их общедоступное количество. В противном случае система алгебраических ограничений может оказаться переопределенной, а задача — не иметь решений. В случае отсутствия ресурсных ограничений задача RCPSP естественным образом редуцируется к задаче поиска критического пути или вычисления критических работ. На сегодняшний день существует несколько популярных алгоритмов приближенного решения задач RCPSP. Наиболее известным является последовательный алгоритм составления расписания, иногда называемый алгоритмом последовательной диспетчеризации [[3], [4]]. Он позволяет за фиксированное количество шагов построить согласованное расписание или убедиться в его отсутствии, если в проектном плане есть неразрешимые ограничения. На каяедом шаге алгоритма выбирается одна из работ, предшественники которой уже обработаны и для них определены времена старта и завершения. Для выбранной на основе эвристических правил работы вычисляется наиболее ранее допустимое время старта и осуществляется переход к следующей работе. В предположении отсутствии циклов последовательность работ с обработанными предшественниками всегда существует, а для работ всегда может быть определено время старта, согласованное со всеми наложенными ограничениями.
В классическом варианте алгоритм предполагает использование множества обработанных работ 5 и множества необработанных работ D, все предшественники которых входят в 5 [[1]]. На каждом шаге алгоритма множества корректируются в соответствии с приведенным ниже псевдокодом:
Begin
5 := 0;
While \S\ <N do
D :={i = l,..,N\i í S&j e S Vj t}; For r := 1 to R do
Kr := {Qr ~ Hiei(j,r) 4i,r |T = to. to + 1' — .Г};
End for;
t* := argmax{i?(t)};
i ED
If 3; -> i* then
t-min —
Else
tmm := rnaxy^i«(xy + dj)) End if;
x¡. := min{t|t > tmin &qir < Kr{t),t = t, t + 1, ...,t + dt- ,r = 1,2, ...,fi}; 5:=5u{i*}; End while; End;
Здесь T — время, на протяжении которого составляется расписание, Кг — вспомогательное множество значений доступного ресурса в дискретные моменты времени, v(i) — эвристическое правило, определяющее приоритет и очередность планирования работы i.
Алгоритм относительно прост и допускает многочисленные варианты, что делает его привлекательным для программной реализации. Один из вариантов заключается в попытке составить расписание в предположении отсутствия ресурсных ограничений и определить ранние и поздние даты выполнения работ, как это делается при поиске критического пути [[4]]. Затем проводится анализ ресурсных ограничений с учетом допустимых задержек индивидуальных работ. Можно ожидать, что для большей части работ ресурсные ограничения разрешатся таким способом. При этом следует предусмотреть возможность перезапустить или продолжить процесс составления расписания для оставшихся конфликтных работ и их последователей. Иначе применение алгоритма на практике может оказаться довольно рискованным. Другой известный вариант алгоритма основан на выделении групп несвязанных между собой работ и на их одновременном анализе [[1]]. Было установлено, что в ряде случаев он приводит к более качественным приближенным решениям. Однако реализация данного варианта сопряжена с дополнительными расходами на перераспределение работ по группам и согласование частных расписаний, что может оказаться критичным для больших проектных планов.
Все упомянутые выше алгоритмы имеют полиномиальную сложность и обеспечивают поиск приближенных решений для индустриально значимых задач, размерность которых может составлять десятки и сотни тысяч
неизвестных переменных. На практике часто требуется удостовериться в качестве получаемых решений, для чего желательно получить оптимальные решения, хотя бы для подобных задач низкой размерности. В этом случае можно применить точные комбинаторные алгоритмы с известными оптимизационными приемами типа «альфа-бета-отсечения» или «метода ветвей и границ» [[5]]. Например, лучший из известных точных алгоритмов Брукера за приемлемое время может решать задачи размерности не больше 60 [[6]]. По результатам сравнения приближенных и точных решений можно скорректировать параметры применяемых алгоритмов и настроить их эвристики с тем, чтобы обеспечить надлежащее качество результатов и при решении задач высокой размерности. К сожалению, теоретические исследования дают слишком грубые оценки, не позволяющие судить о качестве приближенных решений, полученных известных алгоритмами.
3. Ограничения классической постановки
Хотя приведенная математическая постановка RCPSP является классической для теории расписаний и прикладных дисциплин, связанных с календарно-сетевым планированием и управлением проектной деятельностью, она имеет ряд принципиальных ограничений для широкого практического использования. На необходимость решения задач проектного планирования в расширенной постановке указывают авторы работы [[3]]. В нашей обзорной статье [[7]] достаточно детально рассмотрены особенности прикладных задач, не учитываемые классической постановкой. В настоящем разделе мы неформально определяем обобщенный класс задач проектного планирования, который мог бы допускать альтернативные критерии и сложные модели исполнения работ, наложения связей, привлечения ресурсов, календарей, финансов при составлении расписаний. В конечном итоге подобные расширения приводят к новым видам целевых функций и функциональных ограничений для решаемых оптимизационных задач.
Опишем главные отличия, характеризующие обсуждаемый класс задач, более систематическим образом.
Во-первых, в нем допускается задание работ различных видов, таких как простые активности, вехи начала и завершения работ, «короткие гамаки», «длинные гамаки», а также составные работы, обеспечивающие иерархическую многоуровневую структуризацию проектного плана. При этом предполагается, что работы могут исполняться в обычном режиме, в режиме с прерываниями, с профильным использованием ресурсов, с учетом накладных временных затрат, в альтернативных мультимодальных режимах, а также с учетом компромиссов. При задании условий задачи может указываться также статус работ, как планируемых, стартованных, прерванных, возобновленных или завершенных, а также процент выполнения для незавершенных работ.
Во-вторых, взаимосвязи работ могут устанавливать отношения предшествования не только между окончанием предшествующей работы и
началом последующей работы, но также и между любыми событиями, связанными с их началом и завершением. Для формируемых взаимосвязей «начало-начало», «начало-окончание», «окончание-начало» и «окончание-окончание» могут быть установлены минимальные и максимальные величины задержки, пересчитанные в календарные даты с использованием рабочих календарей проекта. Примечательно, что величины задержек могут отрицательными, а взаимосвязи могут устанавливаться и для составных работ, обеспечивая тем самым возможность составления расписаний при крупноблочной структуризации проектного плана и при его последующей детализации. Важным аспектом составления расписания для актуализируемого проектного плана является учет нарушенных взаимосвязей и возможность восстановить отношения предшествования, хотя бы для оставшихся частей незавершенных работ. Подобные ситуации приводят к неоднозначной интерпретации ограничений и нуждаются в более строгой формализации. В-третьих, исполнение работ и привлечение ресурсов в рамках проектной деятельности обычно осуществляется на основе календарей, определяющие графики работы. В обсуждаемых задачах предполагается использование модели календарей, в которой рабочие интервалы могут задаваться на основе регулярных и исключительных правил с требуемой точностью и дискретизацией представления временных параметров. При фиксировании трудоемкости работы и доминирующего ресурса ее продолжительность может определяться доступным количеством ресурса, а не только рабочим календарем.
В-четвертых, для работ могут быть заданы явные временные ограничения, определяющие алгебраические условия их начала и завершения. Ограничения могут задаваться условиями типа «начать не раньше», «завершить не позже», «начать в фиксированную дату» и т.п., так и спецификаторами «выполнить как можно раньше» или «выполнить как можно позже». Кроме того, каждой работе могут быть приписаны правила выравнивания, устанавливающие условия начала или завершения работы строго в начале или конце рабочего интервала (часа, дня, недели, месяца, года и т.п.) независимо от возможности исполнить работу несколько раньше или позже. Важной особенностью обсуждаемых задач является возможность задания временных ограничений для составных работ, что, как и в случае с взаимосвязями, обеспечивает возможность составления расписаний при крупноблочной структуризации проектного плана. Наконец, система наложенных алгебраических ограничений может оказаться переопределенной и не иметь решений. Это означает, что должен быть задан непротиворечивый способ разрешения подобных ситуаций, например, с использованием приоритетов, приписанных индивидуальным ограничениям. В-пятых, ресурсная модель должна допускать использование невозобновимых, ограничено-возобновимых, частично возобновимых, логистических, непрерывно разделяемых, исключительных ресурсов, а также ресурсов с переменной доступностью. Возобновимые ресурсы обычно моделируют
использование персонала и техники, которые могут объединяться в «бригады». Ресурсы, связанные с персоналом определенной специализации и квалификации, могут формировать соответствующие «компетенции». Невозобновимые ресурсы обычно ассоциируют с расходными материалами, для которых могут определяться цепочки поставок. Финансовое обеспечение проектной деятельности также может моделироваться невозобновимыми ресурсами, ассоциируемыми, например, с банковскими счетами участвующих в проекте организаций. Количество доступных ресурсов может быть нефиксированным и зависеть от времени, например, как в случае поставок материалов или привлечения дополнительных инвестиций в ходе реализации проекта.
В-шестых, допускается выбор альтернативных целевых функций для минимизации временных показателей проекта, обеспечения консервативности и устойчивости расписания к задержкам, минимизации затрат на возобновимые ресурсы, минимизации невозобновимых ресурсов, минимизации общей стоимости проекта, максимизации чистой приведенной стоимости, а также достижения многокритериальных показателей проекта.
В-седьмых, задача проектного планирования может решаться в инкрементальной постановке, когда требуется скорректировать расписание с учетом измененных условий исходной задачи или при актуализации данных непосредственно на проектной площадке в режиме реального времени.
4. Математическая формализация задач вСРЭР
Обсудим предлагаемый способ математической формализации задач проектного планирования. Следуя ему, оптимизационная задача ставится на множестве допустимых решений, связанных с частной задачей удовлетворения ограничений с приоритетами (или предпочтениями). В отличие от ЯСР8Р мы не уточняем семантику неизвестных переменных, например, как времен начала, завершения, прерывания и возобновления работ или их продолжительностей. Также не конкретизируем вид целевой функции и функциональных ограничений, например, в виде явных временных или ресурсных условий. Вместо этого определяем обобщенный класс задач вСР8Р в математически нейтральной форме в рамках общих предположений относительно свойств целевой функции, вида алгебраических ограничений и способа их разрешения относительно тех или иных переменных. Таким способом определяемый класс задач вСР8Р расширяет условия классической постановки ЯСР8Р и удовлетворяет основным требованиям к прикладным постановкам, перечисленным в предыдущем разделе.
Определение 1. Четверку множеств ф,Х,С,Р) назовем задачей в ограничениях с приоритетами, где £> = {О, х02 х ...хОп} — домен, определяющий область допустимых значений множества переменных задачи X = {х1,х2,..., хп} 6 О. Х1 6 Д, I = 1,2,... ,п; С = {с, (ХЛ), с2 (Х2),..., ст(Хт)} — множество предикатов сДА'у). у = 1,2,..., т. определенных на подмножествах переменных Х^ =
х О).х-У). ■■■.х-У) г £ X и называемых ограничениями задачи; Р =
11 12 1к] )
{рл , р2, ■■■, рт} — множество натуральных чисел р^ 6 N. называемых приоритетами ограничений. Пусть = ■ ■■, £ {1,2,... ,п} —
множество индексов подмножества переменных X. Тогда будем говорить, что переменная задачи X;. 1 < / < п участвует в ограничении с; (А}). 1 < у < т или ограничение ассоциировано с переменной, если I 6 I (Х^). Ограничение с; (Х^) будем называть удовлетворённым при любом множестве значений переменных X* с X" 6 О. при котором соответствующий предикат принимает значение «верно».
Определение 2. Пусть ф,Х,С,Р) — задача в ограничениях с приоритетами. Значения переменных X* 6 £>, при которых все ограничения задачи удовлетворены, будем называть решением задачи. Пусть С*(Х) — множество ограничений, которые удовлетворены при значениях переменных X. Тогда X* является решением задачи, только если С'(Х') = С.
Определение 3. Пусть ф,Х,С,Р) — задача в ограничениях с приоритетами. Значения переменных X* 6 £> будем называть согласованным решением задачи в ограничениях с приоритетами, если, по крайней мере, хотя бы одно ограничение удовлетворено и не существует других значений переменных У, повышающих максимальный приоритет разрешенных ограничений: С"(Х") Ф 0 и для любого неразрешенного ограничения с; 6 С\С*(Х*). р ■ 6 Р не существует значений У = {у,,у2, ...,уп} 6 О. У Ф X*, таких что удовлетворяется каждое ограничение ск 6 С* (У), рк 6 Р с приоритетом рк >
Распределение 4. Пусть (0,Х,С,Р) — задача в ограничениях с приоритетами. Значения переменных X* 6 £> будем называть локально согласованным решением задачи в ограничениях с приоритетами, если, по крайней мере, хотя бы одно ограничение удовлетворено и согласованы приоритеты разрешенных ограничений относительно каждой переменной: С"(Х") Ф 0, а также для любой переменной X; 6 X и для любого ассоциированного с ней неудовлетворенного ограничения сДА^) 6 С\С*(Х*). рЕР, I 6 /(Х^) не существует значения переменной уг 6 £>ь У; Ф х1 такого, что удовлетворяется каждое ассоциированное с переменной ограничение ск 6 С*(У), рк 6 Р. I 6 1(Хк)с приоритетом рк > Р]. где множество значений переменных У = ■■■ > Уь> ■■■' Хп}-
Определение 5. Обобщенной задачей проектного планирования вСР8Р будем называть задачу оптимизации целевой функции проекта на множестве локально согласованных расписаний. Для определенности ограничимся следующей математической постановкой
х е /г
где [{Х)\ 2п —> /? — целевая функция, О* с 2п — множество локально согласованных решений системы ограничений сДА'Д. Х^ =
х.и),х.и),...,х.а) [ с X с приоритетамир, 6 И,] = 1,2, ...,гп.
11 12 'й- ]
Предполагается, что ограничения разрешимы относительно переменных одним из нижеприведенных способов:
(3) сДХ,) ФФ Х.(Д 6 О/ (х.у)) II Х.О-) 6 О/ (х.(Л) II ... II х.у) 6 0 + (х.(Д) (ограничения С)
(4) с; (А^) фф для любого упорядочивания переменных ограничения Хр представимого биекцией множеств индексов {1,2, ->
.....имеет место е х„и 6 Ки\2
х4« 6 (х4«'х4«)..... 6 (^СЛ.^О).....х„и)_^
(ограничения О)
где 0;+ 6 7, 0^,-у, /с £ — подмножества целых чисел, содержащие открытые положительные интервалы, а 6 7 — подмножества целых чисел, содержащие открытые отрицательные интервалы.
Естественным визуальным представлением задачи ССР8Р является двудольный направленный граф С(Х,С,Я), где X — множество вершин, ассоциированных с переменными задачи, С - множество вершин, ассоциированных с ограничениями задачи, и Д — множество ребер графа, соединяющих вершины ограничений с соответствующими вершинами переменных следующим образом. Если переменная задачи х1 участвует в ограничении с; в качестве независимой переменной, то ребро является входящим в вершину ограничения (в применяемой нотации х1 —> сД Если переменная задачи х1 является зависимой переменной ограничения с,, то ребро входит в вершину переменной (с; -» X;). Если ограничение с; предусматривает правила разрешения относительно каждой своей переменной хь то ребра между соответствующими вершинами будем представлять как двунаправленные и
записывать xL <н> cj. Будем также говорить, что переменная xL] прямо предшествует переменной xi2 или xL ] xl2, если существует такое ограничение задачи с,-, что xt] —> Cj -> xl2.
Рис. 1. Пример графа задачи GCPSP, отображающего взаимосвязи между переменными и ограничениями Fig. 1. An example of the graph of the GCPSP task representing relationships between
variables and constraints
На Рис. 1 представлен пример графа задачи GCPSP, на котором темными кружками отображены переменные задачи, а большими светлыми кругами — ограничения. Однонаправленные и двунаправленные ребра указывают характер зависимостей между переменными, который связан со способами разрешения ограничений.
В предположении, что граф задачи ацикличен, план разрешения системы ограничений представляется в виде перестановки переменных п\ {1,2, ...,п} -» {1,2, ...,п}, в соответствии с которой они могут быть последовательно выражены друг через друга или уточнена область их допустимых значений в соответствии с наложенными ограничениями. Циклом в данном случае называется упорядоченный набор пар вершин xi± -» c;i -» xl2 -» cj2,..., xLk -> Cjk -»xi± £ G(X,C,R), такой, что вершины-переменные и вершины-ограничения соединены последовательно направленными ребрами от вершины х1; к вершине для всех I = 1,.., к, от вершины к вершине х1;+| для всех I = 1,.., к — 1, и от вершины Cjk к вершине xi±. Заметим, что двунаправленные ребра не включаются в цикл. План разрешения системы ограничений визуально будем отображать на графе задачи, приписывая индексы упорядочивания переменных соответствующим вершинам.
Сформулируем достаточные условия разрешимости системы ограничений с приоритетами и существования решения для связанной с ней обобщенной задачи проектного планирования GCPSP.
Утверждение 1. Пусть (0,Х,С,Р) — обобщенная задача вСРБР. Решение задачи всегда существует, если
(1) целевая функция задачи /(X) монотонно неубывающая по каждой переменной;
(2) граф задачи в(Х, С, И) ацикличен;
(3) ограничения (А) имеют наивысший приоритет, а приоритеты ограничений (В), (С) и (О) выше приоритета ограничений (Е);
(4) ни одна переменная задачи не ассоциирована с более чем одним ограничением (А) в качестве зависимой переменной;
(5) каждая переменная задачи участвует, по крайней мере, в одном ограничении (А), (В), (С) или (О) в качестве зависимой переменной.
Доказательство.
Прежде всего, покажем, что система ограничений задачи разрешима и множество допустимых значений для переменных задачи не пусто. Допустимость значений будем интерпретировать в терминах локальной согласованности переменных в соответствии с назначенными приоритетами ограничений. В предположении ацикличности графа задачи существует упорядочивание переменных, при котором допустимые значения или область допустимых значений для переменных с большими индексами выражаются через соответствующие значения переменных с меньшими индексами. Покажем, что при обходе переменных по возрастанию индексов всегда существует непустое множество допустимых значений переменной, удовлетворяющее ограничения с входящими ребрами в вершину-переменную. Рассмотрим следующие взаимоисключающие случаи для определения области допустимых значений переменной:
• У вершины-переменной отсутствуют входящие ребра. В этом случае область допустимых значений переменной - все множество целых чисел.
• Имеется входящее ребро от унарного ограничения (А). В этом случае переменная принимает единственное допустимое значение в соответствии с явной функцией разрешения ограничения, независимо от других наложенных ограничений (В), (С) и (В), которые имеют меньший приоритет. Наличие нескольких ограничений (А) условиями утверждения исключаются.
• Имеются входящие ребра от ограничений (В) и (С) и отсутствует входящее ребро от ограничений (А). Независимо от назначенных приоритетов для переменной задачи всегда существует положительный полуинтервал, удовлетворяющий данным ограничениям. Ограничения (В) имеют меньший приоритет и поэтому
либо нарушаются, либо удовлетворяются путем уточнения допустимой области переменной в виде интервала или точки. • Входящие ребра только от ограничений (D) не могут существовать в силу принятых допущений. Таким образом, множество локально согласованных решений системы ограничений с приоритетами не пусто, причем они ограничены снизу. В силу неубывания целевой функции задачи по каждой из переменной ее минимум достигается на данном множестве и обобщенная задача проектного планирования GCPSP имеет решение. ■
Следующее утверждение определяет достаточные условия разрешимости задач проектного планирования GCPSP в случае, когда приоритеты назначаются ограничениям индивидуально независимо от их общего вида. Утверждение 2. Пусть (D,X,C,P) — обобщенная задача GCPSP. Решение задачи всегда существует, если
(1) целевая функция задачи f(X) по каждой переменной не убывает на некотором положительном полуинтервале и не возрастает на некотором отрицательном полуинтервале;
(2) граф задачи G(X, С, R) ацикличен;
(3) для каждой переменной задачи и ограничений, в которых она участвует как зависимая переменная, наивысший приоритет имеют либо одно ограничение (А), либо несколько ограничений (В), (С) и (D), либо несколько ограничений (Е).
Доказательство.
Система ограничений задачи разрешима в смысле локальной согласованности переменных задачи. В самом деле, для каяедой зависимой переменной всегда могут быть разрешены ограничения с наивысшим приоритетом. В случае единственного ограничения (А) это очевидно. В случае нескольких ограничений (В), (С) и (D) всегда существует положительный полуинтервал, которому удовлетворяют данные ограничения. В случае нескольких ограничений (Е) существует отрицательный полуинтервал, которому удовлетворяют ограничения данного вида. Выполнимость ограничений с низкими приоритетами не имеет никакого значения для множества допустимых решений. В силу свойств монотонности целевой функции по каждой переменной на данном множестве существует, по крайней мере, одно оптимальное решение. ■
5. Алгоритм приближенного решения задач GCPSP
Опишем алгоритм приближенного решения задач проектного планирования в постановке GCPSP. Его можно рассматривать в качестве обобщения известной схемы последовательной диспетчеризации работ.
На каждом шаге алгоритма к = 1,2, ...,п определяется одна из переменных задачи хь iE I (X). При этом выбор очередной переменной подчиняется следующей общей схеме. Пусть 1passive — IQ-0 — множество индексов переменных, значения которых определены к началу шага к, а 1active £ / (X) -множество индексов неопределенных переменных, все прямые предшественники которых содержатся в 1passive или вовсе не имеют предшественников. Таким образом, имеют место следующие соотношения между рабочими множествами: ipassive n iactive = 0 и если i 6 1active>т0 либо не существует j 6 I (X) такого что х; -» хь либо для каждого j 6 I (X) такого что Xj -> хь имеет место j 6 i passive-
Тем самым, множество iq()\(ipassive и iactive) включает в себя индексы тех переменных, которые не участвовали в анализе до текущего шага и должны быть определены на следующих шагах алгоритма.
На начальном шаге инициализируются вспомогательные множества 1passive = 0 и 1active = {' £ /(А")] 3 j е I(X),xj -» xi }. В силу условий описанного выше утверждения граф задачи ацикличен, множество переменных, не имеющих предшественников, не пусто и алгоритм корректно стартует. На каждом шаге алгоритма отбирается активная переменная . i Е ^active•> определяется ее значение и корректируются рабочие множества индексов таким образом, что активная переменная перемещается из 1active в jpassive, а множество 1active пополняется новыми переменными, все предшественники которых уже находятся в /passive■ Поскольку коррекция рабочих множеств осуществляется на каждом шаге алгоритма для поиска пополняемых переменных достаточно проанализировать только предшественников последователей переменной xL. Таким образом, при переходе к следующему шагу рабочие множества корректируются следующим образом:
¡ACTIVE = ¡ACTIVE\{^}> IPASSIVE = ^PASSIVE U ¡ACTIVE = 1ACTIVE U {/С 6 I\(IpASSIVE U 1ACTIVE) I XL Xk'V XV Xk' '' £ ^PASSIVE)•
Выборка активной переменной из множества 1active выполняется на основе эвристических правил вида i'H i", где i', i" 6 1active> определяющих линейный порядок на множестве переменных и позволяющих на текущем шаге выбрать переменную, наиболее предпочтительную для достижения оптимума целевой функцией. Иногда правила задают частичный порядок на множестве переменных. В подобных случаях можно определить иерархическую стратегию Н = Шг}> ¿ = 1,2, ...,L, заключающуюся в последовательном применении элементарных правил Н1 в ожидании того, что одно из них позволит вынести окончательный вердикт о предпочтении одной переменной над другой. Если ни одно из правил не позволяет установить это, то приоритетной может считаться та переменная, которая имеет наименьший индекс. Очевидно, что порядок применения элементарных правил в рамках иерархической стратегии может влиять на упорядочивание переменных и качество приближенного решения
задачи. Алгоритмом допускается широкий набор эвристических правил, применяемым в задачах RCPSP [[8]]. Ниже мы приводим математически эквивалентную интерпретацию некоторых популярных правил, сохраняя их оригинальные названия:
• LIS (Least Immediate Successors): выбрать переменную с наименьшим количеством непосредственных последователей;
• MIS (Most Immediate Successors): выбрать переменную с наибольшим количеством непосредственных последователей;
• MTS (Most Total Successors): выбрать переменную с наибольшим количеством всех последователей;
• LTS (Least Total Successors): выбрать переменную с наименьшим количеством всех последователей;
• LSC (Longest Successors Chain): выбрать переменную с наибольшим числом переменных в цепочках последователей;
• SSC (Shortest Successors Chain) выбрать переменную с наименьшим числом переменных в цепочках последователей;
• SPT (Shortest Process Time): выбрать переменную с наименьшей разностью Xj — x¿ среди всех пар х; -» x¿, связанных ограничениями вида (А) и (В). Здесь x¿ — активная переменная, значение которой определяется в предположении ее отбора, a Xj — ее непосредственный последователь, значение которого рассчитывается на основе правила разрешения соответствующего ограничения и выбора минимально допустимого значения;
• LPT (Longest Process Time): выбрать переменную с наибольшей разностью Xj — x¿ среди всех пар х; -» x¿, связанных ограничениями вида (А) и (В).
Существуют и более сложные правила, применение которых предполагает решение вспомогательных задач, связанных с локальной оптимизацией целевой функции. Важно, чтобы применяемые эвристики были релевантны целевой функции.
Значение для выбранной активной переменной определяется, исходя из требования минимизации целевой функции при условии удовлетворения максимального количества ассоциированных с ней ограничений. В случаях, когда система ограничений является переопределенной, ограничения разрешаются последовательно в соответствии с заданными приоритетами. В предположениях описанного выше утверждения всегда существует способ обеспечить локальную согласованность решения, при которой в первую очередь разрешаются ограничения с высокими приоритетами, а затем, если возможно, ограничения с низкими приоритетами.
В самом деле, после построения множеств 1passive и ¡active и выбора активной переменной x¿, i £ 1active все независимые переменные ассоциированных с ней
ограничений (А), (В), (С), (/)) и (/•.') находятся в множестве 1passive и поэтому их значения уже определены и могут быть использованы для расчета допустимых значений xt.
В случае наложенного ограничения вида (А) переменная принимает единственное значение в соответствии с правилом разрешения ограничения
xt = 9j \x.(i),x.(j), ...,x.<j) , где \1(2ПЛ(3П,...Л(кП\ ^ Ipassjve, независимо от у 2 'з lkj J 1 J
других наложенных ограничении.
В случае ограничений вида (В), (С), (/)) для переменной х1 вначале определяется допустимое множество значений как пересечение множеств
интервалов | ..., лг.у) | для всех у таких, что с; —> х^ Пересечение не
пусто, поскольку множества включают в себя положительные полуинтервалы. Значение переменной выбирается, исходя из требования минимизации целевой функции по данной переменной. В случае неубывания целевой функции точка минимума всегда существует, а если она не единственна, то выбирается наименьшее значение. Переменные задачи обычно семантически связаны с датами исполнения и сроками, которые предпочтительно сократить даже при достижении целевой функцией минимума. Таким образом, значение выбранной переменной в этом случае определяется следующим образом:
х* = аг^птДх,).
D, [х (j),x (j),...,x (j)
j \ i2 i3 ik
Анализ ограничений (С) и {В) имеет свои особенности. Чтобы удовлетворить ограничение вида (С) достаточно выполнить соответствующее условие для одной зависимой переменной. Действительно, попытка распространить
условие Хч-/, 6 0;+ (^со) на все зависимые переменные может оказаться
обременительной для поиска качественного приближенного решения. Поэтому алгоритм предусматривает иную схему. Ограничение разрешается только для самой последней обрабатываемой переменной ограничения и только в том случае, если оно не было автоматически удовлетворено в результате определения значений предыдущих переменных. С этой целью для каждого ограничения вида (С) рассчитывается и хранится статус его выполнения, а также ведется подсчет числа обработанных ограничений. Такая схема обеспечивает разумную стратегию удовлетворения ограничений и минимизации целевой функции в случаях, когда переменные связаны между собой множественными ограничениями.
Для активной переменной все ассоциированные с ней ограничения {В) удовлетворяются в рамках общей схемы, поскольку они могут быть разрешены относительно любой переменной независимо от переменных множества
I(X)\lpassive? значения которых на текущем шаге алгоритма еще не определены.
Ниже приводится псевдокод описанного выше обобщённого алгоритма.
Begin
X :=±;
1PASSIVE :=
IACTIVE -={i\iel,i i'G -> xj;
While \IACT[VE\ > 0 do
i •■= selectVariable(IACTIVE); X; := computeVariable(i,X); ipassive := updatePassive(IPASSIVE, i); 1active '■= updateActive(IACTIVE,i); End while; End;
Function selectV ariable(IACTIVE) Begin
i:= I ACT IV E[ i];
For к := 2 to IW/FEI do
tilACTivE[k] Я (then
i := 'actWE И; End if; End for; Return t; End;
Function computeVariable(i,X) Begin
D* := Z;
j := ii\ cj xi i ci ^ xi};
} := SOrtQ.P); For:= 1 to |/| do
D ■■= resolve(cj,Xj,i); If j = 1 then If D = 0 then
«Ошибка в постановке задачи или решения не существует!» Stop;
Else
D* := D) End if;
If D* nD Ф 0then
D* := D* nD;
Else
«Ограничение не может быть удовлетворено!» End if; End if; End for;
Return argminJ..eD«{/(Xj)}; End;
Function updatePassive(IPASSIVE, t) Begin
Return ipassive u {(}; End;
Function updateActive(IACTIVE, t) Begin
Return (1АСТше\{Ю U {fee ¡\ (¡passive u ¡active) I Xl xk'V xi' Xk> '' £ ¡passive}) End;
Вспомогательная функция sort(J,P) сортирует ограничения J по убыванию приоритетов Р. Перед вызовом функции множество J формируется из ограничений, в которых xL участвует в виде зависимой переменной. Функция resolve(Cj, Xj, i) разрешает ограничение с; относительно i переменной при фиксированных значениях остальных переменных из множества Xj. Возвращаемый результат — множество допустимых значений переменной D*. В силу сделанных допущений относительно вида ограничений, функция допускает обобщенную реализацию. Из множества D* переменной xt присваивается одно из значений, при котором достигается минимум целевой функции по данной переменной.
В наихудшем случае описанный алгоритм имеет квадратичную вычислительную сложность 0(п2) от количества переменных задачи п, поскольку на каяедом шаге алгоритма из множества активных переменных, мощность которого ограничена п, необходимо выбирать наиболее предпочтительную переменную путем последовательного применения эвристических правил. Данная полиномиальная оценка приемлема для решения прикладных задач высокой размерности.
Приведённый алгоритм может быть легко трансформирован для поиска точного решения. Для этого достаточно подменить функцию selectVariable на аналогичную, в которой выбор приоритетной переменной из множества активных 1active осуществляется на основе перебора вариантов с отсечением
по верхней оценке целевой функции задачи Uf. Псевдокод функции приводится ниже.
Function selectVariable(lACTIVE,Х, Uf) Begin
If Uf and f(X)> Uf then Return 1;
Else
if I'activeI = ithen Return Iactive[ 1];
Else
lbest :=-l;
feEsr :=-L;
Fori := 1 to \Iactive\ do X' := X;
x'i ■■= computeVariable(i,X'); /'active := updateActive(IACTivEЛ); While \I'active\ > 0 do
i' := selectVariable(l'active,X',fBEST); If i'=lthen Break while; Next i;
Else
x'v ■■= computeV ariable(i',X');
1'active '■= update Active^'active. ¿0;
End if; End while;
If ibest =-Lthen
lbest := 4
feEsr:= /CO;
Else
/==/(*'); If / < /best then 'best := (; /best := End if; End if; End for; End if;
Return iBEST;
End if; End;
Таким образом, точное решение находится путём перебора всех последовательностей назначений переменных, при которых достигается минимальное значение целевой функции на множестве локально согласованных решений. При этом алгоритм реализует метод «ветвей и границ», при котором из анализа исключаются последовательности, заведомо приводящие к неоптимальным решениям.
Утверждение 3. Класс задач RCPSP принадлежат классу задач проектного планирования GCPSP. В предположениях классической постановки RCPSP существуют решения эквивалентных задач GCPSP. Обобщенный алгоритм проектного планирования сводится к алгоритму последовательной диспетчеризации работ в случае задач RCPSP.
Доказательство. Покажем, что любая задача RCPSP удовлетворяет условиям обобщенной постановки GCPSP. Выберем в качестве неизвестных переменных задачи целочисленные даты начала работ х = (х,,х2,... хп). Очевидно, что функция минимизации проектного времени min (max (Xj + (¿¿))
i = l,...N
удовлетворяет условиям задачи GCPSP. Условия начала проекта х^ ^ lq, i — 1 ,...,N выражаются ограничениями вида (В), в которых отсутствуют независимые переменные, а область допустимых значений зависимых переменных определяется положительными полуинтервалами. Отношения предшествования работ Xi + d; < х^ц, 1 = 1,2,... ,L также могут быть представлены ограничениями вида (В), если в качестве зависимых переменных использовать даты начала работ-последователей. Наконец, ресурсные условия
^ e(t,xi,di)rik<Rk,k = 1,2.....К
iei(k)
могут быть отнесены к ограничениям (D), поскольку последовательно разрешимы относительно каяедой переменной при фиксированных значениях других.
В предположениях классической постановки задач RCPSP для эквивалентных задач GCPSP также существует решение. Для доказательства воспользуемся достаточными условиями утверждения 1. Во-первых, целевая функция задачи RCPSP монотонно не убывает по каждой переменной. Во-вторых, граф задачи GCPSP ацикличен при условии, что отношения предшествования не образуют циклов. В-третьих, порождаемые условиями RCPSP ограничения вида (В) всегда разрешимы. Порождаемые ограничения вида (D) разрешимы, если уровни потребления ресурсов индивидуальными работами не превышают их доступное количество. Наконец, поскольку в эквивалентной задаче отсутствуют ограничения (А) и (Е), а условия старта проекта распространяются на все переменные задачи, то при любом назначении приоритетов на
индивидуальные ограничения (В) и (D) решение задачи GCPSP существует согласно утверждению 1.
Для доказательства сводимости обобщенного алгоритма в случае задачи RCPSP достаточно адресоваться к описанию алгоритма последовательной диспетчеризации [[3]], а также проинтерпретировать работы в терминах переменных, а отношения предшествования — в терминах ограничений и соответствующих правил разрешения задачи GCPSP. При использовании упомянутых выше эвристик LIS, MIS, MTS, LTS, LSC, SSC, связанных с количеством непосредственных или общих последователей-переменных, предпочтение будет отдаваться тем же активным работам, что и в алгоритме последовательной диспетчеризации с аналогичными эвристиками, но выраженными в терминах предшествования работ. ■
Вместе с тем, область практического применения рассмотренной обобщенной постановки GCPSP существенно шире, поскольку охватываются прикладные задачи проектного планирования в расширенных постановках с учетом альтернативных критериев составления расписаний, сложных моделей исполнения работ, многопараметрических взаимосвязей, особенностей привлечения ресурсов, применения календарных графиков, финансового и логистического обеспечения проектных работ. Для краткости остановимся на некоторых примерах, характерных для расширенных постановок. При планировании обычно применяются составные работы, которые обеспечивают иерархическую многоуровневую структуризацию проектного плана. Даты начала составных работ xL и их продолжительности dt связаны с параметрами дочерних работ j < i следующим образом:
Данные условия пред ставимы ограничениями (А) в постановке ССР8Р и порождают ацикличный подграф задачи, допускающий последовательное вычисление значений переменных, начиная с параметров дочерних работ и заканчивая параметрами составных работ. Вычисления естественным образом обобщаются на случай многоуровневых составных работ, для которых обход начинается с простых работ нижнего уровня и распространяются на работы верхних уровней.
Для представления вех в проектном плане можно использовать простые работы с нулевой продолжительностью. Более содержательным является моделирование «коротких гамаков» и «длинных гамаков», которые можно описать в постановке ССР8Р с помощью соответствующих ограничений (А). Пусть дата начала «короткого гамака» х1 и его продолжительность dl. тогда
di = max (х, + d= — х{)
7 = 1.....N\j<i
X,
dj = min
7 = 1.....N\xt
= max
7 = 1.....N I Xj
(х- + dj)
»Zj
(Х- - Xj)
Для «длинного гамака» соотношения приобретают вид
X, = min (х, + dj)
dt = max (х,—Xj)
j = l,...,N |X; -» Xj '
При условии, что взаимосвязи «гамаков» не образуют циклов, данные ограничения в постановке GCPSP также приводят к ацикличному графу и могут быть последовательно разрешены.
Другим примером расширенной постановки задач проектного планирования могут служить отношения предшествования типа «начало-начало», «начало-окончание», «окончание-начало» и «окончание-окончание», для которых могут быть установлены величины задержки. Пусть ¿щ — индекс работы-предшественника, участвующего в связи I, i® — индекс работы-последователя, участвующего в связи I, и At; — задержка связи, для которой допустимы и отрицательные значения. Тогда отношения предшествования выражаются следующими ограничениями в соответствии с перечисленными выше типами:
Xi(l) > Xi(l) + At;
xi(i) > xi(l) - di(i) + At;
X;№ > X;ffl + di{l) + At;
Xi(l) > X;№ + di{l) - di(l) + At; В постановке GCPSP данные условия выражаются ограничениями вида (В). Другим важным аспектом является учет рабочих календарей, в соответствии с которыми исполняются работы и привлекаются ресурсы. Продолжительности, трудозатраты, задержки обычно выражаются в единицах рабочего времени, которые должны быть пересчитаны в календарные даты. Например, если X; — дата начала простой работы и dt — ее продолжительность, то дата завершения определяется не выражением X; + dL. как в приведенных выше формулах, а функцией календаря как g(xi, dt). Примечательно, что общий вид ограничений в рамках обобщенной постановки GCPSP при этом не меняется. Характерной особенностью прикладных постановок является также задание алгебраических условий для дат начала и завершения работ. Данные условия типа «начать не раньше», «завершить не раньше» или «начать не позже», «завершить не позже» выражаются в постановке GCPSP ограничениями вида (В) и (Е) соответственно:
xi > к
Xi>ti~ di ^ к X; < t; - dh
где t; — соответствующие директивные сроки. Согласованность ограничений обычно не контролируется пользователем и они могут оказаться
переопределенными даже в случае одной проектной работы. Для разрешения подобных ситуаций ограничениям могут быть приписаны приоритеты, а выполнимость условий проинтерпретирована в терминах локальной согласованности. Принципиально, что обобщенная постановка GCPSP предусматривает и такую возможность.
Рассмотрим более интересный случай, когда временные условия задаются пользователем для дат начала и завершения составных работ. Поскольку сами параметры составных работ являются зависимыми переменными от соответствующих параметров дочерних работ, непосредственный анализ таких ограничений не возможен. Однако подобные условия могут быть переопределены эквивалентным образом. Например, если для составной работы i задано условие «начать не раньше» в виде Xj > tj, то оно может быть переопределено для всех дочерних работ j < i как х, > ti, поскольку Xj = min (х,). Тем самым условие в постановке GCPSP
j=l,...,N\j<i J
представимо ограничениями вида (В). Если для составной работы i задано условие «завершить не раньше» в виде
Xi>ti~ dL. то оно переопределяется для дочерних работ j < i как V;<1 х; > t; — dj. поскольку d, = max (x, + cZ, — x,). Данное условие в постановке
J j = l,...,n I j<i J J
GCPSP представляется ограничением вида (С).
Наконец, в классической постановке RCPSP рассматриваются только возобновимые ресурсы с постоянным профилем использования. В расширенных постановках обычно участвуют модели возобновимых и невозобновимых ресурсов с переменными профилями использования и доступности. Ресурсные ограничения в подобных случаях могут быть описаны следующим образом:
V t > t0 имеет место Tiiei(t,r) 4i,r{t>xi> ^ <2г(0>г = 1,2, ...,R, где монотонно неубывающая ограниченная функция Qr(t) определяет доступное количество ресурса г на момент времени t в предположении, что данный ресурс не расходовался. Ограниченная функция qirit.Xi.dj) задает профиль использования ресурса г задачей i на момент времени t, а множество I(t, г) определяет индексы работ, использовавших или использующих ресурс г на момент времени t.
Пусть для возобновимых ресурсов qiir(t, xL, dt) = 0 при t < хt или t > xL + dL и qir = maxx. < t <x.+d. {qlr(t, xu d;)]. а для невозобновимых ресурсов имеет место qir(t,Xi,di) = 0 при t < х ¿и qir(t,Xi,di) = qir при t > xt + dt, где qir = maxt > ж. [qlr(t, xu dj)}. Тогда можно показать, что условие в постановке GCPSP представляется ограничением вида (D), если для невозобновимых ресурсов выполняется £ qlr < Qr. а для возобновимых ресурсов имеет место qUr < Qr, где Qr = maxt > to {Qr(t)}.
Рассмотренные примеры демонстрируют общность предложенной постановки GCPSP для разнообразных прикладных задач проектного планирования.
Заключение
В работе предложена, формализована и обоснована обобщенная математическая постановка задач проектного планирования GCPSP, сформулированы и доказаны достаточные условия разрешимости задач данного класса, а также описан эффективный приближенный алгоритм полиномиальной сложности. В рамках дальнейших исследований предполагается реализовать данный алгоритм в составе программно-инструментальной среды общего назначения, обеспечивающей задание условий и решение разнообразных прикладных задач проектного планирования.
Список литературы
[1]. Kolisch R. Serial and parallel resource-constrained project scheduling methods revisited: Theory and computation. // European Journal of Operational Research, том 90, 1996 г., стр. 320-333.
[2]. Kolisch R., Sprecher A. PSPLIB - A project scheduling library. // European Journal of Operational Research, том 96, 1996 г., стр. 205-216.
[3]. Лазарев А. А., Гафаров Е. Р. Теория расписаний. Задачи и алгоритмы. // МГУ им. М. В. Ломоносова, Москва, 2011 г., 222 стр.
[4]. Kelley James Е. Jr., Walker Morgan R. Critical-Path Planning and Scheduling. // Proceedings of the eastern joint computer conference, 1959 г., стр. 160-173.
[5]. Land A. H., Doig A. G. An automatic method of solving discrete programming problems. Econometrica, том 28, выпуск 3, 1960 г., стр. 497-520.
[6]. Brucker P., Knust S. Complex scheduling. Springer, Берлин, 2006 г., 342 стр.
[7]. Аничкин А. С., Семенов В. А. Современные модели и методы теории расписаний. Труды ИСП РАН, том 26, вып. 3, 2014 г., стр. 5-50, DOI: 10.15514ASPRAS-2014-26(3 >1.
[8]. Kolisch R. Project Scheduling under Resource Constraints: Efficient Heuristics for Several Problem Classes. Springer, Берлин, 1995 г., 212 стр.
Mathematical formalization of project scheduling problems
'A.S. Anichkin <[email protected]> 1,2VA. Semenov <[email protected]> 1 Institute for System Programming of the Russian Academy of Sciences, 25, Alexander Solzhenitsyn st., Moscow, 109004, Russia 2Moscow Institute of Physics and Technology (State University) 9 Institutskiyper., Dolgoprudny, Moscow Region, 141700, Russia
Abstract. Theory of scheduling and project planning is widely applied in diverse scientific and industrial areas. To effectively solve application-specific problems it is necessary to take into
account a lot of factors such as task execution models, precedence relationship between tasks, resource limitations, directive deadlines, working calendars, conditions for financial and logistics support of project tasks, specific spatio-temporal requirements et al. Therefore, in practice there is a need to generalize the project scheduling problems and to consider their extended formulations. The paper provides a classical mathematical statement of RCPSP problems (Resource-Constrained Project Scheduling Problem) and a short description of the serial dispatching algorithm for their approximate solution. Shortcomings and limitations of the RCPSP statement are discussed and systemized in more details. The paper presents a mathematical formalization of project scheduling problems in extended definitioins taking into account numerous features of practical problems. The proposed statement of GCPSP problems (Generally Constrained Project Scheduling Problem) can be considered as an evolution of RCPSP problems. This statement implies a mathematically neutral specification of the optimization problem under algebraic constraints of the predefined sorts and priorities. Essentially, that the constraints are interpreted in terms of the local consistency that allows some violations in the case of overloaded algebraic systems. An effective algorithm for the approximate solution of GCPSP problems is also presented and explained by following to the classical serial algorithm. Moreover, the equivalence of the algorithms is proved for the cases when a solved GCPSP problem is reduced to the RCPSP. It is expected that the obtained results will allow developing a general-purpose software library for solving of diverse project scheduling problems.
Keywords: scheduling theory; project planning and scheduling. DOI: 10.15514/ISPRAS-2017-29(2)-9
For citation: Anichkin A.S., Semenov V.A. Mathematical formalization of project scheduling problems. Trudy ISP RAN/Proc. ISP RAS, vol. 29, issue 2, 2017. pp. 231-256 (in Russian). DOI: 10.15514/ISPRAS-2017-29(2)-9
References
[1]. Kolisch R. Serial and parallel resource-constrained project scheduling methods revisited: Theory and computation. // European Journal of Operational Research, vol. 90, 1996, pp. 320-333.
[2]. Kolisch R., Sprecher A. PSPLIB - A project scheduling library. // European Journal of Operational Research, vol. 96, 1996, pp. 205-216.
[3]. Lazarev A. A., Gafarov E. R. [Scheduling theory. Tasks and algorithms.] // Lomonosov Moscow State University, Moscow, 2011, 222 p. (in Russian).
[4]. Kelley James E. Jr., Walker Morgan R. Critical-Path Planning and Scheduling. // Proceedings of the eastern joint computer conference, 1959, pp. 160-173.
[5]. Land A. H., Doig A. G. An automatic method of solving discrete programming problems. Econometrica, vol. 28, issue 3, 1960, pp. 497-520.
[6]. Brucker P., Knust S. Complex scheduling. Springer, Berlin, 2006, 342 p.
[7]. Anichkin A. S., Semenov V. A. A survey of emerging models and methods of scheduling. Trudy ISP RAN/Proc. ISP RAS, vol. 26, issue 3, 2014. pp. 5-50 (in Russian). DOI: 10.15514/ISPRAS-2014-26(3)-l.
[8]. Kolisch R. Project Scheduling under Resource Constraints: Efficient Heuristics for Several Problem Classes. Springer, Berlin, 1995, 212 p.