Jump to content

Триангуляция многоугольника

Триангуляция многоугольника

В вычислительной геометрии триангуляция многоугольника — это разделение многоугольной области ( простого многоугольника ) P на набор треугольников , [1] т. е. найти набор треугольников с попарно непересекающимися внутренностями, объединение которых равно P .

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

Триангуляция полигона без лишних вершин [ править ]

Со временем был предложен ряд алгоритмов триангуляции многоугольника.

Особые случаи [ править ]

42 возможные триангуляции выпуклого семиугольника ( 7-гранный выпуклый многоугольник). Это число задается 5-м каталонским номером .

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

Общее количество способов триангулировать выпуклый n -угольник по непересекающимся диагоналям есть ( n − 2)-е каталонское число , равное

,

формула, найденная Леонардом Эйлером . [2]

Монотонный многоугольник можно триангулировать за линейное время либо с помощью алгоритма А. Фурнье и Д. Я. Монтуно, [3] или алгоритм Годфрида Туссена . [4]

Метод обрезки ушей [ править ]

Многоугольное ухо

Один из способов триангуляции простого многоугольника основан на теореме о двух ушках , поскольку любой простой многоугольник, по крайней мере, с 4 вершинами без отверстий, имеет по крайней мере два « уха », которые представляют собой треугольники, две стороны которых являются краями многоугольника, и третий полностью внутри него. [5] Затем алгоритм состоит в том, чтобы найти такое ухо, удалить его из многоугольника (в результате чего образуется новый многоугольник, который все еще соответствует условиям) и повторять действия до тех пор, пока не останется только один треугольник.

Этот алгоритм легко реализовать, но он медленнее, чем некоторые другие алгоритмы, и работает только с полигонами без дыр. Реализация, которая хранит отдельные списки выпуклых и вогнутых вершин, будет работать за O( n 2 ) время. Этот метод известен как обрезка ушей , а иногда и обрезка ушей . Эффективный алгоритм отрезания ушей был открыт Хоссамом ЭльДжинди, Хейзел Эверетт и Годфридом Туссеном . [6]

Монотонная триангуляция многоугольника [ править ]

Разбиение многоугольника на монотонные многоугольники

Простой многоугольник называется монотонным относительно прямой L , если любая линия, ортогональная L, пересекает многоугольник не более двух раз. Монотонный многоугольник можно разбить на две монотонные цепи . Многоугольник, монотонный относительно оси y, называется y-монотонным . Монотонный многоугольник с n вершинами можно триангулировать за время O( n ) . Предполагая, что данный многоугольник является y-монотонным, жадный алгоритм начинает с обхода одной цепи многоугольника сверху вниз, добавляя диагонали всякий раз, когда это возможно. [1] Легко видеть, что алгоритм можно применить к любому монотонному многоугольнику.

Триангуляция немонотонного многоугольника [ править ]

Если многоугольник не является монотонным, его можно разделить на монотонные подполигоны за время O( n log n ), используя метод прогонки линий . Алгоритм не требует, чтобы многоугольник был простым, поэтому его можно применять к многоугольникам с отверстиями .Как правило, этот алгоритм может триангулировать плоское подразделение с n вершинами за время O( n log n ), используя O( n ) . пространство [1]

Двойной график триангуляции [ править ]

