Professional Documents
Culture Documents
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
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
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
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
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
Literatura ............................................................................................................363
Skorowidz...................... ....................................................................................375
Wprowadzenie
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
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)
(2)
(3)
(4)
(5)
15
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
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.
18
1. WPROWADZENIE
19
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
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.
22
1. WPROWADZENIE
23
Obsugiwane operacje
Sownik
Kolejka priorytetowa
Kolejka czona
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
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
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
RYSUNEK 1.2.
Wstawianie
przedziau [74, 107]
do T(1, 257).
Wzy alokacji
zostay obwiedzione
podwjnym kkiem
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).
27
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
( 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)
29
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)
e 3 f 6 ,
v 2 f 4,
e 3v 6
2
e
3
f 2v 4
f
(1.2)
30
1. WPROWADZENIE
31
(1.3)
j =1
(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)
(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
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)
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
RYSUNEK 1.5.
Zawieranie si
w sobie grup
przeksztace
liniowych
(diagram Hassego)
(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)
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
RYSUNEK 1.6.
Ilustracja
zalenoci bieguna
i biegunowej
przy przeksztaceniu
biegunowym
wzgldem okrgu
jednostkowego
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
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
41
RYSUNEK 1.8.
Wyliczenie
jako cieka
w drzewie
decyzyjnym
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
43
RYSUNEK 1.9.
Ilustracja dowodu,
e Wi = Wj
(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)
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
45
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)