You are on page 1of 38

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

Geometria obliczeniowa.
Wprowadzenie
Autorzy: Franco P. Preparata, Michael Ian Shamos
Tumaczenie: Tomasz mijewski
ISBN: 83-7361-098-7
Tytu oryginau: Computational Geometry. An Introduction
Format: B5, stron: 386

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

W ostatniej dekadzie systematyczne badania algorytmw geometrycznych


spowodoway utworzenie nowej dziedziny badawczej -- geometrii obliczeniowej.
Jej osignicia maj szerokie zastosowanie w przeywajcej ostatnio byskawiczny
rozwj trjwymiarowej grafice komputerowej, a take w automatyce, robotyce
i w statystyce. Ksika niniejsza to obszerny, systematyczny i jednolity wykad
na ten temat. Stanowi ona klasyczn pozycj w tym zakresie informatyki.
Najwaniejszym zadaniem geometrii obliczeniowej jest wskazanie poj, waciwoci
i technik, ktre bd pomocne przy tworzeniu sprawnych algorytmw rozwizujcych
problemy z dziedziny geometrii.
Tematy poruszane w tej ksice, to midzy innymi:

CZYTELNIA
FRAGMENTY KSIEK ONLINE

podstawy geometrii i historia geometrii obliczeniowej


wyszukiwanie geometryczne
uzyskiwanie informacji o obiektach
tworzenie otoczki wypukej wraz z szeregiem problemw z tym zagadnieniem
zwizanych,
ssiedztwo, przecicia oraz geometria prostoktw
W ksice metody geometrii obliczeniowej prezentowane s przez szczegowe
omwienie konkretnych przypadkw. Pocztkowo ksika ta miaa by podrcznikiem
dla studentw, ale w jej obecnym ksztacie bdzie przydatna take dla badaczy i dla
osb zawodowo zajmujcych si projektowaniem wspomaganym komputerowo, grafik
komputerow i robotyk.

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Spis treci

Wstp do wydania drugiego...............................................................................9


Wstp ....................................................................................................................11

1
Wprowadzenie ....................................................................................................13
1.1. Rys historyczny .......................................................................................................................... 13
1.1.1. Zoono geometrii klasycznej ........................................................................................ 14
1.1.2. Teoria zbiorw wypukych, geometria metryczna i kombinatoryczna ............................ 16
1.1.3. Wczeniejsze prace ........................................................................................................... 16
1.1.4. Ku geometrii obliczeniowej .............................................................................................. 17
1.2. Wprowadzenie do algorytmw ................................................................................................. 17
1.2.1. Algorytmy: zapis i okrelanie wydajnoci ........................................................................ 18
1.2.2. Nieco o technikach tworzenia algorytmw ...................................................................... 21
1.2.3. Struktury danych .............................................................................................................. 22
1.3. Podstawy geometrii.................................................................................................................... 28
1.3.1. Definicje oglne, przyjte konwencje................................................................................ 28
1.3.2. Niezmienniki grup przeksztace liniowych .................................................................... 30
1.3.3. Dualno geometryczna. Biegunowo ............................................................................ 35
1.4. Modele obliczeniowe.................................................................................................................. 37

2
Przeszukiwanie geometryczne..........................................................................47
2.1. Wprowadzenie do przeszukiwania geometrycznego ................................................................ 47
2.2. Problemy lokalizacji punktu ...................................................................................................... 51
2.2.1. Rozwaania oglne. Najprostsze przypadki .................................................................... 51
2.2.2. Lokalizacja punktu w obszarze paszczyzny.................................................................... 55
2.3. Problemy zwizane z przeszukiwaniem zakresu ...................................................................... 78
2.3.1. Rozwaania oglne ........................................................................................................... 78
2.3.2. Metoda wielowymiarowego drzewa binarnego (k-D drzewa)......................................... 83
2.3.3. Metoda bezporedniego dostpu i jej odmiany ................................................................ 87
2.3.4. Metoda drzew zakresu i jej odmiany................................................................................ 91

SPIS TRECI

2.4. Szukanie iterowane i kaskadowanie uamkowe ........................................................................ 96


2.5. Uwagi i komentarze ................................................................................................................... 99
2.6. wiczenia ................................................................................................................................. 101

3
Otoczki wypuke: algorytmy podstawowe...................................................103
3.1. Informacje wstpne .................................................................................................................. 103
3.2. Sformuowanie problemu i ograniczenia dolne ....................................................................... 107
3.3. Algorytmy otoczki wypukej na paszczynie ......................................................................... 111
3.3.1. Pierwsze dokonania w dziedzinie algorytmw otoczki wypukej ................................. 111
3.3.2. Skan Grahama................................................................................................................. 114
3.3.3. Marsz Jarvisa .................................................................................................................. 117
3.3.4. Techniki QUICKHULL ................................................................................................... 119
3.3.5. Algorytmy typu dziel i rzd...................................................................................... 121
3.3.6. Dynamiczne algorytmy otoczki wypukej ...................................................................... 124
3.3.7. Uoglnienie: zachowanie otoczki wypukej ................................................................... 130
3.4. Otoczki wypuke w wikszej liczbie wymiarw ni dwa ........................................................ 136
3.4.1. Metoda opakowywania prezentu ................................................................................... 137
3.4.2. Metoda pod-poza ........................................................................................................ 142
3.4.3. Trjwymiarowe otoczki wypuke................................................................................... 145
3.5. Uwagi i komentarze ................................................................................................................. 150
3.6. wiczenia ................................................................................................................................. 152

4
Otoczki wypuke: rozszerzenia i zastosowanie ...........................................155
4.1. Rozszerzenia i odmiany ........................................................................................................... 155
4.1.1. Analiza przypadku redniego ........................................................................................ 155
4.1.2. Algorytmy przyblienia otoczki wypukej ..................................................................... 159
4.1.3. Problem maksimw zbioru punktw ............................................................................. 162
4.1.4. Otoczka wypuka wielokta prostego ............................................................................ 170
4.2. Zastosowania statystyczne ....................................................................................................... 174
4.2.1. Solidne oszacowania ....................................................................................................... 175
4.2.2. Regresja izotoniczna ....................................................................................................... 177
4.2.3. Klastrowanie (rednica zbioru punktw) ....................................................................... 179
4.3. Uwagi i komentarze ................................................................................................................. 185
4.4. wiczenia ................................................................................................................................. 186

5
Blisko: algorytmy podstawowe...................................................................187
5.1. Zbir problemw ..................................................................................................................... 188
5.2. Prototyp obliczeniowy: niepowtarzalno elementu ............................................................... 193
5.3. Ograniczenia dolne................................................................................................................... 194
5.4. Problem najbliszej pary: metoda dziel i rzd...................................................................... 196
5.5. Rozwizywanie lokalne problemw bliskoci: diagram Voronoi ............................................ 205
5.5.1. Waciwoci Voronoi ...................................................................................................... 206
5.5.2. Tworzenie diagramu Voronoi......................................................................................... 212

SPIS TRECI

5.6. Rozwizywanie problemw ssiedztwa diagramem Voronoi................................................. 219


5.7. Uwagi i komentarze ................................................................................................................. 222
5.8. wiczenia ................................................................................................................................. 223

6
Blisko: odmiany i uoglnienia.....................................................................225
6.1. Euklidesowe drzewa minimalne .............................................................................................. 225
6.1.1. Problem komiwojaera w przestrzeni euklidesowej ...................................................... 228
6.2. Triangulacje paskie.................................................................................................................. 232
6.2.1. Triangulacja zachanna.................................................................................................... 233
6.2.2. Triangulacje ograniczone ................................................................................................ 235
6.3. Uoglnienia diagramu Voronoi................................................................................................ 238
6.3.1. Diagramy Voronoi wyszego rzdu (na paszczynie) .................................................. 239
6.3.2. Wielowymiarowe diagramy Voronoi punktu najbliszego i punktu najdalszego ......... 249
6.4. Przerwy i pokrycia ................................................................................................................... 252
6.5. Uwagi i komentarze ................................................................................................................. 258
6.6. wiczenia ................................................................................................................................. 260

7
Przecicia............................................................................................................263
7.1. Przykadowe zastosowania ...................................................................................................... 264
7.1.1. Problemy ukrytych linii i ukrytych powierzchni............................................................ 264
7.1.2. Rozpoznawanie wzorca .................................................................................................. 265
7.1.3. Ukad cieek i elementw ............................................................................................. 266
7.1.4. Programowanie liniowe i wsplne przecicie pprzestrzeni ........................................ 267
7.2. Zastosowania na paszczynie ................................................................................................. 268
7.2.1. Przecicie wieloktw wypukych.................................................................................. 268
7.2.2. Przecicie wieloktw gwiazdoksztatnych.................................................................... 273
7.2.3. Przecicie odcinkw ....................................................................................................... 274
7.2.4. Przecicie ppaszczyzn................................................................................................. 283
7.2.5. Dwuzmienne programowanie liniowe ........................................................................... 285
7.2.6. Jdro wielokta paskiego............................................................................................... 294
7.3. Zastosowania trjwymiarowe .................................................................................................. 300
7.3.1. Przecicia wielocianw wypukych .............................................................................. 300
7.3.2. Przecinanie pprzestrzeni.............................................................................................. 308
7.4. Uwagi i komentarze ................................................................................................................. 313
7.5. wiczenia ................................................................................................................................. 315

8
Geometria prostoktw....................................................................................317
8.1. Wybrane zastosowania geometrii prostoktw ....................................................................... 317
8.1.1. Wspomaganie projektowania VLSI................................................................................. 317
8.1.2. Wielodostp w bazach danych ....................................................................................... 319
8.2. Dziedzina poprawnoci wynikw............................................................................................ 321
8.3. Oglne uwagi o algorytmach modelu statycznego.................................................................. 323

SPIS TRECI

8.4. Miara i obwd sumy prostoktw ........................................................................................... 325


8.5. Kontur sumy prostoktw ....................................................................................................... 332
8.6. Domknicie sumy prostoktw ............................................................................................... 339
8.7. Zewntrzny kontur sumy prostoktw ................................................................................... 343
8.8. Przecicia prostoktw i podobne problemy........................................................................... 348
8.8.1. Przecicia prostoktw ................................................................................................... 348
8.8.2. Jeszcze raz problem przecicia prostoktw .................................................................. 352
8.8.3. Zawieranie prostoktw................................................................................................. 355
8.9. Uwagi i komentarze ................................................................................................................. 360
8.10. wiczenia ............................................................................................................................... 361

Literatura ............................................................................................................363
Skorowidz...................... ....................................................................................375

Wprowadzenie

1.1. Rys historyczny


Geometria staroytnych Egipcjan i Grekw to dziea sztuki matematyki stosowanej. Problemy geometryczne pojawiay si w zwizku z koniecznoci dokadnego wyliczania
rnych obcie o charakterze podatkowym czy podczas wznoszenia monumentalnych
budowli. Jak to nieraz w historii bywa, matematyka stworzona jako narzdzie przydatne faraonom w rzdzeniu pastwem wyrosa znacznie ponad pierwotnie stawiane
przed ni zadania, a geometria staa si szko mylenia matematycznego. To w geometrii
tak przydatna jest zwyka intuicja, a nowe odkrycia s w zasigu nawet amatorw.
Powszechnie uwaa si, e najwaniejszym wkadem Euklidesa w rozwj geometrii
jest przedstawienie metody aksjomatycznego przeprowadzania dowodw. Nie bdziemy
tutaj z t tez dyskutowa. Dla nas jednak znacznie waniejsze bdzie pojcie konstrukcji
euklidesowej: metody obejmujcej algorytm konstrukcji wraz z dowodem. Konstrukcje euklidesowe speniaj wszystkie wymogi stawiane przed algorytmami: s jednoznaczne, poprawne i skoczone. W pniejszych czasach jednak, o ile przez 2000 lat geometria bya
nadal rozwijana, o tyle algorytmika zostaa na dugo zapomniana. Czciowym wyjanieniem takiego stanu rzeczy moe by skuteczno innej metody dowodzenia dowodzenia przez sprowadzenie do absurdu. Metoda ta uatwia dowodzenie, e jaki obiekt istnieje.
Dowd prowadzi si przez zaprzeczenie, nie podaje si natomiast konkretnego sposobu
konstrukcji (czyli algorytmu).
Konstrukcje euklidesowe jeszcze z innego powodu zasuguj na uwag: opisano w nich
zestaw rodkw, z jakich wolno korzysta (linijka i cyrkiel), oraz zdefiniowano zestaw
dopuszczalnych czynnoci elementarnych. Staroytni najbardziej zainteresowani byli tym,
czy przyjte czynnoci elementarne s domknite ze wzgldu na konstrukcje skoczone.
Szczeglnie interesowao ich, czy moliwe jest za ich pomoc zrealizowanie wszystkich
dajcych si wymyli konstrukcji geometrycznych, takich jak trysekcja kta. Dzisiaj to
samo pytanie moglibymy sformuowa inaczej: czy elementarne czynnoci konstrukcji
euklidesowych wystarcz do wykonania wszystkich moliwych oblicze geometrycznych? Prbujc odpowiedzie na to pytanie, rozwaano rne alternatywne metody, z wykorzystaniem innych operacji i innych narzdzi. Archimedes przedstawi (poprawn zreszt)
konstrukcj trysekcji kta 60, przy czym skorzysta z nastpujcego rozszerzenia zbioru

14

1. WPROWADZENIE

