Алгоритм Форчуна — це алгоритм замітання прямою для побудови діаграми Вороного для множини точок на площині за час із використанням простору. Алгоритм вперше оприлюднив Стів Форчун у статті «Алгоритм лінійної розгортки для діаграми Вороного».
Оптимальність
Оскільки задача сортування дійсних чисел зводиться до задачі обчислення діаграми Вороного, то маємо, що довільний алгоритм для обчислення діаграми Вороного потребує часу в найкращому випадку. Отже, алгоритм Форчуна — оптимальний.
Базова структура
Нехай буде множиною точок на площині. Позначимо діаграму Вороного для як Як також позначимо тільки ребра і вершини розбиття. Комірку яка відповідає точці позначимо як
Для двох точок та на площині ми визначаємо (бісектор) для та як перпендикулярний бісектор відрізку . Цей бісектор розбиває площину на дві півплощини. Позначимо півплощину, що містить як , а іншу півплощину, що містить , як Зауважимо, що тоді і тільки тоді, якщо відстані З цього випливає таке спостереження:
Отже, є перетином півплощини і, звідси, можливо необмеженим відкритим опуклим полігональним регіоном з не більше ніж вершиною і не більше ніж ребром.
Теорема колінеарних точок: Нехай буде множиною з точок на площині. Якщо всі точки лежать на одній прямій, то складається з паралельної лінії. Інакше, зв'язна і її ребра це будуть або відрізки, або промені.
Теорема вершин і ребер: Для діаграми Вороного правильно таке:
- Точка є вершиною , якщо найбільше порожнє коло має три або більше точок у себе на границі.
- Бісектор між точками і визначає ребро тоді і тільки тоді, якщо існує що лежить не ньому для якої має саме ці дві точки на своїй границі і жодного іншого.
Теоретичне підґрунтя
Для обчислення діаграми Вороного в алгоритмі Форчуна використовується метод лінійної розгортки. Ми маємо Нашу лінію розгортки ми позначимо як У перебігу алгоритму ми повинні рухати нашу пряму розгортки згори додолу і під час цього руху підтримувати перетин із цією лінією. Але це не так просто, оскільки частина залежить частково і від точок, що розташовані під
Позначимо замкнену півплощину над як відстань від до будь-якої точки під більша ніж відстань від до самої Отже, найближча до точка не може бути нижчим від якщо щонайменше так близько до якогось місця як близько до Геометричне місце точок, які ближче до деякої точки ніж до обмежене параболою, оскільки її ексцентриситет дорівнює 1. Ми будемо називати послідовність таких параболічних дуг береговою лінією.
Спостереження: берегова лінія є монотонною, тобто кожна вертикальна пряма перетинає її саме в одній точці.
Зауважимо, що точки зустрічі різних параболічних дуг лежать на ребрах діаграми Вороного. Ці точки точно відслідковують поки лінія розгортки рухається додолу. Отже, замість підтримування перетину діаграми з ми будемо відслідковувати берегову лінію. Ми не будемо зберігати параболи явно і не будемо відслідковувати берегову лінію неперервно, натомість ми будемо відслідковувати появу і зникнення дуг на ній.
Параболічні дуги задаються так:
Тобто, найнижча точка параболи у а множник переводить дугу з суто вертикальної прямої у момент появи точки на до все ширшої і ширшої параболи з тим як рухається додолу.
Назвемо подією місця, подію коли пряма розгортки зустрічає точку. У цей момент утворюється нова дуга.
Лема появи дуги: Єдиним способом появи нової дуги на береговій лінії є подія місця.
Назвемо подію коли берегова пряма досягає найнижчої точки кола на границі якого є не менше трьох точок, що визначають послідовні дуги на береговій лінії подією кола.
Лема зникнення дуги: Єдиним способом зникнення дуги з берегової лінії є подія кола.
Лема: Кожна вершина виявлена за допомогою події кола.
Щоб виявити подію кола щодо певної дуги місця , треба перевірити, чи збігаються точки зустрічі цієї дуги з сусідніми дугами місць та тобто чи буде точка перетину прямих та на яких лежать ребра діаграми Вороного, лежати нижче берегової лінії. Оскільки лінії і перпендикулярні відповідно відрізкам та а їхні напрямки узгоджені (див рис.), то ця умова еквівалентна тому, що . Це, у свою чергу, свідчить про лівоорієнтованість трикутника . З властивостей орієнтованої площі трикутника виплоиває, що точки зустрічі збігаються тоді і тільки тоді, коли
Структури для алгоритму
Ми хочемо обчислити діаграму Вороного, отже нам потрібні структури, які зберігають частину діаграми яку ми вже обчислили. Також нам потрібні дві стандартні для алгоритмів лінійної розгортки структури: черга подій і структура яка представляє статус лінії розгортки
- Ми зберігаємо діаграму Вороного під час побудови як подвійно зв'язаний список ребер. Однак, діаграма Вороного не є правильним розбиттям площини, тому що вона має нескінченні ребра, і подвійно зв'язаний список ребер не може представити таку структуру. Під час побудови це не проблема, оскільки представлення берегової лінії наведене далі уможливить ефективний доступ під час побудови до необхідних частин подвійно зв'язаного списку ребер. Для виправлення цього, ми додамо великий обмежувальний прямокутник навколо сцени. Кінцеве розбиття, яке ми обчислимо, складатиметься з обмежувального прямокутника і діаграми Вороного всередині.
- Берегова лінія представлена збалансованим деревом пошуку це і статус-структура. Її листи відповідають дугам берегової лінії, які монотонні, впорядкованим чином: найлівіший лист представляє найлівішу дугу, і т. д. Кожен лист зберігає точку, що визначає дугу на береговій лінії. Внутрішні вузли представляють точки зустрічі на береговій лінії. Точка зустрічі зберігається у вузлі як впорядкований кортеж точок де визначає параболу ліворуч від точки зустрічі, а визначає параболу праворуч. Використовуючи це представлення, ми можемо знайти за дугу на береговій лінії, що лежить над новим місцем. У внутрішньому вузлі ми просто порівнюємо координати точок і точки зустрічі, яку можна обчислити з кортежу точок і позиції прямої розгортки у константний час.
- У ми також зберігаємо вказівники на інші дві структури даних використовувані впродовж розгортки. Кожен лист представляє дугу зберігає зберігає вказівник до вузла в черзі подій, який представляє подію кола в якій зникне. Якщо такої події немає, то вказівник нульовий. Нарешті, кожен внутрішній вузол має вказівник на одне з півребер ребра, що відслідковується точкою зустрічі представленою
- Черга подій реалізована як черга з пріорітетом, де пріоритет це координата. Вона зберігає надхідні події, що вже відомі. Для події місця ми просто зберігаємо місце. Для події кола ми зберігаємо найнижчу точку кола із вказівником на лист що представляє дугу, яка зникне у події.
Алгоритм
Тут ми опишемо алгоритм лінійної розгортки детально. Зауважимо, що після обробки всіх подій, коли черга подій спорожніла, берегова лінія ще не зникла. Точки зустрічі, що досі присутні відповідають до ребер-променів діаграми Вороного. Оскільки подвійно зв'язаний список ребер не може представляти напів-нескінченні ребра, ми повинні додати обмежувальний прямокутник до якого можна буде прикріпити ці ребра.
Алгоритм ДіаграмаВороного На вході: Множина точок на площині. На виході: Діаграма Вороного усередині обмежувального прямокутника представлена за допомогою подвійно зв'язаного списку ребер
|
ОбробитиПодіюМісця
|
ОбробитиПодіюКола
|
Примітки
- Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf (2000), Computational Geometry (вид. 2nd revised), Springer-Verlag, ISBN Section 7.2: Computing the Voronoi Diagram: pp.151—160.
- Austin, David, , Feature Column, American Mathematical Society, архів оригіналу за 13 червня 2008, процитовано 22 липня 2015.
- Steven Fortune. A sweepline algorithm for Voronoi diagrams. Proceedings of the second annual symposium on Computational geometry. Yorktown Heights, New York, United States, pp.313—322. 1986. . ACM Digital LibrarySpringerLink[недоступне посилання]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Algoritm Forchuna ce algoritm zamitannya pryamoyu dlya pobudovi diagrami Voronogo dlya mnozhini tochok na ploshini za chas O n log n displaystyle O n log n iz vikoristannyam O n displaystyle O n prostoru Algoritm vpershe oprilyudniv Stiv Forchun u statti Algoritm linijnoyi rozgortki dlya diagrami Voronogo Animaciya algoritmuOptimalnistOskilki zadacha sortuvannya dijsnih chisel zvoditsya do zadachi obchislennya diagrami Voronogo to mayemo sho dovilnij algoritm dlya obchislennya diagrami Voronogo potrebuye W n log n displaystyle Omega n log n chasu v najkrashomu vipadku Otzhe algoritm Forchuna optimalnij Bazova strukturaNehaj P p 1 p 2 p n displaystyle P p 1 p 2 dots p n bude mnozhinoyu tochok na ploshini Poznachimo diagramu Voronogo dlya P displaystyle P yak Vor P displaystyle mbox Vor P Yak Vor P displaystyle mbox Vor P takozh poznachimo tilki rebra i vershini rozbittya Komirku Vor P displaystyle mbox Vor P yaka vidpovidaye tochci p i displaystyle p i poznachimo yak V p i displaystyle mathcal V p i Dlya dvoh tochok p displaystyle p ta q displaystyle q na ploshini mi viznachayemo bisektor dlya p displaystyle p ta q displaystyle q yak perpendikulyarnij bisektor vidrizku p q displaystyle overline pq Cej bisektor rozbivaye ploshinu na dvi pivploshini Poznachimo pivploshinu sho mistit p displaystyle p yak h p q displaystyle h p q a inshu pivploshinu sho mistit q displaystyle q yak h q p displaystyle h q p Zauvazhimo sho r h p q displaystyle r in h p q todi i tilki todi yaksho vidstani d i s t r p lt d i s t r q displaystyle dist r p lt dist r q Z cogo viplivaye take sposterezhennya V p i 1 j n j i h p i p j displaystyle mathcal V p i bigcap underset j neq i 1 leq j leq n h p i p j Otzhe V p i displaystyle mathcal V p i ye peretinom n 1 displaystyle n 1 pivploshini i zvidsi mozhlivo neobmezhenim vidkritim opuklim poligonalnim regionom z ne bilshe nizh n 1 displaystyle n 1 vershinoyu i ne bilshe nizh n 1 displaystyle n 1 rebrom Teorema kolinearnih tochok Nehaj P displaystyle P bude mnozhinoyu z n displaystyle n tochok na ploshini Yaksho vsi tochki lezhat na odnij pryamij to Vor P displaystyle mbox Vor P skladayetsya z n 1 displaystyle n 1 paralelnoyi liniyi Inakshe Vor P displaystyle mbox Vor P zv yazna i yiyi rebra ce budut abo vidrizki abo promeni Tochka u seredini kola iz troma tochkami na koli chervone ye vershinoyu iz dvoma tochkami na nomu fioletove lezhit na rebri diagrami Voronogo Teorema vershin i reber Dlya diagrami Voronogo Vor P displaystyle mbox Vor P pravilno take Tochka q displaystyle q ye vershinoyu Vor P displaystyle mbox Vor P yaksho najbilshe porozhnye kolo C p q displaystyle C p q maye tri abo bilshe tochok u sebe na granici Bisektor mizh tochkami p i displaystyle p i i p j displaystyle p j viznachaye rebro Vor P displaystyle mbox Vor P todi i tilki todi yaksho isnuye q displaystyle q sho lezhit ne nomu dlya yakoyi C p q displaystyle C p q maye same ci dvi tochki na svoyij granici i zhodnogo inshogo Teoretichne pidgruntyaDlya obchislennya diagrami Voronogo v algoritmi Forchuna vikoristovuyetsya metod linijnoyi rozgortki Mi mayemo P p 1 p 2 p n displaystyle P p 1 p 2 dots p n Nashu liniyu rozgortki mi poznachimo yak ℓ displaystyle ell U perebigu algoritmu mi povinni ruhati nashu pryamu rozgortki zgori dodolu i pid chas cogo ruhu pidtrimuvati peretin Vor P displaystyle mbox Vor P iz ciyeyu liniyeyu Ale ce ne tak prosto oskilki chastina Vor P displaystyle mbox Vor P zalezhit chastkovo i vid tochok sho roztashovani pid ℓ displaystyle ell Beregova liniya dlya diagrami Voronogo poznachena chervonim Poznachimo zamknenu pivploshinu nad ℓ displaystyle ell yak ℓ displaystyle ell q ℓ displaystyle forall q in ell vidstan vid q displaystyle q do bud yakoyi tochki pid ℓ displaystyle ell bilsha nizh vidstan vid q displaystyle q do samoyi ℓ displaystyle ell Otzhe najblizhcha do q displaystyle q tochka ne mozhe buti nizhchim vid ℓ displaystyle ell yaksho q displaystyle q shonajmenshe tak blizko do yakogos miscya p i ℓ displaystyle p i in ell yak q displaystyle q blizko do ℓ displaystyle ell Geometrichne misce tochok yaki blizhche do deyakoyi tochki p i ℓ displaystyle p i in ell nizh do ℓ displaystyle ell obmezhene paraboloyu oskilki yiyi ekscentrisitet dorivnyuye 1 Mi budemo nazivati poslidovnist takih parabolichnih dug beregovoyu liniyeyu Sposterezhennya beregova liniya ye x displaystyle x monotonnoyu tobto kozhna vertikalna pryama peretinaye yiyi same v odnij tochci Zauvazhimo sho tochki zustrichi riznih parabolichnih dug lezhat na rebrah diagrami Voronogo Ci tochki tochno vidslidkovuyut Vor P displaystyle mbox Vor P poki liniya rozgortki ruhayetsya dodolu Otzhe zamist pidtrimuvannya peretinu diagrami z ℓ displaystyle ell mi budemo vidslidkovuvati beregovu liniyu Mi ne budemo zberigati paraboli yavno i ne budemo vidslidkovuvati beregovu liniyu neperervno natomist mi budemo vidslidkovuvati poyavu i zniknennya dug na nij Podiya kola stvoryuyetsyaPodiya kola ne stvoryuyetsya Parabolichni dugi zadayutsya tak b i y 1 2 p i y l y x p i x 2 p i y l y 2 displaystyle beta i y frac 1 2 p i y l y x p i x 2 p i y l y 2 Tobto najnizhcha tochka paraboli u p i x p i y l y 2 displaystyle p i x p i y l y 2 a mnozhnik 1 2 p i y l y displaystyle 1 2 p i y l y perevodit dugu z suto vertikalnoyi pryamoyi u moment poyavi tochki na ℓ displaystyle ell do vse shirshoyi i shirshoyi paraboli z tim yak ℓ displaystyle ell ruhayetsya dodolu Nazvemo podiyeyu miscya podiyu koli pryama rozgortki zustrichaye tochku U cej moment utvoryuyetsya nova duga Lema poyavi dugi Yedinim sposobom poyavi novoyi dugi na beregovij liniyi ye podiya miscya Nazvemo podiyu koli beregova pryama dosyagaye najnizhchoyi tochki kola na granici yakogo ye ne menshe troh tochok sho viznachayut poslidovni dugi na beregovij liniyi podiyeyu kola Lema zniknennya dugi Yedinim sposobom zniknennya dugi z beregovoyi liniyi ye podiya kola Lema Kozhna vershina Vor P displaystyle mbox Vor P viyavlena za dopomogoyu podiyi kola Shob viyaviti podiyu kola shodo pevnoyi dugi a displaystyle alpha miscya p i displaystyle p i treba pereviriti chi zbigayutsya tochki zustrichi ciyeyi dugi z susidnimi dugami misc p s displaystyle p s ta p r displaystyle p r tobto chi bude tochka peretinu pryamih l 1 displaystyle l 1 ta l 2 displaystyle l 2 na yakih lezhat rebra diagrami Voronogo lezhati nizhche beregovoyi liniyi Oskilki liniyi l 1 displaystyle l 1 i l 2 displaystyle l 2 perpendikulyarni vidpovidno vidrizkam p s p i displaystyle p s p i ta p i p r displaystyle p i p r a yihni napryamki uzgodzheni div ris to cya umova ekvivalentna tomu sho p s p i p r lt p displaystyle angle p s p i p r lt pi Ce u svoyu chergu svidchit pro livooriyentovanist trikutnika p s p i p r displaystyle p s p i p r Z vlastivostej oriyentovanoyi ploshi trikutnika viploivaye sho tochki zustrichi zbigayutsya todi i tilki todi koli p i x p s x p r x p s x p i y p s y p r y p s y lt 0 displaystyle begin vmatrix p i x p s x amp p r x p s x p i y p s y amp p r y p s y end vmatrix lt 0 Strukturi dlya algoritmuMi hochemo obchisliti diagramu Voronogo otzhe nam potribni strukturi yaki zberigayut chastinu diagrami yaku mi vzhe obchislili Takozh nam potribni dvi standartni dlya algoritmiv linijnoyi rozgortki strukturi cherga podij i struktura yaka predstavlyaye status liniyi rozgortki ℓ displaystyle ell Mi zberigayemo diagramu Voronogo pid chas pobudovi yak podvijno zv yazanij spisok reber Odnak diagrama Voronogo ne ye pravilnim rozbittyam ploshini tomu sho vona maye neskinchenni rebra i podvijno zv yazanij spisok reber ne mozhe predstaviti taku strukturu Pid chas pobudovi ce ne problema oskilki predstavlennya beregovoyi liniyi navedene dali umozhlivit efektivnij dostup pid chas pobudovi do neobhidnih chastin podvijno zv yazanogo spisku reber Dlya vipravlennya cogo mi dodamo velikij obmezhuvalnij pryamokutnik navkolo sceni Kinceve rozbittya yake mi obchislimo skladatimetsya z obmezhuvalnogo pryamokutnika i diagrami Voronogo vseredini Beregova liniya predstavlena zbalansovanim derevom poshuku T displaystyle mathcal T ce i status struktura Yiyi listi vidpovidayut dugam beregovoyi liniyi yaki x displaystyle x monotonni vporyadkovanim chinom najlivishij list predstavlyaye najlivishu dugu i t d Kozhen list m displaystyle mu zberigaye tochku sho viznachaye dugu na beregovij liniyi Vnutrishni vuzli T displaystyle mathcal T predstavlyayut tochki zustrichi na beregovij liniyi Tochka zustrichi zberigayetsya u vuzli yak vporyadkovanij kortezh tochok p i p j displaystyle p i p j de p i displaystyle p i viznachaye parabolu livoruch vid tochki zustrichi a p j displaystyle p j viznachaye parabolu pravoruch Vikoristovuyuchi ce predstavlennya mi mozhemo znajti za O n log n displaystyle O n log n dugu na beregovij liniyi sho lezhit nad novim miscem U vnutrishnomu vuzli mi prosto porivnyuyemo x displaystyle x koordinati tochok i tochki zustrichi yaku mozhna obchisliti z kortezhu tochok i poziciyi pryamoyi rozgortki u konstantnij chas U T displaystyle mathcal T mi takozh zberigayemo vkazivniki na inshi dvi strukturi danih vikoristovuvani vprodovzh rozgortki Kozhen list T displaystyle mathcal T predstavlyaye dugu a displaystyle alpha zberigaye zberigaye vkazivnik do vuzla v cherzi podij yakij predstavlyaye podiyu kola v yakij a displaystyle alpha znikne Yaksho takoyi podiyi nemaye to vkazivnik nulovij Nareshti kozhen vnutrishnij vuzol n displaystyle nu maye vkazivnik na odne z pivreber rebra sho vidslidkovuyetsya tochkoyu zustrichi predstavlenoyu n displaystyle nu Cherga podij Q displaystyle mathcal Q realizovana yak cherga z prioritetom de prioritet ce y displaystyle y koordinata Vona zberigaye nadhidni podiyi sho vzhe vidomi Dlya podiyi miscya mi prosto zberigayemo misce Dlya podiyi kola mi zberigayemo najnizhchu tochku kola iz vkazivnikom na list T displaystyle mathcal T sho predstavlyaye dugu yaka znikne u podiyi AlgoritmTut mi opishemo algoritm linijnoyi rozgortki detalno Zauvazhimo sho pislya obrobki vsih podij koli cherga podij Q displaystyle mathcal Q sporozhnila beregova liniya she ne znikla Tochki zustrichi sho dosi prisutni vidpovidayut do reber promeniv diagrami Voronogo Oskilki podvijno zv yazanij spisok reber ne mozhe predstavlyati napiv neskinchenni rebra mi povinni dodati obmezhuvalnij pryamokutnik do yakogo mozhna bude prikripiti ci rebra Algoritm DiagramaVoronogo P displaystyle P Na vhodi Mnozhina P p 1 p n displaystyle P p 1 dots p n tochok na ploshini Na vihodi Diagrama Voronogo Vor P displaystyle mbox Vor P useredini obmezhuvalnogo pryamokutnika predstavlena za dopomogoyu podvijno zv yazanogo spisku reber D displaystyle mathcal D Inicializuvati chergu podij Q displaystyle mathcal Q usima podiyami misc inicializuvati porozhnyu strukturu statusu T displaystyle mathcal T i porozhnij podvijno zv yazanij spisok reber D displaystyle mathcal D dopoki Q displaystyle mathcal Q ne porozhnya Vidaliti podiyu z najbilshoyu y displaystyle y koordinatoyu z Q displaystyle mathcal Q yaksho podiya ce podiya miscya sho vidbulas u p i displaystyle p i todi ObrobitiPodiyuMiscya p i displaystyle p i inakshe ObrobitiPodiyuKola g displaystyle gamma de g displaystyle gamma ce list T displaystyle mathcal T sho predstavlyayu dugu yaka znikne Vnutrishni vuzli sho dosi prisutni u T displaystyle mathcal T vidpovidayut napiv neskinchennim rebram diagrami Voronogo Obchisliti obmezhuvalnij pryamokutnik sho mistit usi vershini Vor P displaystyle mbox Vor P vseredini prikripiti napiv neskinchenni rebra do nogo Obijti usi pivrebra podvijno zv yazanogo spisku reber shob dodati informaciyu shodo granej ObrobitiPodiyuMiscya p i displaystyle p i Yaksho T displaystyle mathcal T porozhnye vstaviti p i displaystyle p i u nogo tak sho T displaystyle mathcal T skladayetsya z yedinogo lista p i displaystyle p i i vijti Inakshe vikonati kroki 2 5 Znajti u T displaystyle mathcal T dugu a displaystyle alpha vertikalno nad p i displaystyle p i Yaksho list sho predstavlyaye a displaystyle alpha maye vkazivnik na podiyu kola u Q displaystyle mathcal Q todi cya podiya kola ye hibnoyu trivogoyu i yiyi potribno vidaliti Zaminiti list T displaystyle mathcal T sho predstavlyaye a displaystyle alpha na pidderevo sho maye tri listi Serednij list zberigaye novu tochku p i displaystyle p i i dva inshih listi zberigayut tochku p j displaystyle p j yake pered cim zberigalos u a displaystyle alpha Zberegti kortezhi lt p j p i gt lt p i p j gt displaystyle lt p j p i gt lt p i p j gt yaki predstavlyayut novi tochki zustrichej u dvoh vnutrishnih vuzlah Stvoriti novi pivrebra u diagrami Voronogo dlya reber sho rozdilyayut V p i displaystyle mathcal V p i i V p j displaystyle mathcal V p j ci rebra mi budemo vidslidkovuvati cherez novi tochki zustrichej Pereviriti trijki poslidovnih dug de nova duga dlya p i displaystyle p i ye livoyu dugoyu shob pobachiti chi shodyatsya tochki zustrichej Yaksho tak vstaviti podiyu kola u Q displaystyle mathcal Q i dodati vkazivniki mizh listom T displaystyle mathcal T sho vidpovidaye duzi p j displaystyle p j sprava vid p i displaystyle p i i novoyu podiyeyu kola u Q displaystyle mathcal Q Zrobiti te same dlya trijki de nova duga ye pravoyu Do podiyi kolaPislya podiyi kola ObrobitiPodiyuKola g displaystyle gamma Vidaliti list g displaystyle gamma yakij predstavlyav dugu a displaystyle alpha miscya p i displaystyle p i sho znikaye z T displaystyle mathcal T Onoviti kortezhi sho predstavlyayut tochki zustrichej u vnutrishnih vuzlah a same yaksho zliva vid a displaystyle alpha bula duga dlya p s displaystyle p s a sprava duga dlya p r displaystyle p r to mayut buti vidaleni vuzli lt p s p i gt lt p i p r gt displaystyle lt p s p i gt lt p i p r gt ta stvoreno vuzol dlya tochki zustrichi lt p s p r gt displaystyle lt p s p r gt zberegti pivrebra e 1 e 2 e 3 e 4 displaystyle e 1 e 2 e 3 e 4 sho vidpovidali vuzlam yaki vidalyayutsya Vidaliti z Q displaystyle mathcal Q podiyi kil na yaki posilayutsya susidni do g displaystyle gamma listi yaksho ci vkazivniki buli vstanovleni Podiya kola de a displaystyle alpha ce serednya duga zaraz obroblyayetsya i yiyi vzhe vidaleno z Q displaystyle mathcal Q Dodati centr kola sho sprichinilo podiyu yak zapis vershini u diagramu Voronogo sho mi buduyemo Stvoriti dva zapisi dlya pivreber sho vidpovidayut novij tochci zustrichi na beregovij liniyi na ris ce bliznyuki e 5 e 6 displaystyle e 5 e 6 Vstanoviti vkazivniki mizh pivrebrami novoyu vershinoyu ta granyami zgidno zi strukturoyu podvijno zv yazanogo spisku reber Pereviriti novu trijku poslidovnih dug sho maye kolishnogo livogo susida dugi a displaystyle alpha yak serednyu dugu na zbizhnist dvoh yiyi tochok zustrichej Yaksho tak vstaviti vidpovidni podiyi kil u Q displaystyle mathcal Q I vstanoviti neobhidni vkazivniki mizh novimi podiyami kil u Q displaystyle mathcal Q i listami T displaystyle mathcal T Zrobiti te same dlya trijki de serednoyu dugoyu ye kolishnij pravij susid a displaystyle alpha PrimitkiMark de Berg Marc van Kreveld Mark Overmars and Otfried Schwarzkopf 2000 Computational Geometry vid 2nd revised Springer Verlag ISBN 3 540 65620 0 Section 7 2 Computing the Voronoi Diagram pp 151 160 Austin David Feature Column American Mathematical Society arhiv originalu za 13 chervnya 2008 procitovano 22 lipnya 2015 Steven Fortune A sweepline algorithm for Voronoi diagrams Proceedings of the second annual symposium on Computational geometry Yorktown Heights New York United States pp 313 322 1986 ISBN 0 89791 194 6 ACM Digital LibrarySpringerLink nedostupne posilannya