Складність алгоритму триангуляції тривожної сили Делоне


16

У книзі Марк де Берг та ін. "Обчислювальна геометрія: алгоритми та програми" є дуже простий алгоритм грубої сили для обчислення триангуляцій Делоне. В алгоритмі використовується поняття незаконних країв - ребра, які можуть не відображатись у дійсній триангуляції Делоне і повинні бути замінені деякими іншими ребрами. На кожному кроці алгоритм просто знаходить ці незаконні ребра та виконує необхідні переміщення (звані переверненням ребер ), поки не буде незаконних країв.

Алгоритм ЮридичнаТригуляція ( T )

Вхідні дані . Деякі тріангуляції T точкового безлічі P .
Вихідні дані . Законний тріангуляція P .

в той час як T містить незаконне ребро pipj
do
Нехай pipjpk і pipjpl - два трикутники, що примикають до pipj .
Видаліть pipj з T , а замість цього додайте pkpl .
повернутися T .

Я чув, що цей алгоритм працює в O(n2) час у гіршому випадку; однак мені незрозуміло, чи правильне це твердження чи ні. Якщо так, то як можна довести цю верхню межу?


5
У формі, яку ви вказали вище, потрібно час. Однак за допомогою стека це можна зробити за O ( n 2 ) час. Ви можете переглянути останню сторінку в цих конспектах лекцій . Основний аргумент полягає в тому, що може бути не більше реберних перегородок. O(n3)O(n2)(n2)
rizwanhudda

2
@rizwanhudda: Чому б не зробити цю відповідь?
Рафаель

Відповіді:


8

Тріангуляція Делоне може розглядатися як нижній опуклий корпус 2d точкового набору, піднятий до параболоїда. Таким чином, якщо ви берете набір 2d точок і призначаєте кожну точку(xi,yi) координата г я = х 2 я + у 2 1 , то проекція нижньої опуклої оболонки в х у -плоскость дає вам триангуляція Делоне.zzi=xi2+y12xy

Використовуючи цю перспективу, що означає, що край є незаконним? Перш за все, для кожної тріангуляції T ми можемо використовувати параболічні карту , щоб отримати 3d поверхні (тріангулірованную) , що проекти , аж до Т . Звичайно, ця поверхня не обов'язково є опуклою, якби вона була опуклою, T була б триангуляцією Делоне. Простіше кажучи, край ( p i , p j ) - це перешкода для опуклості поверхні, увігнутого краю. Перевертаючи цей край, ми змінюємо ситуацію на піднятій поверхні лише локально. Отже, давайте подивимось на 4 пункти(pi,pj)TTT(pi,pj) . У 3d вони утворюють тетраедр, який виступає вниз на чотирикутник. Оскільки два трикутники p i p j p k і p i p j p l визначають увігнутий край ( p i , p j ) , трикутники p k p l p i і p k p l p j визначають опуклий край (pi,pj,pk,plpipjpkpipjpl(pi,pj)pkplpipkplpj . Тому перевертання незаконного краю відповідає заміні увігнутого краю опуклим краєм у підйомі. Зверніть увагу, що цей відкид може перетворити інші опуклі краї увігнуті.(pl,pk)

3D інтерпретація фліп Зауваження: зображення не є геометрично правильним і його слід розглядати лише як ескіз.

Нехай - триангуляція після відкидання. Підняв поверхню Т ' «містить» поверхню Т . Під цим я маю на увазі, що якщо ви дивитесь на дві поверхні з площини x y, ви бачите лише трикутники з поверхні T ' (або трикутники, які знаходяться на обох поверхнях). Можна також сказати, що поверхня T ' укладає більший об'єм. Крім того, ребро ( p i , p j ) лежить тепер "позаду" піднятої поверхні, індукованої T ' при спостереженні з площини x y .TTTxyTT(pi,pj)Т'ху

Під час фліп-послідовності ми отримуємо послідовність поверхонь із суворо зростаючим об'ємом. Таким чином, край лежить «позаду» всіх цих поверхонь. Отже, він ніколи не може з’явитися знову під час гортання. Оскільки є лише n вибрати 2 можливих ребра, у нас є максимум O ( n 2 ) фліп.(pi,pj)нО(н2)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.