УДК 519.81
ОБОБЩЕНИЕ СХЕМЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ НА ОСНОВАНИИ ЛЕКСИКОГРАФИИ БИНАРНЫХ ОТНОШЕНИЙ
Ю.В. Бугаев, Ф.А. Музалевский
Кафедра «Информационные технологии моделирования и управления», ФГБОУ ВПО «Воронежский государственный университет инженерных технологий», г. Воронеж; [email protected]
Представлена членом редколлегии профессором В.И. Коноваловым
Ключевые слова и фразы: бинарное отношение; вычислительная сложность; динамическое программирование; функция выбора; эффективные пути.
Аннотация: Предложено обобщение схемы динамического программирования на случай трактовки понятия оптимальности в виде механизма выбора альтернатив, недоминируемых по заданному бинарному отношению. Введено понятие выбора по лексикографии бинарных отношений для сужения множества недоминируемых решений.
1. Постановка задачи
В работе [1] предложено обобщение схемы динамического программирования (ДП), описанное в терминах языка функций выбора (ФВ), - наиболее универсального и удобного для анализа описания концепции выбора. Кратко это описание сводится к следующему.
Пусть имеем процесс, содержащий N стадий. Состояние процесса после завершения к-й стадии определяется значением некоторого параметра хь, к = 1, ..., N хо определяет начальное состояние, XN - конечное. Формально к-я стадия представима переходом из состояния хь-1 в хк под действием управления, характеризующегося значением параметра иь е Ц/ьХ-О. Иными словами к-я стадия определяется уравнением вида
Хк = Хк (хк-1, ик), (1)
где Хк - некоторые функции. На каждом к-м шаге необходимо выбрать определенное множество состояний {хк} и в результате получить набор лучших траекторий.
Пусть Х - некоторое множество траекторий процесса, движение по которым происходит согласно уравнению (1). Рассматривая каждую траекторию р е Х как допустимое альтернативное решение некоторой задачи выбора, а Х - как некое предъявление, введем ФВ С (Х).
Назовем С-оптимальными все траектории предъявления, попавшие в выбор.
Предположим, что ФВ определена не только на целых траекториях, но и на каждой их части. Пусть все траектории множества Х имеют общий фрагмент Ь, то есть для некоторой совокупности У фрагментов траекторий имеем соотношение
X = У & Ь, (2)
символ “&” означает операцию “склеивания” или соединения траекторий.
Определение 1. Будем говорить, что ФВ обладает свойством слабой аддитивности, если для любого множества У неполных траекторий, удовлетворяющего соотношению (2) при некоторой совокупности траекторий X и фиксированном фрагменте Ъ, справедливо равенство
С (У & Ъ) = С (У)& Ъ.
Пусть Бк(хк-1) - множество С-оптимальных траекторий вида х^.
Предлагается при начальном условии Б^+1(хы) = 0 рекуррентное соотношение
Dk (хк-l) = C
U (-1 ^ X к([к-1.u ))& Dk+1 (X к((к-ь u))
ueU к
к = N,..,1, (3)
которое является обобщением известного уравнения Беллмана F( Хк-1) = opt {f (хк-1, u) + F [ х( Хк-1, u)]}.
ueU к
(4)
Было доказано, что в случае, когда ФВ С (•), определенная на множестве траекторий многошагового процесса и их отдельных фрагментов, обладает свойствами наследования, отбрасывания и слабой аддитивности, то набор ^(хо), полученный посредством рекуррентного соотношения (3), совпадает с множеством С-оптимальных траекторий процесса.
Этот результат позволил с единых позиций провести анализ ряда алгоритмов, вписывающихся в данную концепцию. Однако вскоре выяснилось, что автоматическое перенесение на схему обобщенного ДП известных ФВ не вполне корректно и нуждается в определенных доработке и формальном обосновании, которые и предлагаются в настоящей статье.
Для иллюстрации этого факта рассмотрим вариант известной задачи о рюкзаке, названный в [2] «целочисленный рюкзак».
Пример 1. Заданы п вещей, их размеры стоимости и некоторое число Н - вместимость рюкзака (все числа - натуральные). Найти количество штук
каждой вещи, чтобы выполнялось условие ^ 2^^ < Н и при
этом суммарная
г=1
ценность вещей / = ^25 была бы максимальной.
г=1
Решим задачу методом ДП при следующих данных: п = 4; w= (2; 3; 5; 7); 5 = (3; 5; 8; 11) и Н = 10. Получим ответ: 2 = (2; 2; 0; 0), /тах = 16, а таблица условно-оптимальных решений задачи будет иметь вид
Таблица 1
Условно-оптимальные решения задачи о целочисленном рюкзаке (традиционный подход)
к 10 9 8 7 6 5 4 3 2 1 0
FX) 0 0 3 5 6 8 10 11 13 15 16
uopW 0 0 2 3 2 2 3 2 2 3 2
*uopt(xk) - условно-оптимальный размер вещи, выбираемой на к-й стадии.
Однако несложно убедиться, что z = (1; 1; 1; 0) тоже является оптимальным решением. Очевидно, алгоритм ДП выбрал первый вариант из-за того, что при поиске максимального элемента в некотором наборе ответом всегда является первый из одинаковых максимальных элементов. Исследуем корректность такого подхода с точки зрения формальной теории ФВ.
Функция выбора, реализующая скалярный оптимизационный механизм, имеет следующее формальное представление [3]
Ссо(Х) = {хеХ | х = argmax fх)}, (5)
где fx) - некоторая скалярная функция. Далее, согласно классическому определению [4], точка х* называется точкой (глобального) максимума функции f (х) на множестве Х, если fx*) ^ fx) для всех хеХ - нестрогое неравенство.
Пусть Х - конечное множество, имеющее несколько точек максимума. Тогда из сформулированных определений следует, что при буквальном следовании представлению (5) в выбор должны попасть все эти точки. Это означает, что при подстановке в формулу (3) ФВ (5) набор условно-оптимальных решений задачи о целочисленном рюкзаке должна иметь вид, представленный в табл. 2. Тогда, как несложно проверить, при обратном ходе схемы ДП мы получим 15 вариантов оптимального управления или без учета порядка следования вещей в укладке - четыре решения (2, 2, 0, 0); (1, 1, 1, 0); (0, 1, 0, 1); (0, 0, 2, 0) (см. табл. 2).
Очевидно, что при увеличении размерности задачи число подобных дублирующих вариантов будет быстро расти, а так как их критериальные оценки одинаковы, то, скорее всего, нет никакого смысла все их отыскивать. Так что традиционный подход к поиску оптимума в схеме ДП оправдан, разве что некоторое сомнение в справедливости такого пути возникает из-за того, что ответ задачи будет различным при разной нумерации в исходных данных.
Ясно, что с подобной ситуацией мы столкнемся при использовании и других ФВ, например, реализующей паретовский механизм, и в общем случае уже нельзя с полной уверенностью ратовать за отбраковку альтернатив по их порядковым номерам. Так что актуальной представляется задача корректировки формальных определений традиционных ФВ с целью сделать их полностью пригодными для реализации обобщенной схемы ДП. Сокращение числа «хороших» альтернатив на каждой стадии процесса позволило бы значительно уменьшить вычислительную сложность задач, решаемых при помощи рекурсивных и итерационных методов с большой глубиной вложенности. Для метода ДП, как одного из распространенных способов решения широкого круга задач, вывод условий подобного сокращения представляется также крайне полезным.
В данной работе исследуется достаточно распространенный случай использования ФВ, основанной на механизме блокировки по некоторому бинарному отношению (БО).
Таблица 2
Условно-оптимальные решения задачи о целочисленном рюкзаке (использование функции выбора (5))
к 10 9 8 7 6 5 4 3 2 1 0
F (хк)/u opt 0/0 0/0 3/2 5/3 6/2 8/2 8/3 8/5 10/3 11/2 11/3 11/5 11/7 13/2 13/3 13/5 15/3 16/2 16/3 16/5 16/7
2. Построение модифицированного бинарного отношения
В случае, когда ФВ порождается некоторым бинарным отношением, свойства этого отношения во многом влияют на свойства самой ФВ. В частности, известно [3, с. 41], что структуры, представленные асимметричными и транзитивными БО, порождают непустые ФВ, обладающие свойствами наследования, согласия и отбрасывания. Именно эти свойства ФВ, как было сказано в п. 1, дают возможность применять метод ДП. Кроме того, ФВ должна обладать слабой аддитивностью. Данное свойство было впервые введено в работе [1], и важно установить его связь со свойствами БО, порождающего применяемую ФВ.
Определение 2. Пусть на множестве траекторий и их фрагментов некоторого многостадийного процесса определено БО Я. Будем говорить, что Я обладает свойством инвариантности относительно сдвига, если выполнено условие
V х,уеА, УЪ | х&Ъ,у&Ъе А : (х,у)еЯ » (х&Ъ,у&Ъ)еЯ. (6)
Теорема 1. Для того чтобы ФВ, основанная на механизме блокировки по бинарному отношению Я, обладала свойством слабой аддитивности, необходимо и достаточно, чтобы Я было инвариантно относительно сдвига.
Доказательство. Напомним, что механизм блокировки определяется следующим правилом [3]
СЯ(Х) = {хеХ| УуеХ(у, х)гЯ}.
Достаточность. Пусть для Я выполнено соотношение (6), и пусть У - некоторое множество неполных траекторий. Выберем произвольную альтернативу х, что хе СЯ(У). Тогда (х&Ъ) е СЯ(У)&Ъ и для любой альтернативы у будет (у, х) г Я. Следовательно (у&Ъ, х&Ъ)гЯ. Значит (х&Ъ) е С^У&Ъ). Отсюда СЯ(У)& Ъ с С (У&Ъ). Аналогично доказывается и обратное включение. Значит С^У&Ъ) = С (У)& Ъ.
Необходимость. Пусть (х&Ъ) е СЯ(У&Ъ). Значит хеСЯ(У). Тогда для любой траектории (у&Ъ) е (У&Ъ) будет (у&Ъ, х&Ъ)гЯ. Предположим, что отношение (у, х)гЯ не выполняется. Но тогда хгСЯ(У) - противоречие. Значит
(у&Ъ, х&Ъ)гЯ ^ (у, х)гЯ.
Аналогично доказывается и обратное следование. В итоге получим условие (6). Теорема доказана ■
Известно [3], что для однозначности выбора, то есть чтобы он состоял из единственного элемента, необходимо и достаточно, чтобы БО было ациклично и слабо полно. Поэтому для уменьшения объема множества недоминируемых альтернатив необходимо использовать для сравнения вариантов такое БО, которое будет удовлетворять перечисленным выше требованиям.
В целом, их набор получается достаточно обширным. Более приемлемым кажется формирование такой ФВ, которая сужает набор равноценных вариантов, но при этом ориентируется на более объективный критерий, чем порядковый номер решения. Отталкиваться будем от случая, когда для организации выбора в том или ином виде применяется отношение качественного порядка [3], то есть асимметричное и транзитивное БО Р. Таковыми являются, в частности, часто используемые в приложениях отношения Парето и Слейтера. Тогда при выборе на основе механизма блокировки отбрасываются те варианты, которые «хуже» хотя бы одного из находящихся в предъявлении. Зачастую, многие альтернативы, по-
павшие в выбор, в некотором смысле эквивалентны между собой. Для их отсева и требуется построить решающее правило путем модификации Р.
Пусть Р - исходное отношение качественного порядка, заданное на некотором множестве альтернатив А; I - отношение эквивалентности, определенное на множестве недоминируемых по Р альтернатив и £ - некоторое новое БО, введенное для ужесточения выбора на множестве эквивалентных решений. Модифицируем отношение Р по следующей формуле
РМ = Р и (I П Б). (7)
Наша задача - установить свойства вводимых отношений I и Б, при которых ФВ, основанная на блокировке по р', будет обладать свойствами наследования, отбрасывания и слабой аддитивности. Иными словами, Р также должно быть асимметричным и транзитивным.
Известно, что из антирефлексивности транзитивного БО следует его асимметричность и что качественный порядок антирефлексивен. Поэтому выясним условия антирефлексивности Рм . Если оно рефлексивно, то
х[Р и (I п Б)]х » [х(Р и 1)х] л [х(Р и Б )х].
Антирефлексивность же означает ложность записанных отношений. Известно [3, с. 13], что объединение произвольного числа антирефлексивных отношений является антирефлексивным отношением, поэтому вторая половина конъюнкции будет ложной, если Б антирефлексивно. Следовательно, в этом случае ложной будет и вся правая часть следования.
Теперь выясним условие транзитивности. Известны два свойства транзитивных БО [3, с. 14]:
1) пересечение любого числа транзитивных отношений транзитивно;
2) объединение двух бинарных отношений снова транзитивно, если одно из них транзитивно относительно другого.
Значит, из транзитивности I и Б следует транзитивность I п Б. Поскольку I транзитивно по определению, получаем, что для транзитивности I п Б требуется лишь транзитивность Б, а для транзитивности Р и(/ п Б ), надо чтобы либо
а) Р было транзитивно относительно I п Б, либо
б) I п Б было транзитивно относительно Р.
Выясним условия, при которых выполняется соотношение а). Напомним, что отношение Р транзитивно относительно отношения Q в том случае, если выполняются следующие условия
(хРу л yQz ^ хР2 \ . (8) [xQy л уР2 ^ хР2
Пусть для некоторых х, у, 2 имеем хРу л уЬ л уБ 2. Тогда для выполнения условия хР2 достаточно, чтобы хотя бы одно из отношений I и Б было транзитивно относительно Р. Для второго соотношения свойства относительной транзитивности имеют аналогичное требование.
Несложно показать, что для соблюдения условия б) требуется, чтобы оба отношения I и Б были транзитивны относительно Р.
Таким образом, получаем следующие условия, при которых Р и (I п Б ) антирефлексивно и транзитивно.
1°. Б должно быть антирефлексивно и транзитивно.
2°. Должно выполняться хотя бы одно из условий:
- Р транзитивно относительно I или Б;
- оба отношения I и Б транзитивны относительно Р.
Наконец, для однозначности выбора, то есть чтобы построенная ФВ позволяла из каждого класса эквивалентных решений выбирать единственного представителя, БО Р' должно быть слабо полным на каждом классе эквивалентности. Иными словами,
Ух, уеА ((х, у)еI л х^у) ^ ((х, у)еРм V (у, х)еРМ).
Очевидно, что для этого достаточно, чтобы подобным свойством обладало отношение Б.
Для иллюстрации полученного результата рассмотрим несколько важных частных случаев.
Пример 2. Пусть каждое из отношений Р и Б задается некоторым скалярным критерием дР и дБ соответственно, каждый из которых надо максимизировать
(х, у) еР » дР(х) > дР(у); (х, у)еБ » дБ (х) > дБ (у).
Очевидно, множеством решений, эквивалентных по Р, будет набор вариантов, для которых значения дР совпадают. Тогда отношение Рм будет задаваться следующим правилом
(х, у) еРМ » [дР(х) = дР(у)] л [дх(х) > дБ(у)].
Построенное БО р" представляет собой отношение лексикографии по последовательно применяемым критериям дР и дБ. В дальнейшем будем БО, построенное по правилу (7), по аналогии называть лексикографией бинарных отношений Р и Б и обозначать РМ = Ьех(Р, Б). В рассмотренном скалярном случае дБ может быть каким-нибудь дополнительным, неглавным критерием. К примеру, при решении однокритериальной задачи о рюкзаке таким критерием может быть минимум количества выбранных вещей не по массе, а в штуках. В отличие от минимума номера альтернативы, выбор по такому критерию не зависит от порядка нумерации альтернатив. В этом случае для исходных данных, приведенных в примере
1, получим три варианта оптимального управления или два набора вещей: (0, 0, 2, 0) и (0, 1, 0, 1). Причина наличия двух решений, а не одного, заключается в том, что для имеющихся исходных данных при одинаковой суммарной стоимости вещей их количество также может быть одинаковым. Иными словами, введенное бинарное отношение не является слабо полным.
Пример 3 [5]. На множестве альтернатив водится исходное отношение Я нестрогого превосходства - транзитивное, рефлексивное («не хуже, чем»). Оно порождает следующие отношения:
1) строгого превосходства Р - транзитивное, антирефлексивное («лучше, чем»): хРу » (хЯу) л — (уЯх);
2) несравнимости N - симметричное, антирефлексивное («несравнимо»): хЫу » —I (хЯу) л — (уЯх);
3) безразличия I - транзитивное, рефлексивное, симметричное («одинаково хороши»): xIy » (хЯу) л (уЯх).
Отношение строгого превосходства Р является, очевидно, качественным порядком, а безразличие I является эквивалентностью. Несложно показать, что при организации выбора недоминируемых по Р альтернатив мы получим множество таких вариантов, что для любой отобранной пары имеет место отношение несравнимости N или безразличия I.
Утверждение 1. Отношение строгого превосходства Р транзитивно относительно БО безразличия I.
Доказательство. Пусть хРу и уЬ. Надо получить хР2. Распишем представление посылки и предполагаемого следствия в (8) через нестрогое превосходство Я:
хРу л уЬ » хЯу л —(уЯх) л уЯ2 л 2Яу. хР2 » хЯ2 л — (гЯх).
Следствие хЯг получаем из хЯу л уЯ2. Предположим, что — (гЯх) не верно, то есть на самом деле 2Ях. Тогда из условия уЯг л 2Ях получаем уЯх, что по предположению не верно. Следовательно, — (гЯх) верно.
Следствие х/у луР2 ^ хР2 доказывается аналогично.
Таким образом, при синтезе Ьех(Р, Б) нам достаточно выбрать в качестве Б произвольный качественный порядок, так как условие 2° выполняется автоматически.
В случае установления БО Я на множестве многокритериальных альтернатив по правилу хЯ у » V /, Л(х) >у) отношение Р - не что иное, как отношение Парето, наличие N означает несравнимость по Парето, а I - совпадение критериальных оценок х и у по всем критериям. Отношение Б может, как и в скалярном случае, задаваться строгим превосходством по дополнительному критерию.
Пример 4. Пусть дано БО качественного порядка Р. Качественным безразличием !кб называется рефлексивное, симметричное отношение, отрицающее наличие качественного порядка между альтернативами
(х, у) е Ткб (х, у) гР л (у, х)гР.
Качественное безразличие индуцирует по формуле
(х, у)е I » Уи ((и, х) е !кб ^ (и, у)е !кб), (9)
рефлексивное, симметричное, транзитивное отношение качественной эквивалентности I.
Положив в (9) и = х, получим, что из (х, у) е I следует (х, у) е !кб. То есть
I С !кб = Р п Р _1, а, значит I п Р = 0, I п Р 4 = 0.
Утверждение 2. Отношение качественного порядка транзитивно относительно качественной эквивалентности.
Доказательство. Пусть (х, у)е Р и (у, 2)е I. Предположим противное, то есть (х, 2)гР. Тогда возможны два случая:
1) (х, 2)е !кб;
2) (2, х)еР.
В первом случае по определению I имеем
(у, z)еI ^ ((х, 2) е !кб » (х, у)е ІКБ).
Но в силу предположения (х, у)еР включение (х, у)е ІКБ не может выполняться, следовательно и (х, 2) г !кб.
Во втором случае в силу транзитивности Р получим, что из (2, х) е Р и (х, у) е Р следует (2, у)еР. То есть, не может выполняться (у, 2)е!.
Следовательно, в обоих случаях получаем противоречие.
Вторая половина условия относительной транзитивности доказывается аналогично.
Таким образом, в описанном случае при синтезе Ьех(Р, Б) нам достаточно учитывать только свойства БО Б, то есть выполнение условия 1°, поскольку 2° выполняется автоматически.
3. Алгоритмы восстановления решений при наличии эквивалентности
На первом этапе схемы ДП, в ее традиционном варианте, на каждой к-й стадии запоминаются условно-оптимальные решения, то есть оптимальные управления для каждого состояния хк-\ процесса записываются в множества иОрг(хк-1).
На втором этапе восстанавливается оптимальная последовательность состояний.
Для многокритериального случая и других механизмов выбора, отличающихся от скалярно-оптимизационного, этот подход также можно использовать. Оптимальная последовательность состояний восстанавливается посредством следующей рекурсивной процедуры (этот и последующие алгоритмы удобно описать на неформальной версии языка РаБса!).
Procedure Search (k); begin if k = n + 1 then writeln(STACK) else
for u e U opt(k) do begin y := top(STACK); x[k] .•= x (y, u); x[k] => STACK;
Search (k+1); v <= STACK; end; end;
{Головная программа}
begin STACK := x^]; Search (l); end.
Здесь x (xk-1, uk) - функция (1), определяющая состояние процесса xk на k-й стадии по значениям предыдущего состояния xk-1 и управления uk; оптимальные последовательности состояний накапливаются в информационной структуре STACK; операции х => STACK и y <= STACK означают запись в STACK элемента х и исключение из STACK его верхнего элемента и запись в переменную у, соответственно; y:= top(STACK) - запись первого элемента набора STACK в переменную у без его исключения из STACK.
В частности, при поиске оптимальных путей в графе между двумя заданными вершинами s и t восстановление решений будет выглядеть так:
//Procedure Search G; begin y := top(STACK); if y = s then writeln(STACK); else
for u e nPEflffl_opt(y) do
begin u => STACK;
SearchG;
v <= STACK;
end;
end;
{ Головная программа }
begin read (s, t); STACK := t; Search_G; end.
----------------------------------------/
Нерекурсивный вариант:
/begin read (s, t);
f STACK := t;
while (STACK <> 0) do begin v := top(STACK);
while (v <> s) and (ПРЕДШ_орt(v) <> 0) do begin u <= ПРЕДШ_opt(y); v := и; и => STACK; end;
if v = s then writeln(STACK); w <= STACK;
< Восстановить ПРЕДШ__opt(w) >;
Здесь ПРЕДШ_opt [v] - список вершин ориентированного графа, предшествующих вершине v и включенных в список условно-оптимальных решений. Он организован по принципу STACK.
Очевидно, описанные алгоритмы будут корректно функционировать как при отсутствии, так и при наличии эквивалентных решений.
Однако в некоторых алгоритмах, основных на численной схеме ДП, условнооптимальные решения в явном виде не получаются. Это относится, например, к известному методу Флойда, предназначенному для поиска оптимальных путей между всеми парами вершин произвольного графа. В этом методе, зная значения D[i, j] критериальных оценок кратчайших путей между всеми парами вершин (i, j), можно построить сами пути между двумя заданными вершинами s и t с помощью алгоритма, описанного в [6]. В нем используется достаточно простая идея обнаружения последней вершины u восстанавливаемого пути по совпадению
D[s, v] = D[s, u] + A[u, v],
где A[u, v] - вес дуги [u, v].
Сread(s, t); write(t); v := t; while v <> s do for u :=1 to n do
if ( D[s, v] = D[s, u] + A[u, v] ) and (u<>v) then
begin write(u); v:= u; break; end; x__________________________________________________x
Подобный подход удобен тем, что он более универсален, не использует память для хранения самих условно-оптимальных решений (а только для их критериальных оценок), и при этом затраты на дополнительное время для расчетов минимальны.
Данный подход несложно распространить и на другие алгоритмы, основанные на численной схеме ДП. Например, в статье [7] приведен алгоритм восстановления «первых подходящих» Парето - оптимальных путей по множеству их многокритериальных весов {D[s, t]} в векторном варианте метода Флойда. Данный алгоритм (назовем его «Алгоритм 1») имеет вид:
re
read (s, t);
for z є {D[s, t]} do
begin v := t; STACK := t; q :=
q := z;
while v <> s do
en
for u є ПРЕДШ [v] do forp є {D[s, u]} do if q = p + A[u, v] then begin u => STACK; q :=p; v := u; break (for u ); end;
write(STACK);
end;
Здесь break (for u) означает прерывание цикла по u. Вершины восстанавливаемого пути накапливаются в STACK, содержимое которого распечатывается, как только первая вершина пути совпадет с заданной начальной вершиной s.
Оценим вычислительную сложность алгоритма. Пусть к - число критериев; n, m - количество вершин и ребер графа соответственно; L = max | D[i, j] |- мак-
симальная мощность множества эффективных путей из i-й вершины в j-ю. При выполнении цикла for p є^^, u]} do необходимо найти сумму не более чем L k-мерных точек. Следовательно, вычислительная сложность выполнения цикла составит O(kL). Поскольку в прикладных задачах величина k ограничена обычно некоторой константой, то можно считать вычислительную сложность данного цикла равной O(L).
В алгоритме необходимо просмотреть все предшествующие вершины для каждой вершины предполагаемого пути. Общее число таких вершин не превышает m. Наконец, внешний цикл for z є {D[s, t]} do повторяется не более L раз. Следовательно, вычислительную сложность алгоритма можно оценить как 0(mL2). Для сравнения, вычислительная сложность первой части векторного варианта метода Флойда оценивается [7] величиной 0(n3L3), то есть, по крайней мере, на два порядка выше.
При наличии эквивалентных альтернатив описанный алгоритм 1 ищет среди них только первую, подходящую по критериальным оценкам. Поэтому в том случае, когда необходимо получить все решения, имеющие векторный вес z є {D[s, t]}, алгоритм 1 не работает. Тогда можно предложить другой алгоритм (назовем его «Алгоритм 2»). В нем сформированные пути также накапливаются в STACK, а после получения всего пути - выводятся на печать.
F
Function Back;
begin h:= nil; Back := nil;
while (h = nil) and (STACK <>0) do
begin g <= STACK;
< Восстановить ПРЕДШ [g] >
w := top(STACK); h := top (ПРЕДШ [w]);
e
Back := w;
end;
end;
J
■'{Головная программа }
read (s, t);
for z e {D[s, t]} do
begin v := t; STACK:= t; q := z;
while STACK <> 0 do
begin while (v <> s) and (STACK <> 0) do
begin Y:= True;
while (ПРЕДШ [v] <> 0) and Y do begin u<= ПРЕДШ [v]; forpe {D[s, u]} do begin if q = p + A[u, v] then begin u => STACK; q := p; v := u;
Y:= False; break;
end;
end;
end;
if Y then {Не нашли подходящее u - откат назад}
v := Back;
end;
if v = s then begin write(STACK); v := Back;
Здесь функция Back осуществляет откат назад, для чего производится циклическое исключение элементов стека до тех пор, пока не найдется элемент w:= top(STACK), у которого не пусто множество еще не использованных предшествующих вершин.
Оценим вычислительную сложность алгоритмов. При выполнении цикла for p e{D[s, u]} do необходимо найти сумму не более чем L k-мерных точек. Следовательно, вычислительная сложность выполнения цикла составит O(kL). Поскольку величина k ограничена некоторой константой, то можно считать вычислительную сложность данного цикла равной O(L). От Алгоритма 1 данный алгоритм отличается лишь тем, что вместо цикла for ue ПРЕДШ [v] do выполняется цикл while (ПРЕДШ [v] <> 0), который, хотя и с прерываниями, просматривается весь список ПРЕДШ [v]. Это означает, что оценка вычислительной сложности Алгоритма 2 будет такой же, как у первого - 0(mL2).
Список литературы
1. Бугаев, Ю.В. Обобщение схемы динамического программирования / Ю.В. Бугаев, С.В. Чикунов // Автоматика и телемеханика. - 2009. - № 2. -С. 90-100.
2. Гэри, М. Вычислительные машины и труднорешаемые задачи : пер. с англ. / М. Гэри, Д. Джонсон. - М. : Мир, 1982. - 416 с.
3. Юдин, Д.Б. Вычислительные методы теории принятия решений / Д.Б. Юдин. - М. : Наука, 1989. - 316 с.
4. Сухарев, А.Г. Курс методов оптимизации : учеб. пособие / А.Г. Сухарев, А.В. Тимохов, В.В. Федоров. - М. : ФИЗМАТЛИТ, 2005. - 368 с.
end;
5. Гафт, М.Г. Выделение множества неподчиненных решений и их оценок в задачах принятия решений при векторном критерии / М.Г. Гафт, В.М. Озерной // Автоматика и телемеханика. - 1973. - № 11. - С. 85-94.
6. Липский, В. Комбинаторика для программистов : пер. с польск. / В. Лип-ский. - М. : Мир, 1988. - 213 с.
7. Блинов, И.В. Обобщение алгоритма Флойда-Уоршалла на случай нескольких критериев / И.В. Блинов, Ю.В. Бугаев, С.В. Чикунов // Вестн. Тамб. гос. техн. ун-та. - 2009. - Т. 15, № 4. - С. 885-892.
Generalization of the Dynamic Programming Scheme by the Binary Relations of Lexicography
Yu.V. Bugaev, F.A. Musalevsky
Department “Information Technologies of Modeling and Management”, Voronezh State University of Engineering Technology, Voronezh; [email protected]
Key words and phrases: binary relation; computing difficulty; dynamic programming; efficient ways; function of the choice.
Abstract: The paper offers the generalization of dynamic programming scheme in case of interpretation of the notion of optimality in the form of the mechanism of choice alternatives, non-dominated by a given binary relation. The notion of choice on lexicography of binary relations to narrow the set of non-dominated solutions.
Verallgemeinerung des Schemas der dynamischen Programmierung auf Grund der Lexikographie der binaren Beziehungen
Zusammenfassung: Es wird die Verallgemeinerung des Schemas der dynamischen Programmierung im Fall der Deutung des Begriffes der Optimalitat in der Form des Mechanismus der Wahl der nach der eingestellten binaren Beziehung undo-minierenden Alternativen vorgeschlagen. Es wird den Begriff der Wahl nach der Lexikographie der binaren Beziehungen fur die Verengung der Menge der undominierenden Losungen eingefuhrt.
La generalisation du schema de la programmation dynamique en vertu de la lexicographie des relations binaires
Resume: On propose la generalisation du schema de la programmation dynamique sur le cas de l'interpretation de la notion doptimalite en forme du mecanisme du choix des alternatives non dominees selon la relation binaire donnee. On introduit la notion du choix selon la lexicographie des relations binaires pour le retrecissement de la multitude de decisions non dominees.
Авторы: Бугаев Юрий Владимирович - доктор физико-математических наук, профессор кафедры «Информационные технологии моделирования и управления»; Музалевский Федор Александрович - аспирант кафедры «Информационные технологии моделирования и управления», ФГБОУ ВПО «Воронежский государственный университет инженерных технологий», г. Воронеж.
Рецензент: Абрамов Геннадий Владимирович - доктор технических наук, профессор, заведующий кафедрой «Информационные технологии моделирования и управления», ФГБОУ ВПО «Воронежский государственный университет инженерных технологий», г. Воронеж.