Нахождение крайних точек суммы двух политопов

Бесплатный доступ

В работе получен критерий крайности точки у множества, образованного в результате сложения двух политопов. Обоснование предлагаемого критерия имеет наглядную геометрическую интерпретацию и доказывается элементарными инструментами выпуклого анализа. Проверка сформулированного критерия сводится к задаче линейного программирования.

Политоп, коническая оболочка, сумма минковского, крайняя точка, линейное программирование

Короткий адрес: https://sciup.org/14968877

IDR: 14968877   |   DOI: 10.15688/jvolsu1.2016.6.1

Текст научной статьи Нахождение крайних точек суммы двух политопов

DOI:

1.    Вспомогательные сведения

Приведем некоторые базовые понятия и результаты теории выпуклого анализа, которые упростят понимание основных результатов (см.: [1; 5; 6]). Пусть множество Л состоит из точек а 0 , ..., а т пространства R .

Определение 1. Выпуклой оболочкой conv Л множества Л называется наименьшее выпуклое множество, содержащее Л.

Определение 2. Множество Р = conv { a 0 ,..., а т } назовем политопом.

Определение 3. Точка р политопа Р называется крайней, если она не принадлежит выпуклой оболочке никаких двух отличных от нее различных точек политопа Р.

Проиллюстрируем введенные понятия. Рассмотрим множество Л, состоящее из трех точек на плоскости:

Л = о 1 2 } =   0, -Д-2).                    (1)

На рисунке 1, а) треугольник со своей внутренностью соответствует множеству conv Л, а вершины являются крайними точками.

Определение 4. Пусть подмножество С является частью пространства R . Множество

К (С) = {Лж | Л > 0, ж Е С} называется конусом, порожденным подмножеством С.

Если множество С — выпуклое, то К (С ) также является выпуклым множеством. Заметим, что К (С ) необязательно содержит начало координат.

Определим несколько необходимых нам множеств. Пусть все точки а г из множества Л отличны друг от друга и являются крайними для политопа conv Л. Зафиксируем индекс i Е 0 : т. Вычтем а г из остальных точек Л и зададим множество

Л(а ^ ) :— { ао — a ^ ,a i

- а { , ... ,а » - 1 а 4 г+1

а г ,...,а т

а г } .

Отметим, что в множестве Л(а г ) отсутствует нулевой вектор.

Обозначим выпуклый многогранный конус, натянутый на множество { convЛ а г }\ \ 0 п , следующим образом

К(а г ) :— К (convЛ(a г )).

Рассмотрим пример. Для множества (1) получим Л(а 0 ) и К 0 ) (см. рис. 1):

Л'а о ) — {( з^— 2 )} -

Аналогичным образом определим множества В(Ь г ), К(Ь г ) для набора точек В = = { Ь 0 1 ,... ,Ь т ь } , где все Ь г Е R отличны друг от друга и являются крайними для политопа conv В.

Под алгебраической суммой политопов conv Л и conv В понимаем conv Л + conv В := {а + Ь | а Е conv Л, Ь Е conv В}.

Заметим, что выражение (2) также называется суммой Минковского.

2.    Крайние точки суммы политопа и отрезка

Приведем рассуждения для нахождения крайних точек сложения политопа с отрезком.

б) К о )

а) Треугольник conv А и отрезок L

Рис. 1. Изображения выпуклой оболочки множества А и конуса К ( а 0 )

Рис. 2. Сумма политопа и отрезка

Рассмотрим пример. Изобразим сумму S о треугольника conv А и отрезка L с вершинами в точках (0, 0) т и (4, 0) т (рис. 2):

  • *™ А + L = conv{Q,(-2) , (f) , ■ , Q , Q}.       (3)

На рисунке 2, б) видно, что точка (0,3) т не является крайней для нового многоугольника, поэтому она несущественна для задания результата суммы (3). Точку (0, 3)т следует идентифицировать и удалить из S о .

Пусть Ь о 1 Е R , Ь о = b i . Согласно (2) сложение политопа conv А c отрезком conv { b 0 ,b 1 } образует выпуклое множество S 1 :

S 1 := conv А + conv { b 0 , b i } =

  • = conv { a о + Ь о , a i + Ь о , ..., a m + Ь о , а о + b i , a i + b i , ..., а т + b i } .           (4)

