Пересечение полуплоскостей, связь с выпуклыми оболочками — различия между версиями
Igorjan94 (обсуждение | вклад) м |
Igorjan94 (обсуждение | вклад) м |
||
Строка 23: | Строка 23: | ||
Точки в <tex> P </tex> появляются в <tex> UH(P) </tex> по увелечению х-координаты. Прямые в <tex> P^* </tex> появляются в <tex> LE(P^*) </tex> по уменьшению угла наклона. Так как угол наклона соответствует х-координате, то список точек <tex> UH(P) </tex> слева-направо соответствует списку справа-налево ребер <tex> LE(P^*) </tex>. Таким образом верхний конвекс-халл(англ. ''upper convex hull'') соответствует нижней огибающей прямых(англ ''lower envelope''). Аналогично для нижнего СН и верхней огибающей. | Точки в <tex> P </tex> появляются в <tex> UH(P) </tex> по увелечению х-координаты. Прямые в <tex> P^* </tex> появляются в <tex> LE(P^*) </tex> по уменьшению угла наклона. Так как угол наклона соответствует х-координате, то список точек <tex> UH(P) </tex> слева-направо соответствует списку справа-налево ребер <tex> LE(P^*) </tex>. Таким образом верхний конвекс-халл(англ. ''upper convex hull'') соответствует нижней огибающей прямых(англ ''lower envelope''). Аналогично для нижнего СН и верхней огибающей. | ||
− | Более формально: точки <tex> p, q </tex> {{---}} ребро верхнего конвекс-халла тогда и только тогда, когда все остальные точки из <tex> P </tex> лежат ниже прямой, через них проходящей. В dual-пространстве получаем, что <tex> \forall r^*, r \in P </tex> \ <tex> \{p, q\} </tex> лежат над точкой пересечения <tex> p^* </tex> и <tex> q^* </tex>. Это как раз условие, что | + | Более формально: точки <tex> p, q </tex> {{---}} ребро верхнего конвекс-халла тогда и только тогда, когда все остальные точки из <tex> P </tex> лежат ниже прямой, через них проходящей. В dual-пространстве получаем, что <tex> \forall r^*, r \in P </tex> \ <tex> \{p, q\} </tex> лежат над точкой пересечения <tex> p^* </tex> и <tex> q^* </tex>. Это как раз условие, что <tex> p^* \cap q^* </tex> {{---}} вершина <tex> LE(P^*) </tex>. |
== Источники == | == Источники == |
Версия 23:32, 21 февраля 2014
Задача: есть конечное множество полуплоскотей, найти фигуру их пересечения или сообщить что оно пусто.
Для начала заметим, что если пересечение не пусто, то оно выпукло. (Доказательство — Пересечение выпуклых фигур выпукло, а полуплоскоть выпукла)
Рассмотрим отображение
между точками и прямыми, такое что:
Будем обозначать, что
,Факт дуализма:
- Точка лежит под/на/над прямой тогда и только тогда, когда лежит под/на/над прямой ;
Тогда точка
принадлежит тогда и только тогда, когда существует такая не вертикальная прямая , что лежит под .Перефразируем для dual-пространства:
- Существует точка на прямой лежит под любой прямой из .
Точки в
появляются в по увелечению х-координаты. Прямые в появляются в по уменьшению угла наклона. Так как угол наклона соответствует х-координате, то список точек слева-направо соответствует списку справа-налево ребер . Таким образом верхний конвекс-халл(англ. upper convex hull) соответствует нижней огибающей прямых(англ lower envelope). Аналогично для нижнего СН и верхней огибающей.Более формально: точки
— ребро верхнего конвекс-халла тогда и только тогда, когда все остальные точки из лежат ниже прямой, через них проходящей. В dual-пространстве получаем, что \ лежат над точкой пересечения и . Это как раз условие, что — вершина .Источники
- Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars (2008), Computational Geometry: Algorithms and Applications (3rd edition), Springer-Verlag, ISBN 978-3-540-77973-5 Chapter 11 page 253-254
- http://wwwisg.cs.uni-magdeburg.de/ag/lehre/SS2012/GAG/slides/V12.pdf