Полезным графом, который часто ассоциируется с триангуляцией многоугольника P, является двойственный граф . Учитывая триангуляцию TP P причем определяется как граф , , граф G ( TP . ) множество вершин которого являются треугольниками TP , две вершины (треугольники) смежны тогда и только тогда, когда они имеют общую диагональ Легко заметить, что ) дерево G(TP максимальной степени 3 .

Вычислительная сложность [ править ]

До 1988 года вопрос о том, простой многоугольник можно ли триангулировать быстрее, чем за время O( n log n ), был открытой проблемой вычислительной геометрии. [1] Затем Тарьян и Ван Вик (1988) открыли O( n log log n ) : алгоритм триангуляции за время [7] позже упрощено Киркпатриком, Клоу и Тарджаном (1992) . [8] Несколько улучшенных методов со сложностью O( n log * n ) (на практике неотличимое от линейного времени ). [9] [10] [11]

Бернар Шазель показал в 1991 году, что любой простой многоугольник можно триангулировать за линейное время, хотя предложенный алгоритм очень сложен. [12] Известен также более простой рандомизированный алгоритм с линейным ожидаемым временем. [13]

Алгоритм разложения Зейделя [10] и метод триангуляции Шазеля подробно обсуждаются в Li & Klette (2011) . [14]

Временная сложность триангуляции n- вершинного многоугольника с отверстиями имеет Ω( n log n ) нижнюю границу в основе дерева алгебраических вычислений . моделях вычислений на [1] Можно вычислить количество различных триангуляций простого многоугольника за полиномиальное время, используя динамическое программирование , и (на основе этого алгоритма подсчета) генерировать равномерно случайные триангуляции за полиномиальное время. [15] Однако подсчет триангуляций многоугольника с отверстиями является #P-полным , поэтому маловероятно, что это можно сделать за полиномиальное время. [16]

Связанные объекты и проблемы [ править ]

См. также [ править ]

Ссылки [ править ]

  1. ^ Jump up to: а б с д и Марк де Берг , Марк ван Кревелд , Марк Овермарс и Отфрид Шварцкопф (2000), «3: Триангуляция полигонов», Вычислительная геометрия (2-е изд.), Springer-Verlag , стр. 45–61, ISBN  3-540-65620-0 {{citation}}: CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ Пиковер, Клиффорд А. (2009), The Math Book , Sterling, стр. 184
  3. ^ Фурнье, Ален ; Монтуно, Дельфин Ю. (1984), «Триангуляция простых многоугольников и эквивалентные проблемы», ACM Transactions on Graphics , 3 (2): 153–174, doi : 10.1145/357337.357341 , ISSN   0730-0301 , S2CID   33344266
  4. ^ Туссен, Годфрид Т. (1984), «Новый линейный алгоритм триангуляции монотонных многоугольников», Pattern Recognition Letters , 2 (3): 155–158, Bibcode : 1984PaReL...2..155T , doi : 10.1016/0167- 8655(84)90039-4
  5. ^ Мейстерс, Гэри Хослер (1975), «У многоугольников есть уши» , American Mathematical Monthly , 82 (6): 648–651, doi : 10.2307/2319703 , JSTOR   2319703
  6. ^ ЭльДжинди, Хосам; Эверетт, Хейзел; Туссен, Годфрид Т. (1993), «Отрезание уха с помощью обрезки и поиска», Pattern Recognition Letters , 14 (9): 719–722, Бибкод : 1993PaReL..14..719E , doi : 10.1016/0167- 8655(93)90141-у
  7. ^ Тарьян, Роберт Э .; Ван Вик, Кристофер Дж. (1988), «Алгоритм за время O ( n log log n ) для триангуляции простого многоугольника», SIAM Journal on Computing , 17 (1): 143–178, CiteSeerX   10.1.1.186.5949 , дои : 10.1137/0217010 , МР   0925194
  8. ^ Киркпатрик, Дэвид Г .; Клове, Мария М .; Тарьян, Роберт Э. (1992), «Триангуляция многоугольника за время O ( n log log n ) с простыми структурами данных», Discrete & Computational Geometry , 7 (4): 329–346, doi : 10.1007/BF02187846 , MR   1148949
  9. ^ Кларксон, Кеннет Л .; Тарьян, Роберт ; ван Вик, Кристофер Дж. (1989), «Быстрый алгоритм Лас-Вегаса для триангуляции простого многоугольника», Discrete & Computational Geometry , 4 (5): 423–432, doi : 10.1007/BF02187741
  10. ^ Jump up to: а б Зайдель, Раймунд (1991), «Простой и быстрый инкрементальный рандомизированный алгоритм для вычисления трапециевидных разложений и триангуляции многоугольников», Computational Geometry , 1 : 51–64, CiteSeerX   10.1.1.55.5877 , doi : 10.1016/0925-7721(91) )90012-4
  11. ^ Кларксон, Кеннет Л .; Коул, Ричард; Тарьян, Роберт Э. (1992), «Рандомизированные параллельные алгоритмы для трапециевидных диаграмм», Международный журнал вычислительной геометрии и приложений , 2 (2): 117–133, doi : 10.1142/S0218195992000081 , MR   1168952
  12. ^ Шазель, Бернар (1991), «Триангуляция простого многоугольника за линейное время», Дискретная и вычислительная геометрия , 6 (3): 485–524, doi : 10.1007/BF02574703 , ISSN   0179-5376
  13. ^ Амато, Нэнси М .; Гудрич, Майкл Т .; Рамос, Эдгар А. (2001), «Рандомизированный алгоритм триангуляции простого многоугольника за линейное время», Discrete & Computational Geometry , 26 (2): 245–265, doi : 10.1007/s00454-001-0027-x , ISSN   0179-5376
  14. ^ Ли, Фаджи; Клетте, Рейнхард (2011), Кратчайшие евклидовы пути , Springer , doi : 10.1007/978-1-4471-2256-2 , ISBN  978-1-4471-2255-5
  15. ^ Эпштейн, Питер; Сак, Йорг-Рюдигер (1994), «Случайная генерация триангуляции», ACM Transactions on Modeling and Computer Simulation , 4 (3): 267–278, doi : 10.1145/189443.189446 , S2CID   14039662
  16. ^ Эппштейн, Дэвид (2019), «Подсчет триангуляции многоугольника труден», Proc. 35-й Международный Симп. Вычислительная геометрия , Международные труды Лейбница по информатике (LIPIcs), том. 129, Schloss Dagstuhl, стр. 33:1–33:17, arXiv : 1903.04737 , doi : 10.4230/LIPIcs.SoCG.2019.33 , ISBN  9783959771047 , S2CID   75136891

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6aa3a709d02eea6f701a3e642ac4ce94__1713036300
URL1:https://arc.ask3.ru/arc/aa/6a/94/6aa3a709d02eea6f701a3e642ac4ce94.html
Заголовок, (Title) документа по адресу, URL1:
Polygon triangulation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)