Выражение (4) можно переписать, как сумму точки и множества

S 1 = b 0 + conv А, и ,                                  (5)

где А у = { а о , a i ,..., а т , а о + v, a i + v,..., а т + у } , у = b i - Ь о .

Свяжем описанные множества с приведенными ранее примерами. Выпуклая оболочка S 1 изображена на рисунке 2 б), где Ь 0 = (0,0) т , Ь 1 = (4,0) т и множество A задается в (1).

Рассмотрим другое представление суммы (5) (многогранника и отрезка). Множество convA y можно получить смещая convA на вектор v, при этом «запоминая» весь след смещения (рис. 3).

Рис. 3. Множество А ^ и вектор смещения v

В следующей лемме сформулировано правило по выявлению крайних точек множества convA y .

Лемма 1. Для каждой точки a i из множества А справедливо:

  • 1)    Если v ^ К (a i ) , то a i + v является крайней для conv A y .

В противном случае a i + v не является крайней для conv A y .

  • 2)    Если v ^ К(ai), то aiявляется крайней для convAy.

  • 3.    Критерий крайности точки в сумме двух политопов

В противном случае a i не является крайней для convA y .

Замечание 1. Лемма 1 задает необходимое и достаточное условие крайности точки для суммы политопа и отрезка.

Продемонстрируем графически условия леммы для точек a 0 и a 0 + v из рисунка 3. Изобразим конус К (a 0 ) и векторы v, v (рис. 4). На рисунке 4 видно, что v ^ К (a 0 ).

Рис. 4. Проверка условий леммы 1

Получаем, что точка а 0 + v является крайней. Теперь рассмотрим второй пункт леммы. Вектор v принадлежит конусу К 0 ). Тогда а 0 не является крайней.

Перейдем к общему случаю суммы двух политопов (2):

S := conv А + conv В = conv ^J ^J г + b j ).                 (6)

г Е 0:т j E 0 mb

Сформулируем необходимое и достаточное условие крайности точки для политопа (6). Критерий. Зафиксируем г Е 0 : т и j Е 0 : т ь . Для того чтобы точка а г + b j была крайней в политопе S, необходимо и достаточно, чтобы конусы К(b j ) и К(а г ) не пересекались.

Проиллюстрируем применение критерия на примере. Зададим множество

В -{©, (—60, ©}-

Рассмотрим сумму (рис. 5)

S -H^W). @. (fX^-GXD-G)}-

Рис. 5. Сумма двух политопов

Положим г = 0, j = 0 и проверим условия критерия для точки а 0 + b 0 , то есть (0, 3) Т . На рисунке 6 изображены конусы К 0 ) и К (b 0 ). Видно, что К (b 0 ) пересекает К 0 ). Тогда точка (0, 3) Т не является крайней для многоугольника S.

Пусть теперь г = 1, j = 0 и проверим условия критерия для точки а 1 + b 0 , то есть ( 2, 6) Т . На рисунке 7 изображены конусы К 1 ) и К (b 0 ). Очевидно, что К (b 0 ) не пересекает К 1 ). Тогда точка ( 2, 6) Т является крайней для многоугольника S .

Более естественно доказывается эквивалентная критерию следующая теорема о некрайности точки в сумме S :

Рис. 7. Проверка критерия в точке а 1 + Ь 0

Теорема. Зафиксируем i Е 0 : т и j Е 0 : т ^ . Для того чтобы точка a i + b j не была крайней в политопе S, необходимо и достаточно, чтобы конусы К(b j ) и К(a i ) пересекались.

Доказательство. Приведем вспомогательные рассуждения.

Пусть точка ж принадлежит политопу convA. Тогда существуют неотрицательные а0, а1,..., От, для которых ж = У^ ак ак,   "^2 ак = 1.

к Е 0:т         к Е 0:т

Если ж = ai, то вектор ж — ai принадлежит конусу К(ai) и представим в виде следующей линейной комбинации ж — ai = «о(ао — ai) + • • • + Oi(at — ai) + • • • + От(ат — ai), где хотя бы один из коэффициентов ак положителен при к Е {0 : т} \ {i}.