dopuszczalnych operacji: Jeli mamy dwa okrgi, A i B, oraz punkt P, wolno nam na liniale
zaznaczy odcinek MN i umieci go tak, aby linia przechodzi przez P, stykajc si z okrgiem
A w punkcie M i z okrgiem B w punkcie N. Czasami badano te ograniczony zbir narzdzi,
na przykad rozwaano posugiwanie si jedynie cyrklami. Tego typu prby kojarzy si
musz z teori automatw, w ktrej si poszczeglnych modeli obliczeniowych badamy,
nakadajc rne ograniczenia. Niestety, dowd niezupenoci zbioru narzdzi euklidesowych pojawi si dopiero po stworzeniu i rozwiniciu algebry.
Wpyw Elementw Euklidesa na przysze pokolenia by tak duy, e a do czasw Kartezjusza nikt nie proponowa nawet innego sformuowania geometrii. Dopiero
Kartezjusz, wprowadzajc swj ukad wsprzdnych, umoliwi skorzystanie z osigni
algebry, co dopiero pozwolio zaj si krzywymi wyszych rzdw i otworzyo drog
dla rachunku Newtona. Uycie wsprzdnych znacznie zwiksza moliwoci obliczeniowe, zasypujc przepa midzy algebr i geometri. Metody obliczeniowe oznaczay
te renesans mylenia konstruktywistycznego. Moliwe stao si tworzenie nowych figur
geometrycznych przez rozwizywanie powizanych z nimi rwna. Ju wkrtce znw
pojawiy si pytania o obliczalno. Gauss, korzystajc z narzdzi algebraicznych, wykaza,
ktre wielokty foremne majce liczb bokw wyraonych liczb pierwsz mona zbudowa, korzystajc z narzdzi euklidesowych. Jasne stao si, e konstrukcje wykonywane
za pomoc linijki i cyrkla, wyliczanie pl i rwnania algebraiczne s cile ze sob powizane. W swej rozprawie doktorskiej Gauss wykaza, e kade rwnanie algebraiczne
ma przynajmniej jeden pierwiastek (jest to podstawowe twierdzenie algebry). W 1828
roku Abel rozwaa ten sam problem w ograniczonym modelu obliczeniowym: bada, czy
pierwiastek kadego rwnania algebraicznego mona wyznaczy, korzystajc jedynie
z operacji arytmetycznych i pierwiastkowania n-tego stopnia. Udowodni, e jest to niemoliwe. O ile wszystkie liczby dajce si skonstruowa geometrycznie s algebraiczne1,
o tyle Abel wykaza, e nie wszystkie liczby algebraiczne daj si skonstruowa. Niedugo
pniej Abel pokaza, ktre rwnania algebraiczne mona rozwiza za pomoc pierwiastkw, a dziki temu moliwe byo badanie wykonalnoci rnych problemw geometrycznych, takich jak trysekcja kta.

1.1.1. Zoono geometrii klasycznej


Wszystkie konstrukcje euklidesowe poza najprostszymi s bardzo zoone, a to z powodu elementarnoci dozwolonych operacji. W przeszoci wielokrotnie prbowano udoskonali geometri poprzez tworzenie konstrukcji skadajcych si z mniejszej liczby operacji
elementarnych. Jednak a do dwudziestego wieku nie potrafiono okreli miary zoonoci konstrukcji. W 1902 roku Emile Lemoine w dziele Gomtrographie nastpujco scharakteryzowa operacje elementarne geometrii euklidesowej [Lemoine (1902)]:

1
Kiedy mwimy, e liczba daje si skonstruowa, mamy na myli moliwo konstrukcyjnego zbudowania odcinka o dugoci wyraonej tak liczb, kiedy dany jest odcinek jednostkowy
przyp. tum.

1.1. RYS HISTORYCZNY

(1)
(2)
(3)
(4)
(5)

15

Umieszczenie nki cyrkla w danym punkcie.


Umieszczenie nki cyrkla na danej prostej.
Narysowanie okrgu.
Przyoenie brzegu linijki do danego punktu.
Narysowanie prostej.

czn liczb takich operacji wykonywanych podczas tworzenia konstrukcji nazywamy zoonoci. Definicja taka jest bardzo bliska pojciu zoonoci obliczeniowej algorytmw, cho Lemoine nie powiza bezporednio rozmiaru danych wejciowych (liczby
danych punktw i prostych) ze zoonoci konstrukcji geometrycznej. Lemoine chcia
poprawi starsze konstrukcje euklidesowe, a nie tworzy teori ich zoonoci. Wczeniej
odnis niejeden sukces; euklidesowe rozwizanie problemu okrgw Apoloniusza wymaga 508 krokw, za rozwizanie podane przez Lemoinea liczyo poniej dwustu krokw [Coolidge (1916)]. Niestety, Lemoine nie dostrzeg wagi dowodu, e dana konstrukcja
wymaga pewnej minimalnej liczby krokw.
Znaczenie takiego dolnego ograniczenia liczby krokw dostrzeg Hilbert. Pracujc
w ograniczonym modelu, rozwaa jedynie te konstrukcje, ktre da si zrealizowa za
pomoc liniau i miarki narzdzia sucego jedynie do odkadania na prostej odcinka
o zadanej dugoci. Nie do wszystkich konstrukcji euklidesowych taki zestaw narzdzi
wystarcza. Jeli konstrukcja daje si tak przeprowadzi, na wsprzdne punktw mona
patrze jako na funkcj F danych punktw. Hilbert poda warunki konieczny i wystarczajcy do tego, aby F dawaa si wyliczy za pomoc n operacji pierwiastkowania drugiego stopnia; jest to jedno z pierwszych twierdze dotyczcych algebraicznej zoonoci
obliczeniowej [Hilbert (1899)].
Wiele wskazuje na to, e rne techniki stosowane dzisiaj do analizy algorytmw byy
uywane przez geometrw ju od wiekw. W roku 1672 Georg Mohr wykaza, e kada
konstrukcja wykonalna linijk i cyrklem moe by te zrobiona samym cyrklem, o ile
zgodzimy si, aby wszystkie dane i konstruowane obiekty byy wyznaczane punktami.
Samym cyrklem nie mona narysowa linii prostej, ale mona j wskaza za pomoc
dwch punktw, powstajcych przy przecinaniu si okrgw. W dowodzie Mohra wane
jest to, e jest to symulacja, pozwalajca pokaza, e kad operacj, w ktrej uywamy
linijki, mona zastpi skoczon liczb operacji wykonywanych samym cyrklem. Mona
by zapyta, czy istnieje tu jaki cilejszy zwizek z teori automatw. Podobnego typu
wnioskiem jest stwierdzenie, e w konstrukcjach, w ktrych uywana jest linijka, mona
uy linijki dowolnie maej dugoci, byle wikszej od zera.
Lemoine i jego naladowcy zajmowali si zoonoci konstrukcji euklidesowych,
ale warto te zapyta o to, jakiej przestrzeni te konstrukcje wymagaj. Naturaln miar
potrzebnej przestrzeni jest jej powierzchnia. Uywana przestrze zaley od powierzchni
wielokta wypukego obejmujcego potrzebne punkty, powierzchni spodziewanego
wyniku oraz powierzchni potrzebnej podczas konstrukcji obiektw pomocniczych [Eves
(1972)]. Co warte odnotowania, zapis czasu i powierzchni nie s geometrii cakiem obce.
Wprawdzie Galois wykaza niewykonalno pewnych konstrukcji euklidesowych,
wobec czego niemoliwa bya na przykad dokadna trysekcja kta, nie wpywa to jednak
na moliwo realizacji konstrukcji przyblionych. Tak naprawd zbiene asymptotycznie
procedury kwadratury koa i podwojenia szecianu znane byy ju staroytnym Grekom
[Heath (1921)]. Jak wida, algorytmy iteracyjne maj ju naprawd dug histori.

16

1. WPROWADZENIE

1.1.2. Teoria zbiorw wypukych,


geometria metryczna i kombinatoryczna
W dziewitnastym wieku geometria rozwijaa si w wielu rnych kierunkach. Jeden z tych
kierunkw, zapocztkowany przez Kleina, dotyczy bada nad zachowaniem si obiektw
geometrycznych poddanych rnym przeksztaceniom. Innym wanym kierunkiem rozwoju bya geometria rzutowa (zobacz punkt 1.3.2). Badanie skoczonych przestrzeni rzutowych prowadzi do fascynujcych pyta z dziedziny kombinatoryki i algorytmw dyskretnych, ale nie bdziemy w tej ksice zajmowa si tymi dziedzinami geometrii.
Rozwj analizy rzeczywistej mia duy wpyw na geometri, gdy da formalne podstawy poj, ktre wczeniej byy jedynie intuicyjne. Dwa stworzone tak dziea geometria metryczna i teoria wypukoci stanowi bardzo wane narzdzia matematyczne
pozwalajce projektowa szybkie algorytmy.
Odlego to jedno z podstawowych poj geometrii. Jego uoglnieniem jest metryka,
ktra pozwala wprowadzi zagadnienia i metody geometryczne do analizy; odlego
midzy funkcjami pozwala tworzy przestrzenie funkcji i inne zaawansowane konstrukcje.
Niestety, wiele twierdze tej dziedziny to twierdzenia niekonstrukcyjne. Przestrzenie
funkcyjne z samej swej natury nie poddaj si obliczeniom.
Znaczenie teorii wypukoci polega na tym, e zajmujemy si waciwociami globalnymi, co pozwala rozwizywa problemy ekstremw. Niestety, wiele zagadnie trudno jest
sformuowa algebraicznie i znw wiele twierdze to twierdzenia niekonstrukcyjne.
Geometria kombinatoryczna w swej naturze jest znacznie blisza geometrii algorytmicznej. Obiekty geometryczne s w niej charakteryzowane przez waciwoci podzbiorw
skoczonych. Przykadowo, zbir jest wypuky wtedy i tylko wtedy, gdy odcinek wyznaczony przez dowolne dwa punkty tego zbioru jest w tym zbiorze cakowicie zawarty.
Nieprzydatno geometrii kombinatorycznej do naszych rozwaa wynika std, e zwykle liczba skoczonych podzbiorw jest nieskoczona, co wyklucza podejcie algebraiczne.
Ostatnie prace nad algorytmami geometrycznymi zmierzay do usunicia tych niedogodnoci i stworzenia matematyki dajcej w wyniku dobre algorytmy.

1.1.3. Wczeniejsze prace


Algorytmy geometryczne byy tworzone w rnych kontekstach, za terminu geometria
obliczeniowa uywano przynajmniej w dwch rnych znaczeniach. Teraz postaramy
si wszystkie te wysiki uoy we waciwy sposb i pokaza ich miejsce w dzisiejszej nauce.
(1) Modelowanie geometryczne za pomoc krzywych i powierzchni skadanych. Zagadnienie to blisze jest analizie numerycznej ni geometrii. Najwiksze sukcesy odnieli
tutaj Bzier, Forrest i Riesenfeld. Warto zauway, e Forrest t wanie dziedzin
wiedzy okrela mianem geometrii obliczeniowej [Bzier (1972), Forrest (1971),
Riesenfeld (1973)].
(2) We wspaniaej ksice Perceptrons Minsky i Papert (1969) opisali zoono predykatw
pozwalajcych rozpoznawa pewne wasnoci geometryczne, takie jak wypuko.

1.2. WPROWADZENIE DO ALGORYTMW

17

Celem ich pracy byo ustalenie, czy moliwe jest uycie duych czujnikw, skadajcych si z prostych ukadw, do rozpoznawania wzorcw. Ich teoria jest samodzielna
i nie mieci si w tematyce tej ksiki.
(3) Oprogramowanie graficzne i edytory rysunkw s niewtpliwie miejscem, w ktrym
stosowanych jest szereg algorytmw przedstawianych w tej ksice. Jednak w tym
wypadku pojawia si wiele zagadnie zwizanych bezporednio z implementacj
i interfejsem uytkownika, a nie analiz algorytmw. Do tej samej klasy rozwiza
zaliczy naley oprogramowanie sterujce obrabiarkami numerycznymi, oprogramowanie ploterw, systemy kartograficzne oraz oprogramowanie inynierskie i architektoniczne.
(4) Pojcie geometria obliczeniowa wielu osobom moe kojarzy si z dowodzeniem
twierdze geometrycznych za pomoc komputera. Jest to fascynujca tematyka, ale
znacznie wicej mwi ona o metodach dowodzenia twierdze ni o samej geometrii,
wic nie bdziemy si ni dalej zajmowa.

1.1.4. Ku geometrii obliczeniowej


Na to, co dzisiaj rozumiemy przez geometri obliczeniow, zoyo si wiele obszarw zastosowa, w ktrych konieczne byo opracowanie wydajnych algorytmw rozwizywania problemw geometrycznych. Przykadowe zagadnienia to problem komiwojaera, minimalne drzewo, ukrywanie linii czy programowanie liniowe, a take mnstwo innych.
Aby pokaza przekonujco rnorodne przykady zastosowania geometrii obliczeniowej,
przed zaprezentowaniem tych problemw najpierw przedstawimy potrzebne informacje
pomocnicze.
W literaturze naukowej algorytmiczne studia nad wymienionymi i podobnymi problemami pojawiay si w cigu caego wieku, a szczeglnie czsto w ostatnim dwudziestoleciu. Jednak dopiero ostatnio podjto systematyczne badania algorytmw geometrycznych, a zarazem zwikszyo si zainteresowanie t dziedzin, w publikacji M. I. Shamosa
(1975a) nazwan geometri obliczeniow.
Mamy nadziej, e z omawianych w tej ksice zagadnie wyoni si caociowy obraz
geometrii obliczeniowej i stosowanych w niej metod. Jedn z podstawowych cech tej dziedziny jest stwierdzenie, e tradycyjne pojmowanie obiektw geometrycznych niejednokrotnie nie nadaje si do projektowania optymalnych algorytmw. Aby tego problemu
unikn, konieczne jest odnalezienie poj, ktre s przydatne w obliczeniach, i okrelenie
ich waciwoci. Krtko mwic, geometria obliczeniowa musi przeksztaca w miar
potrzeb klasyczn dziedzin wiedzy w jej posta obliczeniow.

