2.5. Вычислительная геометрия на плоскости

advertisement
2.5. Âû÷èñëèòåëüíàÿ ãåîìåòðèÿ íà ïëîñêîñòè
1.
Óðàâíåíèÿ òî÷åê, ïðÿìûõ, îêðóæíîñòåé
Åâêëèäîâî ïðîñòðàíñòâî ðàçìåðíîñòè k E k ïðîñòðàíñòâî êîðòåæåé âèäà (x1, . . . , xk )
âåùåñòâåííûõ ÷èñåë xi, 1 6 i 6 k.
Îïðåäåëåíèå 1.
p1 = (x1 , . . . , xk )
Ðàññòîÿíèå ìåæäó äâóìÿ òî÷êàìè
d(p1 , p2 ) =
è
k
X
p2 = (y1 , . . . , yk )
ðàâíî
!1/2
|yi − xi |2
i=1
Ïóñòü
p, q
- òî÷êè íà ïðÿìîé,
n
- íîðìàëü ê ïðÿìîé,
d
- íàïðàâëÿþùèé âåêòîð ïðÿìîé. Ðàññìîòðèì
îñíîâíûå ñïîñîáû çàäàíèÿ ïðÿìûõ íà ïëîñêîñòè.
1.
(1 − α)p + αq, α ∈ R, èëè p + αd, ãäå d = q − p. Ýòîò ñïîñîá ÿâëÿåòñÿ îñíîâíûì ñðåäñòâîì ïðåäñòàâëåíèÿ
ïðÿìûõ â òðåõìåðíîì ïðîñòðàíñòâå. Íà ïëîñêîñòè óäîáåí äëÿ ïîèñêà ïåðåñå÷åíèé ïðÿìîé ñ äðóãèìè
îáúåêòàìè.  ýòîì ñëó÷àå
2.
y = kx + b. Çäåñü k
n = (dy , −dx ).
- òàíãåíñ óãëà íàêëîíà,
b - ïåðåñå÷åíèå ïðÿìîé ñ îñüþ îðäèíàò. Èñïîëüçóåòñÿ â íåêî-
òîðûõ ãåîìåòðè÷åñêèõ ïðåîáðàçîâàíèÿõ äâîéñòâåííîñòè. Ñóùåñòâåííûé íåäîñòàòîê íåâîçìîæíîñòü
ïðåäñòàâèòü â òàêîì âèäå âåðòèêàëüíûå ïðÿìûå.
3.
n · p = −C . Åñëè n = (A, B), òî óðàâíåíèå ìîæíî çàïèñàòü â âèäå Apx + Bpy + C = 0. Íåðàâåíñòâà
Apx + Bpy + C 6 0 è Apx + Bpy + C > 0 çàäàþò ïîëóïëîñêîñòè, íà êîòîðûå ïðÿìàÿ äåëèò ïëîñêîñòü
êîîðäèíàò. Ðàññòîÿíèå îò íà÷àëà êîîðäèíàò äî ïðÿìîé ðàâíî |C/knk|. Ðàññòîÿíèå îò òî÷êè q äî ïðÿìîé
(n · q + C)/knk.
Òî÷êè
p, ïðèíàäëåæàùèå îêðóæíîñòè íà ïëîñêîñòè ñ öåíòðîì â òî÷êå c è
d(p, c) 6 r, ÷òî ìîæíî çàïèñàòü â ôîðìå (px − cx )2 + (py − cy )2 6 r2 .
ðàäèóñîì
r,
óäîâëåòâîðÿþò
óðàâíåíèþ
2.
Âûïóêëûå îáîëî÷êè, àëãîðèòìû ïîñòðîåíèÿ
Îïðåäåëåíèå 2. Ìíîãîóãîëüíèê íàçûâàåòñÿ âûïóêëûì, åñëè îòðåçîê, ñîåäèíÿþùèé ëþáûå åãî äâå òî÷êè,
ïðèíàäëåæèò ìíîãîóãîëüíèêó.
Îïðåäåëåíèå 3. Òî÷êà ïðèíàäëåæèò ãðàíèöå ìíîãîóãîëüíèêà, åñëè ëþáàÿ å¼ îêðåñòíîñòü ñîäåðæèò òî÷êè, êàê ïðèíàäëåæàùèå, òàê è íå ïðèíàäëåæàùèå ìíîãîóãîëüíèêó.
Îïðåäåëåíèå 4. Ïóñòü â n-ìåðíîì ïðîñòðàíñòâå çàäàíî k ðàçëè÷íûõ òî÷åê p1 , . . . , pk . Ìíîæåñòâî òî÷åê
p, òàêèõ, ÷òî: p = a1 p1 + a2 p2 + . . . + ak pk , ãäå aj ∈ R, aj > 0 , a1 + a2 + . . . ak = 1 íàçûâàåòñÿ âûïóêëûì
ìíîæåñòâîì, ïîðîæäåííûì òî÷êàìè p1, . . . , pk , à p íàçûâàåòñÿ âûïóêëîé êîìáèíàöèåé òî÷åê p1, . . . , pk .
Îïðåäåëåíèå 5. Âûïóêëîé îáîëî÷êîé (convex hull) ìíîæåñòâà M òî÷åê n-ìåðíîãî ïðîñòðàíñòâà íàçûâàåòñÿ íàèìåíüøåå âûïóêëîå ìíîæåñòâî, ñîäåðæàùåå M, è îáîçíà÷àåòñÿ conv(M).
Îïèøåì êëàññè÷åñêèå àëãîðèòìû ïîñòðîåíèÿ âûïóêëîé îáîëî÷êè ìíîæåñòâà òî÷åê.
Àëãîðèòì 1. Ìåòîä îáõîäà Äæàðâèñà (çàâîðà÷èâàíèå ïîäàðêà).
1. Âûáèðàåì ñàìóþ ëåâóþ òî÷êó ìíîæåñòâà
p0 . Ýòà òî÷êà çàâåäîìî ÿâëÿåòñÿ âåðøèíîé âûïóêëîé îáîëî÷-
êè.
2. Íàõîäèì òî÷êó ìíîæåñòâà
òî÷êè
p0
3. Íàõîäèì òî÷êó ìíîæåñòâà
òî÷êè
p1
p1 ,
èìåþùóþ íàèìåíüøèé ïîëîæèòåëüíûé ïîëÿðíûé óãîë îòíîñèòåëüíî
êàê íà÷àëà êîîðäèíàò.
p2 ,
èìåþùóþ íàèìåíüøèé ïîëîæèòåëüíûé ïîëÿðíûé óãîë îòíîñèòåëüíî
êàê íà÷àëà êîîðäèíàò.
4. È ò. ä., ïîêà íå äîñòèãíåì òî÷êè
p0 .
1
Êîððåêòíîñòü àëãîðèòìà î÷åâèäíà. Êàæäàÿ íîâàÿ âåðøèíà îïðåäåëÿåòñÿ çà
âñå
n
òî÷åê ëåæàò íà âûïóêëîé îáîëî÷êå, ñëîæíîñòü àëãîðèòìà
îáîëî÷êè, òî ñëîæíîñòü àëãîðèòìà O(n2 ).
Åñëè
O(n).  õóäøåì ñëó÷àå, êîãäà
h ÷èñëî âåðøèí âûïóêëîé
O(hn).
Àëãîðèòì 2. Àëãîðèòì îáõîäà Ãðýõåìà.
1. Íàéòè ñàìóþ ëåâóþ íèæíþþ òî÷êó
2. Èñïîëüçóÿ
q
q
ìíîæåñòâà èñõîäíûõ òî÷åê.
êàê íà÷àëî êîîðäèíàò, óïîðÿäî÷èòü òî÷êè ìíîæåñòâà ëåêñèêîãðàôè÷åñêè: â ñîîòâåòñòâèè
ñ ïîëÿðíûì óãëîì è ðàññòîÿíèåì îò
3. Îáõîä òî÷åê. Õðàíèòñÿ ñòåê òî÷åê
q.
{pi1 , . . . , pik },
ïðîñìîòðåííûõ ê íàñòîÿùåìó âðåìåíèè. Âñå òðîéêè
ñîñåäíèõ âåðøèí â ñòåêå îáðàçóþò ëåâûé ïîâîðîò. Ïðè ðàññìîòðåíèè î÷åðåäíîé òî÷êè
èç ñëåäóþùèõ ñèòóàöèé. Åñëè
âåðøèíó ñòåêà è èíäåêñ
i
pik−1 , pik , pi
îáðàçóþò ëåâûé ïîâîðîò, òî òî÷êà
óâåëè÷èâàåòñÿ íà
1.
Åñëè
pik−1 , pik , pi
áûòü êðàéíåé òî÷êîé, òàê êàê îíà ÿâëÿåòñÿ âíóòðåííåé òî÷êîé
âåðøèíó
p ik
pi
pi âîçìîæíà îäíà
ïðîñòî äîáàâëÿåòñÿ íà
îáðàçóþò ïðàâûé ïîâîðîò, pik íå ìîæåò
4qpik−1 pi .  ýòîì ñëó÷àå íóæíî óäàëèòü
èç ñòåêà è ïåðåéòè ê íà÷àëó øàãà.
4. Ïîñëå îêîí÷àíèÿ îáõîäà â ñòåêå áóäóò õðàíèòüñÿ âåðøèíû âûïóêëîé îáîëî÷êè â ïîðÿäêå îáõîäà ïðîòèâ
÷àñîâîé ñòðåëêè.
 ïðîöåññå îáõîäà ïîñëå êàæäîé ïðîâåðêè óãëà ïðîèñõîäèò ëèáî óäàëåíèå òî÷êè è âîçâðàò íà îäíó òî÷êó,