Рассмотрим М£ = A(ai)l — вектор с индексом I в множестве A(ai) и аналогично vk = B(bj)к, где I Е 1 : т, h Е 1 : т^. Для ж Е convA справедливо ж — ai = о00п + а1и1 + а2и2 + • • • + атит

52 a i ^ i ,

£С1:т где а = а и а = а^-1 при I Е 1 : г, а = а при I Е г + 1 : т. Следовательно,

У а = 1 — а, то есть 0 6 У «I 6 1.(8)

1 Е 1:т1

Аналогично из у Е conv В следует существование неотрицательных в1, в2, • • •, вть, для которых у - bj = Р1У1 + в2^2 +-----+ втьУть = У вкУк.(9)

к Е 1:т ь

Для любой точки z Е conv А + conv В найдутся, согласно (2), ж Е conv А и у Е Е conv В, для которых z = ж + у. Сложив (7) и (9), получим

Z = (аг + bj)+ У агиг + у вкУк.(10)

1 Е 1:т          К Е 1:т ь

Из определения 3 следует, что для любой не крайней точки с из политопа S найдутся различные точки z, А Е S , для которых векторы z с и z ' с противоположны (и потому z + z' = 2с).

Необходимость. Пусть точка аг + bj не является крайней для политопа S. Тогда найдутся различные точки z и z' из S, для которых z + z' = 2(аг + bj).(11)

Представим точки z и z' в виде (10), то есть z = (аг + bj)+ У а£и£ + у вкУк,(12)

1Е1:т          КЕ1:ть z' = (а + bj)+ У а^и^ + У в>к,(13)

1Е1:т          кЕ1:ть где все а^, вк, а'г, вк неотрицательны. Складывая равенства (12) и (13), получим z + z' = 2(аг + bj) — У^ (а1 + а1)и1 + У (вк + вк)ук,

1Е1:т                  кЕ1:ть откуда, учитывая (11), имеем

У 1 + а^и е = У к + в' к к .                   (14)

1 Е 1:т                       к Е 1:т ь

Вектор в левой части равенства (14) ненулевой (иначе z = z ' = а г + b j , а это противоречит условию z = z ' ) и принадлежит конусу К(а г ), а также К(b j ), то есть справедливо

К (b j ) Q К г ) = 0 .

Достаточность. Пусть конусы —К(bj) и К(аг) пересекаются. Тогда найдутся два ненулевых вектора qa Е К(аг) и q^ Е К(bj), для которых выполняется равенство q« = — qb.                                      (15)

Покажем, что существуют две разные точки z, z' Е S такие, что выполняется z + z' = = 2(a j + b j ).

Согласно определению конусов К (a t ) и К(b j ) справедливо представление

9а = 52 aiW, 9b = 52 вь^ь, i£1:m                hElvm^

где все коэффициенты al и вн неотрицательны и хотя бы по одному из них положителен. Далее найдем достаточно малое положительное число у, для которого точки z и z' вида z = (а + bj) + у 52 aiW, iG1:m

z' = (а{ + bj)+ у 52 вь^ь кЕ1:ть принадлежат политопу S (см. (10)). Согласно выражениям (7)-(10) коэффициент у должен удовлетворять системе неравенств:

52 ya i 6 1,    52 ув н 6 1.

i E 1:m               h ^ 1:m ^

Выберем любое число γ в пределах

0 < у 6 min *

( E a?)

\i E 1:m   /

- 1

- 1

Складывая равенства (16) и (17), получим z + z' = 2(аг + bj) + у (9a + 9b), откуда согласно (15) справедливо равенство z — (at + bj) — —(z — (at + bj)).

Если z = z' , то в силу (16) и (17) получим, что 9 а = 9 b . В то же время (см. (15)) 9 а = 9 b . A это возможно, если 9 а и 9 b нулевые вектора, что противоречит исходным предположениям.

Получаем, что z = z' и точка a t + b j принадлежит середине отрезка conv { z,z ' } , то есть a t + b j не является крайней в политопе S .

Замечание 2. Доказательство леммы 1 проводится аналогично, если вместо конуса К(b j ) использовать вектор v.

4.    Задача линейного программирования

Рассмотрим эффективный способ проверки критерия крайности точки из теоремы.