1.2. Wprowadzenie do algorytmw


W cigu ostatnich pitnastu lat analiza i projektowanie algorytmw programw byo jedn
z najdynamiczniej rozwijajcych si dziedzin informatyki. Fundamentalne prace Knutha
(1968, 1973) oraz Aho, Hopcrofta i Ullmana (1974) wprowadziy porzdek w bogatym

18

1. WPROWADZENIE

zbiorze odrbnych wynikw, okreliy podstawowe paradygmaty i ustaliy metodologi,


ktra staa si standardem. Dalsze prace [Reingold-Nievergelt-Deo (1977), Wirth (1976)]
jeszcze bardziej wzmocniy podstawy teoretyczne.
Dokadne omawianie tych doskonaych prac wykracza poza zakres niniejszej ksiki,
ale zakadamy, e tematyka ta jest ju znana Czytelnikowi. Jednak warto, choby z uwag
na terminologi, krtko omwi skadniki jzyka, ktrym bdziemy opisywali geometri
obliczeniow. Skadniki te to algorytmy i struktury danych. Algorytmy to programy przeznaczone do wykonywania na odpowiedniej abstrakcji maszyn von Neumanna. Struktury
danych to sposoby uoenia informacji, ktre w poczeniu z algorytmami pozwalaj
wydajnie i elegancko rozwizywa problemy obliczeniowe.

1.2.1. Algorytmy: zapis i okrelanie wydajnoci


Algorytmy zapisuje si z uwzgldnieniem konkretnego modelu obliczeniowego. Jak zobaczymy w podrozdziale 1.4, model obliczeniowy to wygodna abstrakcja maszyny fizycznej
stosowanej do wykonywania programw. Jak jednak wykazali Aho-Hopcroft-Ullman
(1974), nie jest konieczne ani podane zapisywanie algorytmu w formie kodu maszynowego. Zamiast tego, aby zachowa jasno, zwizo i zapewni zrozumiao zapisu,
naley zwykle2 uy wysokopoziomowego jzyka Pidgin Algol, ktry sta si ju standardem w literaturze przedmiotu. Pidgin Algol to nieformalna i elastyczna wersja jzyka
podobnego do Algolu. Zapis struktur kontrolnych jest cile okrelony, ale wszelkie inne
wyraenia mona zapisywa bardzo dowolnie, cisy zapis matematyczny moe by mieszany z jzykiem naturalnym. Oczywicie, programy w jzyku Pidgin Algol mog by
automatycznie przekadane na programy zapisane w formalnych jzykach wysokiego
poziomu.
Podobnie jak Aho-Hopcroft-Ullman, pokaemy konstrukcje jzyka Pidgin Algol.
Formalne deklaracje typw danych nie maj tu zastosowania, za typ zmiennej zwykle
jasno wynika z kontekstu. Poza tym nie ma adnego specjalnego formatu zapisu wyrae i warunkw.
Program nazywamy procedur, ma on posta:
procedure nazwa (parametry) instrukcja.
Instrukcj mona zapisa jako acuch dwch lub wicej instrukcji, ujty w nawiasy
beginend:
begin instrukcja;
...
instrukcja
end.
2

Czasami algorytmy mog by zapisywane w formie zwykego tekstu.

19

1.2. WPROWADZENIE DO ALGORYTMW

Instrukcja moe te mie posta zdania jzyka naturalnego lub jedn z poniszych postaci:
(1) Przypisanie:
zmienna := rdo wartoci
rdo wartoci to opis wyliczenia wartoci, ktra ma by przypisana zmiennej.
Wyliczenie to, oglnie rzecz biorc, wyraenie na zbiorze zmiennych (niektre z tych
zmiennych mog by zapisane jako funkcje; funkcja to przypadek szczeglny programu, co pokaemy dalej).
(2) Instrukcja warunkowa:
if warunek then instrukcja (else instrukcja)
Cz z else jest opcjonalna.
(3) Ptla moe mie jedn z trzech postaci:
3a. for zmienna := warto until warto do instrukcja
3b. while warunek do instrukcja
3c. repeat instrukcja until warunek
Konstrukcje while i repeat rni si o tyle, e w przypadku ptli while warunek
jest sprawdzany przed wykonaniem instrukcji, za w ptli repeat najpierw wykonywana jest instrukcja.
(4) Instrukcja powrotu:
return wyraenie
Instrukcja tego typu musi pojawi si w programach bdcych funkcjami. Programy takie
maj posta:
function nazwa (parametry) instrukcja.
Wyraenie bdce argumentem return staje si rdem wartoci dla instrukcji przypisania,
pokazanej powyej w punkcie 1.
Algorytmy zapisane w jzyku Pidgin Algol czsto zawieraj komentarze, majce
uatwia ich zrozumienie. Zwykle komentarz zapisuje si w postaci: (zdanie w jzyku
naturalnym).
Czas potrzebny na obliczenia czyli wykonanie algorytmu to suma czasw wykonywania poszczeglnych operacji (zobacz te podrozdzia 1.4). Jak ju wczeniej wspomnielimy, w Pidgin Algolu program mona atwo przeksztaci na kod maszynowy

20

1. WPROWADZENIE

wybranego komputera (cho zadanie to moe by mudne). W zasadzie byaby to metoda


wyznaczenia czasu wykonywania programu. Jednak jest to rozwizanie nie tylko mudne,
ale i mao ksztacce, gdy odwoujemy si do konkretnego komputera, podczas gdy
interesuje nas zaleno funkcyjna midzy czasem wykonania a wielkoci rozwizywanego problemu (czyli jak szybko ronie czas wykonania przy wzrocie wielkoci problemu). Wobec tego przyjo si w analizie i projektowaniu algorytmw okrela czas
wykonywania (a take wszelkie inne miary szybkoci dziaania) z pominiciem staych
wspczynnikw. Zwykle robi si to, uwzgldniajc jedynie wybrane operacje kluczowe
algorytmu (wystarcza do tego analiza algorytmu zapisanego w jzyku wysokiego poziomu). Takie podejcie jest jak najbardziej uprawnione, jeli chodzi o ustalanie dolnego
ograniczenia czasu wykonania, gdy wszystkie nieuwzgldniane w takim przypadku
operacje mog czas wykonania jedynie zwiksza. Jeli jednak chodzi o grne ograniczenie, trzeba zapewni, e wybrane operacje bd stanowiy stay uamek wszystkich
operacji algorytmu. Knuth spopularyzowa metod zapisu, ktra pozwala rozrni ograniczenie grne i dolne; w tej ksice take skorzystamy z tej metody [Knuth (1976)]:
O(f(N)) oznacza zbir wszystkich funkcji g(N) takich, e istniej stae dodatnie C i N0,
e dla wszystkich N N0 zachodzi |g(N)| Cf(N).
(f(N)) oznacza zbir wszystkich funkcji g(N) takich, e istniej dodatnie stae C i N0
takie, e dla wszystkich N N0 zachodzi g(N) Cf(N).
(f(N)) oznacza zbir wszystkich funkcji g(N) takich, e istniej dodatnie stae C1, C2
i N0 takie, e dla wszystkich N N0 zachodzi C1f(N) g(N) C2f(N).
o(f(N)) oznacza zbir wszystkich funkcji g(N) takich, e dla wszystkich dodatnich staych C istnieje staa N0 taka, e dla wszystkich N N0 zachodzi g(N) Cf(N) (lub, co
jest rwnowane, limN g(N)/f(N) = 0).
Tak wic O(f(N)) zawiera funkcje nie wiksze ni pewne stae razy f(N) tak mona
okreli ograniczenie grne. Z kolei (f(N)) zawiera funkcje nie mniejsze ni pewna staa
razy f(N), wic mamy ograniczenie dolne. W kocu (f(N)) zawiera funkcje tego samego
rzdu co f(N), przez co moemy okreli algorytmy optymalne.
Omwilimy ju czas wykonywania algorytmu. Inn wan miar wydajnoci jest
zajmowanie pamici. Wanie pami i czas, wyraone jako funkcje wielkoci problemu,
stanowi dwie podstawowe miary wydajnoci przy analizie algorytmw.
Gwnym celem niniejszej ksiki jest przedstawienie algorytmw dotyczcych problemw geometrycznych i oszacowanie ich zoonoci w najgorszym przypadku. Zoono
w najgorszym przypadku to najwiksza miara wydajnoci algorytmu przy danej wielkoci
problemu. Z kolei zoono przypadku redniego (czyli zoono oczekiwana) to oszacowanie, jakiej zoonoci powinnimy spodziewa si podczas testw. Niestety, analiza
przypadku redniego jest znacznie trudniejsza od analizy przypadku najgorszego. Po
pierwsze, pojawiaj si trudnoci matematyczne nawet w przypadku dobrego doboru
rozkadu parametrw. Po drugie, rzadko udaje si ustali, jak w praktyce bdzie wygldao
typowe uycie algorytmu. Dlatego wanie zwykle analizuje si przypadek najgorszy.
W niniejszej ksice sporadycznie zajmowa si bdziemy wynikami przypadku redniego.
Inn wan rzecz, ktr naley tutaj podkreli, jest fakt, e w zapisie rzdu zoonoci nie pojawiaj si wspczynniki mnoenia. Wobec tego uzyskana zoono obowizuje jedynie w przypadku dostatecznie duych problemw. Z tego powodu mwimy

1.2. WPROWADZENIE DO ALGORYTMW

21

w takiej sytuacji o analizie asymptotycznej. Moliwe jest i wcale nie rzadkie e w przypadku maych problemw optymalny algorytm nie jest algorytmem najlepszym asymptotycznie. Wybierajc algorytm do konkretnego zastosowania, trzeba powysze zawsze
mie na uwadze.

1.2.2. Nieco o technikach tworzenia algorytmw


Wydajne algorytmy opisujce problemy geometryczne czsto tworzy si, przetwarzajc
techniki oglne danej dziedziny, jak dziel i rzd, rwnowaenie, rekurencj czy programowanie dynamiczne. Doskonae omwienie tych technik znale mona w klasycznych
ju tekstach powiconych analizie i projektowaniu algorytmw (na przykad [Aho-Hopcroft-Ullman (1974)]) i zbdne jest tutaj powtarzanie tego.
Istnieje technika, ktra w sposb naturalny jest szczeglnie polecana do rozwizywania problemw geometrycznych. Technik t nazywamy wymiataniem, przy czym najczciej korzysta si z wymiatania paszczyzny (w dwch wymiarach) i wymiatania przestrzeni
(w trzech wymiarach). Teraz omwimy najwaniejsze cechy wymiatania paszczyzny;
uoglnienie tego do trzech wymiarw jest ju proste.
Aby nie by goosownym, pokaemy t metod na konkretnym przykadzie (ktry
dokadniej omwimy w punkcie 7.2.3): jeli mamy dany zbir odcinkw na paszczynie,
naley znale wszystkie ich przecicia. Rozwamy prost l (bez utraty oglnoci moemy
zaoy, e jest ona pionowa), ktra dzieli paszczyzn na lew i praw ppaszczyzn.
Zamy, e kada z tych ppaszczyzn zawiera koce danych odcinkw. Jest jasne, e
rozwizaniem naszego zadania bdzie suma rozwiza dla wszystkich takich par ppaszczyzn. Zakadajc zatem, e mamy ju zbir przeci na lewo od l, wiemy, e na
uzyskany zbir nie bd miay wpywu odcinki znajdujce si na prawo od l. Zauwamy,
e przecicie moe wystpi jedynie midzy dwoma takimi odcinkami, ktrych przecicia
z pewn pionow prost przylegaj do siebie. Tak wic, jeli uwzgldnimy wszystkie
pionowe przecicia danego zbioru odcinkw, odnajdziemy wszystkie przecicia. Jako e
jednak niemoliwe jest wyliczenie cigego, nieskoczonego zbioru wszystkich przeci
pionowych, musimy ten problem rozwiza inaczej. Zauwamy, e paszczyzna dzielona
jest na pionowe paski, z ktrych kady ograniczony jest albo kocami odcinkw, albo
przeciciami odcinkw, przy czym pionowa kolejno odcinania przez pionowe cicie
jest staa. Wobec tego wystarczy przej od lewego brzegu takiego paska do jego brzegu
prawego, zaktualizowa kolejno odcinkw i sprawdzi, czy midzy przylegajcymi
odcinkami wystpuj jakie nowe przecicia.
W powyszym omwieniu pokazalimy podstawowe cechy techniki wymiatania paszczyzny. Pionowa prosta przesuwana jest po paszczynie od lewej do prawej, przy czym
zatrzymuje si w punktach szczeglnych, nazywanych punktami zdarze. Przecicie
tej prostej z badanymi danymi zawiera wszystkie informacje potrzebne do przejcia dalej.
Tak wic mamy dwie podstawowe struktury:
(1) Harmonogram punktw zdarze, ktry okrela cig wsprzdnych odcitych, uporzdkowany od lewej do prawej w ten sposb definiujemy punkty zatrzymania
linii wymiatajcej. Zwrmy uwag, e harmonogram punktw zdarze nie musi

22

1. WPROWADZENIE

od razu wynika z danych wejciowych, ale moe by aktualizowany dynamicznie


podczas wykonywania algorytmu wymiatania paszczyzny. W rnych zastosowaniach potrzebne mog by rne struktury danych.
(2) Stan prostej wymiatajcej, ktry odpowiada opisowi przecicia linii wymiatajcej
z geometryczn struktur wymiatan. Owo odpowiadanie oznacza, e przecicie
zawiera informacje charakterystyczne dla danego zastosowania. Stan prostej wymiatajcej jest aktualizowany przy przyjciu do kadego nastpnego punktu; kadorazowo konieczne jest te wybieranie odpowiedniej struktury danych.
Przykady algorytmw wymiatania paszczyzny pokaemy w punkcie 2.2.2.