ëèáî ïðîäâèæåíèå âïåðåä íà îäíó òî÷êó. Òàê êàê ìíîæåñòâî ñîäåðæèò ëèøü
íå ìîæåò ïðîèñõîäèòü áîëåå
n
ðàç, êàê íå ìîæåò áûòü óäàëåíî è áîëåå
âûïîëíÿåòñÿ çà ëèíåéíîå âðåìÿ. Ñîðòèðîâêà òðåáóåò âðåìåíè
n
n òî÷åê, òî ïðîäâèæåíèå âïåðåä
òî÷åê. Òàêèì îáðàçîì, îáõîä òî÷åê
O(n log n), ïîýòîìó îáùàÿ ñëîæíîñòü àëãîðèòìà
O(n log n).
Çàäà÷à ñîðòèðîâêè ñâîäèìà çà ëèíåéíîå âðåìÿ ê çàäà÷å ïîñòðîåíèÿ âûïóêëîé îáîëî÷êè, è,
ñëåäîâàòåëüíî, äëÿ íàõîæäåíèÿ óïîðÿäî÷åííîé âûïóêëîé îáîëî÷êè n òî÷åê íà ïëîñêîñòè òðåáóåòñÿ âðåìÿ
O(n log n).
Òåîðåìà 1.
×òîáû äîêàçàòü òåîðåìó, ñîïîñòàâèì êàæäîìó èç çàäàííûõ n ïîëîæèòåëüíûõ ÷èñåë x1 , . . . , xn òî÷êó
(xi , x2i ). Âñå ýòè òî÷êè ëåæàò íà ïàðàáîëå y = x2 . Âûïóêëàÿ îáîëî÷êà ïîëó÷åííîãî ìíîæåñòâà áóäåò ñîñòîÿòü
èç ñïèñêà âñåõ òî÷åê ýòîãî ìíîæåñòâà, óïîðÿäî÷åííûõ ïî çíà÷åíèþ àáñöèññû. Ïîýòîìó åñëè áû âûïóêëóþ
îáîëî÷êó ìîæíî áûëî íàéòè áûñòðåå ÷åì çà
Ω(n log n),
òî è çàäà÷à ñîðòèðîâêè ðåøàëàñü áû áûñòðåå, ÷òî
íåâåðíî.
Ìîæíî ïîêàçàòü, ÷òî òî÷íàÿ íèæíÿÿ îöåíêà âðåìåíè ïîñòðîåíèÿ âûïóêëîé îáîëî÷êè ìíîæåñòâà òî÷åê O(n log h).
3.
Èçâåñòíû àëãîðèòìû, ðàáîòàþùèå çà ýòî âðåìÿ ýòî àëãîðèòìû Kirkpatrick-Seidel'ÿ è Chan'à.
Àëãîðèòìû òðèàíãóëÿöèè
Îïðåäåëåíèå 6.
òðåóãîëüíèêàìè.
Òðèàíãóëÿöèåé íàçûâàåòñÿ ïëàíàðíûé ãðàô, âñå âíóòðåííèå îáëàñòè êîòîðîãî ÿâëÿþòñÿ
Çàäà÷åé ïîñòðîåíèÿ òðèàíãóëÿöèè ïî çàäàííîìó íàáîðó äâóìåðíûõ òî÷åê íàçûâàåòñÿ
çàäà÷à ñîåäèíåíèÿ çàäàííûõ òî÷åê íåïåðåñåêàþùèìèñÿ îòðåçêàìè òàê, ÷òîáû îáðàçîâàëàñü òðèàíãóëÿöèÿ.
Îïðåäåëåíèå 7.
Çàäà÷à ïîñòðîåíèÿ òðèàíãóëÿöèè ïî èñõîäíîìó íàáîðó òî÷åê ÿâëÿåòñÿ íåîäíîçíà÷íîé, ïîýòîìó âîçíèêàåò
âîïðîñ, êàêàÿ èç äâóõ ðàçëè÷íûõ òðèàíãóëÿöèé ëó÷øå.
Òðèàíãóëÿöèÿ íàçûâàåòñÿ îïòèìàëüíîé, åñëè ñóììà äëèí âñåõ ð¼áåð ìèíèìàëüíà ñðåäè
âñåõ âîçìîæíûõ òðèàíãóëÿöèé, ïîñòðîåííûõ íà òåõ æå èñõîäíûõ òî÷êàõ.
Îïðåäåëåíèå 8.
Çàäà÷à ïîñòðîåíèÿ îïòèìàëüíîé òðèàíãóëÿöèè ÿâëÿåòñÿ NP-ïîëíîé. Ïîýòîìó äëÿ áîëüøèíñòâà ðåàëüíûõ çàäà÷ ñóùåñòâóþùèå àëãîðèòìû ïîñòðîåíèÿ îïòèìàëüíîé òðèàíãóëÿöèè íåïðèåìëåìû ââèäó ñëèøêîì
âûñîêîé òðóäî¼ìêîñòè.
Ïðè íåîáõîäèìîñòè íà ïðàêòèêå ïðèìåíÿþò ïðèáëèæåííûå àëãîðèòìû. Îäíèì èç ïåðâûõ áûë ïðåäëîæåí
ñëåäóþùèé àëãîðèòì ïîñòðîåíèÿ òðèàíãóëÿöèè.
Àëãîðèòì 3. Æàäíûé àëãîðèòì ïîñòðîåíèÿ òðèàíãóëÿöèè.
1. Ãåíåðèðóåòñÿ ñïèñîê âñåõ âîçìîæíûõ îòðåçêîâ, ñîåäèíÿþùèõ ïàðû èñõîäíûõ òî÷åê, è îí ñîðòèðóåòñÿ
ïî äëèíàì îòðåçêîâ.
2
B
B
C
A
C
A
D
(à)
Ðèñ. 1: Ôëèï ïðè ïîñòðîåíèè òðèàíãóëÿöèè Äåëîíå.
çàìåíà ðåáðà
AC
íà
BD
D
(á)
D
ïðèíàäëåæèò îïèñàííîé îêðóæíîñòè
4ABC , ïîýòîìó
ïîçâîëÿåò óëó÷øèòü òðèàíãóëÿöèþ.
2. Íà÷èíàÿ ñ ñàìîãî êîðîòêîãî, ïîñëåäîâàòåëüíî âûïîëíÿåòñÿ âñòàâêà îòðåçêîâ â òðèàíãóëÿöèþ. Åñëè
îòðåçîê íå ïåðåñåêàåòñÿ ñ äðóãèìè ðàíåå âñòàâëåííûìè îòðåçêàìè, òî îí âñòàâëÿåòñÿ, èíà÷å îí îòáðàñûâàåòñÿ.
Çàìåòèì, ÷òî åñëè âñå âîçìîæíûå îòðåçêè èìåþò ðàçíóþ äëèíó, òî ðåçóëüòàò ðàáîòû ýòîãî àëãîðèòìà
îäíîçíà÷åí, èíà÷å îí çàâèñèò îò ïîðÿäêà âñòàâêè îòðåçêîâ îäèíàêîâîé äëèíû.
Îïðåäåëåíèå 9.
Òðèàíãóëÿöèÿ íàçûâàåòñÿ æàäíîé, åñëè îíà ïîñòðîåíà æàäíûì àëãîðèòìîì.
Òðóäîåìêîñòü ðàáîòû æàäíîãî àëãîðèòìà ïðè íåêîòîðûõ åãî óëó÷- øåíèÿõ ñîñòàâëÿåò
O(n2 log n). Â ñâÿçè
ñî ñòîëü áîëüøîé òðóäîåìêîñòüþ íà ïðàêòèêå îí ïî÷òè íå ïðèìåíÿåòñÿ. Êðîìå îïòèìàëüíîé è æàäíîé òðèàíãóëÿöèè, òàêæå øèðîêî èçâåñòíà òðèàíãóëÿöèÿ Äåëîíå, îáëàäàþùàÿ ðÿäîì ïðàêòè÷åñêè âàæíûõ ñâîéñòâ.
Ãîâîðÿò, ÷òî òðèàíãóëÿöèÿ óäîâëåòâîðÿåò óñëîâèþ Äåëîíå, åñëè âíóòðü îêðóæíîñòè,
îïèñàííîé âîêðóã ëþáîãî ïîñòðîåííîã òðåóãîëüíèêà, íå ïîïàäàåò íè îäíà èç çàäàííûõ òî÷åê òðèàíãóëÿöèè.
Îïðåäåëåíèå 11. Òðèàíãóëÿöèÿ íàçûâàåòñÿ òðèàíãóëÿöèåé Äåëîíå, åñ ëè îíà ÿâëÿåòñÿ âûïóêëîé è óäîâëåòâîðÿåò óñëîâèþ Äåëîíå.
Îïðåäåëåíèå 10.
Ìíîãèå àëãîðèòìû ïîñòðîåíèÿ òðèàíãóëÿöèè Äåëîíå èñïîëüçóþò ñëåäóþùóþ òåîðåìó.
Òðèàíãóëÿöèþ Äåëîíå ìîæíî ïîëó÷èòü èç ëþáîé äðóãîé òðèàíãóëÿöèè ïî òîé æå ñèñòåìå
òî÷åê, ïîñëåäîâàòåëüíî ïåðåñòðàèâàÿ ïàðû ñîñåäíèõ òðåóãîëüíèêîâ 4ABC è 4BCD, íå óäîâëåòâîðÿþùèõ óñëîâèþ Äåëîíå, â ïàðû òðåóãîëüíèêîâ 4ABD è 4ACD. Òàêàÿ îïåðàöèÿ ïåðåñòðîåíèÿ òàêæå ÷àñòî
íàçûâàåòñÿ ôëèïîì (ñì. ðèñ. 1).
Òåîðåìà 2.
Äàííàÿ òåîðåìà ïîçâîëÿåò ñòðîèòü òðèàíãóëÿöèþ Äåëîíå ïîñëåäîâàòåëüíî, ïîñòðîèâ âíà÷àëå íåêîòîðóþ
òðèàíãóëÿöèþ, à ïîòîì ïîñëåäîâàòåëüíî óëó÷øàÿ å¼ äî âûïîëíåíèÿ óñëîâèÿ Äåëîíå.
Òðèàíãóëÿöèÿ Äåëîíå îáëàäàåò ìàêñèìàëüíîé ñóììîé ìèíèìàëüíûõ óãëîâ âñåõ ñâîèõ òðåóãîëüíèêîâ ñðåäè âñåõ âîçìîæíûõ òðè- àíãóëÿöèé.
Òåîðåìà 4. Òðèàíãóëÿöèÿ Äåëîíå îáëàäàåò ìèíèìàëüíîé ñóììîé ðàäèóñîâ îêðóæíîñòåé, îïèñàííûõ îêîëî
òðåóãîëüíèêîâ, ñðåäè âñåõ âîçìîæíûõ òðèàíãóëÿöèé.
Òåîðåìà 3.
Íàèáîëåå ðàñïðîñòðàíåííûé àëãîðèòì òðèàíãóëÿöèè Äåëîíå èíêðåìåíòàëüíûé, ò. å. òî÷êè äîáàâëÿþòñÿ
â òðèàíãóëÿöèþ ïîñëåäîâàòåëüíî, ìîäèôèöèðóÿ òåêóùóþ òðèàíãóëÿöèþ.
Àëãîðèòì 4. Àëãîðèòì âñòàâêè íîâîé òî÷êè â òðèàíãóëÿöèþ Äåëîíå
1. Ëîêàëèçàöèÿ òî÷êè, òî åñòü îïðåäåëåíèå ñóùåñòâóþùåãî òðåóãîëüíèêà â òðèàíãóëÿöèè, êîòîðîìó ïðèíàäëåæèò íîâàÿ òî÷êà. Ïðè èñïîëüçîâàíèè èåðàðõèè òðèàíãóëÿöèé ìîæåò áûòü îñóùåñòâëåí çà âðåìÿ
O(log n).
3
Ðèñ. 2: Òðèàíãóëÿöèÿ Äåëîíå ñ îãðàíè÷åíèÿìè.
2. Ôëèï ðåáåð. Êàæäîå íîâîå ðåáðî áóäåò èìåòü íîâóþ òî÷êó â êà÷åñòâå îäíîãî èç ñâîèõ êîíöîâ, ïîýòîìó,
O(d), ãäå d ñòåïåíü íîâîé âåðøèíû òðèàíãóëÿöèè.
E(d) = O(1).
òðåáóåìîå äëÿ ïåðåñòðîåíèÿ òðåóãîëüíèêîâ, ðàâíî
Òàê êàê òðèàíãóëÿöèÿ ïëàíàðíûé ãðàô, òî
Òàêèì îáðàçîì, âðåìÿ ðàáîòû èíêðåìåíòàëüíîãî àëãîðèòìà ïîñòðîåíèÿ òðèàíãóëÿöèè Äåëîíå O(n log n).
Âîçìîæíî çàäàíèå íàáîðà ðåáåð, êîòîðûå äîëæíû âõîäèòü â òðèàíãóëÿöèþ ìíîæåñòâà òî÷åê.  òàêîì
ñëó÷àå ãîâîðÿò î çàäà÷å òðèàíãóëÿöèè ñ îãðàíè÷åíèÿìè. Ïðèìåð òðèàíãóëÿöèè Äåëîíå ñ îãðàíè÷åíèÿìè
ïðèâåäåí íà ðèñ. 2.
Îïðåäåëåíèå 12.
Ïðîñòûì ìíîãîóãîëüíèêîì íàçûâàåòñÿ ñàìîíåïåðåñåêàþùàÿñÿ çàìêíóòàÿ ëîìàííàÿ.
Òðèàíãóëÿöèÿ ïðîñòîãî òðåóãîëüíèêà ìîæåò áûòü ïîñòðîåíà àëãîðèòìîì òðèàíãóëÿöèè Äåëîíå ñ îãðàíè÷åíèÿìè, îäíàêî ñóùåñòâóþò áîëåå ïðîñòûå àëãîðèòìû òðèàíãóëÿöèè, íå ãàðàíòèðóþùèå âûïîëíåíèÿ
óñëîâèÿ Äåëîíå.
Àëãîðèòì 5. Òðèàíãóëÿöèÿ ïðîñòîãî ìíîãîóãîëüíèêà çà
O(n2 )
1. Íàéòè äèàãîíàëü ìíîãîóãîëüíèêà. Ýòî ìîæåò áûòü ñäåëàíî çà ëèíåéíîå âðåìÿ ñëåäóþùèì ñïîñîáîì. Ðàññìîòðèì ìíîãîóãîëüíèê
pk−1 , pk+1
{p1 , . . . , pn }.
Ïóñòü
pk
åãî âûïóêëàÿ âåðøèíà. Òîãäà åñëè îòðåçîê
íå ïåðåñåêàåò íè îäíîé èç ñòîðîí ìíîãîóãîëüíèêà, òî îí èñêîìàÿ äèàãîíàëü. Èíà÷å äèà-
ãîíàëüþ ÿâëÿåòñÿ îòðåçîê
pk , q ,
ãäå
q
îäíà èç âåðøèí èñõîäíîãî ìíîãîóãîëüíèêà, ïðèíàäëåæàùàÿ
4pk−1 pk pk+1 .
2. Ðàçáèòü ìíîãîóãîëüíèê íàéäåííîé äèàãîíàëüþ íà äâà íîâûõ ìíîãîóãîëüíèêà è ðåêóðñèâíî òðèàíãóëèðîâàòü êàæäûé èç íèõ.
Òðèàíãóëÿöèþ ïðîñòîãî ìíîãîóãîëüíèêà çà
On log n) ìîæíî îñóùåñòâèòü, ðàçáèâ åãî íà ìîíîòîííûå ìíî-
ãîóãîëüíèêè, à çàòåì òðèàíãóëèðîâàâ çà ëèíåéíîå âðåìÿ êàæäûé èç íèõ. Äëÿ çàäà÷è òðèàíãóëÿöèè ïðîñòîãî
ìíîãîóãîëüíèêà èçâåñòåí àëãîðèòì, ðàáîòàþùèé çà âðåìÿ
ïðèìåíÿåòñÿ íà ïðàêòèêå.
4
O(n),
îäíàêî îí èìååò áîëüøóþ êîíñòàíòó è íå
Ðèñ. 3:
4.
2d-äåðåâî
Çàäà÷è ðåãèîíàëüíîãî ïîèñêà
Çàäà÷àìè ðåãèîíàëüíîãî ïîèñêà íàçûâàþò çàäà÷è èçâëå÷åíèÿ èëè ïîäñ÷åòà ãåîìåòðè÷åñêèõ îáúåêòîâ (íà-
ïðèìåð, òî÷åê, îòðåçêîâ, ïðÿìîóãîëüíèêîâ), êîòîðûå ïîïàäàþò âíóòðü ðåãèîíà-çàïðîñà, ïðåäñòàâëÿþùåãî
ñîáîé ñòàíäàðòíóþ ãåîìåòðè÷åñêóþ ôèãóðó, ïðîèçâîëüíî ïåðåìåùàåìóþ â ïðîñòðàíñòâå. Êàê ïðàâèëî, äëÿ
çàäàííûõ ãåîìåòðè÷åñêèõ îáúåêòîâ íà ýòàïå ïðåäîáðàáîòêè ñòðîèòñÿ êàêàÿ-ëèáî ñòðóêòóðà äàííûõ, ïîçâîëÿþùàÿ áûñòðî îòâå÷àòü íà çàïðîñû.
Ðàññìîòðèì íåêîòîðûå ïðèìåðû çàäà÷ ðåãèîíàëüíîãî ïîèñêà. Ñòðóêòóðà äàííûõ
k -ìåðíîì
ïîèñêà òî÷åê â
ïîëüçîâàíèå
ñëóæèò äëÿ
2d-äåðåâà.
Àëãîðèòì 6. Ïîñòðîåíèå
P = {p},
1. Åñëè
kd-äåðåâî
ïðîñòðàíñòâå, ïîïàäàþùèõ â çàäàííûé ïðÿìîóãîëüíèê. Îïèøåì ïîñòðîåíèå è èñ-
2d-äåðåâà äëÿ ìíîæåñòâà òî÷åê P .
òî âåðíóòü íîâûé ëèñò äåðåâà ñ òî÷êîé
2. Ðàçáèòü ìíîæåñòâî
P
íà äâà ïîäìíîæåñòâà
P1
è
P2 .
p.
Åñëè ãëóáèíà òåêóùåãî óçëà äåðåâà íå÷åòíà, òî
ðàçáèåíèå ïðîèçâîäèòñÿ âåðòèêàëüíîé ïðÿìîé ñ àáñöèññîé, ðàâíîé ìåäèàíå àáñöèññ òî÷åê èç
P.
 ïðî-