Вопрос о пересечении конусов К(at) и —К(bj) эквивалентен согласно равенству (14), существованию нетривиального, неотрицательного решения системы линейных однородных уравнений:

£ aiA(a)i + £ вкВ(bj), = 0П.(18)

l E 1:m              h E 1:m b

Чтобы выполнить ограничения, накладываемые на решения системы (18), добавим следующие условия:

Е ai + ^ вк = 1,(19)

l E 1:m      h E 1:m ^

al > 0, I G 1 : m, вк > 0, h G 1 : ть.(20)

Для проверки совместности системы (18)–(20) воспользуемся универсальным приемом [2]. Рассмотрим задачу линейного программирования

Y ^ min,

£ aiA(at)i + £ вкВ(bj)ь = 0», lE1:m               bE1:m^

£ a + £ в ь + Y = 1,                   (21)

l E 1:m      bEhm ^

a l 0, I G 1 : m, в ь >  0, h G 1 : т ь , y 0.

Заметим, что система ограничений задачи (21) совместна хотя бы для всех a l , в ь , равных нулю, и γ, равной единице. А также целевая функция ограничена снизу (неотрицательна на допустимом множестве), поэтому задача (21) имеет решение.

Если для найденного решения задачи (21) значение целевой функции γ равняется нулю, то система (18)-(20) совместна, то есть конусы К (a t ) и К (b j ) пересекаются.

Предложенный в теореме критерий идентификации крайних точек для суммы политопов использует напрямую конусы, порожденные складываемыми политопами. Известные работы в этой области, например, [3; 4], оперируют нормальными конусами к вышеописанным множествам. Здесь под нормальным конусом, порожденным множеством С , понимается множество

N(С ) = { ж G R | ( ж, с ) 6 0,с G С } .

Замечание 3. Критерий крайности точки a t + b 3 для множества conv A + conv В может быть сформулирован в виде:

a t + b j — крайняя О N(К (a t )) П N(К(b 3 )) = 0 .             (22)

Обоснование (22) подробно изложено, например, в диссертации [7].

В свою очередь, пересечение нормальных конусов в (22) проверяется решением следующей задачи линейного программирования [3, с. 1270]:

Л о ^ max,

( A(a ^ ) i , Л ) + Л о 6 0, I G 1 : т,

( B(b j ) ь , Л ) + Л о 6 0, h G 1:т ь ,                          (23)

Ло 6 1, где Л G R”, Л0 G R.

Несложно проверить, что задачи (21) и (23) являются двойственными.

Выражаю благодарность неизвестному рецензенту за конструктивную критику, благодаря которой статья приняла свой окончательный вид.

ПРИМЕЧАНИЕ

  • 1    Исследование выполнено при финансовой поддержке гранта СПбГУ № 9.38.205.2014.

Список литературы Нахождение крайних точек суммы двух политопов

  • Лейхтвейс, К. Выпуклые множества/К. Лейхтвейс. -М.: Наука, 1985. -336 c.
  • Малоземов, В.Н. Модифицированный симплекс-метод/В.Н. Малоземов//Семинар «DHA & CAGD». Избранные доклады. 20 ноября 2010 г. -Электрон. текстовые дан. -Режим доступа: http://dha.spb.ru/reps10.shtml#1120. -Загл. с экрана.
  • Fukuda, K. From the zonotope construction to the Minkowski addition of convex polytopes/K. Fukuda//J. Symbolic Comput. -2004. -Vol. 38. -P. 1261-1272.
  • Gritzmann, P. Minkowski addition of polytopes: computational complexity and applications to Grobner bases/P. Gritzmann, B. Sturmfels//SIAM J. Discrete Math. -1993. -Vol. 6. -P. 246-269.
  • Preparata, F.P. Computational Geometry: An Introduction/F.P. Preparata, M.I. Shamos. -N. Y.: Springer, 1985. -398 p.
  • Rockafellar, R. Convex analysis/R. Rockafellar. -Princeton: Princeton University Press, 1970. -470 p.
  • Weibel, C. Minkowski sums of polytopes: Ph.D. Thesis/C. Weibel. -Lausanne: EPFL, 2007. -114 p.
Статья научная