Математическое моделирование. Оптимальное управление Вестник Нижегородского университета им. Н.И. Лобачевского, 2013, № 6 (1), с. 223-226
УДК 519.6
О ГРАФОВОМ ТЕСТЕ ПРОВЕРКИ СМЕЖНОСТИ ЭКСТРЕМАЛЬНЫХ ЛУЧЕЙ МНОГОГРАННОГО КОНУСА В МЕТОДЕ ДВОЙНОГО ОПИСАНИЯ
© 2013 г. Н.Ю. Золотых
Нижегородский госуниверситет им. Н.И. Лобачевского
Поступила в редакцию 31.10.2013
Уточняется верхняя оценка сложности предложенного ранее графового теста проверки смежности экстремальных лучей в методе двойного описания.
Ключевые слова: многогранный конус, метод двойного описания, алгоритм Моцкина-Бургера, графовый тест.
Метод двойного описания [1] (другие встречающиеся названия - алгоритм Моцкина-Бургера [2] и алгоритм Фурье-Моцкина [3]) -хорошо известный метод построения неприводимой порождающей системы многогранного конуса, заданного системой однородных линейных неравенств Ах > 0. Одной из наиболее затратных по времени процедур в этом методе является построение на каждой итерации множества всех пар смежных экстремальных лучей. Одним из методов проверки смежности является комбинаторное правило [1]. В [4] предложена его «графовая» модификация, в ряде случаев существенно ускоряющая процедуру проверки. Здесь предлагается уточненная верхняя оценка сложности графового теста.
1. Определения
Пусть $ - произвольное упорядоченное поле. В алгоритмах предполагается, что возможно эффективное осуществление арифметических операций в этом поле, например, $ - поле рациональных чисел или алгебраических вещественных чисел и т.д.
Если А є $тхп, і є{і,2,...,от}, К с{і,2,...,от}, то через аі обозначена і-я строка матрицы А , а через АК - подматрица матрицы А , составленная из строк аі, где і є К . В выражениях вида
ах, где а є $п, х є $п, вектор а следует интерпретировать как вектор-строку, ах - как вектор-столбец.
Приводимые здесь определения и другие сведения о выпуклых полиэдральных конусах и системах линейных неравенств можно найти, например, в [2, 5].
Почиэдраленым (или многогранным) конусом в пространстве Fn (далее просто конусом) называется множество
C = {x є Fn: Ax > 0} где A є Fmx n - матрица размера m x n с элементами из F. Говорят, что система линейных неравенств Ax > 0 окределяет конус C. Конус называется острым, если он не содержит ненулевых подпространств. Хорошо известно, что для того чтобы конус C был острым, необходимо и достаточно, чтобы rank A = n, где rankA обозначает ранг матрицы A. Любой полиэдральный конус C может быть задан в виде конической оболочки некоторой конечной системы векторов u1,u2,...,us пространства Fn, т.е.
C = {x = ajUj +a2u2 + ... + asus : a, > 0 (/' = 1,2,.,s)}.
Говорят, что система векторов u1,u2,.,us корождает конус С. Ненулевой вектор и є C назовем лучом конуса С. Два луча и и v будем называть равными и записывать и = v, если для некоторого a>0 верно и =av. Луч и єC называется экстремаленым, если из условий и =a v + Р, a> 0, р> 0, v, w с C следует и = v = w . Множество экстремальных лучей острого конуса является его минимальной порождающей системой и называется остовом конуса. Пусть P - выпуклое подмножество
Fn и для некоторых а є Fn, a є F верно, что P с {x: ax < a}, тогда P^{x :ax = a} называется гранею множества P. Два экстремальных луча и и v острого конуса C называются смежными, если минимальная грань, содержащая оба луча, не содержит никаких других экс-
тремальных лучей конуса. Остов конуса C будем обозначать через U(C), а множество всех пар {и, v} смежных экстремальных лучей - через E (C ).
2. Метод двойного описания
Основная идея метода двойного описания [1] заключается в следующем. На вход поступает матрица A є Fmxn, rank A=n . На предварительном этапе находим подсистему Bx > 0 системы Ax > 0 из n неравенств ранга n . Легко видеть, что остов конуса, заданного этой подсистемой, образуют столбцы матрицы Б_. Далее к подсистеме Bx > 0 по очереди добавляем неравенства исходной системы, каждый раз пересчитывая остов.
Правила пересчета дает следующая теорема.
Теорема [1]. Пусть A є Fmxn, rank A=n , а є Fn ■ Если U - остов конуса K = {x є Fn :
Ax > 0},
U0 = {и є U : аи = 0},
U + = {и є U : аи > 0},
U_ = {и є U : аи < 0}, тогда остов конуса
K' = {x є Fn: Ax > 0, ax > 0} есть объединение U+ ^U0 ^U± , где U± = {w = (аи)v _ (av)u : и є U+, v є U_, (u,v) є E(K)}.
Одна из основных черт метода двойного описания заключается в том, что на каждой итерации алгоритм имеет два полных описания текущего конуса: определяющую его систему неравенств A{x > 0 и его остов U - отсюда название метода.
Модификации метода двойного описания отличаются друг от друга, в частности, по следующим параметрам:
1) порядком рассмотрения неравенств исходной системы;
2) способом определения смежности векторов остова;
3) временем, когда определяется смежность векторов.
Многочисленные эксперименты, например, [4, 6, 7], показывают, что общее время работы алгоритма существенным образом зависит от порядка, в котором рассматриваются неравенства. С другой стороны, на каждой итерации большое время занимает процедура построения множества E пар смежных экстремальных лучей.
3. Проверка смежности экстремальных лучей
Пусть, как обычно, C = {x :Ax > 0}, A eFmxn , rank A=n и u e Fn. Обозначим Z (u) = {i: Atu = 0}. Таким образом, Z(u) есть множество номеров ограничений системы Ax > 0 , активных для вектора u.
Хорошо известны два необходимых и достаточных условия для смежности экстремальных лучей конуса: «комбинаторный» и «алгебраический».
Утверждение 1 (алгебраический тест). Пусть u,v e U(C). Для того чтобы {u,v}e E(C), необходимо и достаточно, чтобы rank AZ (u )nZ (v) =
= n - 2 .
Утверждение 2 (комбинаторный тест). Пусть u, ve U(C). Для того чтобы {u,v}e E(C), необходимо и достаточно, чтобы Z (u) n nZ(v) с Z(w) ни для какого w eU(C)\{u,v}.
Алгебраический тест является следствием теоремы Минковского (см., например, [2, 5]). Комбинаторный тест впервые предложен в [1], его доказательство приведено в [8].
Ранг в алгебраическом тесте можно вычислить с помощью общеизвестных алгоритмов линейной алгебры, что требует не более O(mn2) арифметических операций. Таким образом, трудоемкость процедуры построения всех пар смежных лучей с помощью алгебраического теста составляет O(mn2s2), где s =|U (C )|.
Из утверждения 1 получаем следующее простое необходимое условие смежности лучей.
Следствие. Если {u, v}e E(C), то Z (u) n nZ (v) > n - 2.
Сформулированное необходимое условие рассматривалось многими авторами, например, [6, 8—11]. Многочисленные эксперименты показывают, что его разумно проверять всякий раз перед выполнением любого теста на смежность лучей.
Выполнять комбинаторный тест удобно, имея в распоряжении матрицу T = (tjj) e {0,1}s m , в которой tjj = 1 тогда и только тогда, когда ajui > 0, где U = {ut,u2,...,us}. Для того чтобы лучи ui и ui были смежны, необходимо и достаточно, чтобы для любого k e{l,2,...,s}\ {/,/'} нашлось l, такое, что tu = ta = 0, thl = 1.
Трудоемкость проверки смежности двух лучей u и v составляет O(ms) операций.
Таким образом, трудоемкость процедуры построения всех пар смежных лучей с помощью комбинаторного теста есть O(msъ).
В [4] предложена «графовая» модификация комбинаторного теста. Рассмотрим простой (неориентированный, без петель и кратных ребер) граф G, который построим по конусу С следующим образом. Множество вершин графа G есть множество и экстремальных лучей конуса С, а {и,V} образует ребро в G тогда и
только тогда, когда |2(и)п 2(у) > п - 2. Множество всех ребер графа G обозначим E(G).
Утверждение 3 (графовый тест) [4]. Пусть
и, V є и (С). Для того чтобы {и, у} є Е(С), необходимо и достаточно, чтобы в и (С) не существовало луча м, отличного от и и V, такого, что {и, м}є Е^), {у, \м} є E(G) и 2(и)п2(у) с
с 2 (м).
Для использования этого утверждения в алгоритме проверки смежности экстремальных лучей нет необходимости в явном построении графа G . Вместо этого на каждой итерации мы можем строить только окрестность D очередной вершины и этого графа. Таким образом, получаем следующий алгоритм построения всех пар смежных экстремальных лучей.
На вход алгоритма поступает остов и = и (С) конуса С. Предполагается, что для каждого экстремального луча и известно множество 2 (и). На выходе получаем множество Е всех пар смежных экстремальных лучей.
Алгоритм Graph.Adj [4]:
Шаг 0. Положить Е = 0, 5 = 0 .
Шаг 1. Для каждого и є и выполнить шаги
1.1-1.3:
Шаг 1.1. Положить D = 0, 5 = 5 ^{и}.
Шаг 1.2. Для каждого V є и \ {и} :
Шаг 1.2.1. Если |2(и)п 2(у) > п - 2, то поместить у в D .
Шаг 1.3. Для каждого у є D \ 5 :
Шаг 1.3.1. Если |2(и)п2(у) > п - 2 и не существует м є Б \ {у}, такого, что 2(и)п2(у) с с 2(м1), то поместить {и,у} в Е.
Уточним оценку трудоемкости алгоритма Graph.Adj. Обозначим 8 максимум из степеней вершин в графе G. Трудоемкость построения окрестности Б (шаг 1.2) есть O(ms2), трудоемкость обхода этой окрестности (шаг 1.3) есть O(ms8), откуда трудоемкость всего алгоритма
Graph.Adj есть O(ms2 + ms8). Так как 8<п, то
эта трудоемкость всегда асимптотически не превосходит верхней оценки O (ms3) трудоемкости решения данной задачи с помощью комбинаторного теста.
Во многих задачах 8 < n, и преимущество алгоритма Graph.Adj оказывается намного более существенным. Результаты вычислительного эксперимента, приведенные в [4], подтверждают это превосходство.
В [12] предлагается параллельная версия алгоритма двойного описания. В [13] - другая модификация, использующая идеи алгоритма QuickHull.
Список литературы
1. Моцкин Т.С., Райфа Х., Томпсон Д.Л., Тролл Р.М. Метод двойного описания // Матричные игры. М.: Физматгиз, 1961.
2. Черников С.Н. Линейные неравенства. М.: Наука, 1968.
3. Шевченко В.Н., Груздев Д.В. Модификация алгоритма Фурье-Моцкина для построения триангуляций // Дискретный анализ и исследование операций. Сер. 2. 2003. Т. 10. № 1. С. 53-64.
4. Золотых Н.Ю. Новая модификация метода двойного описания для построения остова многогранного конуса // Журнал вычислительной математики и математической физики. 2012. Т. 52. № 1. С. 153-163.
5. Схрейвер А. Теория линейного и целочисленного программирования: В 2-х т. М.: Мир, 1991.
6. Fukuda K., Prodon A. Double description method revisited // Combinatorics and Computer Science. Springer-Verlag, 1996. P. 91-111.
7. Avis D., Bremner D., Seidel R. How good are convex hull algorithms? // Computational Geometry: Theory and Apllications. 1997. V. 7. № 5-6. P. 265-301.
8. Burger E. Üngleichungssysteme // Zeitschrift für Angewandte Mathematik und Mechanik. 1956. V. 36. № 3/4. P. 135-139.
9. Черникова Н.В. Алгоритм для нахождения общей формулы неотрицательных решений системы линейных уравнений // Журнал вычислительной математики и математической физики. 1964. Т. 4. № 4. С. 733-738.
10. Веселов С.И., Парубочий И.Е., Шевченко В.Н. Программа нахождения остова конуса неотрицательных решений системы линейных неравенств // Системные и прикладные программы. Часть 2. Горький: Изд-во Горьк. ун-та, 1984. С. 83-92.
11. Le Verge H. A note on Сhernikova's algorithm: Research Report RR-1662. Rennes: INRIA, 1992.
12. Золотых Н.Ю., Лялин С.С. Параллельный алгоритм нахождения общего решения системы линейных неравенств // Вестник Нижегородского университета им. Н.И. Лобачевского. 2009. № 5. С 193-199.
13. Бастраков С.И., Золотых Н.Ю. Использование идей алгоритма Quickhull в методе двойного описания // Вычислительные методы и программирование. 2011. Т. 12. № 1. С. 232-237.
ON THE GRAPH TEST TO CHECK THE ADJACENCY OF POLYHEDRAL CONE EXTREME RAYS IN
THE DOUBLE DESCRIPTION METHOD
N. Yu. Zolotykh
The article clarifies the complexity upper bound of the earlier proposed graph test to check the adjacency of polyhedral cone extreme rays in the double description method.
Keywords: polyhedral cone, double description method, Motzkin-Burger algorithm, graph test.