òèâíîì ñëó÷àå ðàçáèåíèå ïðîèâçîäèòñÿ ãîðèçîíòàëüíîé ïðÿìîé ñ îðäèíàòîé, ðàâíîé ìåäèàíå îðäèíàò
òî÷åê
P.
3. Ðåêóðñèâíî ïîñòðîèòü äåðåâî äëÿ
P1
è
P2 .
4. Âåðíóòü óçåë, ñîäåðæàùèé ïðÿìóþ ðàçäåëåíèÿ, ñûíîâüÿìè êîòîðîãî ÿâëÿþòñÿ äåðåâüÿ äëÿ
Ïðèìåð
2d-äåðåâà
Òåîðåìà 5.
O(n)
P1
è
P2 .
ìîæíî ïîñìîòðåòü íà ðèñ. 3.
-äåðåâî äëÿ ìíîæåñòâà èç n òî÷åê ìîæåò áûòü ïîñòðîåíî çà âðåìÿ O(n log n), èñïîëüçóÿ
2d
ïàìÿòè.
Çàïðîñ òî÷åê ïî ïðÿìîóãîëüíèêó
ñòâóåò îáëàñòü
R,
Q
îñóùåñòâëÿåòñÿ ñïóñêîì ïî äåðåâó. Êàæäîìó óçëó äåðåâà ñîîòâåò-
êîòîðóþ îí ïîêðûâàåò âìåñòå ñî ñâîèìè äåòüìè. Åñëè
Q
ïåðåñåêàåòñÿ ñ
R,
òî íåîáõîäèìî
ñäåëàòü çàïðîñ äëÿ îáîèõ ñûíîâåé ýòîãî óçëà è îáúåäèíèòü ðåçóëüòàòû.
Òåîðåìà 6. Ïîèñê òî÷åê, ïîïàäàþùèõ â èçîîðèåíòèðîâàííûé ïðÿìîóãîëüíèê Q, âûïîëíÿåòñÿ äëÿ 2d-äåðåâà
ìíîæåñòâà P , ñîäåðæàùåãî n òî÷åê, çà âðåìÿ O(√n + k), ãäå k êîëè÷åñòâî òî÷åê èç ìíîæåñòâà P ,
ïðèíàäëåæàùèõ Q.
Áîëåå ëó÷øèé ðåçóëüòàò ïî âðåìåíè çàïðîñà, íî õóäøèé ïî ïàìÿòè, äàþò òàê íàçûâàåìûå äåðåâüÿ ðåãèîíîâ. Îíè ïðåäñòàâëÿþò ñîáîé ñáàëàíñèðîâàííûå äåðåâüÿ ïîèñêó ïî àáñöèññàì çàäàííîãî íàáîðà òî÷åê, â
êàæäîì óçëå
ïîääåðåâó
Q
êîòîðîãî ñîäåðæèòñÿ ñáàëàíñèðîâàííîå äåðåâî ïîèñêà ïî îðäèíàòàì òî÷åê, ïðèíàäëåæàùèõ
Q.
Äåðåâî ðåãèîíîâ äëÿ ìíîæåñòâà èç n òî÷åê ìîæåò áûòü ïîñòðîåíî çà âðåìÿ O(nlogn), èñïîëüçóÿ O(nlogn) ïàìÿòè. Âðåìÿ çàïðîñà ïî ïðÿìîóãîëüíèêó ïðè ýòîì ñîñòàâëÿåò O(log n + k).
Òåîðåìà 7.
5
Download