1.2.3. Struktury danych


W algorytmach geometrycznych mamy do czynienia z przetwarzaniem obiektw, ktre nie
s obsugiwane bezporednio na poziomie jzyka maszynowego. Wobec tego uytkownik
musi te zoone obiekty opisa za pomoc prostszych typw danych, ktre s dla komputera zrozumiae. Opisy tego typu okrelamy mianem struktur danych.
Najpowszechniej spotykanymi obiektami zoonymi w algorytmach geometrycznych
s zbir i cig (uporzdkowany zbir). Struktury danych najlepiej je opisujce omwiono
w literaturze podstawowej o algorytmach i do niej kierujemy Czytelnika [Aho-Hopcroft-Ullman (1974), Reingold-Nievergelt-Deo (1977)]. Nam wystarczy jedynie wymienienie
dostpnych struktur danych oraz opisanie ich dziaania i wpywu na wydajno.
Niech S bdzie zbiorem reprezentowanym przez struktur danych, a u niech bdzie
dowolnym elementem zbioru, ktrego S jest podzbiorem. Podstawowe operacje na zbiorach to:
(1) MEMBER(u, S). Czy u S? (odpowied: TAK lub NIE).
(2) INSERT(u, S). Dodanie u do S.
(3) DELETE(u, S). Usunicie u z S.
Zamy, e {S1, S2, , Sk} to zbir zbiorw (parami rozcznych). Przydatnymi operacjami na takim zbiorze zbiorw s:
(4) FIND(u). Podanie j, jeli u Sj.
(5) UNION(Si, Sj; Sk). Tworzona jest suma zbiorw Si i Sj, oznaczana jako Sk.
Kiedy zbir zewntrzny jest cakowicie uporzdkowany, bardzo wane s nastpujce operacje:
(6) MIN(S). Podanie najmniejszego elementu z S.
(7) SPLIT(u, S). Zbir S dzielony jest na {S1 , S2} takie, e S1 = {v: v S oraz v u}
oraz S2 = SS1.
(8) CONCATENATE(S1, S2). Zakadajc, e dla dowolnych u' S1 i u S2 mamy u' u,
tworzymy uporzdkowany zbir S = S1 S2.

1.2. WPROWADZENIE DO ALGORYTMW

23

Struktury danych mona pogrupowa ze wzgldu na operacje, jakie s w nich moliwe


(abstrahujc od szybkoci wykonywania tych operacji). Tak wic w przypadku zbiorw
uporzdkowanych mamy nastpujc tabel:
TABELA I
Struktura danych

Obsugiwane operacje

Sownik
Kolejka priorytetowa
Kolejka czona

MEMBER, INSERT, DELETE


MIN, INSERT, DELETE
INSERT, DELETE, SPLIT, CONCATENATE

Z uwagi na wydajno wszystkie te struktury danych zwykle realizuje si jako zbilansowane drzewo binarne (czsto AVL albo 2- lub 3-drzewo) [Aho-Hopcroft-Ullman (1974)].
W ten sposb kada operacja jest wykonywana w czasie proporcjonalnym do logarytmu
liczby elementw zapisanych w strukturze danych. Ilo zajmowanej pamici jest proporcjonalna do wielkoci zbioru.
Na powysze struktury danych mona spojrze bardziej abstrakcyjnie, jako na liniowe
tablice (czyli listy), gdzie wstawienia i usunicia mona wykonywa na dowolnych pozycjach takiej tablicy. W niektrych zastosowaniach bardziej odpowiednie s ograniczone,
uproszczone tryby dostpu. Strukturami takimi s: kolejki, w ktrych wstawianie ma
miejsce na kocu, a usunicie na drugim kocu; stosy, gdzie wstawianie i usuwanie ma
miejsce na jednym kocu (szczycie stosu). Jasne jest, e zarzdzanie stosem i kolejk
wymaga uycia odpowiednio jednego i dwch wskanikw. Aby skrci zapis, majc na
myli dodanie i usunicie z U, bdziemy uywa odpowiednio symboli U oraz U,
gdzie U jest kolejk lub stosem.
Zbiory nieuporzdkowane zawsze mona traktowa tak samo, jak zbiory uporzdkowane, sztucznie ustalajc porzdek elementw (na przykad przypisujc elementom nazwy i stosujc kolejno alfabetyczn). Typow struktur danych w takim przypadku jest:
TABELA II
Struktura danych

Obsugiwane operacje

Sterta czona

INSERT, DELETE, FIND, UNION, (MIN)

Kada z powyszych operacji wykonywana jest w czasie O (logN), gdzie N jest rozmiarem zbioru w strukturze danych, przy czym cao implementowana jest jako zrwnowaone drzewo. Jeli elementy rozwaanego zbioru bd reprezentowane jako liczby
cakowite od 1 do N, moliwe jest dopracowanie struktury danych tak, aby N operacji na
zbiorze o rozmiarze N byo wykonywanych w czasie O(N A (N)), gdzie A(N) jest wyjtkowo wolno rosnc funkcj, zwizan z funkcj Ackermanna (przykadowo dla N 2 2 ,
czyli 1020 000, A(N) 5).
Przedstawione powyej typowe struktury danych s bardzo czsto uywane w algorytmach geometrii obliczeniowej. Jednak z natury problemw geometrycznych wynika
konieczno stworzenia specyficznych, nietypowych struktur danych, z ktrych dwie s
tak powszechnie stosowane i przydatne, e na miejscu bdzie ich opisanie w tym rozdziale wstpnym. S to drzewo przedziaw i podwjnie powizana lista krawdzi.
16

24

1. WPROWADZENIE

1.2.3.1. Drzewo przedziaw


Drzewo przedziaw, pierwotnie wprowadzone przez J. L. Bentleya [Bentley (1977)], jest
struktur danych, suc do zapisu przedziaw prostej rzeczywistej, ktrych koce
nale do ustalonego zbioru N odcitych. Jako e zbir odcitych jest ustalony, drzewo
przedziaw jest struktur statyczn z uwagi na odcite, ktrych nie mona dodawa ani
usuwa. Poza tym odcite mog by znormalizowane przez zastpienie ich numerem
liczonym od lewej do prawej. Nie tracc oglnoci, mona rozwaa te odcite jako liczby
cakowite z zakresu [1, N].
Drzewo odcinkw to drzewo binarne z korzeniem. Jeli mamy liczby cakowite l i r,
przy czym l < r, drzewo przedziaw T(l, r) buduje si rekurencyjnie: ma ono korze v,
parametry B[v] = l oraz E[v] = r (B i E to skrty od angielskich sw Beginning i End, odpowiednio pocztek i koniec) oraz jeli rl > 1 drzewo to ma lewe poddrzewo
T(l, (B[v]+E[v]/2) oraz poddrzewo prawe T((B[v]+E[v]/2, r). Korzenie tych dwch
poddrzew oznacza si jako LSON[v] i RSON[v]. Parametry B[v] i E[v] okrelaj przedzia
[B[v], E[v]] [l, r], powizany z wzem v. Drzewo przedziaw pokazano na rysunku 1.1.
Zbir przedziaw {[B[v], E[v]]: v jest wzem T(l, r)} to przedziay standardowe T(l, r).
Przedziay standardowe nalece do lici T(l, r) nazywamy przedziaami elementarnymi3.
atwo wykaza, e T(l, r) jest zrwnowaone (wszystkie licie nale do kolejnych przedziaw, a jego wysoko to log2(rl).

RYSUNEK 1.1.
Drzewo
przedziaw T(4, 15)

Drzewo przedziaw T(l, r) suy do zapisu przedziaw, ktrych koce nale do zbioru
{l, l+1,, r} w sposb dynamiczny, czyli z moliwoci dodawania i usuwania. W szczeglnoci dla rl > 3 dowolny przedzia [b, e] z liczbami cakowitymi b < e zostanie podzielony
na zbir najwyej log2(rl)+log2(rl 2 przedziaw standardowych T(l, r). Podzia przedziau [b, e] jest cakowicie zdefiniowany przez operacj zapisujc (wstawiajc) [b, e] do
drzewa T, czyli przez nastpujce wywoanie INSERT(b, e; korze(T)):
procedure INSERT(b, e; v)
begin if (b B[v]] and (E[v] e) then wstaw [b, e] do v
else begin if(b < (B[v]+E[v])/2) then INSERT(b, e; LSON[v]);
if((B[v]+E[v])/2 < e) then INSERT(b, e;RSON[v]
end
end.
3
cile rzecz biorc, przedzia zwizany z v jest czciowo domknitym przedziaem [B[v], E[v]];
wyjtkiem s kocowe prawe wzy T(l, r), ktrych przedziay s domknite.

25

1.2. WPROWADZENIE DO ALGORYTMW

Wywoaniu INSERT(b, e; korze(T)) odpowiada przejcie po T, ktrego oglna struktura


jest taka, jak to pokazano na rysunku 1.2. cieka pocztkowa moe by pusta oznaczamy j jako PIN; przechodzi ona od korzenia do wza v*. Wze ten nazywamy rozgazieniem, gdy od niego zaczynaj si dwie cieki PL i PR (ktre mog by puste). Niezalenie od tego, czy wstawiany przedzia jest cakowicie umieszczony w rozgazieniu
(kiedy PL i PR s puste), wszystkie prawe wzy potomne PL nie nalece do PL, jak rwnie wszystkie lewe wzy potomne PR nie nalece do PR identyfikuj fragmentacj
[b, e] (wzy alokacji).

RYSUNEK 1.2.
Wstawianie
przedziau [74, 107]
do T(1, 257).
Wzy alokacji
zostay obwiedzione
podwjnym kkiem

Alokacja przedziau w wle v z T moe mie inn posta, zalen od wymaga


w konkretnym zastosowaniu. Czsto wystarczy zna liczb elementw zbioru przedziaw
alokowanych w danym wle v; wystarczy do tego pojedynczy parametr C[v], bdcy nieujemn liczb cakowit i oznaczajcy liczb elementw; tak wic alokacja [b, e] w v staje si
C[v] := C[v]+1.
W innych zastosowaniach konieczne jest zachowanie tosamoci przedziaw alokowanych
w wle v. Nastpnie doczamy do kadego wza v z T pomocnicz struktur list
L[v], ktrej elementy s identyfikatorami przedziaw.
Operacj symetryczn do INSERT jest DELETE, zapisywana nastpujco (zakadamy,
e interesuje nas zapamitanie parametru C[v]):

26

1. WPROWADZENIE

procedure DELETE(b, e; v)
begin if (b B[v]) and (E[v] e) then C[v] := C[v]1
else begin if (b < (B[v]+E[v])/2) then DELETE(b, e; LSON[v]);
if ((B[v]+E[v])/2 < e) then DELETE(b, e; RSON[v]);
end
end.
Zauwamy, e jedynie usuwanie przedziaw wczeniej wstawionych gwarantuje nam poprawno dziaa.
Drzewo przedziaw jest wyjtkowo wszechstronn struktur danych, o czym przekona si bdziemy mogli w wielu przykadach zastosowa (rozdziay 2. i 8.). Zauwamy
jeszcze tylko, e jeli chcemy wiedzie, ile przedziaw zawiera dany punkt x, wystarczy
zwyke wyszukiwanie binarne w T (czyli przejcie cieki od korzenia do licia).

1.2.3.2. Podwjnie powizana lista krawdzi


Podwjnie powizana lista krawdzi (oznaczana jako DCEL, od angielskiej nazwy
doubly-connected-edge-list) wietnie nadaje si do zapisu grafw paskich, umieszczonych
na paszczynie [Muller-Preparata (1978)]. Zanurzenie w paszczynie grafu paskiego
G = (V, E) to odwzorowanie wszystkich wzw z V na punkty paszczyzny i wszystkich
krawdzi z E na krzywe czce obrazy dwch wzw, ktre dana krawd czy; odwzorowanie jest tak dobrane, e adne krawdzie nie przecinaj si nigdzie poza swoimi
kocami. Wiadomo powszechnie, e wszystkie grafy paskie mona tak zanurzy w paszczynie, aby wszystkie krawdzie byy reprezentowane przez odcinki proste [Fary (1948)].
Niech V = {v1, ..., vN} oraz E = {e1, ..., eM}. Podstawowym skadnikiem listy krawdzi
grafu paskiego (V, E) jest wze krawdzi. Midzy krawdziami i wzami krawdzi istnieje
odwzorowanie jeden do jednego, czyli kada krawd reprezentowana jest dokadnie raz.
Wze krawdzi zawiera cztery pola z wartociami: V1, V2, F1 i F2 oraz dwa wskaniki,
P1 i P2. Tak wic odpowiedni struktur danych mona bez trudu zaimplementowa
jako sze tablic o takich samych nazwach, przy czym kada tablica skada si z M komrek. Znaczenie pl jest nastpujce: V1 zawiera pocztek krawdzi, V2 jej koniec; tak
oto krawdzi standardowo przypisywana jest orientacja. Pola F1 i F2 zawieraj nazwy
opisujce krawd z V1 do V2: nazwy lece na lewo i na prawo od krawdzi. Wskanik P1
(odpowiednio P2) wskazuje wze krawdzi, zawierajcy pierwsz krawd znajdujc
si za (V1, V2), przy ruchu w kierunku przeciwnym do ruchu wskazwek zegara. Jako
nazwy mog by uyte liczby cakowite. Przykadowy graf wraz z odpowiadajc mu
list DCEL pokazano na rysunku 1.3.
atwo teraz pokaza, jak na licie DCEL mona wskaza krawdzie przylegajce do
danego wza lub krawdzie zamykajce dany obszar. Jeli graf ma N wzw i F obszarw,
moemy zaoy, e mamy do czynienia z dwiema tablicami HV[1:N] oraz HF[1:F]
nagwkw wzw i listy obszarw: tablice te mona wypeni, przegldajc tablice V1
i F1 w czasie O(N). Ponisza procedura VERTEX(j) pozwala uzyska list krawdzi przylegajcych do vj w formie cigu adresw z tablicy A.

27

1.2. WPROWADZENIE DO ALGORYTMW

RYSUNEK 1.3.
Przykad
listy DCEL

procedure VERTEX(j)
begin a := HV[j];
a0 := a;
A[1] := a;
i := 2;
if (V1[a] = j) then a := P1[a] else a := P2[a];
while (a a0) do
begin A[i] := a;
if (V1[a] = j) then a := P1[a] else a := P2[a];
i := i+1
end
end.
VERTEX(j) wykonuje si w czasie proporcjonalnym do liczby krawdzi przylegajcych do vj.
Analogicznie moemy stworzy procedur FACE(j), pobierajc cig krawdzi zamykajcych fj; wystarczy zamieni HV i V1 na HF i F1 w powyszej procedurze VERTEX(j).
Zauwamy, e procedura VERTEX bada krawdzie w kierunku przeciwnym do ruchu
wskazwek zegara, podczas gdy FACE bada je dookoa obszaru w kierunku zgodnym
z ruchem wskazwek zegara.
Czsto graf paski G = (V, E) zapisuje si jako list krawdzi, gdzie dla kadego wza
vj V wskazuje si list krawdzi przylegajcych uoonych tak, jak s uoone dookoa vj
w kierunku przeciwnym do ruchu wskazwek zegara. atwo pokaza, e zapis G w formie
listy krawdzi mona przeksztaci na DCEL w czasie O( V ).

28

1. WPROWADZENIE

1.3. Podstawy geometrii


1.3.1. Definicje oglne, przyjte konwencje
Obiekty, ktrymi zajmuje si geometria obliczeniowa, to najczciej zbiory punktw w przestrzeni euklidesowej4. Zakada si uycie prostoktnego systemu wsprzdnych, wobec
czego kademu punktowi odpowiada wektor w tych wsprzdnych. Obiekty geometryczne
nie musz skada si ze skoczonej liczby punktw, ale musz by skoczenie opisywalne
(zwykle przez skoczony acuch parametrw). Tak wic poza pojedynczymi punktami,
bdziemy rozwaali proste zawierajce dwa dane punkty, odcinki o danych kocach,
paszczyzny zawierajce dane trzy punkty, wielokty okrelone uporzdkowanym cigiem
wierzchokw i tak dalej.
W tym punkcie nie bdziemy podawa formalnych definicji opisywanych poj;
chodzi jedynie o przypomnienie najwaniejszych faktw i przedstawienie stosowanego
dalej zapisu.
Przez Ed oznaczamy d-wymiarow przestrze euklidesow, czyli przestrze d-krotek
d
(x1, , xd) liczb cakowitych xi, i = 1, , d z metryk (i =1 x i2 )1 / 2 . Teraz przypomnimy definicje najwaniejszych obiektw, ktrymi zajmuje si geometria obliczeniowa.
Punkt. d-krotka (x1, , xd) oznacza punkt p w Ed; Punkt ten moe by te zinterpretowany jako d-wektor zaczepiony w pocztku ukadu wsprzdnych Ed, ktrego swobodnym kocem jest punkt p.
Prosta, paszczyzna, rozmaito liniowa. Jeli dane s dwa rne punkty q1 i q2 nalece
do Ed, to kombinacja liniowa
1 q 1 + (1 )q 2

( R )

jest prost w Ed. Oglnie, jeli danych jest k niezalenych liniowo punktw q1, , qk nalecych do Ed (k d), to kombinacja liniowa
1 q 1 + 2 q 2 + L + k 1 q k 1 + (1 1 L k 1 )q k
( j R , j = 1,..., k 1)
jest kombinacj liniow wymiaru (k1) w Ed.
Odcinek. Jeli dane s dwa rne punkty q1 i q2 w Ed, jeli do wyraenia q1+(1)q2
dodamy warunek 0 1, otrzymamy wypuk kombinacj q1 i q2, czyli:
q 1 + (1 )q 2
4

( R ,0 1)

Ograniczenie si do przestrzeni euklidesowej (pewnego szczeglnego, cho wyjtkowo wanego


przypadku geometrii metrycznej) pozwala nam wykorzysta intuicj, a poza tym to wanie przestrzeni euklidesowej dotyczy wikszo zastosowania. Jednak ograniczenie to nie jest tak bardzo
wane w wielu aplikacjach, ktre bdziemy omawia w dalszych rozdziaach. Do tego wanego
zagadnienia wrcimy jeszcze w punkcie 1.3.2.

29

1.3. PODSTAWY GEOMETRII

Kombinacja taka opisuje odcinek czcy punkty q1 i q2. Zwykle odcinek oznacza si jako
q 1 q 2 (para nieuporzdkowana).
Zbir wypuky. Figura D w Ed jest wypuka, jeli dla dowolnych dwch punktw q1 i q2
nalecych do D odcinek q 1 q 2 jest cakowicie zawarty w D.
Mona wykaza, e przecicie figur wypukych zawsze jest figur wypuk.
Wypuky wielokt opisany. Wypuky wielokt opisany zbioru punktw S w Ed to najmniejsza figura wypuka w Ed, zawierajca S.
Wielokt. W E2 wielokt definiuje si za pomoc skoczonego zbioru odcinkw takich,
e kady koniec kadego odcinka jest wsplny dla dokadnie dwch krawdzi i aden
podzbir krawdzi nie ma takiej wasnoci. Odcinki s krawdziami, za ich koce s
wierzchokami wielokta (warto zauway, e krawdzi i wierzchokw jest tyle samo).
Wielokt o n wierzchokach to n-kt.
Wielokt jest prosty, jeli adna para niekolejnych krawdzi nie ma wsplnych punktw. Wielokt prosty dzieli paszczyzn na dwa rozdzielne podzbiory: wntrze (ograniczone) oraz zewntrze (nieograniczone), ktre s rozdzielone wieloktem (twierdzenie
Jordana o krzywej). Pamitajmy, e w mowie potocznej mwic o wielokcie, mamy zwykle
na myli sum brzegu i wntrza.
Wielokt prosty jest wypuky, jeli wypuke jest jego wntrze.
Wielokt prosty P jest gwiazdoksztatny, jeli istnieje punkt z nie zewntrzny do P taki,
e dla wszystkich punktw p z P odcinek zp jest cakowicie zawarty w P (tak wic
wszystkie wielokty wypuke s jednoczenie gwiazdoksztatne). Pooenie punktu z,
majcego opisan waciwo, okrela jdro P. Wobec tego wielokt wypuky jest swoim
wasnym jdrem.
Graf paski. Graf G = (V, E) zbir wzw V, zbir krawdzi E) jest paski, jeli mona
zanurzy go w paszczynie unikajc przeci (punkt 1.2.3.2) Zanurzenie grafu paskiego
o prostych krawdziach w paszczynie okrela podzia paszczyzny nazywany podziaem
paskim lub map. Niech v, e i f oznaczaj odpowiedni liczb wzw, krawdzi i obszarw
(cznie z jednym obszarem nieograniczonym) dla podziau. Owe trzy wielkoci powizane s ze sob klasycznym wzorem Eulera [Bollobs (1979)]:
ve+ f =2

(1.1)

Jeli mamy dodatkow waciwo polegajc na tym, e wszystkie wzy s stopnia 3,


to atwo jest udowodni nastpujce nierwnoci:
v 2 e ,

e 3 f 6 ,

v 2 f 4,

e 3v 6
2
e
3
f 2v 4
f

(1.2)

co pokazuje, e v, e i f s parami proporcjonalne (zauwamy te, e trzy nierwnoci


z prawej strony s prawdziwe bezwarunkowo).

30

1. WPROWADZENIE

Triangulacja. Podzia paski jest triangulacj, jeli obszary s trjktami. Triangulacja


zbioru skoczonego S jest grafem paskim S z maksymaln liczb krawdzi (inaczej mwic,
triangulacj S uzyskujemy, czc punkty S nieprzecinajcymi si odcinkami tak, aby
wszystkie wewntrzne obszary wypukego wielokta opisanego na S byy trjktami.
Wielocian. W E3 wielocian definiuje si jako skoczony zbir wieloktw paskich
takich, e kada krawd dowolnego wielokta jest wsplna dla niego i dokadnie jednego innego wielokta (wielokty przylege) oraz aden podzbir wieloktw nie ma tej
samej wasnoci. Wierzchoki i krawdzie wieloktw staj si wierzchokami i krawdziami
wielocianu, za wielokty s jego cianami.
Wielocian jest prosty, jeli adna para nieprzylegajcych cian nie ma wsplnych
punktw. Wielocian prosty dzieli przestrze na dwie rozczne czci, wntrze (ograniczone) oraz zewntrze (nieograniczone). (W mowie potocznej przez wielocian zwykle rozumiemy ciany wraz z wntrzem).
Powierzchnia wielocianu (rzdu zero) jest izomorficzna z podziaem paszczyzny.
Wobec tego liczby wzw v, krawdzi e i cian f speniaj wzr Eulera (1.1).
Wielocian prosty jest wypuky, jeli wypuke jest jego wntrze.

1.3.2. Niezmienniki grup przeksztace liniowych


Mona byoby potraktowa geometri w peni aksjomatycznie, jako nauk o zbiorach
obiektw: punktw, prostych, paszczyzn i tak dalej, oraz o relacjach midzy tymi zbiorami. Takie obiekty nie musiayby mie adnych intuicyjnie zrozumiaych waciwoci.
Prawidowe korzystanie z aksjomatw powinno pozwoli wywie wszystkie waciwoci
geometrii. Takie podejcie zaprezentowa jako pierwszy Hilbert pod koniec XIX wieku
[Hilbert (1899)]; prba ta miaa ogromny wpyw na dalszy rozwj geometrii. Z kolei
w przypadku podejcia intuicyjnego, bliszego tradycji, wystarczy pamita, e mona
nawet zaoy, e zbiory punktw i prostych s skoczone.
Z praktycznego punktu widzenia najlepiej jednak patrze na geometri jako na formaln abstrakcj, opisujc obiekty i zjawiska znane z ycia codziennego. Wtedy podstawowymi skadnikami teorii s modele oparte na pojciach zrozumiaych intuicyjnie,
majce odpowiedniki fizyczne; przykadowo, linia prosta jest abstrakcj odpowiadajc
promieniowi wiata, za wszystkie twierdzenia jej dotyczce maj swoj interpretacj
eksperymentaln. Podejcie to nie stoi w cakowitej opozycji do podejcia poprzedniego;
przypisujemy jedynie aksjomatom intuicyjnie zrozumiae pojcia geometryczne. Trzeba
jednak zauway, e nawet przy takich ograniczeniach tworzona teoria nadal jest bardzo
szeroka. W pewnym sensie nawet nieeuklidesowa geometria teorii wzgldnoci jest wnioskiem z intuicyjnych wasnoci geometrycznych.
Naturalne jest, e omawiajc algorytmy ograniczymy si jedynie do przestrzeni euklidesowej. W kocu jest ona bardzo przydatnym modelem, wykorzystywanym w ogromnej liczbie zastosowa aplikacji geometrycznych. W szczeglnoci nie jest przypadkiem
wykorzystywanie wanie paszczyzn i przestrzeni euklidesowych w najwaniejszych zastosowaniach metod geometrycznych: w grafice komputerowej, projektowaniu wspomaganym

31

1.3. PODSTAWY GEOMETRII

komputerowo i innych. Zaoymy te, e uywana przestrze euklidesowa bdzie miaa


ortonormalny ukad wsprzdnych5.
Warto jednak zastanowi si nad moliwociami rozszerzenia poszczeglnych wnioskw z twierdze na przestrzenie inne ni euklidesowe. W szczeglnoci interesujce s
klasy przeksztace przestrzeni (i obiektw w danym problemie uwzgldnianych) dokonywanych tak, aby zachowa prawdziwo twierdzenia.
Teraz bardziej formalnie: punkt nalecy do Ed mona interpretowa jako wektor o d
wsprzdnych (x1, x2, , xd) (stosuje si te bardziej zwarty zapis, x). Rozwamy przeksztacenie T: EdEd odwzorowujce Ed w ni sam. Takie odwzorowania zawsze bdziemy
interpretowa jako przesunicie punktw wzgldem ustalonego ukadu wsprzdnych,
a nie jako zmian ukadu wsprzdnych przy niezmienionym punkcie (zobacz na przykad:
[Birkhoff-MacLane (1965)]). Szczeglnie interesuj nad odwzorowania liniowe, czyli odwzorowania, w wyniku ktrych nowe wsprzdne punktu s liniowo zalene od starych wsprzdnych. Tak wic, jeli punkt p ma wsprzdne (x1, x2, ..., xd), to jego obraz w odwzorowaniu T, punkt p, ma wsprzdne:
d

x i ' = a ji x j + c i (i = 1,2 ,..., d)

(1.3)

j =1

albo, w bardziej zwartej formie,


x' = xA + c

(1.4)

gdzie A = aij jest macierz dd, c jest d-elementowym wektorem staym, a wszystkie
wektory zapisywane s w formie wiersza.
Rwnanie (1.4) to oglna posta przeksztacenia afinicznego. W intuicyjnym zrozumieniu przeksztace afinicznych pomc moe rozwaenie osobno dwch przypadkw
szczeglnych: A = I (macierz jednostkowa) oraz c = 0. Kiedy A = I, rwnanie (1.4) przybiera posta:
x' = x + c

(1.5)

i opisuje przeksztacenie, w ktrym kady punkt jest przesunity o stay wektor c. Takie
przeksztacenia nazywamy po prostu przesuniciami. Kiedy z kolei c = 0, mamy:
x' = xA
czyli liniowe przeksztacenie przestrzeni, odwzorowujce pocztek ukadu wsprzdnych na samego siebie (czyli pocztek ukadu wsprzdnych jest punktem staym tego
przeksztacenia). W przypadku oglnym na d-wymiarowe przeksztacenie afiniczne mona
spojrze jako na (d+1)-wymiarowe przeksztacenie liniowe w jednolitych wsprzdnych,
przy czym wektor punktu (x1, , xd) jest rozszerzany o dodatkow skadow xd+1 = 1.
Wobec tego rwnanie (1.4) mona zapisa jako:
5
Czyli taki, w ktrym osie bd parami prostopade, za odcinki jednostkowe na nich odoone
bd miay takie same dugoci.

32

1. WPROWADZENIE

A 0
(x' , 1) = ( x, 1)

c 1

(1.6)

Wany podzia przeksztace afinicznych oparty jest na waciwociach macierzy A.


W szczeglnoci rne gazie geometrii zajmowa si mog rnymi waciwociami,
niezmiennymi przy rozmaitych przeksztaceniach. Ta bardzo wana uwaga zostaa uczyniona przez Kleina ponad wiek temu [Klein (1872)] i staa si teraz jednym z pryncypiw
nauczania geometrii.
Zaczniemy od rozwaenia przypadku, w ktrym A jest dowoln macierz odwracaln. Oczywista, e takie przeksztacenia tworz grup, co mona atwo udowodni 6.
Grup tak nazywamy grup afiniczn, za geometria afiniczna zajmuje si waciwociami
zachowywanymi przez przeksztacenia takiej grupy (czyli niezmiennikami). Podstawowy
niezmiennik geometrii afinicznej to padanie, czyli przynaleno punktu p do prostej l.
Rozwamy nastpnie przypadek szczeglny, zdefiniowany tosamoci:
AA T = 2 I

(1.7)

gdzie jest sta rzeczywist (indeks grny T oznacza transpozycj macierzy). Taka waciwo charakteryzuje wan podgrup grupy afinicznej, znan jako grupa podobiestwa.
Jeli zachowany jest warunek (1.7), atwo sprawdzi, e stosunek odlegoci midzy punktami jest zachowany (tak samo kty i prostopado). Rzeczywicie: bez straty dla oglnoci
moemy rozway przypadek, kiedy w (1.4) c = 0. Norma (kwadrat dugoci) wektora x
(odcinek o jednym kocu w pocztku ukadu wsprzdnych) wyliczana jest jako xxT,
wic norma obrazu x' w przypadku przeksztacenia z grupy podobiestwa to:
x' x'T = xA(xA )T = xAA T x T = x2 Ix T = 2 xx T
skd wynika, e wektor x uleg wydueniu o . Nastpnie, jeli mamy dwa wektory x i y,
mnoc ich obrazy otrzymujemy:
x' y' T = 2 xy T
Skoro x' y 'T = x' y ' cos(x' y' ) i xy T = x y cos(x , y ) , to
cos(x' , y' ) = cos(x , y )
co chcielimy udowodni.

6
Domknito, czno, istnienie identycznoci i odwrotnoci to bezporednie konsekwencje takich
samych waciwoci grupy niejednostkowych macierzy dd.

33

1.3. PODSTAWY GEOMETRII

Teraz przyjrzyjmy si zaweniu grupy afinicznej za pomoc warunku:


A = 1
gdzie A to wyznacznik A. Podgrupa przeksztace o takiej waciwoci to grupa niezmienniczo afiniczna. Niezmiennikiem tej grupy jest objto. Faktycznie, jeli mamy zbir d wektorw x1, x2, ..., xd, warto bezwzgldna wyznacznika macierzy [ x T1 ... x Td ] to objto
hiper-rwolegocianu, wyznaczonego podanymi wektorami. Jeli wemiemy pod uwag
obrazy tych wektorw, x'i = x i A , i = 1,..., d , mamy [x '1T ... x'Td ] = A [x T1 ...x Td ] = [x 1T ... x Td ] ,
co ju wystarcza do wywnioskowania niezmienniczoci.
Jeli wemiemy teraz pod uwag przecicie obu powyszych grup, otrzymamy now
grup przeksztace, grup ortogonaln. Niezmiennikiem tej grupy jest odlego. Wyznacznik
A A T to
2

A AT = A AT = A = 1
ale zgodnie z (1.7) AA t = 2 , zatem = 1. Odlego d(x, y) midzy punktami x i y to
warto bezwzgldna kwadratowego pierwiastka ich rnicy, czyli:
d(x , y ) = ( x y ) (x y)T
Wobec tego mamy:
d(x, y ) = (x' y' ) (x' y' )T = (x y )AA T (x y)T = (x y) (x y )T = d(x, y )
Przeksztacenia afiniczne zachowujce odlegoci (przeto i pole, kty i prostopado) to
ruchy sztywne; stanowi one podstaw geometrii euklidesowej.
Teraz wrmy do rwnania (1.6) opisujcego konkretne przeksztacenie (d+1)-wymiarowej przestrzeni wektorowej i zrezygnujmy z ogranicze na ostatni kolumn macierzy
przeksztacenia. Otrzymamy zwizek:
= B

(1.8)

gdzie i to wektory (d+1)-wymiarowej przestrzeni euklidesowej Vd+1, za B to macierz


(d+1)(d+1), co do ktrej zakadamy, e jest odwracalna.
Ograniczmy nasz uwag do kierunku wektora, pomijajc jego dugo dwa
wspliniowe wektory i c (c 0) s uwaane za rwnowane. Jako reprezentanta takiej
klasy rwnowanoci wybra moemy punkt, w ktrym prosta l = {c: c R} przebija
sfer jednostkow Sd+1 w przestrzeni Ed+1 (zauwamy, e Sd+1 jest rozmaitoci d-wymiarow,
czyli jej punkty mona zidentyfikowa za pomoc d parametrw). Jeli dobierzemy tak
warto c, dla ktrej ostatni skadnik c jest rwny 1, otrzymamy punkt, w ktrym prosta
l przebija hiperpaszczyzn xd+1 = 1 (rysunek 1.4 pokazuje t sytuacj dla d = 2). Mamy
zatem wzajemn odpowiednio punktw paszczyzny xd+1 = 1 i punktw speniajcej

34

1. WPROWADZENIE

RYSUNEK 1.4.
Wzajemna odpowiednio wsprzdnych jednorodnych i niejednorodnych (zwykych)

warunek xd+1 > 0 psfery Sd+1. Tak wzajemn odpowiednio nazywamy rzutowaniem
orodkowym (o rodku w pocztku ukadu wsprzdnych Ed+1). Zauwamy, e hiperpaszczyzna xd+1 = 1 sama jest przestrzeni Ed o wsprzdnych x1, , xd.
Tak wic zinterpretowalimy wektor (1, , d, d+1) (d+1 0), przyoony do pocztku
ukadu wsprzdnych Ed+1, jako punkt (x1, , xd) przestrzeni Ed taki, e xj = j/d+1. Jeli
zapiszemy punkt za pomoc (d+1) skadowych wektora, otrzymamy klasyczny zapis punktu
we wsprzdnych jednorodnych, ktre umoliwiaj zapisanie punktw w nieskoczonoci przy zgodzie na d+1 = 0.
Wracajc do rozwaa dotyczcych operacji na grupie przeksztace, jeli w (1.8)
A 0
zgodzimy si, aby B miao posta B = [ c 1 ], otrzymamy now interpretacj grup afinicznych Ed . Aby uatwi dalsz dyskusj, przyjmijmy d = 2. Zauwamy, e rzutowanie
orodkowe S3 na paszczyzn x3 = 1 ustala przeksztacenie odwracalne midzy wielkimi
koami S3 a prostymi w E2; wyjtkiem jest wielkie koo na rwniku (paszczyzna x3 = 0),
ktre jest odwzorowywane na nieskoczono E2. Jednak kade przeksztacenie (1.8)
odwzorowuje paszczyzn ze rodkiem na paszczyzn ze rodkiem, a w szczeglnoci
paszczyzna rwnikowa moe by odwzorowana na dowoln inn paszczyzn. Jeli
zinterpretujemy to przy rzutowaniu orodkowym na x3 = 1, prost w nieskoczonoci
mona odwzorowa na dowoln prost w skoczonoci. Ta swoboda wyboru umoliwia
odwzorowanie wszystkich krzywych stokowych (elipsy, paraboli i hiperboli) na okrg,
zatem w grupie przeksztace (1.8) wszystkie krzywe stokowe s rwnowane. Jest to
grupa rzutowa.
Cay powyszy opis podsumowa mona w diagramie Hassego [Birkhoff-MacLane
(1965)], opartym na relacji podgrupa i pokazanym na rysunku 1.5.

35

1.3. PODSTAWY GEOMETRII

RYSUNEK 1.5.
Zawieranie si
w sobie grup
przeksztace
liniowych
(diagram Hassego)

1.3.3. Dualno geometryczna. Biegunowo


Rozwamy teraz alternatywn interpretacj przeksztacenia (1.8), znw odwoujc si do
konkretnego przypadku, gdy d = 2. Widzielimy ju, e (1.8) odwzorowuje punkty
i proste na proste w E2, czyli zachowuje wymiary przeksztacanych obiektw. Zakadajc,
e B 0, zapiszmy (1.8) jako:
= B

(1.9)

wobec czego wektory oznaczone jako interpretujemy jako kierunki (czyli proste przechodzce przez pocztek ukadu wsprzdnych), a wektory oznaczane przez reprezentuj kierunki prostopade do paszczyzny przechodzcej przez rodek ukadu. Zaleno (1.9) interpretuje si jako przeksztacenie prostej (oznaczonej przez ) w E3 na
paszczyzn (oznaczon przez ); nazywamy ten zwizek korelacj. Jest to przypadek
szczeglny dla d = 2 oglnej waciwoci, wedle ktrej w Ed+1 zaleno (1.9) odwzorowuje rozmaito liniow wymiaru s d+1 na rozmaito liniow wymiaru d+1s do
niej dualn: przy tej interpretacji (1.9) nazywamy przeksztaceniem dualnym i do opisu
zwizku paszczyzn na proste moemy uy tej samej macierzy B. Jeli mamy korelacj prostej na paszczyzn opisan macierz B, szukamy korelacji paszczyzny na prost opisanej
macierz D tak, aby para (B, D) zachowywaa przynaleno, to znaczy jeli prosta naley
do paszczyzny , to prosta D naley do paszczyzny B. Oczywicie prosta naley do
paszczyzny wtedy i tylko wtedy, gdy
T= 0
Analogicznie damy, aby:
B(D)T = BD TT = 0
Jako e ostatnia zaleno obowizuje dla dowolnie wybranych i , otrzymujemy tosamo BDT = kI, czyli:

36

1. WPROWADZENIE

D = k( B 1 ) T
dla pewnej staej k.
Zauwamy, e iloczyn BD przeksztaca proste i paszczyzny na paszczyzny. Jeli
mamy zachowujc przynaleno par (B,(B1)T), moemy zada, aby iloczyn B (B1)T
przeksztaca kad prost na ni sam i kad paszczyzn na ni sam, czyli damy,
aby (B(B1)T) = kI, co jest rwnowane B = kBT. W przypadku tej ostatniej tosamoci musimy mie k = 1. Szczeglnie interesujcym przypadkiem jest
B = BT

(1.10)

czyli kiedy B jest odwracaln macierz symetryczn 33.


Zastanwmy si teraz nad dziaaniem korelacji opisanej zalenoci (1.9) w rzutowaniu orodkowym na paszczyzn x3 = 1. Wiemy, e punkty s przeksztacane na proste,
a proste na punkty; w dalszej czci tego punktu zbadamy to przeksztacenie w E2, przez
oznacza bdziemy punkt, a przez prost. Jeli macierz B o wymiarach 33 spenia
warunek B = BT, jeli x = (x1, x2, x3), wiadomo [Birkhoff-MacLane (1965)], e:
xBx T = 0
jest rwnaniem stokowej, zapisanym w jednorodnych wsprzdnych paszczyzny (mwimy tu o stokowej okrelonej przez B). Przyjmijmy teraz stae (interpretowane jako punkt
paszczyzny, zapisany we wsprzdnych jednorodnych) takie, e BT = 0. Z definicji
punkt ley na stokowej zdefiniowanej przez BW. Jeli nazwiemy punkt biegunem,
za prost BxT = 0 biegunow , widzimy, e biegun na stokowej naley do swojej wasnej biegunowej. Takie przeksztacenie punktw na proste i z powrotem nazywamy
przeksztaceniem biegunowym; jest ono przydatne przy tworzeniu algorytmw geometrycznych. Nasza intuicja lepiej pozwala sobie wyobraa punkty ni proste (w E2) czy
paszczyzny (w E3), wic z opisywanego przeksztacenia bdziemy korzysta w dalszych
rozdziaach.
W szczeglnoci moemy wybra jako B macierz opisujc okrg jednostkowy
w paszczynie E2 (zobacz rysunek 1.6). W takim wypadku
0
1 0

B = 0 1
0
0 0 1
czyli punkt p = (p1, p2, 1) jest odwzorowywany na prost l, ktrej rwnanie to p1x1+p2x2x3 = 0
(we wsprzdnych jednorodnych). Odlego p od pocztku ukadu wsprzdnych to
p1 2 + p 2 2 , za odlego l od pocztku ukadu wsprzdnych to 1/ p1 2 + p 2 2 . Tak wic
wida, e w przypadku tego szczeglnego przeksztacenia biegunowego:
odlego(p, 0)odlego(biegunowa(p), 0) = 1

37

1.4. MODELE OBLICZENIOWE

RYSUNEK 1.6.
Ilustracja
zalenoci bieguna
i biegunowej
przy przeksztaceniu
biegunowym
wzgldem okrgu
jednostkowego

Zauwamy te, e w przypadku tego przeksztacenia zbdne s jakiekolwiek obliczenia,


a wystarczy inaczej zinterpretowa trjk (p1, p2, p3): albo jako wsprzdne (p1/p3, p2/p3)
punktu, albo jako wspczynniki prostej o rwnaniu p1x1+p2x2p3x3 = 0 we wsprzdnych
jednorodnych.
W dalszej czci tego rozdziau przyjrzymy si ciekawym zastosowaniom tej dualnoci geometrycznej.

1.4. Modele obliczeniowe


Podstawowe pytanie metodologiczne, ktre trzeba postawi przed zajciem si analiz
algorytmw, to dokadne opisanie przyjtego modelu obliczeniowego. Algorytm, ktry ma
suy do rozwizania jakiego problemu, musi by przede wszystkim oceniony pod
wzgldem kosztw jako funkcji wielkoci problemu. Zasadnicze znaczenie przyjtego
modelu wynika z nastpujcego spostrzeenia:
Model obliczeniowy opisuje elementarne operacje, ktre mona wykona,
oraz podaje koszt ich wykonania.
Operacje elementarne to te operacje, ktrym przypisujemy stay koszt, aczkolwiek koszt
ten moe by rny dla rnych operacji. Przykadowo, jeli operacje elementarne dotycz
poszczeglnych cyfr skadajcych si na liczby (jak funkcje logiczne na dwch zmiennych binarnych, opisywane w modelu maszyny Turinga), to koszt dodawania dwch
liczb cakowitych ronie wraz z dugoci argumentw, a jest stay w przypadku modeli,
w ktrych argumenty maj sta dugo (staa dugo argumentw jest cech charakterystyczn wszystkich uywanych dzisiaj komputerw). Wybierajc jaki model, zwykle
jestemy zmuszeni do kompromisw midzy realizmem a moliwoci przeprowadzenia
wylicze; wybieramy taki sposb dziaania, ktry zapewni wykorzystanie podstawowych cech uywanych komputerw, ale bdzie do prosty, aby przeprowadzi gruntown analiz.

38

1. WPROWADZENIE

Jaki model bdzie odpowiedni w przypadku zastosowa geometrycznych? Aby odpowiedzie sobie na to fundamentalne pytanie, musimy starannie przebada natur problemw, ktre chcemy rozwizywa.
Jak wspomnielimy w podrozdziale 1.3, punkty w Ed to podstawowe obiekty geometrii obliczeniowej. Wprawdzie na punkt patrzymy jak na wektor we wsprzdnych kartezjaskich, ale naley dy do tego, aby wybr ukadu wsprzdnych nie wpywa znaczco na czas wykonywania algorytmu. Oznacza to, e model obliczeniowy musi pozwala
przeksztaca w razie potrzeby ukad odniesienia z kosztem staym dla kadego punktu;
koszt ten moe zalee od liczby wymiarw, ale nie moe zalee od liczby punktw.
Innymi sowy, zbir N punktw w d wymiarach mona zapisa wzgldem wybranego
kartezjaskiego ukadu odniesienia w czasie proporcjonalnym do N (przypomnijmy, e
tego samego rzdu jest czas wczytywania punktw jako danych wejciowych), wobec
czego moemy zaoy, e punkty s dane od razu w wybranym ukadzie odniesienia.
Problemy wystpujce w geometrii obliczeniowej maj rnorak natur. Warto je na
nasze potrzeby pogrupowa w kilka kategorii:
(1) Wybr podzbioru. W tego typu problemach mamy zestaw obiektw i musimy wybra
podzbir speniajcy pewne narzucone kryteria. Przykadem moe by znajdowanie
dwch najbliszych sobie punktw ze zbioru N punktw czy znajdowanie wierzchokw wielokta wypukego, rozpitego na zbiorze. Podstawow cech wybierania
podzbioru jest to, e nie s tworzone adne nowe zbiory; rozwizanie skada si wycznie z elementw stanowicych dane wejciowe.
(2) Wyliczanie. Dany jest zbir obiektw i trzeba wyliczy warto pewnego parametru
geometrycznego tego zbioru. Operacje elementarne przyjtego modelu musz by
dostatecznie uniwersalne, aby umoliwi takie wyliczenie. Zamy na przykad, e
pracujemy ze zbiorem punktw majcych wsprzdne wyraone liczbami cakowitymi. Aby okreli odlego midzy par punktw, nie tylko musimy mie moliwo zapisywania liczb niewymiernych, ale take wyliczania pierwiastkw kwadratowych. W przypadku innych problemw konieczne moe by uycie funkcji
geometrycznych.
(3) Decyzja. Z dwiema powyszymi klasami w naturalny sposb wie si jeszcze klasa
okrelana jako decyzja. A konkretnie:
(i) Jeli problem obliczeniowy A wymaga wartoci parametru A, zwizany
z problemem obliczeniowym problem decyzyjny D(A) wymaga odpowiedzi
TAK lub NIE na pytanie typu: Czy A A0?, gdzie A0 jest sta.
(ii) Jeli w zwizku z problemem wyboru A niezbdny jest podzbir danego zbioru
S, speniajcy pewien warunek P, D(A) wymaga odpowiedzi TAK lub NIE na
pytanie typu Czy zbir S spenia P?, gdzie S jest podzbiorem zbioru S.
Szybko zauwaymy, e musimy umie posugiwa si liczbami rzeczywistymi (a nie
tylko cakowitymi) oraz praktycznymi zaokrgleniami tych liczb. Tworzc model obliczeniowy, moemy zaj si abstrakcj, nie troszczc si o zaokrglenia zwizane z przyjt
reprezentacj liczb rzeczywistych. Skorzystamy z urzdzenia swobodnego dostpu (oznaczanego jako RAM), podobnego do opisanego w [Aho-Hopcroft-Ullman (74)], ale takiego,
e w kadej jednostce zapisa mona pojedyncz liczb rzeczywist. Oto operacje, ktre s elementarne i z ktrych kada wykonuje si po koszcie jednostkowym:

39

1.4. MODELE OBLICZENIOWE

(1) Dziaania arytmetyczne (+, , , /).


(2) Porwnanie dwch liczb rzeczywistych (<, , =, , , >).
(3) Porednie adresowanie pamici (jedynie adresy cakowitoliczbowe).
Opcjonalnie, w niektrych aplikacjach:
(4) Pierwiastkowanie k-tego stopnia, funkcje trygonometryczne, EXP, LOG (oglnie rzecz
biorc, funkcje analityczne).
Model ten bdziemy okrela mianem rzeczywistego RAM. cile odpowiada to programom, jakie zwykle pisze si w jzykach algorytmicznych wysokiego poziomu, jak
FORTRAN i ALGOL, gdzie zwykle zmienne typu REAL traktuje si jako majce nieograniczon dokadno. Na naszym poziomie abstrakcji moemy pomin pytania typu
jak liczb rzeczywist mona odczyta lub zapisa w skoczonym czasie.
Ustalenie dolnych ogranicze szybkoci rozwizywania danego problemu jest jednym z fundamentalnych zada analizy algorytmw, gdy jest to miara wydajnoci algorytmu. W przypadku oglnym jest to bardzo trudne zadanie. Czasami mona powiza
trudno problemu z trudnoci innego problemu o znanej zoonoci; uywa si w tym
celu techniki przeksztacania problemw7. Zamy, e mamy dwa problemy, A i B, ktre s
ze sob tak powizane, e problem A mona rozwiza nastpujco:
(1) Dane wejciowe problemu A s przeksztacane w posta danych wejciowych problemu B.
(2) Rozwizywany jest problem B.
(3) Wyniki problemu B s przeksztacane w poprawne rozwizanie problemu A.
Mwimy wtedy, e problem A zosta przeksztacony w problem B8. Jeli powysze kroki przeksztacenia 1. i 3. mog by wykonane w czasie O((N)), gdzie N jest tradycyjnie
rozmiarem problemu A, to mwimy, e A jest ((N)-przeksztacalne w B, co zapisujemy krtko:
A (N ) B
W przypadku oglnym moliwo przeksztacenia nie jest relacj symetryczn; w przypadku szczeglnym, kiedy A i B daj si w siebie nawzajem przeksztaci, mwimy, e
s one sobie rwnowane.
Nastpujce dwa stwierdzenia charakteryzuj si techniki przeksztacenia przy zaoeniu, e zachowany jest rzd wielkoci problemu. Stwierdzenia te s oczywiste.

Technik t bardzo czsto okrela si jako redukcj. Sowo redukcja sugeruje przeksztacanie
w prostszy problem (co nie jest prawd), wic tej nazwy nie bdziemy uywa.
8
Moliwo przeksztacenia (czyli redukowalno) zwykle definiuje si jako relacj jzykw,
kiedy nie jest konieczne adne przeksztacanie wynikw, gdy wynik z przyjmujcego acuch jest
zerem lub jedynk. W przypadku problemw geometrycznych potrzebujemy wikszej elastycznoci,
ktrej osignicie wymaga oglniejszej definicji.

40

1. WPROWADZENIE

Stwierdzenie 1. (dolne ograniczenie przez moliwo przeksztacenia). Jeli wiadomo, e


problem A wymaga czasu T(N) i A jest (N)-przeksztacalny w B (A(N)B), to B wymaga co
najmniej czasu T(N)O((N)).
Stwierdzenie 2. (grne ograniczenie przez moliwo przeksztacenia). Jeli problem B mona
rozwiza w czasie T(N), a A daje si (N)-przeksztaci w B (A(N)B), to B wymaga co najwyej czasu T(N)+O((N)).
Sytuacj t przedstawiono obrazowo na rysunku 1.7, gdzie wida przeniesienie dolnego i grnego ograniczenia z jednego problemu na drugi. Przeniesienie to obowizuje,
o ile tylko (N) = O(T(N)), czyli kiedy przeksztacenie nie zajmuje znaczcej czci czasu
obliczeniowego.
RYSUNEK 1.7.
Przeniesienie
grnych i dolnych
ogranicze
midzy dajcymi si
przeksztaci
problemami

Odwoujc si do naszej poprzedniej klasyfikacji problemw, rozpatrzmy pewien


problem A (czy to obliczeniowy, czy zwizany z wybieraniem podzbioru) i zwizany z nim
problem decyzyjny D(A). Natychmiast wida, e D(A) O(N)A, gdy:
(1) Jeli A jest problemem obliczeniowym, adne przeksztacanie danych wejciowych nie
jest konieczne (wobec czego krok 1. procedury przeksztacajcej jest pusty) i rozwizanie A musi by porwnane, w staym czasie O(1), ze sta wartoci wyznaczon
przez D(A).
(2) Jeli A jest problemem wyboru podzbioru, zbir S' danych wejciowych D(A) jest
przekazywany jako dane wejciowe A (wobec czego krok 1. jest pusty), zatem rozwizanie A jest sprawdzane w czasie O(N), aby sprawdzi, czy jego liczebno jest
zgodna z S'.
Jest to bardzo wane spostrzeenie, gdy wskazuje ono, e jeli chcemy obniy ograniczenie dolne, moemy ograniczy nasz obszar zainteresowa do problemw decyzyjnych.
Kiedy w rzeczywistym RAM wykonywany jest algorytm dotyczcy problemu
decyzji, jego zachowanie opisuje si jako cig operacji dwojakiego rodzaju: arytmetycznych i porwna. W tym cigu porwnania odgrywaj kluczow rol, gdy w zalenoci
od wyniku algorytm moe si rozgazia w kadej operacji. Sytuacja ta jest obrazowo
przedstawiona na rysunku 1.8, przy czym kady wze oznaczony kkiem to operacja
arytmetyczna, za trjkt to porwnanie. Innymi sowy, obliczenia wykonywane przez
RAM mog by traktowane jako cieka w drzewie. Drzewo to zawiera opis wyjtkowo
wanego modelu obliczeniowego, nazywanego algebraicznym drzewem decyzji. Teraz
model ten sformalizujemy.

41

1.4. MODELE OBLICZENIOWE

RYSUNEK 1.8.
Wyliczenie
jako cieka
w drzewie
decyzyjnym

Algebraiczne drzewo decyzji [Reingold (1972); Rabin (1972); Dobkin-Lipton (1979)] na


zbiorze zmiennych {x1, , xn} to program z instrukcjami L1, L2, , Lp w postaci:
(1) Lr: Wylicz f(x1, , xn); jeli f: 0 przejd do Li, w przeciwnym wypadku przejd
do Lj (: oznacza dowoln relacj porwnania).
(2) Ls: Przerwij i zwr warto YES (TAK; zatwierdzone dane wejciowe problemu
decyzyjnego).
(3) Lt: Przerwij i zwr warto NO (NIE; odrzucone dane wejciowe problemu decyzyjnego).
W kroku 1. f jest funkcj algebraiczn (wielomianem stopnia degree(f)). Zakada si, e program nie ma ptli, czyli jego struktura to drzewo T takie, e wze nie bdcy liciem jest
opisany przez
f v ( x1 ,..., x n ) : 0
gdzie fv jest wielomianem na zmiennych x1, ..., xn, a: oznacza relacj porwnania. Zauwamy,
e w tym opisie kada cieka obliczeniowa z rysunku 1.8 jest wcinita do nastpnego
wza porwnania. Korze T reprezentuje krok pocztkowy oblicze, jego licie to moliwe sposoby zakoczenia wykonywania programu i moliwe odpowiedzi. Nie tracc na
oglnoci, zakadamy, e drzewo T jest binarne9.
Wprawdzie program algebraicznego drzewa decyzyjnego moe by znacznie bardziej rozwleky ni odpowiadajcy mu program RAM, ale oba programy zachowywa
si bd identycznie przy rozwizywaniu danej klasy problemw. W szczeglnoci czas
wykonania najgorszego moliwego przypadku programu RAM jest co najmniej proporcjonalny do dugoci najduszej cieki korzenia drzewa decyzji. Pokazuje to, jak istotny
jest model drzewa decyzyjnego, gdy struktura drzewiasta dobrze poddaje si poprawianiu ogranicze przy analizie w gb.
9
Zauwamy, e stopie wzw T jest wielokrotnoci moliwych wynikw porwna. Hipoteza
drzewa binarnego oparta jest na fakcie, e k-krotne rozgazienie mona rozwin na (k1) rozgazie dwukrotnych.

42

1. WPROWADZENIE

Algebraiczne drzewo decyzji jest d-tego rzdu, jeli d jest najwikszym stopniem
wielomianw fv(x1, ..., xn) dla kadego wza v drzewa T. Model drzewa decyzyjnego
pierwszego rzdu, czyli liniowego, oparty jest na bardzo zaawansowanym narzdziu, pozwalajcym wyznacza dolne ograniczenie wielu problemw. W podrozdziaach 2.2,
4.1.3, 5.2 i 8.4 zajmiemy si t problematyk szczegowiej. Jednak liniowe drzewo decyzyjne nie jest pozbawione wad. Pierwsz z nich jest to, e zdarzy si moe, e wszystkie
znane algorytmy rozwizania danego problemu uywaj funkcji stopnia 2, wobec czego
dolne ograniczenie oparte na modelu liniowego drzewa decyzyjnego nie obowizuje. Drug
wad jest to, e ograniczenia oparte na modelu liniowego drzewa decyzyjnego nie stosuj
si do nieznanych jeszcze algorytmw, korzystajcych z funkcji wyszego stopnia.
Wyjtkowo wane wyniki w tej materii dla d 2 korzystajc z klasycznych poj
rzeczywistej geometrii algebraicznej uzyskali Steele-Yao (1982) i Ben-Or (1983). Podejcie
to oparte jest na nastpujcym pomyle: niech x1, x2, , xn bd parametrami problemu
decyzyjnego, na ktrego poszczeglne zestawy wartoci mona patrze jako na punkty
w n-wymiarowej przestrzeni euklidesowej En. Problem decyzyjny wskazuje zbir punktw
W En czyli udziela odpowiedzi YES wtedy i tylko wtedy, gdy (x1, x2, , xn) W (mwimy wtedy, e drzewo decyzyjne T rozwizuje problem przynalenoci do W). Zamy, e
na podstawie analizy samego problemu znamy liczb #(W) rozcznych spjnych skadnikw W. Kade obliczenie odpowiada niepowtarzalnej ciece v1, v2, , vl1, vl w drzewie T, gdzie v1 jest korzeniem, a vl liciem. Z kadym wzem vj danej cieki powizana
jest funkcja fvj(x1, , xn) taka, e dla j = 1, , l1 (x1, , xn) spenia ograniczenia typu:
f vj = 0 lub f vj 0 lub f vj > 0

(1.11)

Aby wyrobi sobie jak intuicj, najpierw zastanwmy si nad specjalnym przypadkiem dla d = 1 (model liniowego drzewa decyzyjnego lub obliczeniowego), opracowanym przez Dobkina i Liptona (1979). Niech W En bdzie zbiorem przynalenoci
dla danego problemu decyzyjnego, a #(W) niech oznacza liczb rozcznych spjnych
skadowych. Niech T bdzie (binarnym) liniowym drzewem decyzji, zawierajcym algorytm A, sprawdzajcy przynaleno do W. Z kadym liciem T powizana jest dziedzina
En, a kady li oznacza akceptacj lub odrzucenie. Niech {W1, ..., Wp} bd skadowymi W, {l1, ..., lr} zbiorem lici, a Dj dziedzin zwizan z lj. Li lj jest uznawany za
akceptacja,

odrzucenie,

gdy D j W
w przeciwnym wypadku

Dolne ograniczenie dotyczce r uzyskujemy, wykazujc, e r #(W). Faktycznie, tworzymy


funkcj Y: {W1, W2, ..., Wp}{1,2, ... , r} jako Y(Wi) = min{j: j{1,2, ..., r} oraz Dj Wi }.
Zamy teraz, e jest przeciwnie istniej dwa rozczne podzbiory Wi i Wj takie, e
Y(Wi) = Y(Wj) = h. Jako e algorytm A rozwizuje problem naleenia punktu q do Wi, li lh
to li akceptacji. Z drugiej strony, z definicji Y, jeli Y(Wj) = h, to Wi Dh jest niepusty.
Niech zatem q' bdzie punktem z Wi Dh. Analogicznie, q jest punktem w Wj Dh. T jest
liniowym drzewem decyzji, wic obszar En odpowiadajcy Dh jest przeciciem pprzestrzeni, czyli obszarem wypukym. Oznacza to, e dowolna wypuka kombinacja punktw
Dh naley do Dh (punkt 1.3.1). Rozwamy teraz odcinek q'q (rysunek 1.9). Odcinek ten

43

1.4. MODELE OBLICZENIOWE

RYSUNEK 1.9.
Ilustracja dowodu,
e Wi = Wj

przecina przynajmniej dwie skadowe W (na pewno Wi i Wj), a jako e skadowe te s


rozczne, zawiera przynajmniej jeden punkt q''' W. Jednak z wypukoci wynika, e
cay q'q naley do Dh, zatem naley do te q''', ktry okazuje si lee we wntrzu W,
co jest ju sprzecznoci. Tak wic T musi mie przynajmniej p lici. Jako e najpytsze
binarne drzewo o danej liczbie lici jest zrwnowaone, gboko T wynosi przynajmniej log2 p = log2#(W). Podsumowaniem niech bdzie nastpujce twierdzenie:
Twierdzenie 1.1. (Dobkin-Lipton). Dowolny algorytm liniowego drzewa decyzyjnego rozwizujcy problem przynalenoci do W En musi mie gboko nie mniejsz ni log2#(W), gdzie
#(W) jest liczb rozcznych spjnych skadowych W.
Niestety, zastosowanie opisanej powyej techniki ogranicza si do algorytmw liniowych drzew wyliczeniowych, gdy opieramy si w duej mierze na tym, e dziedzina En
zwizana z liciem drzewa jest wypuka. Kiedy maksymalny stopie wielomianw fv jest
wikszy lub rwny 2, z tej przydatnej cechy nie moemy ju skorzysta i potrzebne jest
subtelniejsze rozumowanie.
Intuicyjnie, kiedy uywane s wielomiany wyszego stopnia, dziedzina zwizana
z danym liciem drzewa decyzyjnego moe skada si z kilku rozcznych skadowych W.
Jeli uda si ograniczy liczb komponentw przypisanych do licia na podstawie gbokoci zagniedenia tego licia, nietrudno bdzie ograniczy gboko T.
Kluczem do rozwizania tego trudnego problemu jest byskotliwe zastosowanie [Steele-Yao (1982), Ben-Or (1983)] klasycznego wyniku geometrii algebraicznej udowodnionego
niezalenie przez Milnora (1964) i Thoma (1965). Wynik ten ma nastpujc posta:
Niech V bdzie zbiorem punktw (formalnie rozmaitoci algebraiczn) w m-wymiarowej przestrzeni kartezjaskiej Em, opisanym rwnaniami wielomianowymi:
g 1 ( x1 ,..., xm ) = 0 ,..., g p (x 1 ,..., x m ) = 0

(1.12)

Wtedy, jeli stopie kadego wielomianu gi (i = 1, , p) jest d, to liczba #(V) rozcznych spjnych skadowych10 V jest ograniczona nastpujco:
10
Tak naprawd Milnor i Thom udowodnili silniejsze twierdzenie: d(2d1)m1 jest grnym ograniczeniem dotyczcym sumy liczb Betti V, za liczba #(V) skadowych spjnych jest jedn z liczb
Bettiego (zerow).

44

1. WPROWADZENIE

# (V ) d(2 d 1) m 1
Niestety, V zdefiniowano za pomoc rwna (zobacz (1.12)), za ograniczenia na ciek
w T zawieraj zarwno rwnania, jak i nierwnoci. Trudno ta zostaa usunita przez
Bena i Ora, ktrzy przeksztacili zadanie tak, e spenione zostay zaoenia twierdzenia
Milnora-Thoma. Przeksztacenie to teraz opiszemy.
Zdefiniujmy U En jako zbir punktw speniajcych nastpujce warunki (x = (x1,
, xn)):
q1 (x ) = 0 , ..., q r (x ) = 0

p1 (x ) = 0 , ..., p s (x ) > 0
p ( x) 0, ..., p (x) 0
h
s+1

(1.13)

gdzie qi oraz pj to wielomiany, a d = max{2, deg(qi), deg(pj)}. Zauwamy, e mamy trzy


rodzaje ogranicze: rwnania, nierwnoci ostre i nierwnoci nieostre. Niech #(U) oznacza liczb spjnych skadowych zbioru U.
Pierwszy krok naszego przeksztacenia polega na zastpieniu ostrych nierwnoci
nierwnociami nieostrymi. Jako e #(U) ma warto skoczon (zobacz [Milnor (1968)]),
niech #(U) t; z kadej skadowej U wybieramy punkt. Oznaczamy te punkty przez
v1, , vt; niech:
= min{pi (v j ) : i = 1,..., s; j = 1,..., t}
Jako e kady vj U, pi(vj) > 0 (dla i = 1, , s) oraz > 0. Oczywicie domknity zbir
punktw U zdefiniowany zalenociami:
q1 (x ) = 0, ..., q r (x) = 0

p1 (x ) , ..., p s (x )
p (x ) 0 , ..., p (x ) 0
h
s+ 1

(1.14)

jest zawarty w U, a #(U) #(U), gdy kady vj jest niezalen skadow U (zobacz rysunek 1.10).

RYSUNEK 1.10.
Tworzenie U dla U;
samo U zaznaczono
liniami cigymi,
U przerywanymi

Drugi krok przeksztacenia to wprowadzenie wolnej zmiennej yj dla kadego j = 1,


, h (czyli dla kadej nierwnoci nieostrej), tak e na En mona spojrze jako na podprzestrze En+h:

45

1.4. MODELE OBLICZENIOWE

q1 (x ) = 0, ..., q r (x ) = 0

2
2
p1 (x ) y1 = 0 , ..., ps (x) y s = 0
p ( x) y 2 = 0 , ..., p (x ) y 2 = 0
s +1
h
h
s +1

(1.15)

Oczywicie zbir U* wszystkich rozwiza (1.15) jest rozmaitoci algebraiczn w En+h, zdefiniowan wielomianami stopnia co najwyej d, i spenia warunki twierdzenia Milnora-Thoma. Wobec tego liczba #(U*) skadowych spjnych U* jest ograniczona nastpujco:
# (U*) d(2 d 1) n+ h 1
Zauwamy, U to rzutowanie U* na En. Jako e rzutowanie jest funkcj cig, #(U #(U*).
Przypomnijmy, e #(U) #(U), wobec czego wnioskujemy, e:
# (U ) # (U ) # (U*) d(2 d 1)n+h 1
co jest szukanym wynikiem. Faktycznie, jeli (1.13) jest zbiorem warunkw uzyskanych
podczas przechodzenia po ciece w T od korzenia do lici, h liczba nierwnoci nie
przekracza dugoci cieki. Wobec tego li danej cieki jest powizany z co najwyej
d(2d1)n+h-1 spjnymi skadowymi zbioru wynikowego problemu W. Jeli h* jest gbokoci T (dugoci najduszej cieki od korzenia do licia), to T ma co najwyej 2h* lici.
Kady li odpowiada co najwyej d(2d1)n+h-1 spjnych skadowych W, wobec czego
*

# (W ) 2 h d( 2d 1)n+ h

lub, rwnowanie,
h*

log 2 # (W )
n log 2 (2d 1)
log 2 d log 2 (2 d + 1)

.
1 + log 2 (2d 1) 1 + log 2 ( 2d 1)
1 + log 2 (2d 1)

(1.16)

Rozwaania te podsumujmy w formie wanego twierdzenia:


Twierdzenie 1.2.11 Niech W bdzie zbiorem w przestrzeni kartezjaskiej En i niech T bdzie
algebraicznym drzewem decyzji ustalonego rzdu d (d 2), ktre pozwala rozwiza problem
przynalenoci do W. Jeli h* jest gbokoci T i #(W) jest liczb rozcznych spjnych skadowych W, to h* = (log#(W)n).
Twierdzenie 1.2. uwzgldnia te przypadek d = 1, gdy dla dowolnego ustalonego d
2 narzuca si ograniczenie dotyczce wielomianw niszego stopnia (przez ustawienie
wspczynnikw wyszych stopni na zero). Uycie hiperliniowych wielomianowych
funkcji decyzyjnych nie zmienia zasadniczo natury problemu; po prostu skraca minimaln
gboko drzewa oblicze przez stay mnonik, zaleny od maksymalnego stopnia d.
Ostatnie twierdzenie to fundament wyznaczania dolnych ogranicze, czym zajmiemy si
w dalszych rozdziaach.
11

Tak naprawd Ben i Or udowodnili jeszcze lepszy wynik, niezaleny od d.

You might also like