Full (1) Prevod

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 237

Machine Translated by Google

Algoritmi za

Crtanje planarnih grafova

Algoritmeni za Tekenen van Planaire Grafen


(upoznao sam samenvatting u Het Nederlands)

Proefschrift
ter verkrijging van de graad van doctor
aan de Rijksuniversiteit u Utrecht op
gezag van de Rector Magnicus, Prof. Dr JA van Ginkel,
ingevolge het besluit van het College van Dekanen in
het openbaar te verdedigen op 14. juna 2019.
godine u 19.09.

vrata

Goossen Kant

rođen 3. januara 1967.


u Rijswijk (N.Br.)
Machine Translated by Google

Promotor: Prof. Dr J. van Leeuwen


Kopromotor: Dr HL Bodlaender

Faculteit Wiskunde en Informatica

CIP-GEGEVENS KONINKLIJKE BIBLIOTHEEK, DEN HAAG

Kant, Goossen

Algoritmi za crtanje planarnih grafova / Goossen Kant. -


Utrecht : Universiteit Utrecht, Faculteit Wiskunde en
Informatica Proefschrift Rijksuniversiteit Utrecht. - Sreo
sam samenvatting u Het Nederlands.

ISBN 90-393-0416-5
Trefw.: algoritmen / grafentheorie.

Ovo istraživanje je podržano od strane ESPRIT Basic Research Actions EC prema


ugovoru br. 3075 (projekat ALCOM) i ugovoru br. 7141 (projekat ALCOM II).
Machine Translated by Google

Predgovor

Mnogo puta mi je bilo prilično teško objasniti porodici i prijateljima šta je tačan sadržaj
rada doktoranta. Štaviše, općenito postaje još teže objasniti istraživačke probleme koje
pokušavamo riješiti u teorijskoj informatici. Često sam započinjao ove rasprave žaleći se
na čitljivost električnih dijagrama, koje dobijete prilikom kupovine televizora. Ova teza daje
više uvida u široko područje automatskog crtanja mreža ili grafova. Razmatraju se mnogi
uključeni problemi i različite vrste reprezentacija. Nadam se da ćete uživati u ovom polju
istraživanja algoritama grafova koliko i ja. Također se nadam da ćete otkriti (nakon uvida u
različite dostavljene rezultate crteža) da ova tema crtanja uopće nije tako teoretska.

Zadovoljstvo je zahvaliti se ljudima koji su mi pružili podršku tokom izrade ovog


diplomskog rada. Posebno želim da se zahvalim svom supervizoru Janu van Leeuwenu što
me je uveo u ovo prekrasno i fascinantno polje crtanja grafova. Zaista cijenim razne
diskusije koje smo vodili (uključujući informatiku) i njegovo povjerenje u mene nakon što
sam ponovo pronašao još jednu grešku u ovom { i drugom { radu. Jan van Leeuwen me je
uključio u organizaciju raznih događaja i pružio mi mnogo prilika da putujem na radionice
i konferencije u strane dijelove svijeta. U ove četiri doktorske godine bio sam u velikom
broju velikih evropskih gradova, pa i u Otavi, Montrealu, Njujorku, Pitsburgu, pa čak i na
magičnom ostrvu Barbados. Također želim da se zahvalim Hansu Bodlaenderu za mnogo
korisnih komentara. Takođe je dao značajan doprinos istraživanju o kojem se govori u ovoj
tezi, a bio je i koautor nekih odgovarajućih izvještaja.

Nekoliko osoba je komentiralo prethodne verzije dijelova ove teze. Posebno želim da
se zahvalim Therese Biedl, Mareku Chrobaku, Xin Heu, Tsan-sheng Hsuu, Siebrenu van de
Kooiju, Klausu Kriegelu, Petri Mutzel i Martinu van Trigtu i anonimnim recenzentima
konferencija i časopisa. Mnogi rezultati u ovoj tezi potkrijepljeni su njihovim sugestijama i
primjedbama. Zahvaljujem se članovima komisije za recenziju, Giuseppeu Di Battisti, Kees
Hoedeu, Janu Karelu Lenstri, Marku Overmarsu i Robertu Tamasiji na pažljivoj lekturi ove
teze. Cijenim pomoć Piet van Oostrum, Maarten Pennings, Otfried Schwartzkopf i Nico
Verwer, koji su odgovorili na sva moja pitanja o LATEX-u i srodnim pitanjima.

Ali i hvala svim ostalim kolegama. Vakgroep nije samo stimulativno okruženje za
istraživanje, već je i ugodno mjesto za rad.

iii
Machine Translated by Google
iv

Takođe želim da se zahvalim svojoj porodici i prijateljima na moralnoj podršci i na


tome što su mi bili tu kada su mi bili potrebni. Posebno želim da se zahvalim ocu i
majci što su se brinuli o meni i stimulisali me tokom mnogih dana provedenih kod
kuće. Njima posvećujem ovu tezu. Ali što je najvažnije, volim da se zahvalim
svemogućem Bogu. Dao mi je radost, sreću, snagu, zdravlje, inteligenciju i mnoge
druge blagoslove u sve dane mog života.
Machine Translated by Google

Algoritmi za

Crtanje planarnih grafova

voor mijn vader en moeder


Machine Translated by Google

Gebruik de tijd om te werken { het is de prijs voor succes.


Gebruik de tijd om te denken { het is de bron van kracht.
Gebruik de tijd om te spelen { het is het geheim van de eeuwige jeugd.
Gebruik de tijd om te lezen { het is de fontein der wijsheid.
Gebruik de tijd om vriendelijk te zijn { het is de weg naar geluk.
Gebruik de tijd om te dromen { zo worden idealen geboren.
Gebruik de tijd om te beminnen en bemind te worden { het is het voorrecht
van verloste mensen Gebruik de tijd om rond te kijken { de dag is te kort voor
zelfzuchtigheid.
Gebruik de tijd om te lachen { het is de muziek van de ziel.
Gebruik de tijd voor God { het is de enige duurzame belegging in het leven.

Uit: \Planning voor alledag", een Telos-uitgave


Machine Translated by Google

Sadržaj

Predgovor iii

A Uvod xi

1 Crtanje planarnih grafova 3

2 Pozadine 2.1 11
Terminologija ::::::::::::::::::::::::::::::: 11 2.2 Testiranje i ugrađivanje planarnih
grafova ::::::: ::::::::::: 16 2.2.1 Uvod :::::::::::::::::::::::::::: 16 2.2.2 Testiranje planarnosti
korištenjem PQ-stabla :::::::::::::::: 16 2.2.3 Izrada planarnih ugradnji pomoću
PQ-stabala ::::::: 19 2.3 Planarizacija grafova :::::::: :::::::::::::::::: 21 2.3.1
Uvod ::::::::::::::::::::::::::::: 21 2.3.2 Planarizacija korištenjem PQ
stabala ::::::::::::::::::: 23 2.3.3 Maksimalna planarizacija :::::::::::::::::: ::::: 26 2.4
Dvospojene i trokomponentne komponente :::::::::::::::: 28 2.4.1 BC-
stablo ::::::::::::::::: :::::::::::: 29 2.4.2 SPQR-stablo :::::::::::::::::::::::::: 29 2.5 The
Canonical Naručivanje :::::::::::::::::::::::::: 33 2.6 Algoritmi za povećanje i
crtanje ::::::::::::::::::: 36

B Povećanje planarnih grafova 39

3 Uvod 41

4 Problem povećanja planarne bikonektivnosti


45 4.1 Pripremne utakmice :::::::::::::::::::::::::::::::: 45 4.2 NP-potpunost ::::::::::: ::::::::::::::::::
48 4.3 Približavanje u roku od 2 puta optimalno :::::::::::::::: 49 4.4 A Specijalni
slučaj :::: :::::::::::::::::::::::::: 52 4.5 Problem povećanja planarnog mosta-
povezivanja ::::::: 54

vii
Machine Translated by Google
viii SADRŽAJ

5 Problem povećanja planarne trikonekcije 57 5.1 Preliminarno :::::::::::::::::::::::::::::::


57 5.2 Algoritam aproksimacije ::::: :::::::::::::::::: 60 5.2.1 Slučaj serije :::::::::::::::::::::::::::
61 5.2.2 Paralelni slučaj :::::::::::::::::::::::: 63 5.2.3 Kruti slučaj ::::::::::: ::::::::::::::: 66 5.3
Trikonekcija uz minimiziranje maksimalnog stepena :::::::: 71

6 Triangulirajući planarni grafovi 75


6.1 NP-potpunost ::::::::::::::::::::::::::::: 79 6.2 Triangulacija uz minimiziranje
maksimalnog stepena ::::::::: 82 6.2.1 Algoritam ::::::::::::::::::::::::: 82 6.2.2 Brojanje
povećanja deg(v) ::::::: :::::::::: 85

7 Povećanje vanjskih planarnih grafova 89


7.1 Uvod :::::::::::::::::::::::::::::::: 89 7.2 Bridge-Connectivity :::::::::: ::::::::::::::::::: 91 7.3
Bikonektivnost :::::::::::::::::::::::::::::: :: 94 7.3.1 Faza 2 ::::::::::::::::::::::::::::::: 95 7.3.2
Faza 3 ::::: ::::::::::::::::::::::::::: 96 7.4 Trikonekcija :::::::::::::::::::::: ::::::::: 100 7.4.1
Trokonektivni dvopovezani vanjski planarni grafovi :::::::: 100 7.4.2
Trokonektivni vanjski planarni grafovi :::::::::::::::: 102 7.5 Triangulirajući
Vanjskoplanarni grafovi ::::::::::::::::::::: 104 7.5.1 Triangulacija jedne strane
planarnog grafa :::::::::::: 104 7.5.2 Triangulacija vanjske ravnine
Grafovi :::::::::::::::: 106

8 Zaključci 109

C Crtanje planarnih grafova 113

9 Algoritmi za crtanje 115


9.1 Pravolinijski crteži :::::::::::::::::::::::::: 115 9.2 Konveksni crteži :::::::::::::::: ::::::::::::::
117 9.3 Crtanje planarnih grafova korištenjem st-numeracije ::::::::::::: 118 9.3.1
Prikaz vidljivosti :::::::: ::::::::::::: 119 9.3.2 Ortogonalni crteži :::::::::::::::::::::::: 121 9.4
Pregled dijela C :: :::::::::::::::::::::::::::: 123

10 Okvir za crtanje i konveksni crteži 10.1 Okvir za 127


crtanje ::::::::::::::::::::::::: 127 10.1.1 lmc-ordering :::::: :::::::::::::::::::: 127 10.2
Konveksni crteži :::::::::::::::::::::::::::: :: 131
Machine Translated by Google
SADRŽAJ ix

10.2.1 Konveksni crteži na (n 2) (n 2) mreži ::::::::: 134


10.3 Mješoviti model :::::::::::::::::::::::::::::: 138
10.4 Prikazi vidljivosti :::::::::::::::::::::::: 141
10.5 Poboljšanja lmc-Naručivanja :::::::::::::::::::: 142
10.5.1 Aspekti dvojnosti ::::::::::::::::::::::::::: 143
10.5.2 Nova smjena-metoda :::::::::::::::::::::::: 145

11 Ortogonalnih crteža 149


11.1 Ortogonalni crteži 4-planarnih grafova :::::::::::::::: 149
11.2 Ortogonalni crteži 3-planarnih grafova ::::::::::::::::: 154
11.2.1 Tropovezani 3-planarni grafovi ::::::::::::::::::: 154
11.2.2 Crtanje dvopovezanih 3-planarnih grafova ::::::::::::: 156
11.2.3 Ortogonalno crtanje općih 3-planarnih grafova :::::::: 160

12 heksagonalnih crteža 163


12.1 Tropovezani 3-planarni grafovi ::::::::::::::::::::::: 164
12.2 Crtanje grafova sa stepenom najviše 3 :::::::::::::::::: 170
12.3 Crteži s ravnim linijama ::::::::::::::::::::::: 173
12.4 Heuristika za smanjenje površine :::::::::::::::::::: 175

13 pravokutnih dvojnika 179


13.1 Uvod :::::::::::::::::::::::::::::::::: 179
13.2 Dvostruki pravokutni algoritam ::::::::::::::::::::: 180
13.3 Računanje REL pomoću kanonskog reda :::::::::::::: 183
13.4 Algoritam za predstavljanje vidljivosti ::::::::::::::::: 187

14 Kompaktnije predstavljanje vidljivosti 191


14.1 Uvod :::::::::::::::::::::::::::::::::: 191
14.2 Opće kompaktno predstavljanje vidljivosti ::::::::::::: 192
14.3 Izgradnja stabla od 4 bloka ::::::::::::::::::::::: 197

15 Zaključci 201

Bibliografija 209

Samenvatting 223

Curriculum Vitae 227


Machine Translated by Google
x SADRŽAJ
Machine Translated by Google

dio A

Uvod

1
Machine Translated by Google
Machine Translated by Google

Poglavlje 1

Crtanje planarnih grafova

U mnogim aplikacijama grafički prikazi se koriste za prikaz informacija.


Funkcija ovih reprezentacija je da razjasne ili da prikažu strukturu informacija u
kompaktnom i relativno malom prostoru. Mnogo puta jedna slika govori više od
hiljadu riječi, ali slika mora biti jasna i čitljiva. Gotovo svi su svjesni shema koje
koriste pravokutnike s informacijama, te linije i strelice koje ih povezuju. Zamislite
samo šematski prikaz organizacijske strukture kompanije. Ili razmotrite sve relacije
i veze u bazi podataka ili drugom ogromnom softverskom programu, koji se mora
prikazati na prikladan način. Takođe, plan za projekat mora jasno pokazati osnovne
odnose, npr. koje dijelove projekta treba raditi u isto vrijeme ili uzastopno.
Predstavljanje svih ovih informacija u šematski dijagram pomaže u upravljanju
projektom. U mnogim kontekstima dizajn takvog grafičkog prikaza podržava
kompjuter, odnosno kompjuter se koristi za izračunavanje koordinata različitih
objekata. Kakvi problemi mogu nastati?

Ako je shema mala, onda se lako može nacrtati rukom. Problem postaje sve teži
ako se pokuša nacrtati električne dijagrame električnih aplikacija u čitljivom obliku.
Električna šema npr. televizora daje čitljivu ideju kako su različite komponente u
televizoru povezane jedna s drugom. Nepotrebno je reći da je stvarni položaj unutar
aplikacije potpuno drugačiji. Ovo je primjer iz stvarnog života koji pokazuje kako se
kompjuteri koriste za izračunavanje crteža ogromne mreže.

S druge strane, kompjuter se također koristi za izračunavanje optimalnog


smještaja komponenti unutar električne aplikacije. Aplikacija sadrži veliki broj malih
električnih komponenti, koje moraju biti povezane jedna s drugom. Ove komponente
se moraju postaviti na čip, tako da broj ukrštanja između spojeva bude što manji, a
potrebna površina čipa ne smije postati prevelika. Za ručno izračunavanje
optimalnog položaja komponenti na čipu potrebno je nevjerovatno mnogo
vremena. Problem postaje još složeniji kada se mora zadovoljiti i nekoliko dodatnih
ograničenja, npr. broj zavoja i ukupna dužina veza moraju

3
Machine Translated by Google
4 Crtanje planarnih grafova

takođe biti minimiziran. Ova pitanja se javljaju u dizajnu čipova za integraciju vrlo velike
veličine (VLSI).
U više matematičkom apstraktnom okruženju, komponente se nazivaju vrhovi ili
čvorovi, a veze između komponenti se nazivaju ivicama. Graf je skup vrhova i skup ivica
između vrhova. Mnogi primjeri iz stvarnog života sa objektima i vezama (ili odnosima)
između različitih objekata mogu se prikazati grafom.

Ovaj rad je posvećen istraživanju u automatskom crtanju i grafičkom predstavljanju


grafova. Gore navedeni primjeri daju dobar uvid u pitanja i kriterijume optimizacije, koji
su uključeni u metode ili algoritme za postavljanje bilo kog datog grafa. Međutim, ovi
kriteriji optimizacije nisu uvijek dobro definirani. Estetski kriterijumi "čitljivosti" ili "lepog
crteža" ne mogu se uvek jasno izraziti u matematičkim formulama. Jedan kriterijum
matematičke optimizacije može biti dobar izbor za jednu strukturu, ali može dovesti do
neatraktivnog crteža u drugim slučajevima.
Mnogo puta dobar crtež ispunjava kombinaciju kriterijuma optimizacije. Ipak, pretpostavit
ćemo da ako se graf može nacrtati bez ijednog para ukrštanja rubova, onda ćemo ga
nacrtati u skladu s tim. Grafovi, koji se mogu nacrtati bez ijednog para ukrštanja rubova,
nazivaju se planarni grafovi. Kao što je i najavljeno u naslovu, u ovoj tezi svoju pažnju
usmjeravamo na planarne grafove. Ovaj problem nije nov: problem crtanja je klasična
tema u kontekstu planarnih grafova. Danas se širom svijeta izvještava o velikom broju
istraživanja i literature. Pogledajte nedavnu bibliografiju Di Battista, Eades & Tamassia [18]
s komentarima za pregled.
Nekoliko algoritama je konstruirano da testiraju da li je graf ravan ili ne (vidi npr. [9,
50]). Čak i za planarne grafove, razna relevantna dodatna ograničenja su razvijena i
pokazala se korisna u aplikacijama. Ovo su samo neki od glavnih kriterijuma koji se
spominju u sve većoj zbirci relevantne literature na temu crtanja (planarnih) grafova.

Minimiziranje ukupnog broja savijanja u rubovima (ili nacrtajte graf bez savijanja, tj.
pravolinijskih rubova)

Minimiziranje ukupne korišćene površine

Postavljanje vrhova i zavoja na koordinatama mreže

Maksimiziranje minimalnih uglova između uzastopnih ivica

Maksimiziranje minimalne udaljenosti između vrhova

U području VLSI dizajna dato je nekoliko dodatnih ograničenja, npr. razdvajanje grafa u
slojevima kola, putem postavljanja i tipičnih mrežnih modela. Vidite knjigu Lengauera ([77])
za detaljniji pregled pitanja i problema koji se pojavljuju u ovoj specifičnoj oblasti.

U nekim aplikacijama svakom rubu se daje smjer. Za ovaj poseban slučaj razvijaju se
specifičnija ograničenja, npr. krajnja tačka ruba mora biti
Machine Translated by Google
Crtanje planarnih grafova 5

postavljeno više od početne tačke. Crteži koji zadovoljavaju ovo ograničenje nazivaju se
crteži prema gore. Nedavno se u ovoj oblasti pojavilo nekoliko (teorijskih grafova) [4, 5,
20, 22]. U ovoj tezi našu pažnju usmjeravamo na neusmjerene planarne grafove.
Razdvojimo detaljnije različite klase neusmjerenih planarnih grafova i odgovarajućih
modela predstavljanja, poznatih za ovaj model. Odnosi između različitih klasa planarnih
grafova i odgovarajućih algoritama za crtanje su ključni u ovoj tezi. Razmatramo sljedeće
četiri različite klase: (i) stabla, (ii) dvopovezani planarni grafovi, (iii) tropovezani planarni
grafovi i (iv), triangulirani planarni grafovi. Ovdje dajemo kratak pregled; u Poglavlju 9
detaljnije je opisano nekoliko ovih algoritama koji su relevantni za naše istraživanje.

Prvo, kada je graf drvo, onda se u većini crteža vrhovi postavljaju duž horizontalnih
linija u skladu sa njihovim nivoom (udaljenost od korena), i minimalno rastojanje između
dva uzastopna vrha na istom nivou tako da širina crtež je mali. Na slici 1.1 dajemo neke
izlazne crteže postojećih algoritama. Za algoritme za crtanje stabla, čitalac se poziva na
[40, 93, 101, 112, 120].

Slika 1.1: Izlaz algoritama za crtanje stabla (vidi [93, 40]).

U slučaju dvopovezanih planarnih grafova prikazana su dva važna modela


reprezentacije. Prvi je ortogonalni crtež, u kojem su vrhovi predstavljeni tačkama, a ivice
naizmjenično horizontalnim i vertikalnim segmentima, koji povezuju krajnje tačke. Takav
prikaz je moguć samo kada svaki vrh ima najviše 4 incidentna ivica. Model ortogonalnih
crteža ima značajnu primjenu u VLSI-dizajnu i u crtežima električnih dijagrama. Stoga
istraživanje s posebnom pažnjom na veličinu mreže i broj zavoja zadobiva veliki interes i
sa teorijske i sa praktične tačke gledišta. Storer [100], Tamassia [102] i Tamassia & Tollis
[105] predstavili su glavne algoritme za ortogonalno crtanje. Na slici 1.2(a) dat je primjer.
Drugi model je reprezentacija vidljivosti.

Vrhovi su predstavljeni samo horizontalnim segmentima, a ivice vertikalnim segmentima


Machine Translated by Google
6 Crtanje planarnih grafova

dodirujući dva segmenta, koji predstavljaju dvije krajnje tačke. Važna prednost ovog
modela je da se relevantne dodatne informacije, dodijeljene vrhovima, mogu smjestiti
unutar horizontalnih segmenata (ili pravokutnika). Štaviše, pošto su ivice pravolinijski
vertikalni segmenti, to daje vrlo čitljive i praktične slike uopšte, koje se pojavljuju u širokom
kontekstu aplikacija. Na slici 1.2(b) data je ideja o ovoj reprezentaciji, kao što su istakli
Rosenstiehl & Tarjan [96] i Tamassia & Tollis [104].

8
8
7

6 7 6
5
4 4 5

1 23 2

(a) Ortogonalni crtež. (b) Prikaz vidljivosti.

Slika 1.2: Izlaz algoritama za crtanje dvopovezanog planarnog grafa

Treća važna klasa je klasa tropovezanih planarnih grafova. Većina algoritama u ovoj
tezi zahtijeva tropovezani planarni graf kao ulaz. Ako je planarni graf trokonektan, tada je
moguć crtež sa vrhovima predstavljenim kao tačke i ivicama kao prave linije tako da je
svako lice nacrtano kao konveksan poligon. Ovaj takozvani konveksni crtež važan je prikaz
u teoriji grafova. Wagner [113], Fary [31] i Stein [99] su nezavisno dokazali da se svaki
planarni graf može nacrtati sa vrhovima predstavljenim kao tačke i ivicama kao prave
linije. (Ponekad se ovo naziva i Faryjevim crtežom.) Tutte [110] i Thomassen [109] razmatrali
su pozadinu teorijske grafove konveksnih crteža. Tutte [111] je predstavio algoritam za
konveksno crtanje tropovezanih planarnih grafova. Algoritam Chiba et al. [14] crta planarni
graf sa konveksnim stranama ako je to moguće.

Kada je svako lice grafa trougao, onda se graf naziva trouglastim planarnim grafom.
Ovo formira posljednju klasu koju razlikujemo. Nedavno je predstavljeno nekoliko
algoritama koji predstavljaju graf kao pravolinijski crtež, koji zahtijeva trouglasti planarni
graf kao ulaz. Ovdje spominjemo rad Chrobak & Payne [15], de Fraysseixa, Pach&Pollacka
[34], Van Haandela [43], Reada [92] i Schnydera [98]. Algoritmi, opisani u [15, 34, 43, 98],
postavljaju vrhove na O(n) O(n) mrežu.
Budući da su sve koordinate cijeli brojevi, rezultujuću sliku možemo nacrtati na potpuno
isti način na ekranu ili papiru, gdje je rezolucija xxed. Ako je trokutni planar
Machine Translated by Google
Crtanje planarnih grafova 7

graf je 4-povezan, tada svaki vrh v od G možemo predstaviti kao pravougaonik R(v),
takav da svaki rub (u; v) u G odgovara zajedničkoj granici R(u) i
R(v). Ovo se zove pravougaoni dual. Na slici 1.3 ideja o navedenom
date su reprezentacije.

14

11 12

7 8
1 9 10 13

4
3 5 6

(a) Konveksni crtež (b) Pravolinijski crtež (c) Pravougaoni dual

Slika 1.3: Različite vrste crteža.

Međutim, šta učiniti kada dati grafikon ne ispunjava ove dodatne zahtjeve za povezivanjem?
Kako još uvijek možemo koristiti algoritam crtanja koji želimo primijeniti?
Tipično rješenje koje ovdje predstavljamo je dodavanje rubova grafu tako da je
prošireni graf je još uvijek ravan i zadovoljava svojstvo povezanosti. Prijavljujemo se
algoritam za crtanje na proširenom grafu i izračunati koordinate
predstavljanja vrhova i ivica. Na kraju crtamo graf, ali dodane ivice su
potisnuto. U skladu sa istaknutim klasama planarnih grafova, imamo
problem planarne augmentacije s obzirom na bikonektivnost, trikonekciju i
trouglasti planarni grafovi.
Pokazujemo da je problem odlučivanja da li dodati najviše K rubova na a
graf takav da je rezultujući graf ravan i dvopovezan je NP-potpun. Mi
predstaviti O(n (n; n)) algoritam vremena za algoritam povećanja planarne bikonektivnosti, dodajući
najviše dva puta minimalni broj ivica. Mi takođe
predstaviti O(n) vremenski algoritam za planarni algoritam povećanja trikonektivnosti, dodajući
3
najviše puta minimalni broj ivica.
2 Triangulacija a
planarni graf G može se napraviti u linearnom vremenu. Linearni algoritam vremenske triangulacije
je predstavljen, sa svojstvom na kojem je maksimalni stepen triangulacije
3
većina 2 vrijeme maksimalnog stepena ulaznog grafa. Pokazano je da je problem

odlučivanja da li se G može triangulirati tako da je maksimalni stepen od


triangulacija je najviše K je NP-potpuna. Algoritmi za povećanje grafa primaju
sve više pažnje u novijoj literaturi, ali ovi algoritmi se ne bave
sa dodatnim ograničenjem planarnosti.
Machine Translated by Google
8 Crtanje planarnih grafova

Teza je podijeljena u tri dijela.


Dio A, čiji je ovaj uvod prvo poglavlje, uvodi čitaoca u oblast planarnih grafova. Ukratko
opisujemo tehnike testiranja da li je graf ravan, i ako jeste, kako ugraditi planarni graf. U
slučaju da graf nije ravan, objašnjavamo kako izbrisati mali broj ivica tako da graf bude
ravan. Štaviše, uvedena je tehnika za cijepanje planarnog grafa na njegove dvo- i
tropovezane komponente i kako izračunati posebno uređenje (koje se naziva kanonsko)
na vrhovima planarnog grafa. Posljednje dvije tehnike igrat će glavnu ulogu u dijelu B i C.

Dio B bavi se problemom povećanja planarnih grafova. Konkretno, razmatramo


problem sabiranja minimalnog broja bridova tako da je planarni graf dvopovezan ili
tropovezan, a i dalje ravan. Pokazalo se da je ove probleme povećanja teško riješiti u
polinomskom vremenu. Stoga su predstavljeni algoritmi aproksimacije, dodajući samo
konstantu puta minimalni broj ivica. Takođe razmatramo problem sabiranja ivica tako da
dobijemo trouglasti planarni graf, a minimiziramo maksimalni stepen. Ovaj problem se
javlja u oblasti konstruisanja pravolinijskog crteža. U posebnom slučaju da je ulazni graf
outerplanar, tj. da svi vrhovi dijele jedno lice, tada se svi gore navedeni problemi povećanja
mogu riješiti u polinomskom vremenu. Poglavlje 7 posvećeno je slučaju vanjskih planarnih
grafova.

Dio C bavi se glavnom temom ove teze, odnosno crtanjem planarnih grafova. Ovaj dio
ne zahtijeva pozadinu dijela B i stoga se može čitati potpuno nezavisno od dijela B.
Počinjemo u dijelu C dajući detaljniji pregled postojećih algoritama za crtanje, koji su
relevantni za naš rad. Također uvodimo novi poredak na vrhovima i plohama tropovezanog
planarnog grafa, koji se naziva lmc-uređenje. Ovaj poredak vodi do novog okvira za crtanje
za mnoge modele predstavljanja. Najvažniji rezultati crtanja su sljedeći (u svim slučajevima
planarni graf se crta bez ukrštanja ivica): 1. Svaki tropovezani planarni graf može se nacrtati
sa pravolinijskim rubovima na mreži veličine najviše (n 2) (n 2 ) tako da je svako unutrašnje
lice konveksno (poglavlje 10).

2. Svaki planarni graf se može nacrtati na mreži veličine najviše (2n 6) (3n 6) sa najviše
5n 15 krivina i minimalnim uglom najmanje takvim da svaka ivica ima
2 3d+1 , savijanja
najviše i3dužinu
najviše 2n (poglavlje 10).

3. Svaki tropovezani planarni graf sa stepenom najviše 4 može se nacrtati ortog ne + 4


3
samo na mreži veličine najviše nn sa najviše d 2 krivine tako da

svaka ivica ima najviše 2 krivine ako je n > 6 (poglavlje 11).

4. Svaki planarni graf sa stepenom najviše 3 može se nacrtati ortogonalno na mreži


veličine najviše bncbnc
2 stablo
sa
najviše
2 od
najviše
n 1jednu
pravolinijskih
bnc krivinu
+ 1 krivina,
2ako
ivica,
je
sa nsvojstvom
dok
> 4 svi
(poglavlje
ne da
-ivice
postoji
11).
stabla
razapinjuće
imaju
Machine Translated by Google
Crtanje planarnih grafova 9

5. Svaki planarni graf sa stepenom najviše 3 može se nacrtati sa pravolinijskim ivicama i


vrhovima predstavljenim kao tačke, tako da je minimalni ugao između bilo koje dve
uzastopne ivice najmanje drugačije (Poglavlje
4 ako je12).
graf tropovezan, i najmanje 3,

6. Postoji jednostavan linearni vremenski algoritam za konstruisanje pravougaonog duala


4-povezani trouglasti planarni graf (poglavlje 13).

7. Prikaz vidljivosti planarnog grafa može se konstruisati na mreži veličine najviše (n 1) (n 1),
ako je graf 4-povezan, i na mreži veličine najviše (b
3
2 nc 3) (n 1), inače (poglavlje 13).

Za skoro sve slučajeve, date granice poboljšavaju prethodne granice, poznate u literaturi, a
ponekad se poklapaju sa postojećim nižim granicama. Navedeni algoritmi su prilično laki za
implementaciju. Uključena je i diskusija o prednostima i nedostacima modela reprezentacije.
Štaviše, rezultati, zasnovani na eksperimentima implementacije nekoliko opisanih algoritama, dati
su u poglavlju 14. Dio C završava se evaluacijom ovih crteža grafova i nekim zaključcima.
Machine Translated by Google
10 Crtanje planarnih grafova
Machine Translated by Google

Poglavlje 2

Pozadine

Ovo poglavlje daje osnovne denicije i nudi kratak opis niza tehnika koje su
razvijene u teoriji planarnih grafova. Također opisujemo nekoliko glavnih
algoritama koji se koriste u ovoj tezi. Tačnije, dat je nacrt metoda za ispitivanje
planarnosti, ugrađivanja planarnih grafova, planarizacije grafova, cijepanja
grafa na bi- i tropovezane komponente i posebnog uređenja vrhova i lica
tropovezanog planarnog grafa. Cilj nije dati potpun pregled ovih tehnika u
njihovom najopštijem i najsofisticiranijem obliku; to je prije zamišljeno kao
polazna tačka za naš rad. Konkretno, pretpostavljamo za mnoge algoritme
opisane u Dijelu B i C, da je planarno ugrađivanje (planarnog) grafa dato
zajedno sa opisom bi- i tropovezanih komponenti.

Ako čitalac želi da sazna više, treba da prati uputstva za literaturu koja je
data. Pominjemo i rad Evena [28] i Nishizekija & Chibe [86]. Obje knjige pružaju
širok spektar tehnika u pogledu planarnosti, ugradnje i planarnih grafova.

2.1 Terminologija

U ovom dijelu dajemo prvi uvod u terminologiju grafova, koja će se koristiti u cijeloj
tezi. Eksplicitnije denicije u odnosu na teoriju grafa, povećanje grafa i izgled grafa
date su u odgovarajućim poglavljima.
Koristeći ove uvode, dat je detaljniji pregled testiranja planarnosti, ugrađivanja
planarnih grafova i cijepanja grafa na podgrafove.

Denicija 2.1.1 Graf je struktura G = (V;E) u kojoj je V konačan skup vrhova, a


EVV konačan skup ivica (neuređeni parovi). Za graf G, jV j je označeno sa n, a
jEj sa m.

Dva vrha grafa G nazivaju se susjednim ako postoji ivica sa ovim vrhovima
kao krajnjim vrhovima. Definišemo stepen temena v, označen sa deg(v), kao broj

11
Machine Translated by Google
12 Pozadine

incidentnih ivica od v. Određujemo (G) = maxfdeg(v)jv 2 Gg. Put između dva vrha x i y je
naizmjenični niz vrhova i ivica tako da su x i y na kraju ovog niza i svakom rubu u nizu
prethodi i slijedi njegov krajnji vrh. Tačnije, x = x0; e1; x1; e2;:::;ek; xk = y je put između
x i y, ako je ei = (xi1; xi) 2 G (za 1 ik). Ako je x = y i k > 0, onda postoji staza sa istom
početnom i krajnjom tačkom. Takav put stepen
se naziva
2, tada
ciklus.
se putanja
Ako vrhovi
naziva
na stazi
lanac.imaju
Dva vrha
se nazivaju povezanima ako postoji put između njih. Graf se naziva povezan ako postoji
put između svakog para vrhova, u suprotnom se graf naziva nepovezanim.

Ciklus od G koji se sastoji od 3 ivice naziva se trougao. Neka G fvg označi graf nakon
brisanja temena v sa svim njegovim incidentnim rubovima. Ako je G fvg odspojen, tada
se v naziva presek G, a svaka komponenta G fvg naziva se v-blok. Ako je (x; y) ivica takva
da je (V;E f(x; y)g) nepovezan, tada se (x; y) naziva mostom G. Razmotrimo aspekte
povezanosti grafova i uključenih

Slika 2.1: Neplanarni dvopovezani graf sa parom razdvajanja fu; vg.

denicije detaljnije. Ako je G povezan i ne sadrži preseke, onda se G naziva bikonektovano


ili 2-povezano. Ako je G spojen i ne sadrži mostove, onda se G naziva mostom povezan
ili povezan sa 2 ivice. Uopšteno govoreći, G je k-povezan ako ne postoji skup od k 1
vrhova, čije uklanjanje prekida vezu G. Takav skup se naziva odvajajući (k 1) skup. Prema
Mengerovom teoremu, G je k-povezan ako postoji k putanja disjunktnih vrhova između
bilo koja dva vrha G. 2-skup vrhova naziva se par za razdvajanje ili par za sečenje.
Maksimalni bikonektivni podgraf naziva se bikonektovana komponenta ili blok. U
Odjeljku 2.4 data je detaljna rasprava o algoritamskim aspektima podjele grafa na
podgrafove, koji su dvopovezani ili tropovezani. Ovo cijepanje igra glavnu ulogu u
algoritmima povećanja u dijelu B ove teze.

U ovoj tezi razmatramo samo planarne grafove u detalje, koji su definirani na


sljedeći način:

Denicija 2.1.2 Graf se naziva planarnim ako se može nacrtati u ravni tako da nema para
ukrštanja ivica.
Machine Translated by Google
2.1 Terminologija 13

Planarno ugrađivanje je reprezentacija planarnog grafa u kojem su na svakom vrhu


sve ivice sortirane u smjeru kazaljke na satu kada se obilaze oko temena u odnosu na
planarni crtež. Graf sa datim, ksednim planarnim ugrađivanjem naziva se i ravan graf. Lice
ravnog grafa je bilo koja topološki povezana regija okružena ivicama planskog grafa.
Jedno neograničeno lice ravnog grafa naziva se vanjsko ili vanjsko lice. Sva druga lica
nazivaju se unutrašnja lica. Rubovi i vrhovi, koji pripadaju vanjskoj površini, nazivaju se
vanjskim ivicama, odnosno vanjskim vrhovima. Ostale ivice i vrhove nazivaju se unutrašnjim
ivicama i unutrašnjim vrhovima. Unutrašnji rub, koji povezuje dva vanjska vrha, naziva se
tetiva. Ako je svako lice u G trokut, onda se G naziva triangulirani, trouglasti ili maksimalno
planarni graf.

4 5

(a) Tropovezani planarni graf i njegov (b) Triangulirani planarni graf.


dualni.

Slika 2.2: Različite vrste grafova.

Dualni graf G od G je definisan na sledeći način: svaki vrh vFk od G predstavlja lice Fk
od G. Sva lica G su predstavljena na ovaj način. U G postoji brid (vFk ; vFj ) ako Fk i Fj imaju
zajedničku ivicu u G. Otuda je deg(vFk ) u G jednak broju bridova koji pripadaju Fk u G. Po
Eulerovoj formuli: mnf +2 =0 za svaki planarni graf, gdje je f broj lica. To implicira da je m
3n 6.
Koristeći ovu formulu i deniciju dualnog grafa, može se napraviti više zapažanja. Za broj
vrhova nG dualnog grafa G od G, vrijedi nG = mn + 2. Također lako slijedi da svaki planarni
graf ima vrh v sa deg(v) 5.
Brisanjem susjeda od v odspaja G, stoga je svaki planarni graf najviše 5-povezan. Graf G
nazivamo k-planarnim, ako je G ravan i maksimalni stepen bilo kog vrha u G je najviše k.
Ugrađeni k-planarni graf naziva se k-planarni graf.
Triangulirani planarni graf ima tačno 3n6 ivica. Naziva se i maksimalnim planarnim jer
dodavanje bilo koje ivice na njega uništava planarnost. Svaki triangulirani planarni graf je
tropovezan [41]. Tropovezani planarni graf G ima važno svojstvo
Machine Translated by Google
14 Pozadine

imaju jedinstveno ugrađivanje, tj. u bilo kojem planarnom ugrađivanju G, ivice oko svakog vrha
imaju isti red (sve do obrnute sve liste susjedstva) [12].
U ovoj tezi također razmatramo dvije važne podklase planarnih grafova, naime, vanjski
planarni grafovi i stabla. Planarni graf se naziva vanjski planarni ako se može nacrtati kao
planarni graf sa svim vrhovima koji se nalaze na jednoj strani, vanjskoj površini. Graf je
outerplanar ako i samo ako su njegovi blokovi outerplanarni. Blok vanjskog grafa u suštini je
ciklus sa akordima koji se ne sijeku. Ako je vanjski planarni graf G dvopovezan i svako unutrašnje
lice je trokut, onda se G naziva maksimalni vanjski planarni graf ili mop. Dodavanje bilo koje ivice
krpi uništava spoljašnju planarnost.
Spoljni planarni graf ima najviše 2n3 ivica, a mop ima tačno 2n3 ivica.
Stablo je neusmjeren, povezan, aciklički graf. Drvo je spoljašnje ravni. Razmotrimo dualni graf G
spoljašnjeg planarnog grafa G. Neka je vout ovaj vrh G koji predstavlja spoljnu površinu G. ,Izrep
toga sledi da je G fvoutg drvo sa maksimalnim stepenom 3.

Slika 2.3: Eksterplanarni graf, krpa i drvo.

U cijeloj tezi graf G = (V;E) je predstavljen kao zbirka lista susjedstva. Za svaki v 2 V lista
susjedstva adj(v) sadrži (pokazuje na) sve , uvrhove u sadrži
u adj(v) za kojeunakrsni
postoji ivica (u; v) 2na
pokazivač E. zapis
Zapis koji
koji sadrži
sadrži
v u adj(u). Za testiranje planarnosti pretpostavljamo da su vrhovi u svakoj listi susjedstva
pohranjeni proizvoljnim redoslijedom. Zbir dužina svih susednih lista je 2m, pošto se za svaki rub
(u; v), u pojavljuje u listi susednosti v i obrnuto. Stoga reprezentacija liste susjedstva ima poželjno
svojstvo da je količina memorije koja joj je potrebna O(m + n)

1
. Međutim, u algoritmima za uvećanje i crtanje pretpostavljamo da je dato planarno
ugrađivanje, tj. susjedi v se pohranjuju u adj(v) u smjeru kazaljke na satu kada ih posjećujemo
oko v u odnosu na planarni crtež. Ovo ima lijepo svojstvo da za svaki rub (u; v), možemo pronaći
u O(1) vremenu \sljedeću" i \prethodnu" ivicu u i v u planarnom ugrađivanju.

Konstrukcija lista susjedstva adj(v) uključujući crosspointere datog planarnog ugrađivanja G


može se obaviti on-line na sljedeći način u O(m) vremenu. Pretpostavimo da je

1Pretpostavljamo da je čitalac upoznat sa O-, -, i -notacijom, vidi npr. [17]


Machine Translated by Google
2.1 Terminologija 15

Input-format je sljedeći: U
prvom redu n, broj čvorova.

Na sljedećih n redova imamo liniju i (1 redoslijed u in) susedi vrha vi in


smjeru kazaljke na satu.

Liste susjedstva adj(vi) su predstavljene kao redovi. Za svaki vrh uvodimo i listu
lowadj(vi), koja sadrži pokazivače na mjesto vrha vi u adj(vj), sa j<i. Takođe uvodimo
polje niza, za pronalaženje elementa lowadj(vi) u O(1) vremenu u koraku i. Važna
činjenica je da kada se čitaju susjedi vrha vi, već imamo adj(vj ) za vrhove vj ;j < i.
Algoritam postaje sljedeći:

MakeGraph(G);
Readln(n);
za i := 1 do n inicijalizirajte lowadj(vi) i adj(vi) na ; rof; za i := 1 do
n do
za sve elemente x u lowadj(vi) neka x
bude unakrsno pokazivač na vi u adj(vj); bucket[j] := x
rof; za svakog susjeda vj od vi, čitati redom od unosa do

Enqueue(vj, adj(vi));
ako je j>i onda Enqueue(vi, lowadj(vj )) sa pokazivačem na adj(vi)
inače postavite crosspointer između adj(vi) i bucket[j] rof rof;

Završi MakeGraph

Ideja ovog algoritma je sljedeća: prije nego što se pročitaju susjedi vi, elementi
lowadj(vi) se stavljaju u kantu. Preciznije, ako je bucket[j] = x, onda je x pokazivač na
zapis vi u adj(vj ) sa j<i. Kada se susjed vj od vi pročita sa ulaza, tada se vj dodaje adj(vi).
Ako je j<i onda se (unakrsni) pokazivači između adj(vi) i x dodaju, sa bucket[j] = x; ako
je j>i onda se vi dodaje lowadj(vj).
U nekoliko planarnih algoritama također je potrebno imati pokazivače od vrhova i
ivica do lica kojima pripadaju. S obzirom na planarno ugrađivanje, npr. kako ga je
konstruirao MakeGraph, to je prilično lako isporučiti. Počinjemo tako što ćemo posjetiti
vrh v1 i obraditi lica incidentna na v1. Za svako takvo lice F sa graničnim vrhovima v1 =
u1; u2;:::;gore (u smjeru kazaljke na satu oko F ) radimo: uvodimo zapis za lice F i listu
rubova, koja sadrži ivice (ui; ui+1) (1 i<p) i (gore; u1). Također označavamo vrh ui+1 u
adj(ui) (za 1 i<p) i u1 u adj(up) kao posjećen i postavljamo pokazivače iz njih na zapis F.
Nastavljamo posjećivanjem svih vrhova v1;:::;vn. Ako neki vrh vj u adj(vi) nije označen
kao posjećen, tada od (vi; vj) prelazimo u smjeru kazaljke na satu lice koje još nije
posjećeno. Pošto se svako lice pređe jednom, pošto je svaki zapis u svakoj listi
susjedstva označen kao posjećen samo jednom, ovo daje linearni algoritam vremena.
Machine Translated by Google
16 Pozadine

2.2 Testiranje i ugrađivanje planarnih grafova

2.2.1 Uvod

Glavna tema u teoriji grafova je proučavanje planarnih grafova. Prije nego što
razmotrimo problem crtanja planarnog izgleda grafa, postavlja se pitanje kako se
zapravo može utvrditi da li je dati graf ravan ili ne. Ovaj klasični problem u teoriji grafova
ima fundamentalni odgovor u obliku Teoreme Kuratowskog [74]: graf G je ravan ako i
samo ako nema podgraf \homeomorfan" za K3;3 ili K5. (K3;3 je potpuni bipartitni graf
na 2 skupa po 3 vrha i K5 je kompletan graf na 5 vrhova, vidi sliku 2.4.) Ova karakterizacija
izgleda daleko od

Slika 2.4: Zabranjeni homeomorfni podgrafovi planarnih grafova.

izvodljiv računski recept za testiranje planarnosti i potreban je drugačiji pristup.


Jednostavna opservacija pokazuje da test planarnosti, a kasnije i dizajn odgovarajućeg
algoritma za crtanje, zapravo možemo ograničiti na dvopovezane komponente grafova:
graf je ravan ako i samo ako su njegove dvopovezane komponente. (Ovo slijedi jer se
dvopovezane komponente grafa mogu seći u najviše jednom vrhu.) Hopcroft & Tarjan
[107, 49] dokazali su da se povezane, dvopovezane i tropovezane komponente grafa
mogu odrediti algoritmom koji radi u O( m + n) vrijeme na grafu (vidi također odjeljak
2.4).
Danas je poznato nekoliko algoritama za testiranje planarnosti grafova, baziranih
na jednoj od dvije globalne tehnike, a to su metoda \edge adding" i metoda \vertex
add". Ovi termini se odnose na principe koji se koriste u algoritmima. Algoritam za
dodavanje rubova izvorno je zaslužan za Auslandera & Partera [2], a implementaciju
linearnog vremena razvili su Hopcroft & Tarjan [50]. Nakon ovog prvog pristupa pojavilo
se nekoliko povezanih i pojednostavljenih verzija. Ovdje spominjemo rad Williamsona
[121], algoritam de Fraysseixa & Rosenstiehl-a [35] i nedavni algoritam Hsu & Shiha [54],
koji se čini vrlo jednostavnom i brzom metodom za testiranje da li je graf planarno ili ne.

2.2.2 Testiranje planarnosti korištenjem PQ-stabala

U ovom dijelu opisujemo algoritam za dodavanje vrhova kako ga je predstavio Lempel,


Even & Cederbaum [76], a kasnije poboljšan u linearni algoritam vremena od strane Booth &
Machine Translated by Google
2.2 Testiranje i ugrađivanje planarnih grafova 17

Lueker [9], koristeći novu strukturu podataka nazvanu PQ-stablo. Osim lišća,
PQ-stablo se sastoji od dva tipa čvorova: P-čvorova, koji predstavljaju vrhove rezova
grafa i Q-čvorovi, koji predstavljaju blokove grafa. Postoji jedan
rub između P-čvora i Q-čvora, ako tome pripada odgovarajući rezni vrh
blok. Kasnije ćemo potvrditi da je redoslijed djece na svakom čvoru ključna stavka
u ovoj strukturi podataka. (Postoji velika korespondencija između PQ-stabla i
BC-stablo, opisano u Odjeljku 2.4.) Održavamo djecu u dvostruko povezanom
lista. Lijevo i krajnje desno dijete Q-čvora, i sva djeca P-čvora, imaju
pokazivač na njihovog roditelja. Svaki čvor ima pokazivač na svoje krajnje lijevo i desno dijete.
Koristeći ovaj algoritam relativno je lako izračunati planarno ugrađivanje za planar
graf. Postoji dobar algoritam za planarizaciju, tj. algoritam za brisanje
mali broj ivica iz neplanarnog grafa da bi se dobila planarnost. Obje karakteristike
ovog algoritma su navedeni u Odjeljcima 2.2.3, odnosno 2.3.2, 2.3.3.
Od sada pretpostavljamo da je G bikonektan. Algoritam za testiranje planarnosti
od Lempel, Even & Cederbaum prve oznake u linearnom vremenu vrhova G as
v1; v2;:::;vn, koristeći ono što se zove st-numeracija [30]. st-numeracija označava vrhove G tako
da (v1; vn) 2 E i svaki vrh vi (1 <i<n) ima
ivice na neke vrhove vk i vl sa k<i<l. Planarni grafovi koji su numerisani
ili na ovaj način usmjereni nazivaju se planarni st-grafovi. Planarni st-grafovi imaju mnogo
svojstva koja su se pokazala korisnima za algoritme za crtanje planarnih grafova. An
pregled ovih svojstava i lijepe posljedice su nabrojane u poglavlju
9.
Neka je Gk = (Vk ; Ek ) podgraf od G induciran na vrhovima v1; v2;:::;vk,
tj. Vk = fv1;:::;vkg, i (vi; vj ) 2 Ek, ako je ik i j k. Ako je k<n onda postoji
postoji ivica G sa jednom krajnjom tačkom u Vk, a drugom u V Vk. Neka je G0k
graf formiran dodavanjem svih ovih ivica (vi; vj) Gk sa ik i j>k.
Bilo koja ivica (vi; vj) ove vrste naziva se virtuelna ivica, a vj se naziva virtuelni vrh.
Virtuelni vrhovi se drže odvojeno, tj. može postojati nekoliko virtuelnih vrhova sa
oznaka (vk+1), svaka sa tačno jednom ulaznom ivicom iz Vk. Neka Bk (oblik grma)
biti ugrađivanje G0k tako da su svi virtuelni vrhovi postavljeni na vanjskoj površini.
Lempel, Even i Cederbaum [76] su pokazali da je st-graf G ravan ako i samo
ako se za svaki , 2 kn 2, postoji planarni crtež B0k izomorfan Bk
Bk takav da se u B0k svi virtualni vrhovi označeni (vk+1) pojavljuju uzastopno.
PQ-stablo Tk koje odgovara obliku grma Bk sastoji se od tri tipa
vrhovi: (i) Listovi u Tk predstavljaju virtuelne ivice (vi; vj ) u Bk, sa i k<j,
i označeni su sa (vj ); (ii) P-čvorovi u Tk predstavljaju rezove u Bk, i (iii)
Q-čvorovi Tk predstavljaju blokove u Bk. G; Gk Bk i odgovarajuće
; PQ-stablo
su ilustrovane na slici 2.5. (Na ovom crtežu P-čvor je označen krugom, a
Q-čvor je označen pravokutnikom.)
Nekoliko denicija je sada na redu. Za čvor x u Tk se kaže da je pun ako je sav njegov
potomci su označeni (vk+1); x se kaže da je prazan ako nijedan od njegovih potomaka
listovi su označeni (vk+1); inače je x parcijalan. Ako je x pun ili djelomičan, tada se poziva x
relevantan čvor. Odgovarajući list sa oznakom (vk+1) je uvek pun. Granica Tk
Machine Translated by Google
18 Pozadine

s=1 s=1 s=1

2 2 2

3 4 3 4 3 4
5 (1,9)
5 5
7 (3,6) (5,6)
6
678 6 696 9
8 (2,6) (2,7) (2,8) (4,9) (4,6)

t=9

Slika 2.5: Primjer G; Gk ; Bk i odgovarajuće PQ-stablo (iz [12]).

je niz svih potomaka listova Tk čitanih s lijeva na desno. Slično,


granica čvora x je niz svih listova potomaka x čitanih s lijeva na
u pravu. Odgovarajuće podstablo Tk je najmanje povezano podstablo koje sadrži
svi listovi sa etiketom (vk+1). Koren odgovarajućeg podstabla, recimo xr, naziva
, se
odgovarajući koren. xr je najmanje zajednički predak svih listova sa oznakom (vk+1). Dva
PQ-stabla se smatraju ekvivalentnim ako se jedno može dobiti od drugog pomoću
izvođenje jedne ili više od sljedećih vrsta operacija.

Obrnuti redoslijed djece Q-čvora.

Permutiranje djece P-čvora.

Osnovna ideja je da svi v-blokovi, povezani na preseku v, mogu biti proizvoljno


permutiran bez uništavanja planarnosti. Stoga djeca P-čvora mogu biti
proizvoljno permutirano. Na isti način svaki blok može biti obrnut u odnosu na a
cutvertex, stoga se djeca Q-čvora mogu obrnuti. Važna operacija
tokom algoritma je da se u svakom koraku uklanjaju P- i Q-čvorovi stepena 2
sa PQ-stabla, dok povezuju svoje susjede.
U [9] je pokazano da B0k postoji ako i samo ako se Tk može pretvoriti u ekvivalentno
PQ-stablo T 0k tako da svi listovi s oznakom (vk+1) (koje odgovaraju dolaznom
ivice vk+1) pojavljuju se uzastopno na granici T 0k. Ovo upravo slijedi
intuicija planarnosti, tj. sve ivice vk+1 moraju završiti u jednoj krajnjoj tački, vk+1, bez
gubitka planarnosti. Booth & Lueker su definisali skup obrazaca i zamjena pomoću kojih
se T 0k može svesti u PQ-stablo T u kojem su svi puni k
čvorovi se pojavljuju kao jedan uzastopni niz djece jednog čvora. Konstruisati
Tk+1 od Tk, oni prvo smanjuju Tk na T, a zatim
k zamjenjuju sve pune čvorove P-čvorom,
čija su sva djeca listovi, koji odgovaraju izlaznim ivicama vk+1. Algoritam Booth & Lueker
počinje sa T1 i konstruiše niz PQ-stabala
T1; T2;:::. Ako je graf G ravan, tada se algoritam završava nakon konstruiranja
Tn1; inače se prekida nakon otkrivanja nemogućnosti smanjenja nekog Tk
u T k . Ključni rezultat u analizi složenosti ovog algoritma je naveden u
sljedeća teorema [9]:
Machine Translated by Google
2.2 Testiranje i ugrađivanje planarnih grafova 19

Teorema 2.2.1 Zbir veličina svih l relevantnih čvorova u PQ-stablima Tn1 kada se algoritam
T1; T2, :::, izvodi na proizvoljnom grafu je O(m + n).

2.2.3 Konstrukcija ravnih ugradnji koristeći PQ-stabla

Čini se da testiranje planarnosti planarnog grafa i konstruisanje planarnog ugrađivanja


impliciraju više poteškoća nego što se na prvi pogled očekivalo. Konkretno, modifikacija
\edge-addition" algoritma za testiranje planarnosti Hopcrofta & Tarjana [50] tako da daje
planarno ugrađivanje izgleda "prilično komplikovano", prema Chiba et al. [12]. Ipak, nekoliko
godina nakon objavljivanja Hopcroft & Tarjan [50], algoritmi za ugradnju zasnovani na ovom
algoritmu za testiranje planarnosti predstavljeni su, nezavisno od Mutzel [84] i Cai, Han &
Tarjan [10].
U ovom odeljku opisujemo ukratko jednostavnu modifikaciju Booth & Luekerovog
algoritma za testiranje planarnosti da bismo dobili planarni algoritam za ugrađivanje
planarnih grafova, kao što su opisali Chiba et al. [12]. Oni (i takođe, nezavisno, Rosen Stiehl
& Tarjan [96] i Tamassia & Tollis [104]) uočili su sljedeću zanimljivu karakteristiku planarnih
st-grafova.

Lema 2.2.2 Razmotrimo ugrađivanje planarnog grafa G dobijenog Booth & Lueker
algoritmom. Neka je vi vrh G. Svi susjedi vj sa j<i pojavljuju se uzastopno oko v kao i al l
susjedi vj sa j>i.

Algoritam za ugrađivanje se sastoji od dvije faze: (i) konstruisanje ugrađivanja naviše


uzlaznog grafa Gup od G, i (ii), konstruisanje cijelog ugrađivanja.
Gup je graf G u kojem je svaki rub (vi; vj) usmjeren vi! vj , i i<j. Neka popisi susjedstva adjup(vi)
pohranjuju Gup . Glava vi se pojavljuje u adjup(vj), ali se rep vj ne pojavljuje u adjup(vi) za
svaku usmjerenu ivicu (vi; vj). Kada je G ravan, onda možemo svesti stablo Tk u koraku k
Booth & Lueker algoritma na stablo T u kojem se svi listovi, označeni (vk+1), pojavljuju kao k
djeca jednog čvora, recimo čvora xk. adjup(vk+1) se dobija skeniranjem listova označenih
vk+1 s lijeva na desno (ili obrnuto) u T. Ako je adjup(vk+1) ispravno određen u koraku k,
onda, brojanjem broja
k. sljedećih reverzija čvor xk, može se ispraviti smjer adjup(vk+1)
obrnutim adjup(vk+1) ako je broj neparan. Algoritam Chiba et al. [12] ne određuje smjer
adjup(vk+1) u Tk, ali dodaje novi specijalni čvor kao jedno od xk djece u PQ-stablo na
proizvoljnoj poziciji. Novi čvor se zove pokazivač pravca, takođe označen kao vk+1, i prikazan
je trouglom, kao što je ilustrovano na slici 2.6. Pokazivač pravca vk+1 ima dvije uloge. Prvo
je pratiti naknadne reverzije adjup(vk+1). Indikator će biti obrnut sa svakim preokretom xk.
Drugi je prijenos relativnog smjera čvora vk+1 na njegove braće i sestre.

Prilikom izračunavanja maksimalnog uzastopnog niza odgovarajućih listova, prisustvo


pokazivača pravca se zanemaruje. U koraku dodavanja vrhova koraka k we
Machine Translated by Google
20 Pozadine

.... .... .... .... ....


v v
v ... vv ... v ....

Slika 2.6: Dodavanje pokazivača smjera u PQ-stablo (iz [12]).

pređite niz s odgovarajućim listovima i pokazivačima pravca. Sadržaj listova (koji su ivice
(vi; vk+1) sa i<k + 1) pohranjujemo i pokazivače pravca u adj(vk+1). Nakon koraka n 1, liste
susjedstva se skeniraju obrnutim redoslijedom. Kada posjetimo pokazivač pravca vrha vi
u adj(vj ) (sa j>i) u smjeru suprotnom od smjera naznačenog trouglom, tada se adj(vi) obrće.

Algoritam UpwardEmbed opisuje ove ideje.

UpwardEmbed(G);
dodijeliti st-brojeve svim vrhovima G;
konstruisati početno PQ-stablo T1; za k := 1
do n 1 do f korak redukcije g konstrukcije T

iz Tk primjenom podudaranja šablona na PQ-


k
stablo, zanemarujući pokazivače smjera u njemu, tako da listovi
označeni (vk+1) zauzimaju uzastopne pozicije;
f korak dodavanja vrha g
neka je l1; l2;:::;li biti označeni listovi (vk+1) i pokazivači pravca
skenirani ovim redom; izbrisati l1; l2;:::;li iz PQ-stabla i
pohraniti sadržaj u adjup(vk+1); ako odgovarajući korijen r nije pun tada

dodati indikator (vk+1) usmjeren od l1 do li u PQ-stablo kao dijete od r;


zamijeniti sve pune čvorove novim P-čvorom, sa svim izlaznim
rubovima temena vk+1 koji se pojavljuju kao djeca novog P-čvora
rof;

fkorrekcija korakg
za k := n do 1 do
za svaki element x u adjup(vk) uradite
ako je x pokazivač pravca onda
ako je smjer x suprotan smjeru adjup(vk), onda obrnuti adjup(x); obriši x iz
adjup(vk)
rof
rof;
End UpwardEmbed
Machine Translated by Google
2.3 Planarizacija grafova 21

Konačno, adjup(v) za ugrađivanje naviše se proširuje na potpuno ugrađivanje. Ovo


se dobija jednostavnim pretraživanjem po dubini iz vn, i dodavanjem w na vrh
adjup(v) kada se posećuje usmerena ivica (w; v). Zbog karakteristika st numeracije
može se dokazati [12] da to dovodi do ispravnog planarnog ugrađivanja. Neka svi
vrhovi budu označeni kao novi i sve liste susjedstva adjup(v) budu kopirane u
adj(v), tada je ugrađivanje završeno pozivanjem Dfs(vn).

Dfs(w)
označite vrh w
star; za svaki v u adjup(w)
dodajte vrh w na vrh adj(v); ako
je v označeno kao novo onda
Dfs(v) rof
End Dfs

Teorema 2.2.3 ([12]) Postoji linearni algoritam vremena i prostora za testiranje


da li je graf ravan, i ako jeste, on daje planarno ugrađivanje.

2.3 Planarizacija grafova

2.3.1 Uvod

Ako je graf G neplanaran, onda se G može nacrtati samo u ravni sa ukrštanjima.


Jedan razuman cilj čitljivog prikaza je traženje crteža koji minimizira broj ukrštanja.
Nažalost, odlučivanje da li se graf može nacrtati sa najviše K ukrštanja je NP-potpuno
(problem broja križanja, vidi [59]). Druga strategija za crtanje G je da iz njega izbrišete
neke ivice tako da postane ravan, nacrtate rezultujući graf i ponovo dodate izbrisane
ivice u crtež. Nažalost opet, odlučivanje da li brisanje najviše K ivica čini graf planarnim
je NP-potpun (problem planarnog podgrafa, vidi problem [GT27] u [38]). S druge strane,
pravljenje grafa planarnim brisanjem ivica daje algoritam aproksimacije za problem
broja ukrštanja. Stoga, interesovanje za računanje planarnih podgrafova grafa raste,
sa sve efikasnijim i sofisticiranijim algoritmima dokumentovanim u novijoj literaturi.
Međutim, postoje grafovi sa n vrhova i (pn) križanja, koji postaju ravni nakon brisanja
već jednog ruba. Planarizacija grafa definiše proces brisanja (malog broja) ivica da bi se
dobio planarni podgraf.

Za planarizaciju je opisano nekoliko heurističkih algoritama. Nekoliko od ovih


algoritama je razvijeno sa praktične tačke gledišta. Ne sadrže teorijske granice vremena
i performansi, a rezultati su zasnovani na eksperimentima. Kao ilustraciju jednostavne
i dobre heuristike, navodimo pristup
Machine Translated by Google
22 Pozadine

Goldschmidt & Takvorian [41], koji se sastoji od dvije faze: (i) osmisliti sređivanje skupa
vrhova G, v1; v2;:::;vn i nacrtajte ih ovim redom na vodoravnoj liniji; (ii) pokušati nacrtati
maksimalan broj ivica u E iznad ili ispod linije tako da se dvije ivice ne seku. Preciznije,
podijeliti ivice G na tri skupa E1; E2 i E3 tako da je jE1j + jE2j maksimalno i da za bilo
koja četiri vrha sa vi1 < vi2 < vi3 < vi4 ne postoje dva ruba (vi1 ; vi3) i (vi2 ; vi4 ) kako u
E1, tako i u E2. Jasno je da je podgrafkoriste
koji seaproksimacijski
sastoji od ivica algoritam
u E1 [E2 ravan. Za fazu (i)
za pronalaženje
Hamiltonovog kola.

Za fazu (ii) uvode novi graf H. Svaka ivica (vi; vj) od G je predstavljena preko vrha u H.
Postoji ivica između dva vrha u H i za odgovarajuće ivice (vi; vj); (vk; vl) vrijedi i<k<j<l.
Konstruisanje E1 i E2 postiže se računanjem nezavisnih skupova. Izračunavanje
maksimalnog nezavisnog skupa u H može se postići u polinomskom vremenu, a
odgovarajuće ivice u G daje planarni podgraf. Vidi [41] za više detalja i sliku 2.7 za ideju
algoritma.

12345 8 6 7

Slika 2.7: Jednostavna heuristika za planarizaciju grafova.

Budući da je problem maksimalnog planarnog podgrafa NP-potpun, trenutno


istraživanje naglašava problem izračunavanja maksimalnog planarnog podgrafa.
Maksimalni planarni podgraf Gp = (V;Ep) od G = (V;E) je planarni podgraf sa svojstvom
da dodavanje bilo koje ivice e 2 G Gp na Gp uništava planarnost. Prvi pokušaj
izračunavanja Gp je testiranjem inkrementalne planarnosti: počnite sa Ep = ; i testirajte
za svaku ivicu e da li je Gp [ e još ravan. Ako jeste, dodajte e u Gp. Nastavite sve dok se
više ne može dodati ivica. Koristeći bilo koji od propisanih algoritama za testiranje
planarnosti, ovo vodi do algoritma maksimalne planarizacije O(mn). Di Battista &
Tamassia [21] razvili su algoritam koji testira u O(log n) najgorem slučaju da li se e
može dodati Gp tako da je rezultujući graf ravan. Dodavanje e u Gp i ažuriranje
strukture podataka koja im je potrebna zahtijeva O(log n) amortizaciju vremena. Ovo
dovodi do algoritma maksimalne planarizacije O(m log n) vremena.
Nedavno je La Poutr e [75] predstavio novu strukturu podataka za održavanje
planarnih grafova, u kojoj se može testirati u O( (m; n)) vremenu u najgorem slučaju da
li se rub e može dodati planarnom grafu G sa m ivica i n vrhova uz očuvanje planarnosti.
(m; n) je inverzna funkcija Ackermannove funkcije, koja nije veća od 4 u svim praktičnim
situacijama. Vrijeme dodavanja ivice e G je O( (n; n)), amortizovano preko O(n) ivica.
Ovo dovodi do O(m (m; n)) maksi-
Machine Translated by Google
2.3 Planarizacija grafova 23

mal planarizacijski algoritam. (Ovo takođe poboljšava nezavisno dobijeni rezultat od


Westbrooka [119].) Pominjemo i rad Caija, Hana i Tarjana [10], koji su predstavili algoritam
maksimalne planarizacije O(m log n), zasnovan na algoritmu za testiranje planarnosti
Hopcroft & Tarjan, ali ne koristeći pristup testiranja inkrementalne planarnosti.

U ovoj tezi pažnju usmjeravamo na algoritam planarizacije koji su izradili Ozawa &
Takahashi [90], a detaljnije su ga opisali Jayakumar et al. [58]. Algoritam je baziran na
Booth & Luekerovom algoritmu za testiranje planarnosti. Osnovni argument za
proučavanje ovog okvira je sljedeći: u svakom koraku se dodaje sljedeći vrh vi i određujemo
minimalni broj bridova (vj ; vi);j < i, čije brisanje daje planarni graf na v1;:: :;vi. Nakon
brisanja ovih rubova u svakom koraku dobijamo planarni podgraf Gp. Nadamo se da Gp
sadrži više ivica od planarnih podgrafova dobijenih inkrementalnim testiranjem planarnosti,
kao što su opisali Di Battista [21] i La Poutr e [75]. Implementirali smo algoritam
planarizacije Jayakumara et al. [58], i uporedio je isporučene planarne podgrafe sa
planarnim podgrafom, dobijenim inkrementalnim testiranjem planarnosti. Zaista, za
grafove koji su \gotovo ravni", primijetili smo da metoda \vertex adding" Jayakumara et
al. daje gušće planarne podgrafe od metode \edge adding". Eksperimentalna poređenja
su sažeta na slici 2.10. Međutim, rezultirajući planarni podgraf Gp metode \vertex adding"
nije nužno planaran, kao što je pogrešno objavljeno u [90]. U Odjeljku 2.3.3 dajemo kratak
opis kako dobiti maksimalni planarni podgraf G0p, koji sadrži Gp.

2.3.2 Planarizacija Korištenje PQ-stabala

U ovom dijelu raspravljamo o osnovnom principu pristupa za planarizaciju, prema Ozawa


& Takahashiju [90], a koji su također proučavali Jayakumar et al. [56, 58]. Prateći ove
radove, klasifikujemo čvorove PQ-stabla na sledeći način:

Tip W: Za čvor se kaže tip W, ako se njegova granica sastoji samo od praznih listova.

Tip B: Za čvor se kaže da je tip B, ako se njegova granica sastoji samo od punih listova.

Tip H: Za čvor X se kaže da je tip H ako se podstablo ukorijenjeno na x može rasporediti


tako da se svi potomci odgovarajućih listova x pojavljuju uzastopno ili na lijevom ili
na desnom kraju granice.

Tip A: Za čvor x se kaže da je tip A ako se podstablo ukorijenjeno na x može rasporediti


tako da se svi potomci odgovarajućih listova x pojavljuju uzastopno na sredini
granice s najmanje jednim neprikladnim listom koji se pojavljuje na svakom kraju
granice.

Centralni koncept planarizacionog algoritma je naveden u sljedećoj teoremi iz [58], koja u


suštini predstavlja ponovnu izjavu principa na kojem se temelji Booth & Luekerov algoritam
za testiranje planarnosti.
Machine Translated by Google
24 Pozadine

Slika 2.8: Čvorovi tipa W, B, H i A, respektivno.

Teorema 2.3.1 ([58]) Graf G je ravan ako i samo ako su odgovarajući korijeni svih l podstabala u T2;
T3;:::;Tn1 od G su tip B, H ili A.

PQ-stablo se naziva reducibilnim ako mu je odgovarajući korijen tip B, H ili A; inače se naziva
nesvodljivim. Graf G je ravan i sva stabla Tk su reducibilna. Ako je bilo koji Tk nesvodljiv, činimo ga
reducibilnim tako što iz njega na odgovarajući način izbrišemo neke listove s oznakom (vk+1). Za
čvor x u nesvodivom PQ-drvetu Tk, neka w-, h- i a-broj budu minimalni broj potomaka od x, koji se
mora izbrisati iz Tk tako da x postane tip W, H i A, respektivno. Ovo je označeno sa [w; h; a]. (Imajte
na umu da se parcijalni čvor ne može napraviti tipa B, jer u ovom slučaju moramo izbrisati praznu
djecu, što nije dozvoljeno.) Nakon izračunavanja [w; h; a] za odgovarajući korijen r PQ-stabla,
postavljamo tip r na H ili A (prema minimumu h- i a-broja) i prelazimo stablo odozgo prema dolje
da odredimo tip svakog relevantni čvor. Sa stabla se uklanjaju listovi tipa W. Rezultat je reducibilno
stablo.

Sada se koncentrišemo na izračunavanje [w; h; a]-brojevi za svaki tinent čvor x. U tu svrhu


obrađujemo Tk odozdo prema gore od odgovarajućih listova do odgovarajućeg korijena r, tj. kada
izračunamo [w; h; a] za čvor x, zatim [w; h; a] brojevi svih relevantnih djece od x su već izračunati.
Za svaki čvor x sa brojevima [w; h; a] slijedi da ah w. Ako je x list, onda [w; h; a] = [1; 0; 0], pa
pretpostavimo da x nije list. Neka su x1;:::;xp relevantna djeca od x, svako dijete xi sa h- i w-brojem
hi i wi. Kada se jedno relevantno dijete od x napravi tip H, a sva ostala relevantna djeca od x tipa
W, tada je h-broj od x min1 i pfhi +w1 +:::+wi1 +wi+1 +:::+wpg = w1 +:::+wp min1 i pfwi hig.

Izračunavanje w-h- i a-brojeva slijedi na sličan način kako slijedi:

W-broj za x je jednostavno P y w, preko svih y koje su relevantno dijete od x.

Pravimo P-čvor x tipa H tako što napravimo sva puna djeca tipa B, jedno djelomično dijete
tipa H i sva ostala djelomična djeca tipa W.

P-čvor x tipa A možemo napraviti na dva različita načina. Možemo napraviti jedno djelomično
dijete od x tipa A i napraviti sva druga relevantna djeca od x tipa W, ili možemo napraviti
dva djelomična djeteta tipa H, sva puna djece tipa B i napraviti sva ostala relevantna djeca
tipa W.
Machine Translated by Google
2.3 Planarizacija grafova 25

Da bismo napravili Q-čvor x tipa H, prelazimo potomke x s lijeva na desno i nalazimo


maksimalan uzastopni niz relevantnih djece tako da samo krajnji desni čvor u ovom
nizu može biti djelomičan, svi ostali čvorovi moraju biti puni.
Isto se radi prelaskom djece od x s desna na lijevo.

Pravimo Q-čvor x tipa A pronalaženjem maksimalnog uzastopnog niza relevantnih


djece od x tako da su svi čvorovi ovog niza osim krajnjeg lijevog i krajnjeg desnog
čvora puni. Krajnji čvorovi ovog niza mogu biti puni ili djelomični. Umjesto toga mogli
bismo napraviti jedno od relevantnih djece tipa x tipa A i napraviti sve ostale
relevantne djece tipa W.

[6, 3, 2]

[3, 1, 0] [3, 1, 1]

[1, 0, 0]
[2, 0, 0]

Slika 2.9: Računanje [w; h; a]-brojevi.

Planarizuj
Konstruisati početno stablo T1 = T 1 ;
za k := 1 do n 1 učiniti
f učiniti Tk reducibilnim
g izračunati [w; h; a]-broj za sve relevantne čvorove u Tk; if
minfh; ag za odgovarajući korijen r tada nije nula
neka r tip H ili A odgovara minimumu h i a; prelaziti Tk odozgo prema
dolje i odrediti tip svakog relevantnog čvora; brisati listove tipa W iz Tk; f
korak redukcije g konstruisati T iz Tk primenom zamena k na PQ-stablo tako
da se svi preostali listovi sa oznakom (vk+1) pojavljuju kao uzastopni niz u Tk ; f
korak dodavanja vrha g

zamijeniti sve pune čvorove kT novim P-čvorom x sa svim


izlaznim rubovima temena vk+1 koji se pojavljuju kao djeca x
rof;
End Planarize
Machine Translated by Google
26 Pozadine

Računanje [w; h; a]-broj za čvor x može se uraditi u O(p(x)) vremenu, sa p(x) brojem relevantnih djece za x
ako je x P-čvor, a sa p(x) brojem djece od x ako je x Q-čvor. Broj djece svih Q-čvorova u bilo kojem PQ-stablu
je najviše n [58]. Pošto u bilo kojem PQ-stablu postoji najviše n relevantnih listova, n P-čvorova i n Q-čvorova,
ukupan rad za izračunavanje [w; h; a]-brojeva i stvaranje stabla svodivim je O(n) u svakom koraku, stoga
algoritam uzima O(n2)

ukupno vrijeme.

Teorema 2.3.2 ([58]) Algoritam Planarize određuje planarni podgraf Gp neplanarnog grafa G u O(n2) vremenu.

2.3.3 Maksimalna planarizacija

Nažalost, algoritam Planarize ne vraća nužno maksimalan planarni podgraf, a u [56] je dat kontraprimjer.
Ako je G kompletan graf Kn ili potpuni bipartitni graf Km;n, tada Planarize daje maksimalni planarni podgraf
sa 3n6 i 2(m+n)4 rubova, respektivno, što je najbolje moguće (vidi Jayakumar et al. [56]) i Kant [66],
respektivno). U [58], Jayakumar et al. predložiti O(n2) vremenski algoritam koji, dat dvopovezani planarni
podgraf Gp, daje maksimalni planarni podgraf G0p od G, sa Gp G0p. Međutim, kao što je dokazano u Kantu
[66], ovaj algoritam je netačan, a nekoliko protuprimjera je uključeno u [66]. Kant također predstavlja novi
algoritam za povećanje Gp do maksimalnog planarnog podgrafa G0p od G, koji sadrži Gp, čak i kada Gp nije
dvopovezan. U ovom odeljku dajemo glavne ideje ovog algoritma, a za detalje se čitalac može obratiti [66].

Ideja je da se ponovo uradi algoritam planarizacije i da se razlikuju listovi le0 , pohranjivanje ivica e 2 Gp,
0
koje nazivamo
listovi. preferiranim
U koraku listovima,
k izračunavamo
jedan i ostavlja
ekvivalent
uzastopni leupohranjivanje
T nizTk kojem
stabla. ivica e 2listovi
svi preferirani
Potencijalni listovi G
saGp, koje
sa
oznakom zovemo
oznakom potencijalni
(vk+1)(vk+1)
se ne formiraju
uklanjaju
iz T k . Neka je xk novi P-čvor nakon koraka sabiranja vrhova u T sa svim izlaznim rubovima vk+1 koji se
pored xkk novi
pojavljuju
čvor, koji
kao sedjeca
zove od
indikator
xk. Da bismo
sekvence,
označili
označen
mjesto
sa niza
< k +dolaznih
1 >. (Ovarubova
ideja jevk+1
inspirisana
u T, postavljamo
pokazivačem
pravca, opisanim u odeljku 2.2.3). Potencijalne listove i indikatore sekvence nazivamo praznim
Prilikom
listovima.
izračunavanja uzastopnog niza preferiranih listova vk+1 u Tk, zanemarujemo
k, prisustvo praznih listova.

k,

Obratite pažnju da se ivica e = (vi; vj ) 2 GGp može dodati Gp bez uništavanja planarnosti, ako se u Tk
između odgovarajućeg potencijalnog lista le i indikatora sekvence <j> pojavljuju samo prazni listovi le1 ;:::;ler .
Ovo slijedi jer nakon brisanja listova le1 ;:::;ler , Tk se može smanjiti tako da je le susjedni brat od <j>. <j>
označava mjesto uzastopnog niza dolazećih
uzastopni
ivica vrha
niz može
vj u PQ-stablu
povećati,Tj1.
tj. možemo
(vi; vj) je dodati
i dolazna
(vi;ivica
vj ) Gp
vj. bez
Stoga se
Machine Translated by Google
2.3 Planarizacija grafova 27

uništavajući planarnost. Takav par potencijalnog lista i odgovarajućeg indikatora sekvence sa


samo praznim listovima između, naziva se par blizu. (Formalnija i preciznija denicija bliskog
para data je u [66].)
U svakom koraku k izračunavamo maksimalan uzastopni niz željenih listova sa oznakom
(vk+1), zanemarujući na taj način prisustvo praznih listova. Prilikom redukcije stabla sa Tk na T
testiramo bliske parove, koji su dio niza.
k , između <j> i Za svaki
le iz Tk, ibliski
dodamopar le;< j >, brišemo
e u Gp. sve
Nakon što prazne listove
smanjimo sve
bliske parove, iz Tk brišemo sve potencijalne listove i indikatore sekvence, koji su dio uzastopnog
niza. Za svaki izbrisani indikator sekvence <j>, uklanjamo sve odgovarajuće potencijalne listove
iz Tk jer nakon brisanja <j>, oni više ne mogu formirati bliski par.

,
Algoritam maksimalne planarizacije sada se može opisati na visokom nivou na sljedeći
način:

MaximalPlanarize dodijeli
st-brojeve vrhovima G;
Planarize(G);
konstruisati početno PQ-stablo T1;
za k := 1 do n 1 uradi fračunarski
korak g
izračunati maksimalnu relevantnu sekvencu u stablu Tk
ulaznih ivica vrha vk+1 u Gp; freduction stepg

primijeniti podudaranja šablona u PQ-stablu i primijeniti dodatni korak za


smanjenje bliskih parova u maksimalno relevantnom nizu; fvertex korak
dodavanja za sve indikatore izbrisane sekvence <j>, ukloniti odgovarajuće
potencijalne listove iz Tk ; zamijeniti sve pune čvorove u Tk P-čvorom x sa svim
izlaznim rubovima temena vk+1 koji se pojavljuju kao djeca od x; dodati indikator
sekvence < k + 1 > kao brat od x u Tk rof;

Kraj MaximalPlanarize

Smanjenje bliskih parova je složeno i koristi nekoliko dodatnih pokazivača i novi tip za čvor
u PQ stablu. Detaljno objašnjenje ovoga je izvan okvira ove teze, a mi samo objavljujemo
sljedeći rezultat:

Teorema 2.3.3 ([66]) Postoji algoritam maksimalne planarizacije zasnovan na PQ stablima, koji
zahtijeva O(n2) vremena i prostora.

Kao što smo ranije primijetili, snaga algoritama PQ-stabla je u tome što možemo izračunati
za svaki vrh vk+1 minimalni broj bridova koji se moraju izbrisati da bi
Machine Translated by Google
28 Pozadine

dobiti planarnost u koraku k. Konkretno, za grafove koji su \gotovo ravni", ovo

Čini se da pristup briše manje rubova od inkrementalnog testiranja planarnosti po rubu.

Oba pristupa smo primijenili na nasumično generiranim trokutastim planarnim grafovima sa

n vrhova i 3n6 ivica, kojima smo nasumično dodali k ivica. Eksperimentalni

rezultati su dati na slici 2.10. Ovdje v-test označava algoritam planarizacije

opisano u Odjeljku 2.3.2, a e-test označava inkrementalno testiranje planarnosti

algoritam. Prikazani brojevi označavaju broj ivica u rezultirajućem planu

podgrafovi.

k 100 čvorova 200 čvorova 300 čvorova 400 čvorova 500 čvorova
v-test e-test v-test e-test v-test e-test v-test e-test v-test e-test
35 189 187 504 325 731 480 730 656 1189 804
75 207 293 438 326 683 474 917 637 1147 738
115 203 238 428 318 644 482 894 746 1107 763
155 205 239 421 324 630 487 829 635 1073 800
190 212 161 396 319 668 472 820 638 1037 791
230 222 163 387 318 624 471 823 636 1020 778
265 226 162 412 319 606 476 815 632 1048 769
305 232 162 405 325 606 467 805 633 1011 750
345 245 162 409 319 615 470 789 634 1008 786
375 234 166 398 317 567 480 795 617 965 804

Slika 2.10: Poređenje između v-testa i e-testa na gotovo ravnim grafovima.

Iz slike 2.10 zaključujemo da je za gotovo planarne grafove planarizacija

algoritam zasnovan na dodavanju vrhova je poželjniji u odnosu na pristup dodavanju rubova,

kada tražimo minimalan broj izbrisanih rubova. Uradili smo isti test

za slučajne grafove. U ovom slučaju čini se da pristup sabiranju vrhova jeste

zanimljivo za rijetke grafove.

2.4 Dvospojene i trokomponentne komponente

Do sada smo opisali kako testirati planarnost, kako konstruirati planarni podgraf u slučaju da graf nije planaran i kako izračunati

planarno ugrađivanje.

U dijelu B i dijelu C razmatramo algoritme za uvećanje i crtanje planara

grafovi. Važno pitanje u ovim algoritmima je utvrditi da li je graf

je bi- ili tropovezan, a ako nije, podijeliti graf na bi- i tropovezane komponente. U tu svrhu predstavljamo dva stabla u ovom dijelu.

Prvo stablo je BC-stablo

TBC od G za cijepanje G na njegove dvopovezane komponente, uveo Harary

[45]. Ovo stablo je također označeno kao stablo blokova, bc(G) ili stablo od 2 bloka u [53]. The

drugo stablo je SPQR-stablo TSP QR od G za razdvajanje dvopovezanih komponenti

od G u tropovezane komponente, koje su uveli Di Battista & Tamassia [21]. Povezana stabla su stablo sa 2 podgrafa i stablo od 3

bloka [51, 52]. Ako graf G nije

dvopovezano, tada konstruiramo BC-stablo od G, i svakom bloku G pridružujemo

SPQR-stablo ovog bloka. Oba stabla se mogu konstruisati u linearnom vremenu.


Machine Translated by Google

2.4 Dvospojene i trokomponentne komponente 29

2.4.1 BC-stablo

Dvopovezane komponente povezanog grafa (koji se nazivaju i blokovi) su: (a) njegovi
maksimalni bipovezani podgrafovi i (b) njegovi mostovi zajedno sa njihovim krajnjim
tačkama (trivijalni blokovi). U TBC-u, svaki blok je predstavljen B-čvorom, a svaki presek
od G je predstavljen C-čvorom. Postoji ivica između C-čvora u i B-čvora b u T ako i samo
ako u pripada odgovarajućem bloku od b u G. Svaka putanja u BC-stablu sadrži
naizmjenično B- i C-čvorove. Privjesak ili pendant blok je blok koji sadrži tačno jedan
presek, tj. čiji je odgovarajući B-čvor list u TBC-u. Neka je p(v) vrha preseka v označava
broj privjesaka, povezanih na v, tj. broj listova koji su djeca C-čvora v. Neka je p broj
privjesaka G, tj. broj odlazi u TBC. Neka d(v) označava broj komponenti G fvg, tj. graf
nakon brisanja preseka v, tj. stepen C-čvora v u TBC. Svaka komponenta G fvg naziva se
v-blok. Neka je d = maxv2V fd(v)g. Koristeći algoritam pretrage prve dubine kako je
opisao Tarjan [107], stablo TBC se može konstruirati u linearnom vremenu. Na slici 2.11
dat je primjer (iz [53]).

B
E F

4 5 12 5 E 12
13
B
9
A 14
3 6
3 6 9
1
10 11
2 7 8
D A H C D F
15 C
H

Slika 2.11: Graf G i njegovo odgovarajuće BC-stablo (iz [53]).

Ako je G vanjska površina, tada svi vrhovi pripadaju vanjskoj površini. Kada
konstruišemo TBC za G, pretpostavljamo da se preseci c1;:::;ck povezani na određeni
B-čvor b u TBC pojavljuju onim redom kojim se pojavljuju na vanjskoj strani
odgovarajućeg bloka G. To znači da u TBC, redoslijed djece svakog B-čvora je
xediran, a za svaki C-čvor je dozvoljen bilo koji redoslijed djece.
stablo
Takvo
se \xed"
može BC-
konstruisati iu linearnom vremenu.

2.4.2 SPQR-stablo

3-povezane ili trokonene komponente dvopovezanog grafa G su definirane na sljedeći


način (vidi također [49, 21]): ako je G trokonektovana, onda je sama G jedinstvena
trokonena komponenta G. Inače, neka je fu; vg je razdvojni par od G, tj. brisanje u i v iz
G odvaja G. Podijelimo rubove G na dva disjunktna podskupa E1
Machine Translated by Google
30 Pozadine

i E2 (jE1j; jE2j 2), tako da podgrafovi G1 i G2 inducirani sa E1 i E2


imaju samo u i v zajedničko. Nastavljamo proces dekompozicije rekurzivno
na G01 = G1 + (u; v) i G02 = G2 + (u; v) sve dok dalje razlaganje nije moguće.
Dodate ivice (u; v) nazivaju se virtuelnim ivicama. Ovaj postupak se zove razdvajanje.
Svaki od rezultirajućih grafova je ili tropovezan jednostavan graf, skup od tri
paralelne ivice (trostruka veza), ili ciklus dužine tri (trougao). Tropovezani
komponente G se dobijaju iz takvih grafova spajanjem trostrukih veza u
maksimalne skupove paralelnih ivica (veza), a trouglove u maksimalne jednostavne cikluse
(poligoni). Spajanje je postupak suprotan razdvajanju.
Sada opisujemo SPQR-stablo TSP QR koje se koristi za cijepanje dvopovezanih komponenti
G u tropovezane komponente. Za svaki B-čvor u TBC an
SPQR-stablo TSP QR je pridružen za tri povezane komponente ovog bloka. Za
jednostavnosti, sada pretpostavljamo da je G dvopovezan graf. Razdvojeni par G je ili
par razdvajanja ili par susjednih vrhova. Razdvojena komponenta podijeljenog para
fu; vg je ili ivica (u; v) od G ili maksimalni podgraf G0 od G takav da je fu; vg
nije podijeljeni par G0. Neka fs; tg biti podijeljeni par G. Razdvojeni par fu; vg je a
maksimalni podijeljeni par G u odnosu na fs; tg kada za bilo koji drugi podijeljeni par fu0; v0g,
vrhovi u; v; s i t su u istoj podijeljenoj komponenti fu0; v0g.
Neka je e ivica G između vrhova s i t, koja se naziva referentna ivica. TSP QR
od G u odnosu na e opisuje rekurzivnu dekompoziciju G inducirane njegovim cijepanjem
parovi. TSP QR je ukorijenjeno uređeno stablo čiji su čvorovi četiri tipa: S, P, Q i R.
Svaki čvor b od T ima pridruženi dvopovezani multigraf, nazvan kostur b,
i označeno je kosturom (b). Takođe, povezan je sa ivicom u skeletu
0
roditelj b od b, označen s rubom(b) . TSP QR i tipovi njegovih čvorova su rekurzivni
definisano na sledeći način.

Trivijalan slučaj: Ako se G sastoji od tačno dva paralelna ruba između s i t, onda
TSP QR se sastoji od jednog Q-čvora čiji je kostur sam G.

Paralelni slučaj: ako je podijeljeni par fs; tg ima najmanje tri podijeljene komponente G1;:::;Gk
(k 3), tada je korijenski TSP QR P-čvor b. Kostur grafa(b) se sastoji od k
paralelne ivice između s i t, označene sa e1;:::;ek, sa e1 = e.

Slučaj serije: U slučaju da je podijeljeni par fs; tg ima tačno dvije podijeljene komponente, jednu
od njih je referentna ivica e, a drugu podijeljenu komponentu označavamo sa
G0. Ako G0 ima rezne vrhove c0;:::;ck (k 2) onda G deli na svoje blokove
G1;:::;Gk, ovim redoslijedom od s do t, tada je korijen TSP QR S-čvor b.
Kostur grafa(b) je ciklus e0; e1;:::;ek , gdje je e0 = e; c0 = s; ck = t, i
ei povezuje ci1 sa ci (i = 1;:::;k).

Čvrsto kućište: U suprotnom neka fs1; t1g;:::; fsk; tkg je maksimalni podijeljeni parovi G
s obzirom na fs; tg (k 1), a za i = 1;:::;k neka je Gi unija svih
podijeljene komponente fsi; tig ali onaj koji sadrži referentni rub e.
Koren TSP QR je R-čvor b. Kostur grafa(b) je dobijen od G by
zamjenjujući svaki podgraf Gi rubom ei između si i ti.
Machine Translated by Google
2.4 Dvospojene i trokomponentne komponente 31

U posljednja tri slučaja (serija, paralelna i kruta), b ima djecu b1;:::;bk (ovim redom), tako
da je bi korijen TSP QR stabla dekompozicijeeigrafa
(i = 1;:::;k).
Gi [ eiVirtuelna
u odnosuivica
na referentna
čvora bi je ivica
ivica
ei u skeletu(b). Krajnje tačke ei su vrhovi razdvojenog para, a nazivaju se i polovi čvora
bi. Tako dobijeno stablo ima Q-čvor povezan sa svakom ivicom G, osim referentne ivice
e. Dovršavamo TSP QR dodavanjem drugog Q čvora, koji predstavlja referentnu ivicu e,
i čini ga roditeljem b tako da postaje korijen. Primjer SPQR-stabla prikazan je na slici
2.12.

1
2

3
8
4
5
10 11
9
6
1

3
7 8
12

6
13 7
12

13
R-čvor

8
...
1
34 11
5
9
8
6

P-čvor S-čvor 12
R-čvor

1
2
11 ...
10
8 9
S-čvor
S-čvor

Slika 2.12: Graf i njegovo SPQR-stablo (iz [21]).

Sljedeće tri leme slijede direktno iz gornjih denicija:

Lema 2.4.1 ([21]) Neka je b čvor TSP QR. Imamo:

ako je b R-čvor, onda je skelet(b) tropovezani graf;

ako je b S-čvor, onda je skelet(b) ciklus;


Machine Translated by Google
32 Pozadine

ako je b P-čvor, onda je skelet(b) tropovezani multigraf koji se sastoji od snopa


paralelnih ivica;

ako je b Q-čvor, onda je skelet(b) dvopovezani multigraf koji se sastoji od dvije


paralelne ivice.

Lema 2.4.2 ([21]) Kosturi čvorova TSP QR su homeomorfni podgrafovima G. Takođe,


unija skupova podijeljenih parova skeleta čvorova TSP QR jednaka je skupu podijeljenih
parovi G.

Lema 2.4.3 ([21]) TSP QR od G ima m Q-čvorova i O(n) S-, P- i R-čvorova.


Takođe ukupan broj vrhova skeleta pohranjenih u čvorovima TSP QR je O(n).

Sljedeća lema je važna za naše algoritme i može se dokazati korištenjem algoritma


linearnog vremena Hopcrofta & Tarjana [49] za podjelu grafa na njegove tropovezane
komponente.

Lema 2.4.4 ([21]) TSP QR od G može se konstruisati u O(m + n) vremenu.

Moguće je pokazati da su SPQR-stabla istog grafa u odnosu na različite referentne


ivice izomorfna i da se dobijaju jedno od drugog odabirom različitog Q-čvora kao
korijena. SPQR-stabla su usko povezana s klasičnim dekompozicijom dvopovezanih
grafova u trokonene komponente [49]. Naime, tropovezane komponente dvopovezanog
grafa G su u korespondenciji jedan-prema-jedan sa unutrašnjim čvorovima SPQR-stabla:
R-čvorovi odgovaraju tropovezanim grafovima, S-čvorovi poligonima, a P-čvorovi
odgovaraju obveznice. SPQR-stabla planarnih grafova predstavljena su u [21] i
primijenjena su na problem on-line testiranja planarnosti. Obratite pažnju da ako fs; tg
je podijeljeni par i (s; t) 2 E, tada postoji P-čvor bi, sa polovima s i t, a jedno dijete bi
odgovara rubu (s; t). Takođe ćemo koristiti sljedeću lemu:

Lema 2.4.5 Ako je b S-čvor, onda roditelj(b) nije S-čvor.


0
Dokaz: Neka je b S-čvor sa polovima s; t. Pretpostavimo da b = roditelj(b) je
također S-čvor sa polovima s 0; t0. Ali zamjena (s; t) sa skeletom(b) u skeletu(b 0 ) daje
ciklus sa polovima s 0; t0. Ovo je u suprotnosti sa činjenicom da su tropovezane
komponente jedinstvene. 2

U svim našim algoritmima Q-čvorovi, koji predstavljaju rubove G, se ne koriste, pa ih


brišemo iz SPQR-stabla. Označavamo sa relevantnim(bi) podgraf od G koji odgovara
podstablu SPQR-stabla sa korijenom u bi. Stoga možemo rekurzivno definirati
pertinent(bi) kao podgraf od G koji se dobije zamjenom svih virtualnih rubova ej sa
pertinent(bj ) u skeletu(bi), ako je bj dijete bi u TSP QR i ej = edge(bj) .
Machine Translated by Google

2.5 Kanonski poredak 33

Lema 2.4.6 Ako je b P-čvor, tada je deg(b) 2 u TSP QR.

Dokaz: Neka je b P-čvor, tada je skelet(b) veza. Najmanje dvije ivice ove veze su
virtuelne, pa odgovaraju trostruko povezanim komponentama, čiji je odgovarajući čvor
povezan sa b u SPQR-stablu. 2

Posljednja lema implicira da ako je b list u TSP QR, onda je b S- ili R-čvor. U našim
algoritmima, G je ravan. Teoremom Chibe et al. [12], tropovezani planarni grafovi imaju
jedinstveno ugrađivanje. Dakle, ako je b S- ili R-čvor u SPQR-stablu onda skelet(b) ima
paralelnejedinstveno
ivice između
ugrađivanje.
dva pola s; Ako
t u skeletu
je b P-čvor,
b. onda možemo TSP QR, permutirati

2.5 Kanonski poredak

Posljednji alat koji nam treba u našim algoritmima je sređivanje vrhova i lica grafa.
Ovdje uvodimo u ovom dijelu kanonski poredak za tropovezane planarne grafove.
Kanonski poredak igra glavnu ulogu u Poglavlju 6 za triangulaciju planarnih grafova iu
dijelu C za crtanje tropovezanih planarnih grafova na mreži. Kanonski poredak
generalizira kanonski poredak za triangulirane planarne grafove, koji su opisali de
Fraysseix, Pach&Pollack [34], a također generalizira st-redoslijed, definiran od Evena
[30]. St-redoslijed se koristi u nekoliko algoritama za crtanje [20, 21, 22, 23, 96, 105, 104,
106]. Neka je dato ugrađivanje tropovezanog planarnog grafa G. Gk označava podgraf
od G, induciran na vrhovima v1;:::;vk.

(kanonski poredak)
Neka je G tropovezani ravan graf sa rubom (v1; v2) na vanjskoj strani.
Neka je = (V1;:::;VK) uređena particija od V, odnosno V1 ,[ :::VK = V i Vi \ Vj = ; za i 6= j.
Dene Gk da bude podgraf od G indukovanog sa V1 [ ::: [ Vk i označimo sa Ck spoljno lice,
Gk . Kažemo da je to kanonski poredak G ako:

V1 se sastoji od fv1; v2g.

VK je singleton fvng, gdje vn leži na vanjskoj površini i susjed je v1.


Svaki Ck (k > 1) je ciklus koji sadrži (v1; v2).
Svaki Gk je dvopovezan i interno tropovezan, odnosno uklanjanje dva unutrašnja
vrha Gk ga ne isključuje.

Za svaki k u 2;:::;K 1, vrijedi jedan od dva sljedeća uslova:

(a) Vk je singleton, fzg, gdje z pripada Ck i ima najmanje jednog susjeda


u G Gk.
Machine Translated by Google
34 Pozadine

(b) Vk je lanac, (z1;:::;z`), gdje svaki zi ima barem jednog susjeda u


G Gk su , i gdje svaki z1 i z` imaju po jednog susjeda na Ck1, a ovi
jedina dva susjeda Vk u Gk1.

Teorema 2.5.1 Svaki tropovezani planarni graf G sa unaprijed definiranim v1; v2; vn ima a
kanonsko uređenje.

Dokaz: Neka je G tropovezani planarni graf sa v1; v2 i vn dati unaprijed.


Dekompozicija vrhova u V1;:::;VK će se definisati obrnutom indukcijom.
Pretpostavimo da su v2 i vn susjedi v1 i pripadaju vanjskoj površini ravnine
ugrađivanje G. Primijetimo da je trikonektivnošću G, graf Gn1 = G fvng
je dvopovezan i vanjska strana Cn1 je ciklus, koji sadrži (v1; v2).
Neka je 2 <k<K iksirano. Pretpostavimo da je Vi već određen za svaki
i>k takav da podgraf Gk zadovoljava uslove kanonskog uređenja.
Zapazite da ako postoje vrhovi v 2 Gk stepena 2 onda v 2 Ck . Primetite i to
c ; do
prema trikonektivnosti G postoje najmanje 3 vrha cc 2 Ck koji imaju; ivice
vrhova u G Gk . Pretpostavimo da je wlog c 6= v1; v2. Ako je Gk trokonektovano onda mi
može uzeti Vk = fc g jer po trikonektivnosti, c ima najmanje tri susjeda u Gk
a Gk c je dvopovezan.
Pretpostavimo dalje da Gk nije trokonektovana, stoga Gk sadrži parove za razdvajanje.
Neka vx; vy je razdvojni par, i neka je G1; G2 su dvije komponente Gk fvx; vyg.
Pošto je G trokonektovano, postoji put P između G1 i G2, ne posjećujući vx i
vy . U Gk vx ,i vy formiraju separacijski par, pa su rubovi putanje P
uklonjeno u Gk . Pošto smo reverznom indukcijom odbili redoslijed, uklonili smo se
samo vrhovi i ivice sa vanjske strane. Dakle, put P ide između dva vrha
cx0 ; cy0 , koji pripada Ck sa cx0 2 G1 i cy0 2 G2. Ovo daje vx i vy

pripadaju Ck i jedan put između vx i vy na Ck je dio G1; drugi put


na Ck između vx i vy je dio G2. Ovo vrijedi za svaki par razdvajanja vx; vy ,
stoga svi vrhovi parova razdvajanja pripadaju Ck.
Let ca; cb biti par odvajanja takav da je ba minimalan. Ako je deg(ca+1) > 2
tada postoji vrh c a< <b, sa najmanje
, jednom ivicom do temena koja je izbrisana
korak j>k, inače graf G fca; cbg je isključen, što je u suprotnosti sa
trikonektivnost G. Po minimalnosti ba, c nije dio para za razdvajanje u Gk, stoga Gk c nema presek i ,
vanjska strana Gk c je dvopovezana.
Uzimamo Vk = fc g u redoslijedu.
Pretpostavimo sada da ne postoji par razdvajanja ca; cb sa deg(ca+1) > 2. Tada je b =
a + 2, jer su ca i ca+2 jedini susedi ca+1 u Gk. Neka je sada 1 a0 a
i bb
0
r biti takav da su svi vrhovi ca0+1; ca0+2;:::;cb01 imaju stepen 2, i
0
deg(ca0 ) > 2 ako je a0 > 1 i deg(cb0 ) > 2 ako je b < r. Obratite pažnju da v1; v2 62 fca0+1;:::;cb01g
0
i svaki vrh c i; a0 <i<b0, ima ivicu u G Gk . Ako je rub (ca0 ; cb0 ) 2 G, onda
Gk fca0+1;:::;cb 01g je dvopovezan i postavljamo Vk = fca0+1;:::;cb01g.
Pretpostavimo konačno da je (ca0 ; cb0 ) 62 G. Neka je F lice u Gk koje sadrži vrhove
ca0 ; ca0+1;:::;cb0 . Tvrdimo da put P u F između ca0 i cb0 ne sadrži
Machine Translated by Google

2.5 Kanonski poredak 35

15
vertex sepf posjetio face outv out
1 2 1 A 5 1
3 0 B3 2
23 2 0 C4 3
14
4 2 0 D3 1
12
13 5 3 0 E3 2
11
6 1 2 F3 2
6
F 7 1 1
10 78 E
8 2 0
9
4 C 0
B 3
D 9 10 21 1
A 5 11 1
2 12 11 2
1

Slika 2.13: Graf sa kanonskim redoslijedom i odgovarajućim varijablama-vrijednostima at


neki korak.

ca0+1;:::;cb0+1, ne sadrži drugi vrh na vanjskoj strani Gk. Pretpostavimo


ne, tj. putanja P sadrži vrh cd na vanjskoj strani Gk. Pretpostavimo wlog
1 d<a0. Ali sada slijedi da je cd+1 ;:::;ca01 lanac vrhova stepena

2. Kako je (cd; ca0 ) 62 G slijedi da je deg(ca0 ) = 2, što je kontradikcija. Dakle


2
Gk fca0+1;:::;cb01g je dvopovezan i postavljamo Vk = fca0+1;:::;cb01g.

Ako je Vkfz1;:::;z`g sa ` > 1, tada se dodaje tačno jedno lice, u suprotnom jedno lice
se dodaje u Gk1. Algoritam za izračunavanje kanonskog uređenja je zasnovan na
dokaz teoreme 2.5.1: Počinjemo s cijelim grafom G, iu svakom koraku

brišemo lice ili vrh. Za ovo uvodimo varijablu outv(F ) i oute(F)


za svako lice F, označavajući broj vrhova i ivica F koji pripadaju

trenutni vanjski dio. Također uvodimo varijablu sepf(v) za svaki vrh v, označavajući
broj različitih lica koja sadrže par za razdvajanje sa vrhom v
dokaz teoreme 2.5.1, i v i w su dio trenutnog vanjskog sučelja. Zovemo

odgovarajuća lica za razdvajanje lica. Koristeći ove varijable možemo dokazati


sljedeća teorema.

Teorema 2.5.2 Za svaki tropovezani planarni graf može biti kanonski poredak
izračunati u linearnom vremenu i prostoru.

Dokaz: Neka je dato ugrađivanje tropovezanog planarnog grafa G. Neka


svaki vrh v i ivica e imaju pokazivače na lica kojima pripadaju. U početku sve

varijable outv(F), oute(F) i sepf(v) su postavljene na 0. Uzimamo proizvoljno lice Fout


kao vanjsko lice tokom algoritma. Dodijelite v1 susjedima v2 i vn na Fout. U
svaki korak uklanjamo vrhove iz G i ažuriramo Fout. Za svaki vrh v 2 Fout

i svaka ivica e 2 Fout; e 6= (v1; v2), povećavamo outv(Fv) i oute(Fe). za svaki


Fv 6= Fout gdje v pripada, i Fe 6= Fout, gdje e pripada.
Za svaki vrh v koji postaje dio Fout-a moramo izračunati sepf(v).
Za ovaj problem razmotrimo lice F kojem pripada v. Tvrdimo da je F a
Machine Translated by Google
36 Pozadine

lice razdvajanja ako i samo ako je outv(F ) 3 ili ako je outv(F ) = 2 i oute(F ) = 0. Ovo
slijedi jer upravo u ovim slučajevima F ima najmanje dva nesusjedna vrha
na vanjskoj strani što ovo lice čini razdvajajućim licem. Da bismo izračunali sepf(v) we
izbrojati broj upadnih lica F od v sa outv(F ) 3 ili outv(F ) = 2 i
oute(F ) = 0. Lice postaje najviše jednom lice razdvajanja, jer kada outv(F )
ili oute(F ) se smanjuje tada se vrh ili ivica iz F briše i F se dodaje u Fout.
Svako lice F sa outv(F ) = oute(F) + 1 i oute(F) 2 može biti sljedeće lice
u našem poretku, jer u ovom slučaju vrhovi F , koji pripadaju vanjskoj površini,
formiraju uzastopni niz. Inače, vrh v, v 6= v1; v2, sa sepf(v) = 0 i
posjećeno(v) 1 (sa posjećenim(v) brojem izbrisanih susjeda v) može biti sljedeći
vertex vk u našem poretku. Prema teoremi 2.5.1, takvo lice ili vrh postoji.
Vremenska složenost algoritma je sljedeća: svaki vrh v ima deg(v)
susjedi i pripada deg(v) licima. Kada v postane dio Fout-a, tada se ažurira
outv(Fv ) za sve incidentne strane v zahtijeva O(deg(v)) vremena ukupno. Računarstvo
sepf(v) zahtijeva O(deg(v)) vremena ako v postane dio Fout, i O(1) ako je v već bio
dio Fout-a i incidentan je vrhu, obrisan u ovom koraku. Ažuriranje oute (Fe)
za ivicu e, koja postaje dio Fout-a, potrebno je O(1) vremena. Kada F postane a
razdvajanje, tada sepf ostalih vrhova F, dio vanjske površine, mora biti
uvećano za jedan. (Ovo su najviše dva vrha i to se dešava samo jednom, dakle
zahtijeva konstantno vrijeme.) Brisanje temena ili lica može se obaviti u vremenu, konstantno u
broj izbrisanih ivica. Pošto je P deg(v)=2m, i m = O(n), ovo daje a
linearni algoritam vremena i prostora. 2

Vidi sliku 2.13 za graf sa odgovarajućim vrijednostima posjećenih varijabli(v),


sepf(v), outv(F) i oute(F).

2.6 Algoritmi za proširenje i crtanje

Sada imamo sve sastojke koji su neophodni kao polazna tačka za crtanje
algoritmi predstavljeni u ovom radu. Međutim, nekoliko algoritama za crtanje zahtijeva a
dvopovezani, a ponekad čak i tropovezani planarni graf. Stoga se posvećujemo
dovršite Dio B problemu dodavanja (malog broja) ivica ravnini
graf tako da je dobijeni prošireni graf dvopovezan, trokonektan ili trianguliran.
Opisani su efikasni algoritmi, koji često daju omjer performansi koji je ograničen,
a sa kompleksnošću samo aditivni ili multiplikativni faktor od optimalnog. U
U poglavlju 3 dat je pregled našeg rada i odnos prema postojećim algoritmima.
Koristeći alate ovog poglavlja u kombinaciji sa alatima za povećanje opisanim u
dijelu B, možemo započeti istraživanje predstavljanja ili crtanja ravnine
graf. Dio C je posvećen ovom problemu. U 9. poglavlju počinjemo sa pregledom
dobrih postojećih algoritama. Nekoliko od ovih algoritama će biti poboljšano ili
generalizovano u preostalim poglavljima Dijela C. Nemamo namjeru da budemo
potpuni u ovom pregledu i da predstavimo sve različite poznate modele predstavljanja
Machine Translated by Google
2.6 Algoritmi za proširenje i crtanje 37

u literaturi. Opisani su samo oni algoritmi koji su relevantni za naš rad. Ipak, ovo
uključuje sve glavne reprezentacije poznate do danas. Pominjemo
konveksni, ortogonalni i heksagonalni crteži, prikazi vidljivosti, pravougaoni
duals, crteži sa minimalnim uglom barem konstantnim. Neki daljnji prikazi, koji ovdje
nisu spomenuti, sumirani su u [18]. U ovom radu, Di Battista, Eades,
Tamassia & Tollis daju anotiranu bibliografiju sa više od 250 referenci,
i nekoliko aplikacija u kojima se pojavljuju algoritmi za crtanje. Upućujemo čitaoca
ovom radu radi detaljnijeg pregleda trenutnog polja crteža grafova. Dodatno, u
[103], Tamassia, Di Battista i Batini daju još jedno istraživanje. Ova anketa
naglašava praktičnu primjenu.
Machine Translated by Google
38 Pozadine
Machine Translated by Google

dio B

Povećanje planarnih grafova

39
Machine Translated by Google
Machine Translated by Google

Poglavlje 3

Uvod

Mnogi problemi u vezi sa planarnošću grafova proizlaze iz želje da se graf nacrta na


elegantan način. U dijelu C razmatramo nekoliko različitih tehnika za dobijanje grafičkog
izgleda planarnih grafova. Ove tehnike se oslanjaju na osnovnu strukturu i karakteristike
ulaznog grafa. Štaviše, skoro uvek algoritam za crtanje zahteva dodatna ograničenja
planarnog grafa G u pogledu povezanosti. Kao prvi primjer, razmotrite algoritme za crtanje
grafova Di Battista, Tamassia & Tollis [22], Rosenstiehl & Tarjan [96] i Tamassia & Tollis [104].
Svi oni pretpostavljaju da je ulazni graf bikonektan. U ovom slučaju može se konstruisati st
redosled vrhova, što dovodi do zanimljivog linearnog vremenskog okvira za široku oblast
primene crtanja. U 9. poglavlju izlažemo ove algoritme. Kao drugi primjer, razmotrite Tutteov
algoritam konveksnog crtanja [110, 111]. Ovaj algoritam vrijedi samo za tropovezane
planarne grafove. U dijelu C predstavljamo potpuno novi okvir za crtanje planarnih grafova,
zasnovan na takozvanom lmc-poređanju. Ovaj okvir vodi do različitih aplikacija za
predstavljanje grafova i crtanja. Ovo uređenje zahtijeva kao ulaz tropovezani planarni graf.

Kao posljednji primjer spominjemo nekoliko novijih algoritama za crtanje


planarnog grafa s ravnim linijama na mreži [15, 34, 43, 98]. U ovom slučaju
ulazni graf mora biti trianguliran, tj. svako lice mora biti trokut.
Ako ulazni graf ne zadovoljava ova ograničenja povezivanja, moraju se dodati
lažne ivice kako bi zadovoljio ograničenja. Ove ivice se koriste samo za postizanje
željenog stepena povezanosti za potrebe algoritma. Dodate ivice su potisnute u
konačnom crtežu. Cilj je sačuvati originalni graf što je više moguće u crtežu
proširenog grafa. Zaista, kada izbrišemo veliki broj ivica iz elegantnog crteža,
rezultirajući crtež, odnosno crtež originalnog grafa, može biti manje čitljiv. Iz tog
razloga, razmatramo problem pronalaženja minimalnog broja ivica koje se moraju
dodati ulaznom grafu tako da se dobije dvopovezani ili tropovezani planarni graf.
Ovaj problem nije zanimljiv ako graf mora biti trianguliran, jer svaki triangulirani
planarni graf ima 3n6 rubova. U ovom slučaju ispitujemo problem kako povećati
planarni graf na triangulirani planarni graf uz minimiziranje maksimalnog stepena.

41
Machine Translated by Google
42 Uvod

Eswaran i Tarjan postavili su problem pronalaženja minimalnog skupa ivica za


povećanje grafa u dvopovezani graf [27]. Rješenje ovog problema u velikoj mjeri ovisi
o strukturi BC-stabla bc(G), datoj u Odjeljku 2.4. Pretpostavimo da je G povezan.
Zapazite da svaki viseći blok mora primiti povećavajuću ivicu da bi zadovoljio zahtjev
bikonektivnosti za G. Ako je p broj listova bc(G), tada su potrebne barem dpe ivice
povećanja. Ako 2C-čvor
izmeđuv ima
v-blokova
stepentako
d(v) da
u bc(G),
kada izbrišemo
tada se d(v)
vrh1 rubovi
v, graf moraju
je i daljedodati
povezan.
Neka je d maksimalni stepen C-čvorova u bc(G), a q broj izolovanih čvorova u bc(G).
Tada se dobija sljedeća teorema Eswarana i Tarjana:

Teorema 3.0.1 ([27]) maxfd 1; q + dp npr. ivice


2 su neophodne i dovoljne da bi G bio
dvopovezan.

Linearni vremenski algoritam za povećanje bikonektivnosti zasnovan na ovoj


teoremi predstavili su Rosenthal & Goldner [97]. Algoritam sadrži malu grešku.
Hsu i Ramachandran su to ispravili i pojednostavili algoritam tako da je moguća i brza
paralelna implementacija [53]. Eswaran i Tarjan [27] su dokazali da je ponderirana
varijanta problema povećanja bikonektivnosti NP-potpuna. Algoritam aproksimacije za
problem povećanja ponderisane bikonektivnosti predstavili su Frederickson & Ja'Ja
[36]. Khuller & Thurimella [72] su pojednostavili ovaj algoritam, dajući O(m + n log n)
algoritam za bikonekciju G tako da je ukupna težina dodatih ivica najviše dva puta veća
od optimalne težine.
Problem povećanja trikonekcije istraživali su Hsu & Ra machandran [52]. Algoritmi
za ovaj problem zasnivaju se na strukturi onoga što nazivaju stablom od 3 bloka, koje
je vrlo blisko SPQR stablu. Pretpostavimo da je G bikonektan i neka je dato SPQR-stablo
TSP QR od G. Mijenjamo TSP QR tako da je svaki jednim,
vrh v sa
jedinstvenim,
deg(v) = 2 također
S-čvorom
predstavljen
bi, sa
virtualnim rubom između susjeda v. Uklanjamo sve Q-čvorove iz SPQR-stabla , budući
da nisu neophodni u izgradnji. Obratite pažnju da nakon brisanja Q-čvorova, svaki list
u TSP QR je ili R-čvor ili predstavlja vrh v stepena 2.

Neka je p broj listova TSP QR. Tada su potrebne2 najmanje dpe ivice da bi

G bio trokonektan. Ako P-čvor bi ima stepen d(bi) u TSP QR, onda se
dodati
d(bi) 1između
ivice moraju
različitih tropovezanih komponenti, koje imaju polove bi kao par za sečenje. Neka je d
maksimalni stepen P-čvorova u TSP QR. Tada
se sljedeća varijanta teoreme 3.0.1 može dokazati u tropovezanom slučaju.

Teorema 3.0.2 ([52]) maxfd 1; dp 2eg ivice su neophodne i dovoljne da bi se dvopovezan


graf G učinio tropovezanim.

Hsu i Ramachandran [52] su također predstavili algoritam za povećanje opšteg


grafa na tropovezani graf, dodavanjem minimalnog broja ivica. Nedavno je Hsu
predstavio O(m + n (m; n)) algoritam za 4-povezivanje trokomponentnog
Machine Translated by Google
Uvod 43

graf dodavanjem minimalnog broja ivica [51]. Za problem pronalaženja najmanjeg


povećanja za graf kako bi dostigao dato svojstvo povezivosti ivica, poznato je nekoliko
algoritama polinomskog vremena, vidi npr. Eswaran & Tarjan [27], Frank [33],
Frederickson & Ja'Ja [36], Kuller & Thurimella [72], Naor et al. [85] i Watanabe et al. [114,
115, 117].
U dijelu B proučavamo ove probleme uz dodatni zahtjev da prošireni grafovi moraju
biti ravni. U poglavlju 4 razmatramo problem povećanja planarne bikonektivnosti.
Dokazujemo da je problem odlučivanja da li dodavanjem najviše K ivica planarnom
grafu G daje dvopovezan planarni graf NP-potpun. Predstavljamo algoritam
aproksimacije za ovaj problem, koji radi u O(n (n; n)) vremenu i dodaje najviše dva puta
minimalni broj ivica.
Lijepa karakteristika je da svaki vrh prima najviše dvije ivice povećanja. U velikoj mjeri
koristimo inkrementalno testiranje planarnosti (vidi npr. [21, 75]), što je vrlo dobra
primjena u ovom kontekstu. Algoritam aproksimacije se takođe može koristiti za
pravljenje planarnog grafa premošćenim uz očuvanje planarnosti, a iz toga slijedi da
ista složenost i ograničenje performansi vrijedi i za ovaj problem.

U poglavlju 5 razmatramo problem povećanja planarne trikonektivnosti za


dvopovezane planarne grafove. Do sada nije poznato da li je varijanta odlučivanja ovog
problema NP-potpuna. Predstavljamo aproksimacijski algoritam za trokonekciju
dvopovezanog planarnog grafa uz očuvanje planarnosti. Detaljnije ispitivanje SPQR-
stabla i aspekata planarnosti dovodi do linearnog vremenskog algoritma, koji dodaje
najviše 3
2 puta minimalni broj ivica. Svaki vrh v prima deg(v) najviše maxf2;
d U poglavlju 6 razmatramo problem triangulacije planarnog grafa
uz minimiziranje maksimalnog
2 stepena.
npr. dodatne ivice. Pokazujemo da je varijanta odlučivanja ovog
problema NP-potpuna za bipovezane planarne grafove. Predstavljamo linearni
vremenski algoritam koji triangulira tropovezani planarni graf tako da se svaki stepen
povećava za najviše 8. Ovaj algoritam koristi kanonski poredak opisan u Odjeljku 2.5.

Kombinovanjem ovog rezultata sa rezultatima o trokomponovanju planarnog grafa


dobija se da se svaki povezani planarni graf može triangulisati tako da je maksimalni
3
stepen
2 samo
najviše
aditivna
d (G)e
konstanta
+ 11, gdeod(G)
donje
označava
granice
maksimalni
najgoreg stepen
slučaja.G.
Uključeno
Ovo se razlikuje
je i nekoliko
jednostavnih algoritama triangulacije, koji rade u linearnom vremenu i prostoru.

U Poglavlju 7 razmatramo probleme uvećanja za slučaj da je ulazni graf spoljašnji


planaran. Outerplanarni grafovi su zanimljiva klasa planarnih grafova, budući da su svi
vrhovi na jednom zajedničkom licu. Nekoliko problema, koji su NP-teški za planarne
grafove, postaju lako rješivi za vanplanarne grafove, npr. problem hromatskog broja.
Također, gore spomenuti problemi povećanja mogu se optimalno riješiti u polinomskom
vremenu, ako je ulazni graf vanpločan. Konkretno, predstavljamo linearni vremenski
algoritam za povećanje vanjskog planarnog grafa dodavanjem minimalnog broja rubova
tako da je prošireni graf povezan mostom
Machine Translated by Google
44 Uvod

i planar. Također pokazujemo da se bikonekcija vanjskog planarnog grafa uz očuvanje


planarnosti dodavanjem minimalnog broja ivica može postići u linearnom vremenu,
modificiranjem algoritama Hsu & Ramachandrana [53]. Povećanje vanjskog planarnog
grafa na tropovezani planarni graf dodavanjem minimalnog broja ivica također se može
izvršiti u linearnom vremenu. Za ovo koristimo algoritam za premošćavanje vanjskih
planarnih grafova. Također predstavljamo polinomski algoritam vremena za
triangulaciju unutrašnjih strana vanjskog planarnog grafa uz minimiziranje maksimalnog
stepena. Ovaj algoritam se zasniva na dinamičkom programiranju i može se koristiti i
za triangulaciju jednog lica planarnog grafa uz minimiziranje maksimalnog stepena.
Posljednje poglavlje Dijela B sadrži nekoliko završnih napomena. Uključena su i
zapažanja vezana za mostove i proizvoljne planarne grafove trikonekcije.
Machine Translated by Google

Poglavlje 4

Planarna bikonektivnost
Problem povećanja

4.1 Preliminarne utakmice

U ovom odeljku predstavljamo različita zapažanja i prve rezultate u vezi sa problemom


povećanja ravnih grafova da bi se zadovoljila ograničenja bikonektivnosti i planarnosti.
Podsjetite se na denicije u Odjeljku 2.4 u vezi sa bc(G); p(v); d(v) i v-blokovi.
Neka je p broj listova bc(G), a q broj izolovanih vrhova. Ako je G isključen,
povezujemo G primjenom slijedeće tehnike Eswarana i Tarjana [27]. Neka
bc(G) ima t stabala, numeriranih od 1 do t. Za svako i sa 1 2t, neka je v(i)i skup
vrhova bc(G) tako da je
1. v(2i 1) i v(2i) su svaki privjesak ili izolirani vrh u i-tom stablu od bc(G), za
svaki 1 i t.

2. v(2i 1) = v(2i) ako i samo ako je i-to stablo bc(G) izolovani vrh.
Lako slijedi da je bc(G) [ f(v(2i); v(2i + 1))j1 i<tg drvo koje ima p0 = p + 2q 2(t 1)
privjeske i nema izolovanih vrhova [27]. Odgovarajući algoritam za
određivanje stabala bc(G), numerisanje privjesaka i dodavanje ivica (v(2i); v(2i
+ 1)) za 1 i<t, zovemo Connect(G). Algoritam Connect ćemo koristiti iu 7.
poglavlju, kada je cilj premošćavanje, bikonekcija ili trokonekcija vanjskog
planarnog grafa dodavanjem minimalnog broja ivica.
Jednostavan linearni algoritam vremena za bikonekciju G uz očuvanje
planarnosti je sljedeći pristup prema Readu [92]: ako za bilo koji par uzastopnih
susjeda u; w od v, u i w pripadaju različitim blokovima, tada se dodaje ivica (u;
w). Ovo sažima dva bloka u jedan. Primjenom ovoga na sve uzastopne susjede
svakog vrha dobija se dvopovezan planarni graf. Nažalost, ovaj algoritam može
povećati stepen jednog vrha za O(n), kao što je prikazano na slici 4.1(a). Da bi
se to izbjeglo, algoritam Read je modificiran na četiri načina: (i) mijenjamo
ugradnju G tako da se svi susjedi v, koji pripadaju istom bloku, pojavljuju u uzastopnom

45
Machine Translated by Google
46 Problem povećanja planarne bikonektivnosti

sekvenca u adj(v); (ii) pregledavamo vrhove po dubini - prvi red; (iii) testiramo tokom
algoritma da li se dodata ivica može ukloniti bez uništavanja bikonektivnosti; (iv) neka v
ima d(v) v-blokova, onda uočavamo da dodavanje d(v) 1 ivica između v-blokova ima za
posledicu da v više nije presek. Modifikacija algoritma Read može se opisati na sljedeći
način:

w
1

w
w 2

w
1

w
u w 2
1
v

u
2

(a) Jedan vrh dobija n 2 dodatna (b) Svaki vrh ima najviše 2
ivica. dodatna ruba.

Slika 4.1: Pravljenje grafova dvopovezanim.

Biconnect(G)
konstruiše planarno ugrađivanje G tako da se svi susedi vi, koji
pripadaju istom bloku, pojavljuju uzastopno u adj(vi); numerisati
rezne vrhove vi od G po dubini-prvi red; za svaki presek vi (u rastućem
vi-broju) neka adj(vi) = fu1;:::;ukg, pri čemu u1 i uk pripadaju različitim
blokovima; za j := 1 do k 1 do

ako uj i uj+1 pripadaju različitim blokovima onda


dodajte ivicu (uj ; uj+1) G; ako je (vi; uj ) (ili (vi;
uj+1)) dodan G ranije, onda uklonite (vi; uj ) (ili (vi; uj+1),
odnosno) iz G
rof
rof;
Kraj Biconnect
Machine Translated by Google
4.1 Preliminarne utakmice 47

Lema 4.1.1 U linearnom vremenu može se konstruisati planarno ugrađivanje


planarnog grafa G sa svojstvom da se za svaki vrh v svi susjedi v, koji pripadaju istom
bloku, pojavljuju uzastopno.

Dokaz: Svaki rub pripada jedinstvenom bloku. Nakon označavanja rubova


brojevima blokova, sortiramo adj(vi) tako da se svi susjedi vi, koji pripadaju istom
bloku, pojavljuju uzastopno u adj(v). To radimo tako da ako susjedi vj i vk pripadaju
istom bloku i inicijalno se vj pojavio prije vk u adj(vi), onda je nakon sortiranja vj ispred
vk u adj(vi). Budući da poredak između ivica u istom bloku nije poremećen, i da nema
ivica između različitih blokova osim upadnih ivica vi, slijedi da je novo ugrađivanje
ravno. 2

Lema 4.1.2 Algoritam Biconnect(G) daje dvopovezan planarni graf.

Dokaz: Neka su B1;:::;Bl vi-blokovi, u smeru kazaljke na satu oko preseka vi u


Biconnect(G), sa u1 2 B1 i uk 2 Bl. Zatim se dodaje ivica između Bj i Bj+1, za 1 j<l.
Dakle, nakon povećanja algoritmom Biconnect(G), svi susjedi vi pripadaju jednom
zajedničkom bloku. Tako vi više nije presek. Razmotrimo uzastopne susjede uj i uj+1
od vi. Ako je (vi; uj) dodan u Biconnect(G), tada je u početku postojao put od vi do uj.
Ali tada je u početku postojao put od uj+1 do uj, ne koristeći ivicu (vi; uj+1). Sabiranje
(uj ; uj+1) implicira ciklus koji sadrži
uj) može
vrhove
biti uj
uklonjen
; vi; uj+1,
bezkoji
uništavanja
ne sadrži (vi;
bikonektivnosti.
uj), stoga (vi;
Slično za (vi; uj+1).
2

Lema 4.1.3 U algoritmu Biconnect(G) svaki vrh prima najviše 2 dodatna incidentna
ivica.

Dokaz: Pretpostavimo wlog da je vrh vi jedini vrh bloka. Kada posjećujete vrh w
kojem je vi susjed, vi prima najviše dva incidentna povećavajuća ivica, recimo (w1; v) i
(w2; v). Po dubini-prvi red v će biti posjećen prije ostalih susjeda v. Ako v pripada
najmanje dva bloka, tada se rubovi dodaju između susjeda v, a ivice (w1; v) i (w2; v) su
uklonjeno. U ovom slučaju v je na vanjskoj strani bloka. Dva susjeda od v na vanjskoj
površini, recimo u1 i u2, mogu biti usječni vrhovi. Prema algoritmu, v prima najviše 1
incidentnu ivicu prilikom posjete u1, recimo u01, i najviše 1 incidentnu ivicu kada
posjeti u2, recimo u02. Ako v primi drugu upadnu ivicu, npr. prilikom posjete u01,
tada se rub (v; u01) uklanja. Stoga v prima najviše dva incidentna povećavajuća ivica
(vidi sliku 4.1(b)).
2

Lema 4.1.4 Neka je b broj blokova G. Bikonekt(G) dodaje najviše b 1 ivica G.


Machine Translated by Google
48 Problem povećanja planarne bikonektivnosti

Dokaz: Neka je TBC BC-stablo G. Korijen TBC na proizvoljnom B-čvoru, recimo br.
Svaki C-čvor v ima stepen d(v) u TBC-u i ima samo B-čvorove kao susjede u TBC-u.
Prilikom posjete C-čvoru v u Biconnect(G), dodaje se najviše d(v) 1 ivica, tj. broj djece C-
čvora v u TBC. Stoga se za svaki B-čvor (osim korijenskog br) dodaje najviše jedna ivica
u Biconnect(G). b je broj blokova G, tj. broj B-čvorova u TBC, tako da Biconnect(G) dodaje
najviše b 1 rubova.
2

Korolar 4.1.5 Postoji linearni algoritam vremena i prostora za povećanje planarnog grafa
tako da je dvopovezan i ravan i da se stepen svakog vrha povećava za najviše 2.

Međutim, nije teško modificirati primjer na slici 4.1(a) tako da Biconnect(G) dodaje
O(n) ivica kako bi se postigla bikonektivnost, dok bi jedna ivica već bila dovoljna da
zadovolji bikonektivnost. U preostalom dijelu ovog poglavlja pokušavamo dvaput
povezati G dodavanjem minimalnog broja ivica.

4.2 NP-potpunost

Teorema 4.2.1 Problem odlučivanja da li dodavanje najviše K rubova povezanom


planarnom grafu G = (V;E) može dovesti do dvopovezanog planarnog grafa je NP završen.

Dokaz: Jasno je da je problem u NP: pogodite LK ivice koje treba dodati G, dodati
ivice G na neki način i provjeriti u polinomskom vremenu da li je rezultujući graf
dvopovezan i ravan.
Da bismo dokazali NP-tvrdoću, pokazujemo da se 3-particija (za koju je dobro
poznato da je NP-potpuna u jakom smislu [38]) svodi na problem povećanja planarne
bikonektivnosti. Neka je data instanca 3-particije, tj. skup A od 3m elemenata a1;:::;a3m,
granica B 2 Z+ i veličina s(ai) 2 Z+ za svaki ai 2 A takav da je B=4 < s(ai) < B=2 i P s(ai) =
mB. Pitanje je može li se A podijeliti na mai2A
disjunktnih
za 1 im, Pskupova
s(a) = B A1;
(imajte
A2;:::;Am
na umu
takav
da da
svaki
je,
Ai stoga mora sadržavati tačno tri elementa iz A). Da bismo sveli 3-particiju na problem
povećanja
a2Ai planarne bikonektivnosti, konstruiramo planarni graf na sljedeći način:

Uvesti vrh x i za svako i; 0 i<m, uvesti vrhove bi; ci, i ivice (bi; bi+1); (bi; x), (bi; ci) i
(bi+1; ci) (adicije po modulu m). Uvesti za svaki vrh ci B dodatne ivice za B nove vrhove.
Uvesti 3m novih vrhova a1;:::;a3m povezanih na x. Svaki vrh ai dobija s(ai) dodatnih ivica
za s(ai) novih vrhova (vidi sliku 4.2). Neka je G rezultujući graf.

Jasno je da G ima viseće blokove od 2mB, tako da su najmanje mB ivice neophodni da bi


G bio bikonektovano. G se može učiniti dvopovezanim bez uništavanja planarnosti dodavanjem
Machine Translated by Google
4.3 Aproksimacija unutar 2 puta optimalna 49

b b
0 1

c
0

...

c
m 1
B c
1

s(a)1 s(a)2 ...


b
m 1
B ... ... B b
s(a)3 2
a
a 2
1
a
3 ...

a
3m
x
s(a)
3m

Slika 4.2: Konstrukcija grafa za dokaz NP-potpunosti.

tačno mB ivica, ako i samo ako je moguće imati odgovarajuću ivicu od svakog privjeska
cutvertexa ai do jedinstvenog privjeska cutvertexa ci. Ovo se može učiniti, ako i samo
ako se za svaki ci, B privjesci uparuju sa privjescima nekih vrhova ai1 ; ai2 ; ai3 , tj. ako i
samo ako postoji particija od A na m disjunktnih skupova A1;:::;Am takav da za sve i; 1
im;P s(a) = B. Kako se G može konstruirati u vremenu,
polinomska a2Ai polinomom
vremenska
potpunog u m i B, ovo
transformacija
3-particionog je NP-
problema
od jako u
problem povećanja planarne bikonektivnosti, dakle potonji je NP-potpun.

4.3 Aproksimacija unutar 2 puta optimalna

Kako je problem povećanja planarne bikonektivnosti NP-kompletan, fokusiramo našu


pažnju na algoritme aproksimacije za problem. U ovom odeljku predstavljamo O(n (n;
n)) algoritam za povećanje planarnog grafa G na bipovezani planarni graf G0, uz
zadržavanje broja dodatih ivica unutar 2 puta optimalnog. Možemo pretpostaviti wlog
da je G povezan, inače možemo primijeniti algoritam Connect to G.

Neka je TBC BC-stablo od G. Ukorijenimo TBC na B-čvoru br. Neka za svaki blok Bi u
G, bi označava odgovarajući B-čvor u TBC, i neka je ci = roditelj(bi) u TBC. Dodamo
pokazivače od djece na njihov roditelj u TBC-u, a potomke čvora pohranjujemo u
dvostruko povezanu listu. Ako želimo da dodamo ivicu e = (v; w) na G, onda moramo
testirati da li je G [ e još ravan. Ovaj test označavamo sa
Machine Translated by Google
50 Problem povećanja planarne bikonektivnosti

X F
4 5 12
13 X

9 12
14
A 3 6
3 6

1
10 11
2 A H F
7 8

15

Slika 4.3: Ažuriranje TBC-a nakon dodavanja ruba (8; 10) na graf na slici 2.11.

Planar(v; w). Ovaj test se u literaturi naziva testiranjem inkrementalne planarnosti i za


njega je poznato nekoliko sofisticiranih algoritama ([21, 119, 75]). Najbolji algoritam (u
teoretskom smislu) za ovaj problem dao je La Poutr e [75]: zahtijeva O( (q; n)) najgoreg
th
slučaja za q upit testiranja da li se rub e može dodati dodavanja
dok očuvanje
e G jeplanarnosti.
O( (n; n)) vrijeme,
Vrijeme
amortizirano preko O(n) rubova.

Neka je dato planarno ugrađivanje od G. Vrh v na vanjskoj strani bloka Bi nazivamo


vanjskim vrhom, ako je v 6= roditelj(bi). Ideja je da se traži proizvoljno izvan vrha v
visećeg bloka Bi ovog B-čvora bj tako da: (i) bj bude što je moguće bliže br u TBC, i (ii),
nakon promjene ugradnje, v je vanjski vrh od Bj . Neka je bk = roditelj(cj), i neka je w
vanjski vrh Bk, sa (w; cj) 2 G. v je vanjski vrh Bj i Planar(v; w) = istina. Neka je d(ci) stepen
C-čvora ci u TBC. Ako je p(ci) = d(ci)1, onda v ima samo listove kao podređene, i prvo
dodajemo ivice između p(ci) odgovarajućih visećih blokova da ih spojimo u jedan blok.
Kada dodamo ivicu između dva vrha različitih blokova, recimo B1 i B2, tada svi blokovi
na putu između odgovarajućih čvorova B1 i B2 u TBC postaju dio jednog bloka. Preciznije,
TBC se mora ažurirati na sljedeći način, daju Rosenthal & Goldner:

Lema 4.3.1 ([97]) Za graf G i njegovo BC-stablo TBC, razmotrite ciklus C koji je kreiran
dodavanjem ivice između dva vrha v i w od TBC. Neka je G0 graf dobijen iz G dodavanjem
ivice između v0 i w0 u G gde su v0 i w0 ne-sjekovi u blokovima predstavljenim sa v i w
respektivno. Neka je T 0BC BC-stablo od G0. Između TBC i T 0BC vrijede sljedeće relacije
(vidi također sliku 4.3): 1. Vrhovi i ivice TBC koji nisu u ciklusu C ostaju isti u T 0BC.

2. Svi l B-čvorovi u TBC-u koji su u ciklusu C ugovoruju se na jedan B-čvor b


0
in
T 0BC.

3. Bilo koji C-čvor u C sa stepenom jednakim 2 je eliminisan.


Machine Translated by Google
4.3 Aproksimacija unutar 2 puta optimalna 51

4. C-čvor x u C sa stepenom većim od 2 ostaje u T 0BC sa upadnim rubovima


0
na čvorovima koji nisu u ciklusu. Čvor x se takođe vezuje za B-čvor b u T 0BC.

Algoritam se sada može opisati na sljedeći način:

2*OptBiconnect(G);
izračunati BC-stablo TBC od G; korijen TBC na br ;
dok TBC nije jedan čvor br do
neka je ci C-čvor u TBC sa p(ci) = d(ci) 1;
spojiti viseće blokove ci u jedan dodavanjem p(ci) 1 ivica;
neka je Bi spojeni blok; neka je v vanjski vrh od Bi;
ponovi
w := van vrha od Bj , ci := sa bj = roditelj(ci);
roditelj(bj)
sve dok bj = br ili Planar(v; w) = false;
dodati (v; w) G;
ažuriraj TBC
od;
Kraj 2*OptBiconnect

Teorema 4.3.2 Algoritam 2*OptBiconnect(G) se može implementirati da radi u


O(n (n; n)) vrijeme.

Dokaz: TBC predstavljamo strukturom Union-Find. Svaki čvor u TBC-u


ima roditeljski pokazivač i predstavlja skup čvorova, u početku samo jedan B- ili C-čvor.
Struktura podataka potrebna za inkrementalni tester planarnosti La Poutr e je
inicijalizirano postupnim dodavanjem svake ivice originalnog planarnog grafa G na
struktura podataka. Ovo ukupno košta O(n (n; n)) vremena [75]. Tokom algoritma
održavamo skup vrhova ci sa p(ci) = d(ci) 1. Nakon određivanja takvog
a cutvertex ci, prvo dodamo p(ci) 1 rubova između blokova privjesaka, povezanih
kod ci. Ažuriramo TBC primjenom p(ci) 1 spojeva na ove viseće blokove u
temeljna Union-Find struktura, koja smanjuje broj čvorova u TBC-u za
p(ci) 1. Stoga je za ovo potrebno O((p(ci) 1) (n; n)) vrijeme amortizovano.
Zatim izračunavamo putanju P od spojenog visećeg bloka Bi do Bj tako da
Planar(v; w) = true, sa v 2 Bi i w 2 Bj . Neka jP j označava dužinu P jP j je paran, jer se TBC , onda
sastoji od naizmjenično B- i C-čvorova. P se izračunava
jP j
testiranjem + 21 puta da li je Planar(v; w) = istina. Koristeći algoritam La
Poutr e, ovo zahtijeva O(jP j (n; n)) vrijeme amortizacije. Ažuriranje TBC-a slijedi a
unija svih B-čvorova na putu između bi i bj u TBC. Testiramo za svaki C-čvor
c na P , da li je deg(c) bio 2, i ako jeste, eliminiramo c. Ukupno vrijeme za ažuriranje
TBC sažimanjem putanje P je O(jP j (1 + (n; n))). Broj čvorova u TBC-u
jP j
smanjuje za najmanje d 2 e.
Machine Translated by Google
52 Problem povećanja planarne bikonektivnosti

Ako je na kraju G bikonektan, onda je TBC jedan list, tako da je ukupan rad tokom svih koraka
povećanja O(n (n; n)). 2

Lema 4.3.3 Svaki vrh prima najviše 2 dodatna incidentna ivica.

Dokaz: Kada dodamo p(ci) 1 ivice između visećih blokova, recimo redom B1;:::;Bp(ci)1, spojeno na
ci, tada B1 i Bp(ci)1 dobijaju jedan incidentni rub, drugi blokovi B2;:::;Bp(ci)2 dva. Zatim dodajemo ivicu
između vrha B1 i suseda w preseka c u bloku Bj u 2*OptBiconnect. Nakon ovog dodavanja slijedi da (c;
w) postaje tetiva, tj. da nije na vanjskoj strani spojenog bloka. Stoga u sljedećem koraku možemo uzeti
drugog susjeda w0 od c na vanjskoj strani Bj , a ako je c = ci, možemo uzeti susjeda od c na vanjskoj
površini Bp(ci)1.
2

Teorema 4.3.4 Algoritam 2*OptBiconnect dodaje najviše 2 puta minimalni potreban broj ivica G u O(n
(n; n)) vremenu.

Dokaz: Prema teoremi 3.0.1, broj potrebnih ivica je najmanje dpe, pri čemu je p broj visećih
2
blokova, tj. broj listova u TBC. U 2*OptBicon mreži, p(ci) privjesci od ci se spajaju u jedan dodavanjem
p(ci) 1 ivica. Spojeni privezak prima jednu upadnu ivicu povećanja u blok Bj, sa bj pretkom ci u TBC.

B-čvor bj 6= br postaje list u TBC, ako ne postoji visi blok potomak za koji vanjski vrh može postati
vanjski vrh Bj. Stoga se nijedna ivica (v; w) ne može dodati G bez uništavanja planarnosti, pri čemu je v
2 Bi, bi potomak bj u TBC, a w 2 Bl, bl nije potomak od bj u TBC. Tako i u optimalnom rješenju bj postaje
list, a za bj je potreban dodatni rub. Ako postoji s nelisnih B-čvorova, koji postaju list tokom algoritma
povećanja, tada su najmanje dpe + d s2 e rubovi potrebni u optimalnom rješenju da bi se očuvala
planarnost.
2
U 2*OptBiconnect dodajemo ivicu iz svakog lista, stoga se dodaje p + s ivica, čime je dokaz završen.
2

Slika 4.4 prikazuje primjer algoritma 2*OptBiconnect(G) kako se primjenjuje na graf sa slike 2.11,
sa B = root(TBC).

4.4 Poseban slučaj

U ovom odeljku razmatramo poseban slučaj problema dodavanja ivica planarnom grafu, tako da je
rezultujući graf dvopovezan i još ravan. Podsjetimo iz teoreme 4.2.1 da je problem odlučivanja da li
dodavanje najviše K rubova povezanom planarnom grafu G = (V;E) može dovesti do dvopovezanog
planarnog grafa NP potpun. Čini se da je problem rješiv u polinomskom vremenu kada ulazni graf G
čuva posebnu strukturu:
Machine Translated by Google
4.4 Poseban slučaj 53

4 5 12 4 5 12
13 13
E F E
B F
B
9 9
14 14
3 6 3 6
D D
1 A 1 A
C 10 11
C 10 11
2 7 8 2 7 8
15 15
H H

Slika 4.4: Dvostruko povezivanje grafa sa slike 2.11 pomoću 2*OptBiconnect.

Teorema 4.4.1 Ako su svi l preseci od G dio jedne tropovezane komponente, tada se
minimalni broj ivica, čiji dodatak G daje dvopovezani planarni graf, može odrediti u M(n;
n2) vremenu, gdje je M(n; m) je vrijeme potrebno za izračunavanje maksimalnog
podudaranja kardinalnosti na grafu sa n vrhova i m ivica.

Dokaz: Neka je G0 G tropovezana komponenta koja sadrži sve rezove. Denicijom


tropovezanih komponenti (vidjeti dio 2.4), G0 je ili par vrhova a; b sa nekoliko višestrukih
ivica (a; b), ili ciklusom, ili tropovezanim grafom. Ako je G par vrhova a; b sa više ivica,
onda je problem lako riješiti u linearnom vremenu: dodajte minfp(a); p(b)g rubova
između privjesaka a i b, gdje je p(v) broj privjesaka povezanih na v. Preostali maxfp(a);
p(b)g minfp(a); p(b)g privjesci dobijaju jednu upadnu ivicu na preostali dio grafa. Ako je
G0 ciklus, onda možemo koristiti algoritam OuterBicon nect iz Poglavlja 7. Ovaj algoritam
povezuje vanjski planarni graf u linearnom vremenu dodavanjem minimalnog broja
ivica, uz očuvanje planarnosti. Ovaj algoritam se također može koristiti za bikonekciju
grafa, gdje su svi privjesci dio jednog vanjskog grafa.

Pretpostavimo sada da je G0 tropovezani graf. Stoga G0 ima jedno, jedinstveno,


planarno ugrađivanje, što je ključ za dobivanje optimalnog rješenja. Konstruišemo graf
H tako što svaki presek v od G predstavljamo p(v) vrhovima u H. Dodamo brid (vi; vj) u H
ako i samo ako su vi i vj na zajedničkoj površini u G0 i ne predstavljaju isti vrh u G.

Svaki vrh u H odgovara jednom privjesku u G, a svaki rub u H odgovara ivici koja se
može dodati između dva privjeska. Cilj je dodati što više rubova između privjesaka bez
narušavanja planarnosti. Rub između privjesaka od v i w moguć je samo ako su v i w na
zajedničkoj površini, tj. ako postoji ivica (v; w) 2 H. Pokušavamo pronaći podskup E0 EH
takav da je jE0j minimalan i za svaki vrh v 2 H postoji ivica e 2 E0 takva da je v krajnja
tačka od e. Ovdje izračunavamo maksimalnu kardinalnost koja odgovara M u H.
Maksimalna kardinalnost koja odgovara M je maksimalni skup bridova M EH tako da je
svaki vrh v krajnja tačka od najviše jednog ruba e 2 M. Svaki rub (v; w) 2 M odgovara
rubu između privjesaka od v i w u G. Neka je V VH skup vrhova koji nemaju incidentnu
0
ivicu u M. Svaki privjesak, odgovarajući
Machine Translated by Google
54 Problem povećanja planarne bikonektivnosti

na vrh v 2 V mora dobiti dodatnu ivicu prema proizvoljnom vrhu tako da se održava planarnost,
0

jer svaki privjesak mora dobiti barem jednu povećavajuću ivicu. Iz toga direktno slijedi da je
izračunati skup ivica minimalan.
Ako se na jedno lice doda više rubova, tada se mogu pojaviti križanja između dodatih ivica.
Da bismo uklonili ova ukrštanja, primjenjujemo algoritam OuterBiconnect iz Poglavlja 7. Ovaj
algoritam povezuje vanjski planarni graf u linearnom vremenu dodavanjem minimalnog broja
ivica, uz očuvanje planarnosti. Da bismo ovdje primijenili algoritam OuterBiconnect, uklanjamo
sve dodane ivice u jednom licu F i primjenjujemo algoritam OuterBiconnect na, F.minimalni
Ovo daje skup
dodatih ivica u F bez ukrštanja. Primjena OuterBiconnect-a na sva lica u G daje dvopovezan
planarni graf bez križanja.

Primijetite da je jVH j = O(n), ali jEHj može biti O(n2), što upotpunjuje dokaz. 2

Najbrži algoritam (u teoretskom smislu) predstavljaju Micali & Vazi rani, koji su dokazali da
je M(n; m) = O(mpn) [83], pa se time dobija O(n2:5) vremenski algoritam. Na slici 4.5 dat je
primjer ovog posebnog slučaja.

4.5 Problem povećanja planarnog mosta i povezanosti

U ovom odeljku pokazujemo da se algoritam za problem planarne bikonektivnosti takođe može


koristiti za pravljenje povezanog grafa G mostom povezanog sa istom složenošću i ograničenom
performansom. Podsjetimo da je most ivica (u; v) takva da je G f(u; v)g nepovezan. Mostom
povezan graf je graf bez mostova.
Maksimalni mostom povezan podgraf od G naziva se most-blok.
Neka je TBC BC-stablo od G. Svaki most u G je trivijalni blok, i predstavljen je B-čvorom u
TBC. Sada spajamo dva B-čvora u TBC-u u jedan, ako odgovarajući blokovi pripadaju istom
bloku mosta. Uklanjamo C čvorove stepena 1 iz TBC-a. Nakon ovog procesa spajanja i brisanja,
svaki B-čvor odgovara mostu ili most-bloku, a svaki C-čvor je krajnja tačka najmanje jednog
mosta. Neka TBBC bude transformirano stablo. Mi zovemo TBBC stablo mosta. TBBC je stablo i
može se konstruisati u O(m + n) vremenu korišćenjem pretrage po dubini, kao što je opisao
Tarjan [107, 108]. Bilo koji skup ivica koji premošćuje TBBC odgovara skupu ivica koji premošćuje
G.

Neka viseći most-blok odgovara listu u stablu most-bloka TBBC. Neka je p(c) broj listova
preseka c u TBBC. Ako je p(c) > 2, tada možemo dodavati rubove između odgovarajućih visećih
blokova mosta, povezanih na c, sve dok jedan (p(c) nije neparan) ili dva (p(c) je paran) viseći
most-blok na c ostati. Svaki dodatni rub uklanja dva mosta. Nastavljamo ovo, sve dok jedan ili
dva viseća mosta-bloka ne ostanu na c, jer mora ići ivica od visećeg mosta-bloka od c do bridge-
bloka, koji nije povezan na c da bi se postigla povezivost mosta (ako je c 6 = root(TBBC)).
Machine Translated by Google
4.5 Problem povećanja planarnog mosta i povezanosti 55

B
B

C
C D

D
F
F
E
E

(a) Početni graf G. (b) Podudarni graf H.

A
A

B
B

C D C
D
F

F
E
E

(c) Maksimalno podudaranje u H. (d) Optimalno povećanje.

Slika 4.5: Dvostruko povezivanje planarnog grafa korištenjem grafa maksimalnog podudaranja.

Pretpostavimo dalje da je p(c) 2 za svaki vrh c 2 TBBC. Most za povezivanje G


se dobija dodavanjem ivica između blokova mosta od G uz očuvanje planarnosti.
Učinite ovo unutar dva optimalna vremena primjenom 2*OptBiconnect(G),
ali sada koristim TBBC. Rezultirajući algoritam nazivamo 2*OptBridgeConnect(G).

Problem pronalaženja minimalnog broja ivica u polinomskom vremenu, tj


kada se doda datom planarnom grafu dobije se planarni graf povezan mostom, ostaje
kao zanimljiv otvoreni problem.
Machine Translated by Google
56 Problem povećanja planarne bikonektivnosti
Machine Translated by Google

Poglavlje 5

Planarna trikonekcija
Problem povećanja

5.1 Preliminarne utakmice

U ovom poglavlju razmatramo pitanje kako povećati dvopovezani graf tako da je


prošireni graf tropovezan i još ravan. Tropovezani planarni grafovi imaju lijepe
karakteristike, npr. imaju samo jedno ugrađivanje u ravan i mogu se crtati sa
konveksnim plohama, kao rezultat Tuttea [110]. Ove karakteristike se koriste u
Odjeljku 10.2 za dobijanje linearnog vremenskog algoritma za crtanje
tropovezanog planarnog grafa konveksno na (n 2) (n 2) mreži. Thomassen [109]
je okarakterizirao klasu planarnih grafova koji se mogu nacrtati s konveksnim
licima. Ako graf G ne zadovoljava ova ograničenja, možemo pokušati nacrtati G
sa minimalnim brojem nekonveksnih lica. Nažalost, ovaj problem je prilično
težak, kao što je navedeno u sljedećoj teoremi.

Teorema 5.1.1 Problem odlučivanja da li se dvopovezani planarni graf može nacrtati


sa K konveksnih lica je NP-potpun.

Dokaz: (i) Problem je u NP: pretpostavimo da G ima FK lica. Odaberite LFK lica,
triangulirajte ova lica dodavanjem vrha u svako lice sa ivicama svim ostalim
vrhovima, koji pripadaju ovom licu. Provjerite da li rezultirajući graf zadovoljava
ograničenja teoreme 5.1 iz [109], koja je karakterizacija planarnih grafova koji se
mogu nacrtati sa konveksnim plohama. Ako je to slučaj, onda se G može nacrtati sa
FL konveksnim stranama. Ova provjera je moguća u polinomskom vremenu pomoću algoritma
od Chiba et al.
[14]. (ii) Da bismo dokazali NP-tvrdoću koristimo transformaciju iz
problema pokrivanja vrhova na tropovezanim planarnim grafovima (za koji
se lako može pokazati da je NP potpun, modifikacijom grafa G u redukciji
dokaza u [39], kao što je da je G tropovezan). Neka su dati tropovezani
planarni graf G = (VG; EG) i pozitivan cijeli broj K n. Pitanje u problemu pokrivanja vrhova je da li

57
Machine Translated by Google
58 Problem povećanja planarne trikonekcije

postoji podskup VV sa jV 0j K takav da je za svaki rub (u; v) 2 E najmanje


0

jedno od u i v pripada V 0. Pregledajte dualni graf G od G. Vrhovi


dualni graf G planarnog grafa G su lica G. U G postoji ivica
ako i samo ako odgovarajuća lica krajnjih tačaka imaju zajedničku ivicu u G.
Imajte na umu da je G također trokonektan i, prema tome, ima tačno jedno planarno ugrađivanje.
Konstruišemo novi graf G 1 iz G promjenom svake ivice (a; b) u G za
(a; ab1); (ab1; b); (a; ab2) i (ab2; b) u G 1, čime se uvode dva nova vrha, ab1
i ab2. Imajte na umu da G1 je dvopovezan.
Sada tvrdimo da je G 1 ima planarno ugrađivanje sa K konveksnim stranama, ako i
samo ako G ima pokrivač vrha veličine K. Pretpostavimo da je (a; b) 2 F1 i (a; b) 2 F2
u G. Na bilo kojem crtežu G 1, F1 ili F2 se ne mogu nacrtati konveksno. Pošto je cilj
da bi se dobio minimalan broj nekonveksnih lica, problem je pronaći u G
najmanji skup S lica tako da je za svaki rub (a; b) u G , F1 ili F2 pripada S,
ako (a; b) pripada F1 i F2 u G. Površine slova S su nacrtane nekonveksno u G 1.

Lica F1 i F2 sa zajedničkim rubom (a; b) odgovaraju ivici (vF1; vF2) u G.


Za svaki rub (vF1 ; vF2 ) 2 G, vF1 ili vF2 pripada S. Stoga je S pokrov vrha od
G. Postoji poklopac vrha u G veličine K ako i samo ako postoji skup S lica
veličine K u G. Ali ovo postoji ako i samo ako postoji skup nekonveksnih lica
veličina K u G 1. Konstrukcija je lako izračunava u polinomskom vremenu, tako da je

problem postoji li crtež takav da bipovezani planarni graf može


biti nacrtan sa K nekonveksnih lica je NP-potpun. 2

Ako povećamo G dodavanjem k rubova da dobijemo tropovezani planarni graf G0,


onda G sadrži najviše k nekonveksnih lica, od brisanja bilo koje proširene ivice
spaja dva (konveksna) lica u jedno (moguće nekonveksno) lice.

U ovom poglavlju razmatramo problem povećanja dvopovezanog planara


graf G na tropovezani planarni graf G0 dodavanjem što manje ivica. The
problem odlučivanja u polinomskom vremenu da li se dodaje K ivica bikonektu
planarni graf može učiniti prošireni graf planarnim i tropovezanim ostacima kao
zanimljiv otvoreni problem. Predstavljamo algoritam koji dodaje određeni broj ivica
koja je ograničena samo konstantnim vremenima optimalnosti i povećanjem maksimuma
stepen je samo aditivna konstanta sa egzistencijalne donje granice. Prisjetite se
denicije u Odjeljku 2.4 koje se odnose na tropovezane komponente i SPQR stablo TSP QR.
Kao što je opisano u poglavlju 3, brišemo Q-čvorove iz TSP QR, i
pretpostavimo da je svaki vrh v stepena 2 predstavljen S-čvorom u TSP QR. Neka

TSP QR biti ukorijenjen na proizvoljnom čvoru. Cilj je dodati minimalan broj


ivice između tropovezanih komponenti, koje su listovi u TSP QR.

Da bi se očuvala planarnost, ivica se može dodati samo između dvije tropovezane komponente ako
dijele lice u planarnom ugrađivanju G. Neka je bl čvor u TSP QR,
i neka je Bl = skelet(bl). Ako je bl P-čvor, Bl je veza; ako je bl S-čvor, Bl je a
ciklus, i ako je bl R-čvor, Bl je tropovezani graf. Ciklusi i trostruko povezani
grafovi imaju jedinstveno ugrađivanje.
Machine Translated by Google
5.1 Preliminarne utakmice 59

i F F u kosturu (roditelj(bl)), onda za svako


0 00
Pretpostavimo da ivica(bl) pripada plohama
povećavajući rub (v0; w0) sa v0 2 relevantnim(bl) i w0 2 G relevantnim(bl), v0 i
w0 dijeli F ili F
0 00 0
u planarnom ugrađivanju G. Pretpostavimo da postoji x ivica u F između vrhova
00
i y ivice u F Sljedeća u relevantnom (bl) i vrhova u G relevantnom (bl).
lema je ključna u našem algoritmu.

Lema 5.1.2 Možemo promijeniti ivice povećanja uz očuvanje trikonektivnosti tako da postoje najviše 2
0
ivice povećanja u F i najviše 2 augmentacijske ivice u F
00
između relevantnog(bl) i G relevantnog(bl).

Dokaz: Indukcijom na dubini podstabla SPQR-stabla, ukorijenjenog na


bl. Neka je Bl = skelet(bl). Ako je dubina = 0, onda je bl list, a Bl je ili vrh
v stepena 2, ili tropovezani graf. Budući da je samo jedna povećavajuća ivica od Bl do
G Bl je dovoljan za trikonekt Bl, slijedi lema.
Neka je sada bl proizvoljan vrh u SPQR-stablu i pretpostavimo lemu
vrijedi za sve tropovezane komponente Bi sa bi u podstablu TSP QR, ukorijenjene u
bl. Pretpostavimo da postoji k 3 ivica između relevantnog(bl) i G relevantnog(bl) u licu
F 0, sa k neparom. (Sličan argument slijedi kada je k paran, a za lice F 00.) We
dokazati da umjesto dodavanja k rubova između pertinent(bl) i G relevantnog(bl), mi
može dodati k 1 ivica između vrhova relevantnog(bl) i jedan između relevantnih(bl)
0
i G relevantno (bl) u F uz očuvanje trikonekcije.
Neka su v1;:::;vk vrhovi (u smjeru kazaljke na satu) iz odgovarajućeg(bl), koji mora
dobiti ivicu incidenta u F1 do G relevantno (bl). Neka je Bi tropovezana komponenta
i ivicu povećanja na G
koji odgovara vi (za 1 k), koji mora dobiti
relevantan(bl). Vidi sliku 5.1(a). Neka je ei = edge(bi), za 1 k. Pretpostavimo ivicei
eij ::::;eij+11 također dijeli lice Fj u Bl. Neka postoji k0 takvih lica, tada je i1 = 1 i
ik0+11 = k. Pregledajte slijed vrhova vij ;:::;vij+11. Za ij <ij+12 we
učiniti: ako je B = +1, tada se dodaje ivica (v +1; v +2) i ujedinjujemo komponente
B +1 B i B
+2 u jednu tropovezanu komponentu. (Prema hipotezi indukcije BB +2.) Vidi sliku +1 6=
biti vrhovi
5.1(b). Neka (nakon prenumeracije) vi 0j ;:::;vi 0j+11 među vij ;:::;vij+11, koji i dalje mora dobiti
povećavajući rub (numeriran od vij
do vija+11). Osnovna ideja je da nakon ovih sindikata, samo Bi 0j+11 mora dobiti
na najviše dvije izlazne ivice, ostale komponente Bi 0j ;:::;Bi 0j+12 moraju dobiti jednu
izlazna ivica, za svaki j; 1 Sada j k0.

dodajemo ivice povećanja (vi 0j ;


vi 0j+11); (vi 0j+1; vi 0j+12), itd., do jedan
ili ostaju dva vrha, koji moraju dobiti ivicu povećanja. Zamjenom

tropovezane komponente Bi 0j ;:::;Bi 0j+11 ove ivice se mogu dodati u lice Fj . Ako
i 1 i i 0j+11+i 0j
, ne prima
0 0

j+1 j je paran, tada jedan vrh, sa indeksom 2


i 0j+11+i 0j i 0j+11+i 0j
povećavajući rub, inače dva vrha, sa indeksima b 2 cid 2 e,

ne dobijaju ivicu za povećanje. Primetimo da su komponente Bi 0j ;:::;Bi 0j+11


postati jedan tropovezani graf nakon dodavanja ovih ivica (vidi sliku 5.1(c)).
Neka su v1;:::;vp (p k0) vrhovi, u smjeru kazaljke na satu oko F 0, što
mora dobiti ivicu do G relevantnog(bl). Ako za bilo koje i, 1 i<p, ei i ei+1 su na
Machine Translated by Google
60 Problem povećanja planarne trikonekcije

s s s s

v v v v1
1 1 1
v2 v2 v2

B 1=2B B 1=2 B B2
=B1

v v
3 B 3 B
3 3
B1
v 4B v 4B v3
4 4

v5 v5
B3
v B=B5
6 6
B5

v
7
B
7

t t t t

(a) (b) (c) (d)

Slika 5.1: Primjer za dokaz teoreme 5.1.2.

zajedničko lice Fj na početku, zatim dodajemo (vi+1; vi+2) u lice F 0. Neka (nakon prenumeracije)
v1;:::;vp0 (p0 p) biti vrhovi koji moraju dobiti povećanu ivicu. Primetite to
p0 je neparan, jer se pretpostavljalo da je k neparan, a uz svaki dodani rub e, dva vrha od
pertinent(bl) ne treba ivicu do G relevantnog(bl). Dodajemo ivice (v2i; v2i+1)
i p01 preostali
u F 0, sa 1 . v1 je jedini 2 vrh među v1;:::;vk , koji
mora dobiti povećanu ivicu do G relevantnog(bl). Vidi sliku 5.1(d).
Primijetite da svaki vrh vi (1 k) primai jednu povećavajuću ivicu. Posmatrajte
također da ako su eij ;:::;eij+11 bili na zajedničkom licu prije povećanja, onda
x ivicu na vrh vy ;y < ij or
postoji vrh vx; ij ij+1 1, koji ima
y>ij+1 1. Ovo dokazuje trokonektivnost. 2

5.2 Algoritam aproksimacije za planar

Algoritam povećanja trikonekcije

U Odjeljku 5.1 je pokazano da za svaki čvor bi 2 TSP QR, sa rubom(bi) koji pripada
lica Fi1 i Fi2 u skeletu (roditelj(bi)), najviše x ivica povećanja u Fi1 i y
augmentacijski rubovi u Fi2 između vrhova pertinent(bi) i G relevantnog(bi) su
neophodno za postizanje trikonekcije, sa 0 x; y 2, i x + y > 0. Zapazite to
moguća su optimalnija rješenja. Neka aug(bi) označava skup parova cijelih brojeva
(x; y), sa 0 x; y 2, sa svojstvom da se dodaju x ivice u Fi1 i y ivice
u Fi2 između pertinent(bi) i G pertinent(bi) trikonekcije relevantne(bi) sa G
relevantno(bi). Za sve (xj ; yj ) 2 aug(bi), xj + yj je paran, ili za sve (xj ; yj ) 2 aug(bi),
Machine Translated by Google
5.2 Algoritam aproksimacije 61

xj + yj je neparan.
Globalna ideja algoritma je sljedeća: počinjemo od listova bi TSP QR,
i za svaki list bi izračunavamo aug(bi). skelet(bi ) lista bi 2 TSP QR je bilo
vrh v sa deg(v) = 2 ili tropovezani graf. U oba slučaja skelet(bi )
mora primiti jednu povećavajuću ivicu, dakle aug(bi) = f(1; 0)g. Razmotrite sada čvorove
bi 2 TSP QR, za koji se izračunava aug(bj ), ako je bj dijete bi. Izračunavanje
aug(bi) u velikoj mjeri ovisi o tipu čvora bi 2 TSP QR. Za svaki tip čvora bi in
TSP QR predstavljamo algoritam za računanje aug(bi), koristeći samo informacije
skupova aug(bj ) djece bj od bi u TSP QR. Nakon izračunavanja aug(br) sa
br = root(TSP QR), mi x jedan par (x; y) 2 aug(br) za br. Iz ovog para (x; y) je
slijede parovi povećanja (xi; yi) za djecu bi od br. Prelazimo preko drveta
odozgo prema dolje i ponovite ovaj argument. Konačno parovi (xl; yl) za sve listove bl in
TSP QR se izračunavaju. Koristeći ove informacije, mogu se dodati ivice za povećanje
kako bi se postigla trikonekcija. O ovom problemu računanja aug(b) ćemo više raspravljati
detalja kada se razmatraju različite vrste čvorova u TSP QR. Algoritam
sada se može opisati na visokom nivou na sljedeći način:

Triconnect(G);
konstruisati SPQR-stablo TSP QR od G;
ukloniti Q-čvorove iz TSP QR;
korijen TSP QR na proizvoljnom vrhu br;
za svaki list bi do aug(bi) := f(1; 0)g rof;
ponovi
neka bi 2 TSP takav da je aug(bj ) izračunat za sva djeca bj od bi;
QR izračunava aug(bi) na sljedeći način prema tipu bi:
S-čvor: Serija(bi);
P-čvor : Paralelno(bi);
R-čvor : krut (bi)
do bi = br ;
pređite TSP QR odozgo prema dolje i dodajte ivice povećanja;
Kraj Triconnect

Sada samo moramo objasniti kako tri algoritma Series(bi), Parallel(bi)


i kruti(bi) rad. S obzirom na izračunati skup aug(bi) prilično je lako odrediti
i dodajte ivice povećanja u O(skelet(bi)) vremenu uz očuvanje planarnosti.

5.2.1 Slučaj serije

Neka je b S-čvor, a B = skelet(b). Tada je B ciklus. Neka je b1;:::;bk


djeca od b u TSP QR, ciklus B. sa rubom (bi) u smjeru kazaljke na satu kada hodate okolo
Neka je Bi = relevantan(bi) sa 1 k. Mijenjamo aug(bi) zai a
par (x; y) 2 aug(bj ), za koji je x + y maksimalan. Neka su s i t polovi B.
Pretpostavimo da s i t pripadaju Fleft i Fright u kosturu (roditelj(b)). Ideja je dodati
naizmjenično ivice u Fleft i Fright tako da ako postoji ivica dodana između a
Machine Translated by Google
62 Problem povećanja planarne trikonekcije

vrh u Bi i vrh u Bj (j>i) u licu Fleft, tada se dodaje ivica u


Strah između vrha Bx i By sa ixj i y<i ili y>j. Evo
koristimo brojače nleft i nright. Ovi brojevi označavaju broj vrhova
B1;:::;Bi1, koji mora dobiti ivicu povećanja na G fB1;:::;Bi1g u lijevom i
Strah, respektivno. Sljedeći algoritam čini ovu ideju da se izračuna jedan par
aug(b) preciznije. (Kasnije ćemo pokazati kako izračunati kompletan skup aug(b).) Neka
b imaju djecu b1;:::;bk kako je gore opisano.

serija(b)
za i := 1 do k učiniti

neka je (xi; yi) ovaj par u aug(bi), za koji je xi + yi maksimalan


rof;
nlijevo := x1; nright := y1; i := 2;
dok ja radim

nleft := jnleft yij;


nright := nright + xi;
n0 := 0; j := i;
lijevo dok je n0 < nleft i j<k do

lijevo j := j + 1;
n0 := n0 + xj ;
lijevo lijevo
ndesno := ndesno + yj
od;
nlijevo := n0lijevo nleft;
dok je nright > 2 do nright := nright i := j 2 od;
+ 1;
zamijeniti (lijevo, desno)
od;
aug(b) := f(nlijevo; ndesno)g;
Kraj serije

Kada se izvrši naredba nleft := jnleftyij, pretpostavljamo da su ivice jnleftyij


dodat između vrhova Bi i Bj ;j < i, koji moraju primiti povećavajuće ivice.
Kada je izjava nleft := n0 lijevo nleft se izvršava, pretpostavljamo da su nlijeve ivice
dodat između vrhova B i i B;i < j. Kada; je nright := nright 2 je

izvršeno, onda se rubovi dodaju između uzastopnih vrhova u Frightu, što mora
dobiti ivicu za povećanje i ne pripadaju istom Bi. zamijeniti (lijevo, desno) znači
da su Fleft i Fright zamenjeni. Također nlijevo i ndesno se zamjenjuju.

Lema 5.2.1 Na ulazu u svaku while-petlju: 0 < nleft 2.

Dokaz: U početku nlijevo = x1 i 0 < xi 2, od xi yi. Tokom svake


krajnju dok-petlju, postavljamo nright := nright + xi i smanjujemo nright ako je potrebno
do 0 < nright 2. 2
Machine Translated by Google
5.2 Algoritam aproksimacije 63

Lema 5.2.2 koja se odnosi na (b) je trokonektovana nakon primjene serije (b).

Dokaz: Indukcijom dokazujemo da nakon koraka i najudaljenije while-petlje,


komponente B1;:::;Bj su tropovezane kada dodamo dodatne ivice sa
poštovanje aug(bj ). U početku je i = 2 i B1 je tropovezan dodavanjem xi rubova u nlijevo
i yi ivice u nright .
Pretpostavimo da su B1;:::;Bi1 tropovezani dodavanjem ivica između vrhova
B1;:::;Bi1, i dodavanjem nlijevih rubova u Fleft i ndesnih ivica u Fright na vrhove
u G fB1;:::;Bi1g. U preostalom dijelu dokaza, neka su nleft i nright
vrijednost na ulazu najudaljenije while-petlje. Dodamo minfyi; nleftg edges
između vrhova Bi i B1;:::;Bi1. Ako je nleft = yi, tada je j = i i B1;:::;Bi
su tropovezani, jer postoje yi ivice od Bi do B1;:::;Bi1, a postoje
xi + ndesne ivice (sa xi + nright > 0) od B1;:::;Bi do Bi+1;:::;Bk.
Pretpostavimo da je jnleft yij > 0, stoga će jnleft yij ivice ići u Fleft od B1;:::;Bi do
Bi+1;:::;Bj . Ako je yi > 0, tada će i jedna ivica ići od Bi do B1;:::;Bi1, dajući
trokomponentne komponente B1;:::;Bj . Ako je yi = 0, tada nlijeve ivice idu od B1;:::;Bi1
do Bi+1;:::;Bj , budući da je nleft > 0 prema lemi 5.2.1. Pošto je xi > 0, slijedeći slučajevi
može se pojaviti u Strahu: ako je xi + nright 3, tada će ivica između Bi i B1;:::;Bi1
se zbroji, a xi + nright se smanjuje za 2. Ako je xi + nright + yi+1 + ::: + yj 3, tada
dodaje se ivica između B1;:::;Bi i Bi+1;:::;Bj. Jedna ili dvije ivice će biti
dodato između B1;:::;Bj i Bj+1;:::;Bk. Ovo implicira da ako je yi = 0, onda također
komponente B1;:::;Bj su tropovezane. 2

Lema 5.2.2 implicira da je (nlevo; ndesno) ispravan član aug(b). Ako je 3 4, onda je
nleft + nright prilično lako dodati jedan dodatni rub između dva
vrhova unutar relevantnog(b), tako da je 1 2. Ovonlevo
daje drugi
+
ndesno tačan član aug(b). Zapazite da ako je (x1 + y1)+(x2 + y2) + ::: + (xk + yk)
paran (neparan), tada je nleft + nright paran (neparan, respektivno).
Za izračunavanje kompletnog skupa aug(b), radi se sljedeće. Ako ima djece
bj od bi, sa f(2; 2); (1; 1)g ili f(2; 1); (1; 0)g aug(bi), tada se primjenjuje serija (b).
opet, sa (xi; yi) promijenjenim u (1; 1) ili (1; 0), za tačno jedno dijete bi od b. Ovo
vodi do potpunog i optimalnog skupa aug(b), dovršavajući sljedeću lemu:

Lema 5.2.3 Serija (b) izračunava u linearnom vremenu skup aug(b) i niz (b)
takođe isporučuje odgovarajuće skupove sa minimalnim brojem ivica, što mora biti
dodano između pertinent(bi) i pertinent(bj), sa bi i bj djece čvora b u
TSP QR.

Na slici 5.2 dat je primjer primjene algoritma Series(V 0).

5.2.2 Paralelni slučaj

Neka je b P-čvor s djecom b1;:::;bk. Neka je Bi = relevantan(bi), sa 1 k. b i


je veza, tj. par vrhova s; t, sa k+1 paralelnim ivicama između. (Jedan virtuelni
Machine Translated by Google
64 Problem povećanja planarne trikonekcije

B1 S-čvor b
S-čvor b

B2

bbbb
13
4 2
B3
bbbb
1
4 2 3
aug(b) = {(2,2), (2,0), (1,1)}
B4
aug(b1) = {(2,1), (1,0)}
aug(b)
2 = {(2,0)}
aug(b)
3 = {(1,0)}
aug(b)
4 = {(1,1)} aug(b) = {(2,2), (2,0)} aug(b) = {(1,1)}

Slika 5.2: Primjena algoritma Serija(b).

rub odgovara roditelju(b).) Moramo pronaći optimalan redoslijed, recimo b1;:::;bk,


takav da dodavanje minimalnog broja ivica između Bj i Bj+1, 1 j<k
čini B1;:::;Bk tropovezanim. Ako je ( ; ) 2 aug(bj ) i (; ) 2 aug(bj+1), tada
dodavanje ivica između odvoda u ujedinjenu komponentu B0 sa ( ) 2 aug(b 0). ;
Ako je = 0, tada su B1;:::;Bj povezani samo preko s i t na Bj+1;:::;Bk. Trećina
vertex-disjunktna putanja od Bj do Bj+1 ne može posjetiti s i t, stoga mora ići preko B1
i Bk, što implicira da između svakog para komponenti Bi mora biti ; Bi+1 (i 6= j) tamo
povećana ivica. Također B1 i Bk moraju dobiti povećavajuće ivice na G
relevantno (b). Takvo mjesto, gdje se ne pojavljuju povećavajući rubovi između Bj i Bj+1,
naziva se praznina. Između komponenti B1;:::;Bk može nastati najviše jedan jaz
postići trikonekciju. Ako je (s; t) 2 G, onda mora postojati jaz, recimo između Bj
i Bj+1, a (s; t) je postavljeno u lice između.
Prvo stavljamo tropovezane komponente u jedan skup Kj na sljedeći način:

if (1; 1) 2 aug(bi) onda dodajte bi na K1 else


if (2; 2) 2 aug(bi) onda dodajte bi na K2 else
if (2; 1) 2 aug(bi) onda dodajte bi na K3 else
if (1; 0) 2 aug(bi) onda dodajte bi na K4 else
ako (2; 0) 2 aug(bi) onda dodajte bi na K5

Neka je ki = jKi j, 1 5. Akoi je k4 + k5 2, onda ove komponente impliciraju jednu


jaz; ako je k4 + k5 > 2, to dovodi do više od jedne praznine i moramo dodati
dodatne ivice da dobijete samo jedan razmak. Ako je k5 > 2, mijenjamo k5 2 puta (2; 0) u
(2; 1) i dodajte komponentu u K3. To podrazumijeva k5 2 dodatna ruba, po jednu za svaku
komponenta, dodata u K3. Stoga pretpostavljamo da je k5 2. Ako je k4 > 2 k5 onda mijenjamo
k4 2 + k5 puta (1; 0) u (1; 1) i dodajte komponentu u K1 (i dodajte
odgovarajuće dodatne ivice). Nakon ove dvije operacije vrijedi k4 + k5 2. By
dodavanjem ivica povećanja između tropovezanih komponenti K1 možemo srušiti
u jednu trokonenu komponentu B0 sa aug(b 0) = f(1; 1)g. Dodavanjem ivica
između trokonenih komponenti K2 dobijamo jednu ujedinjenu trokonenu komponentu
Machine Translated by Google
5.2 Algoritam aproksimacije 65

B00 sa aug(b 00) = f(2; 2)g. Neka termin ( ; )-komponenta označava komponentu bi sa
( ; ) 2 aug(bi), koja odgovara skupu Ki, kojem se dodaje bi.
Komponente postavljamo na sljedeći način: Ako je k1 > 0, postavljamo sve
komponente K1 uzastopno, recimo redom Bj1+1;:::;Bj1+k1 . Između svakog uzastopnog
para Bj1+i i Bj1+i+1, 1 i<k1, potrebna je jedna povećana ivica. Takođe su sve komponente
K2 postavljene uzastopno, recimo na Bj2+1;:::;Bj2+k2 . Između svakog uzastopnog para
Bj2+i; Bj2+i+1, 1 i<k2, potrebne su dvije povećavajuće ivice.
Ako je k3 paran, sažimamo komponente K3 u jednu (1; 1)-komponentu, tj. stavljamo
ih na Bj1+k1+1;:::;Bj1+k1+k3 , tako da između
dvijeBi
ivice
i Bi+1
za povećanje.
naizmjenično
Komponente
se dodaju jedna
također
ili
možemo skupiti u jednu (2; 2)-komponentu, tj. smjestiti ih na Bj2+k2+1;:::;Bj2+k2+k3 .
Ako je k3 neparan, možemo ih skupiti u jednu (2; 1)-komponentu i tako povezati (1; 1)-
komponente sa (2; 2)-komponentama, tj. na mjestima Bj1+k1+1;: ::;Bj1+k1+k3 i postavimo
j2 = j1 +k1 +k3. Ako je k4 = 1, stavljamo komponentu K4 ispred komponenti K1, tj. na
mjesto j1. Ako je k5 = 1, komponentu K5 stavljamo na mjesto k2 + j2 + 1.

Ako je k4 = 2, postavljamo dvije komponente K4 između dvije komponente K1. Ako je k5


= 2, postavljamo dvije komponente K5 između dvije komponente K2.
Razlikovanje različitih vrijednosti k1;:::;k5 dovodi do sljedećeg algoritma:

Paralelno(b);
ako je k4 = 2
onda sažmite komponente K4 u jednu (1; 1)-komponentu i dodajte je K1; ako je
k5 = 2 onda sažmite komponente K5 u jednu (2; 2)-komponentu i dodajte je K2;
ako je k4 = 1 i k5 = 1 onda

sažmite komponente K4 i K5 u jednu (2; 1)-komponentu i dodajte je u K3;


ako je k3 neparan onda

skupiti sve komponente K3 u jednu (2; 1)-komponentu; k3 := 1 inače


ako je k2 > 0 onda sažmite sve komponente K3 u jednu (2; 2)-
komponentu i dodajte je u K2 inače sažmite sve komponente K3 u
jednu (1; 1)-komponentu i dodajte je u K1; k3 := 0;

uradite u zavisnosti od vrednosti k4 i k5 sledeće: k4 = 1 :


ako je k2 > 0)g;
0 ili :k3 > 0jeonda
ako k1 > aug(b)
0 ili k3 :=
> 0f(2; 0)gaug(b)
onda inače f(1;
:= f(1; 0)g inače f(2;
f(2; 1)g inače
0)g;
ako
k5je
= k1
1 inače:
> 0 onda
ako aug(b)
je k3 = :=
1 ili
f(1;
(k1
1>)g0inače
i k2 >f(2;
0) onda
2)g aug(b) :=

od;
End Parallel

Moguća su optimalnija rješenja: Ako postoji komponenta bi sa (2; 1) i (1; 0) 2 aug(bi),


onda možemo promijeniti (2; 1) u (1; 0). Inače, ako postoji a
Machine Translated by Google
66 Problem povećanja planarne trikonekcije

komponentu bi sa (2; 2) i (2; 0) 2 aug(bi), tada mijenjamo (2; 2) u (2; 0). Ovo dovodi
do drugih optimalnih parova za aug(b), tj. ovo implicira da je jaug(b)j 2.sve Ako(x;jey)za2
aug(b), x > 0 i y > 0 i ne postoji jaz , tj. k4 = k5 = 0, onda moramo ispitati slučaj
kada je rub (s; t) 2 G. U ovom slučaju je potrebna jedna dodatna ivica, ako postoji
komponenta sa (1; l) 2 aug( bi) za neko dijete bi od b, inače su potrebne dvije
dodatne ivice. Sada se može provjeriti sljedeća lema:

Lema 5.2.4 Algoritam Parallel(b) izračunava ispravan skup aug(b) za P-čvor b.

5.2.3 Kruti slučaj

Slučaj u kojem je b R-čvor je teži. Neka je B = skelet(b). Pretpostavimo b Neka


b1;:::;bk u TSP QR. k. Neka je ei =jerub(bi),Bi = relevantan(bi), jer 1 imai Fi1
koji pripada plohama potomke
iAko
Fi2 je
u B.(;)
2 aug(bi) i (; ) 2 aug(bj ), onda se povećavajućevrhova ivice mogu
Bi i Bjdodati
, ako su
između
podijeliti
lice. Ako je = 2 i postoje dvije komponente bj1 ; bj2, sa (1; l) 2 aug(bj1), aug(bj2),
tada možemo dodati i rub između vrha Bi i Bj1 i između ivica (vi;vrha Bi i Bj2.
vj) naziva seDodata
podudarnom ivicom, ako i vi i vj moraju dobiti incidentnu ivicu koja povećava
da bi priznala trikonekciju. Ako samo jedan od njih mora dobiti povećanu
ivicu, tada se (vi; vj) naziva dodatnim rubom. Problem konstruisanja skupa
aug(b) se sada može opisati kao uparivanje vrhova jedan s drugim, koji
odgovaraju skupovima aug(bi) (1 ik). U tu svrhu jedan par (xi; yi) 2 aug(bi) se
xedira za svako dijete bi od b. xi i yi = 1 ili 2,od a bi.
to je
Usklađivanje
označeno sa 1 od
1 od bibi
saili22od
bj znači da je xi (ili yi) = 1, i xj (ili yj ) = 2, a možemo dodati ivice za povećanje
između odgovarajućih vrhova bi i bj da bismo graf učinili tropovezanim. Vrh
ili vrhovi Bi, koji moraju dobiti ivicu u G Bi, označeni su sa vi (u slučaju jedne
povećavajuće ivice) ili sa vi1 i vi2 (u slučaju dvije povećavajuće ivice). Broj
odgovarajućih i dodatnih ivica izračunava se na sljedeći način:

1. Popravi jedan par (xi; yi) 2 aug(bi), 1 i


k. Dodijelite xi Fi1 i yi Fi2, gdje su Fi1 i
Fi2 lica kojima rub(ei) pripada u B. Stoga moraju postojati xi vrhovi
relevantnog(bi) u Fi1 i yi relevantnog(bi) u Fi2, koji mora dobiti povećanu
do G ivicu
relevantnog(bi).

2. U licu je moguće uskladiti:

(a) 1 sa 1: jednom podudarnom


ivicom (b) 1 sa 2: jednom odgovarajućom ivicom,
jednom dodatnom ivicom (c) 2 sa 2 ili sa dve 1: dve
podudarne ivice (d) tri dvojke sa jedna drugoj: tri podudarne ivice
Machine Translated by Google
5.2 Algoritam aproksimacije 67

Za svaki neusklađeni 1, jedan dodatni rub, a za svaki neusklađeni 2, dva dodatna ruba
su obavezne. Problem je sada dodijeliti 1 i 2 licima u takvoj blizini,
da je potreban minimalni broj dodatnih ivica. Zanimljivo, ali i dalje otvoreno
pitanje je odlučiti da li se ovaj problem može riješiti u polinomskom vremenu. Neka
e = rub(b), i neka Fleft i Fright budu lijevo i desno lice e u ugrađivanju
skeleta(roditelj(b)), ako je b 6= korijen(TSP QR). Najmanje jedna ivica mora ići od B do
GB. Ako se svi elementi u Fleft ili Fright podudaraju, onda brisanjem jednog povećanja
ivica u Fleft ili Fright, postoje dva vrha koji mogu dobiti ivicu do G B. Ako postoji
je jedan neusklađeni vrh v 2 lijevo ili uplašeno, onda ivica od v do GB može biti
dodano. Koristeći ova zapažanja, skup aug(b) može se izračunati.
Na slici 5.3 dat je ulazni graf i povećanje. Pretpostavimo da smo x
proizvoljan par (xi; yi) 2 aug(bi) za svaki bi. Bar u optimalnom rješenju
1
2 P 1 ik (xi + yi) ivice za povećanje su potrebne. Dodijelimo sada xi Fi1
i yi Fi2 , i dodajte xi ivice povećanja u Fi1 i yi augmentacijske ivice u Fi2 vrhovima G Bi.
To se može učiniti uz očuvanje planarnosti, a mi dodajemo
P 1 ik(xi + yi) povećavajući ivice, tj. najviše dva puta veći od minimalnog broja.
Ovo vodi do sljedeće leme:

Lema 5.2.5 Postoji linearni vremenski algoritam za povećanje dvopovezanog planara


graf u tropovezani planarni graf dodavanjem najviše dva puta minimuma
potreban broj ivica.

U preostalom dijelu ovog odjeljka predstavljamo algoritam koji radi linearno


3
vrijeme, što najviše dodaje 2 puta minimalni broj povećavajućih ivica.
Ako je aug(bi) = f(1; 1)g ili f(2; 2)g, tada se u oba slučaja dodjeljuje isti broj
na Fi1 i Fi2. Ako jaug(bi)j onda različito 2 ili aug(bi) = f( ; )g, sa 6= ,
brojevi se mogu dodijeliti Fi1 i Fi2. Ideja je da se uzme u obzir ova komponenta bi, sa
(2; ) 2 aug(bi), i dodaju se 2 povećavajuća ivica od relevantnog(bi) u bilo Fi1 ili Fi2 na dva
vrha G pertinent(bi), koji moraju dobiti povećanje rub.
U tu svrhu uvodimo za svako lice F dva skupa, 2set(F) i 1set(F) . Neka
za svaki bi; (i; i) 2 aug(bi) je ovaj par, za koji bi u i + ii je maksimum. Ubacujemo
iset(Fi1) i iset(Fi2), ako je i > 0; i 6= i. > 0. Ubacujemo bi u iset(Fi1) i iset(Fi2),
ako Pretpostavimo da je j set(Fi1 )j 2, i bi 2 set(Fi1) i bj 2 set(Fi1).
Tada možemo dodati ivice između vrhova Bi i Bj u licu Fi1 . Neka je aug(bi) =
f( ; )g, i neka je edge(bi) 2 Fi1 i Fi2 . Koristi se od bi, stoga bi se mora ukloniti
iz set(Fi1) i set(Fi2). Od bi se ne može dodijeliti Fi1, stoga bi mora
biti obrisan iz skupa (Fi1). Neka assign(F) označava skup vrhova, koji se moraju dobiti
povećavajući rub u licu F tada dodajemo , odgovarajuće vrhove bi na
dodijeli(Fi1). Isto se radi i za bj .
Algoritam je sada sljedeći: Prvo inicijaliziramo skupove 1set(F) i 2set(F),
i provjeriti za svaki bi 2 2set(F ), možemo li dodati 2 ivice između relevantnih (bi)
i dva vrha G pertinent(bi), koji moraju dobiti povećanje ivica. U drugom
riječima, pokušavamo spojiti 2 sa 2 ili 2 sa dvije 1. Ovo možemo opisati kao
dato u RigidHigh.
Machine Translated by Google
68 Problem povećanja planarne trikonekcije

RigidHigh(b); za
sva lica F inicijalizirajte 1set(F) i 2set(F) na ; rof; za sve bi do
neka ( i; i) 2 aug(bi), sa
i + i maksimum;
Insert(bi; iset(Fi1)) i Insert(bi; iset(Fi2)), ako je i > 0;
Insert(bi; iset(Fi1)) i Insert(bi; iset(Fi2)), ako je i 6= i i rof; za sva lica i>0
F sa j2set(F )j 2 uradite za sve bi 2 2set(F) dodajte odgovarajuće vrhove
vi1 i vi2 da dodelite(F); ažurirati rof rof 1 i 2 seta; za sva lica F sa
j2set(F )j = 1 i j1set(F)j neka je 2set(F) = fbig, i bj; bk 2 1set(F ) sa j 6=
i i k 6= i; dodati odgovarajuće vrhove vi1 ; vi2 ; vj i vk za dodjelu(F);
ažurirati rof 1 i 2 seta;

2 do

End RigidHigh

Pretpostavimo da nakon RigidHigh(b), 2 od bi nije uparen, tj. bi 2 2set(Fi1) i bi 2 2set(Fi2).


Ovo implicira da postoji najviše jedan vrh u Fi1 (ili u Fi2 ) kojem možemo dodati ivicu iz
relevantnog (bi). Ovo dovodi do najmanje jedne dodatne ivice za bi. Međutim, ako je
inicijalno jaug(bi)j 2, onda mijenjamo aug(bi) u f(1; aug(bi).
0)g iliNakon
f(1; 1)g,
oveako
promjene,
ovaj par pripada
moramo
dodati najviše jednu ivicu od relevantnog(bi) u Fi1 ili Fi2. Ažuriramo odgovarajući
2set(Fi1); 1 set(Fi1); 2set(Fi2) i 1set(Fi2). Cilj je spojiti 2 sa 1, inače se 1 poklapa sa 1, sve
dok više nije moguće podudaranje.

RigidLow(b);
dok nemaju sva lica F j2set(F )j + j1set(F )j < 2 ako je j2set(F )j
= 1 i j1set(F )j = 1 onda
neka je 2set(F ) = fbig, a bj 2 1set(F) sa j 6= i; dodati
odgovarajuće vrhove vi1 ; vi2 i vj za dodjelu(F ) else neka
bi; bj 2 1 set(F); j 6= i; dodajte odgovarajuće vrhove vi i vj u
assign(F); ažuriranje od 1seta i 2seta; za svaki 2set(F) =
fbig ili 1set(F) = fbig dodajte odgovarajuće vrhove za
dodjelu(F); ažurirati rof 1 i 2 seta;

Kraj RigidLow
Machine Translated by Google
5.2 Algoritam aproksimacije 69

Neka assign(F ) = fv1;:::;vkg, u smjeru kazaljke na satu oko lica F. Dodavanje ivica povećanja u
F bez uvođenja križanja vrši se na sljedeći način: ako par
vrhovi vi; vi+1 pripadaju istom Bj , u F . Neka sa roditeljem(bj) = b, tada dodajemo (vi+1; vi+2)
nakon prenumeracije v1;:::;vk0 budu preostali vrhovi u smjeru kazaljke na satu
oko F koji mora dobiti ivicu povećanja (sa k0 k). Zatim dodajemo
k0
ivice (v2i1; v2i), jer je 1 neparan,i tadabje
0
potreban
2 c. Ako je k jedan dodatni rub
za vrh vk0 . Ako je k = 2 i v1; v2 pripada istom Bi onda je dodatni rub ,
potrebno i za v1 i za v2. Primjena ovog pristupa dovodi do maksimalnog broja
augmentacijskih ivica u F , datim vrhovima u assign(F ).

b
B1 B3
B2

B4
B5
bbbbbbb B6
1234567

aug(b)1 = {(1,0)}
aug(b)2 = {(1,0)}
aug(b)3 = {(2,1)} B7
aug(b)4 = {(1,0)}
aug(b)
5
= {(2,0)}
aug(b)6 = {(1,0)}
aug(b) = {(1,0)} aug(b) = {(2,0)}
7

Slika 5.3: Primjena Rigid(b).

Neka Rigid(b) označava algoritam koji se sastoji od RigidHigh(b), RigidLow(b),


i dodavanjem odgovarajućih ivica u lica skeleta(b). Da bismo dokazali omjer aproksimacije
algoritma Rigid(b), koristimo sljedeću lemu:

Lema 5.2.6 Možemo dodijeliti svaku dodatnu ivicu, koja je potrebna primjenom Rigid(b) i
nije potrebno u optimalnom rješenju, do jedinstvenog vrha, krajnje tačke odgovarajuće ivice
u Rigid(b).

Dokaz: Pregledajte bi s neusporedivom 2 u krutom(b), koja se podudara u


optimalno rešenje. Ako je 2 od bi upareno sa 2 od bj , od bj je zatim u Rigid(b) 2
upareno na drugom licu, stoga dodjeljujemo dva dodatna ruba bi na
dva odgovarajuća podudarna vrha vj1 ; vj2 od bj . Ako je 2 od bi upareno sa dva
1, recimo od bj i bk drugih, tada se u Rigid(b) 1 od bj i 1 od bk poklapaju u
lica, stoga dodjeljujemo dva dodatna ruba bi odgovarajućim vrhovima
vj i vk.
Machine Translated by Google
70 Problem povećanja planarne trikonekcije

Pregledajte bi sa 2. Pretpostavimo da je ovo 2 upareno sa 1 u Rigid(b). Ako ovo 2


od bi je upareno sa 2 od bj u optimalnom rješenju, tada je 2 od bj upareno
u drugom licu. Dodjeljujemo jednu dodatnu ivicu od bi jednom vrhu vj1 od bj. Pretpostavimo da
2 od bi je uparen sa dvije 1 u Rigid(b), recimo od bj i bk. bj i bk
u početku podijeliti F. Ne mogu sada oboje biti bez premca, jer tada možemo parirati
bj sa bk u licu F . Pretpostavimo da je bj uparen, tada dodjeljujemo dodatni rub bi
vj . Pretpostavimo na kraju da je 1 od bi neuparen, dok je uparen sa 1, recimo
od bj , u optimalnom rješenju. Ali sada je opet bj uparen, inače 1 od bj
je uparen sa bi, stoga je dodatni rub bi dodijeljen vj . 2

3
Lema 5.2.7 Kruta(b) dodaje najviše dobijenu 2 puta minimalni broj ivica do
trikonektivnost.

Dokaz: Možemo dodijeliti svaku dodatnu ivicu krajnjoj tački odgovarajuće ivice. Ako
postoji k odgovarajućih ivica, onda postoji najviše 2k dodatnih ivica. Ovo implicira
2k vrhova, krajnje tačke podudarnih ivica i 2k vrhova, krajnje tačke dodatnih ivica,
koji mora dobiti ivicu povećanja. U optimalnom rješenju, svaki od ovih 4k
vrhovi odgovaraju krajnjoj tački odgovarajućeg ili dodatnog ruba, stoga postoje
najmanje 2k rubova se dodaje u optimalno rješenje. Pošto sada imamo 2k viška
rubova i k podudarnih ivica, au optimalnom rješenju dodano najmanje 2k rubova,
3
ovo daje omjer performansi od . 2
2

Lema 5.2.8 Algoritam Rigid(b) se može implementirati da radi u O(nB) vremenu, sa


nB broj vrhova u skeletu(b).

Dokaz: Inicijalizacija i konstruisanje skupova 1set(F) i 2set(F) se može uraditi


u O(nB) vremenu, jer možemo konstruirati ugrađivanje planarnog grafa u O(nB)
vrijeme [12], a vrijeme za ažuriranje 1set(F ) i 2set(F) je O(1) za svako dijete bi
od b u TSP QR. Svaki bi pripada najviše 4 seta. Koristimo unakrsne pokazivače između bi
i set(F), ako je bi 2 set(F). Koristeći ove pokazivače možemo ažurirati 1set's and
2set je u konstantnom vremenu, nakon odabira bi i bj za podudaranje. Nakon izgradnje
skupove assign(F ) možemo izračunati podudarne ivice u O(jassign(F )j) vremenu, za
svako lice F. 2

Leme ovog odjeljka vode do glavnog rezultata ovog odjeljka:

Teorema 5.2.9 Algoritam Triconnect(G) povećava u linearnom vremenu dvopovezani planarni graf na
3
tropovezani planarni graf, koji najviše puta dodaje 2
minimalno potreban broj ivica.
Machine Translated by Google
5.3 Trikonekcija uz minimiziranje maksimalnog stepena 71

5.3 Trostruko povezivanje uz minimiziranje maksimalnog stepena

U ovom odeljku fokusiramo našu pažnju na problem tripovezivanja planarnog grafa uz


minimiziranje maksimalnog stepena. Razmotrimo prvo povećanje stepena svakog vrha u
algoritmu Triconnect(G) kako je opisano u Odjeljku 5.2. Opet razlikujemo podudarne ivice i
dodatne ivice kao što je navedeno u Odjeljku 5.2.
Ako je (vi; vj) dodatna ivica, tada vi dobija dodatnu upadnu ivicu, dok vi nije potrebna dodatna
ivica da bi se postigla trikonekcija. Zaista, vi može dobiti nekoliko incidentnih dodatnih rubova.
(Primijetite da svaki vrh dobije najviše jedan incidentni podudarni rub.)
Budimo oprezniji u vezi ovoga. Provjeravamo različite tipove čvora b u SPQR stablu: Ako je
b S-čvor, onda se ne dodaje dodatna ivica. Ako je b P-čvor, tada se dodaje dodatni rub između
tropovezanih komponenti Bj i Bj+1, ako je u 6= optimalna permutacija Bj i Bj+1 dodijeljena Fj,
pri čemu
između Bj i Bj+1. Ako je = 1 i = 1, onda je povećanje deg(v) odgovarajućih vrhova jedan.jeAko
2, ondaFj bj
lice
je =
nije list u TSP QR i, prema tome, ima potomke, recimo bj1 i bj2. Neka je Bj1 = relevantan(bj1) i
Bj2 = relevantan(bj2).

Obojica moraju dobiti prednost do G Bj . Ali možemo dodati ivicu između Bj1 i Bj2 u lice Fj, i
dodati ivicu od proizvoljnog
deg(vj1) ili Bj1
deg(vj2)
ili Bj2povećava
u G Bj. Ako
za su
dva.
Bj1Sličan
i Bj2 samo
argument
vrhovi
slijedi
stepena
kada2,jetada
= 2. Stoga
se
je povećanje za sve vrhove, koji primaju incidentne ivice u paraleli(b) najviše 2. U preostalom
dijelu ovog odjeljka fokusiramo našu pažnju na slučaj u kojem je b R-čvor .

Neka je b R-čvor. Potrebne su dodatne ivice u licu F, kada je j2set(F)j = 1 ili j1set(F)j = 1,
recimo 2set(F) = fbjg. Ovo opet implicira da bj nije list u TSP QR.
Neka su bj1 i bj2 potomci od bj tako da Bj1 i Bj2 moraju dobiti rubove u G Bj .
,
Možemo dodati ivicu između Bj1 i Bj2 u licu F, a ivica od proizvoljnog Bj1 ili Bj2 u G Bj čini Bj
trokonektivnim. Ako je F trokut u B na vrhovima u; v; w, i u i v su polovi Bj , tada povećavajuća
ivica od Bi1 ili Bi2 do G Bj ide na w. w prima najviše
deg(w)
jednu
plohama,
dodatnu
w može
ivicu uprimiti
licu F. deg(w)
Pošto w pripada
povećavajuće ivice. Pošto je početni graf bikonektan, deg(w) 2. Ovim se završava sljedeća lema.

Lema 5.3.1. Trokonekcija(G) trikonektuje u linearnom vremenu dvopovezani planarni graf G na


3
trokoneni planarni graf G0 dodavanjem najviše puta minimalnog broja2ivica
(G).tako da je (G0) 2

Ideja u ovom odeljku je da se algoritam Triconnect(G) malo promeni tako da za tropovezani


3
planarni graf G0, (G0) d2 (G)e drži. Ovdje moramo uzeti
u obzir samo slučaj da je b R-čvor, jer u svim ostalim slučajevima svaki vrh prima najviše dva
ruba. Neka je bj dijete od b, sa aug(bj ) = f( j ; j )g. Neka i pretpostavimo da (sj ; tj ) 2 Fj1 i Fj2 u B.
Mora sj ; tj biti polovi bj ,
Machine Translated by Google
72 Problem povećanja planarne trikonekcije

uvijek ide barem jedan rub od Bj do G Bj . Razlikujemo dva slučaja za


dodatne ivice:

1. U Rigid(b) odgovarajuća ivica, recimo (vj ; v0 ), ide od Bj do GBj . Ako je j+j > 1,
j tada su potrebne dodatne ivice u Bj . Ali ako je j + j > 1, onda bj nije list u
0
TSP QR. Neka b biti potomak bj u TSP QR, koji mora dobiti ivicu incidenta
do GBj . Nije teško dodati ovu ivicu, recimo (v0; w0) tako da je v0 2 B0 i
w0 2 Bj B0. Ovo radimo za sve vrhove u Bi, koji moraju dobiti povećanje
ivica do G Bj . To možemo učiniti tako da Bj postane tropovezan, jer
postoji ivica (vj ; v0 ) do G Bj .

j Stoga nema dodatnih ivica od Bj do G Bj .

2. U Rigid(b) se ne dodaju podudarne ivice između Bj i GBj. Tada j+j


dodatni rubovi između Bj i G Bj su potrebni u Triconnect(G). Slično
kao što je opisano ranije, dodajemoj +1jdodatni rub sa obje krajnje tačke u Bj ,
tako da dodavanje jedne dodatne ivice od Bj do G Bj čini Bj tropovezanim.

Ovaj pristup primjenjujemo na svu djecu vrha b u TSP QR. Nakon ovoga, postoje
djeca bj od b u TSP QR, koja moraju primiti jednu dodatnu ivicu od Bj do G Bj . Neka
Fi1 i Fi2 su trouglovi, recimo na vrhovima sj; tj ; vj1 i sj ; tj ; vj2 . vj1 ili vj2 moraju
dobiti povećanu ivicu. Cilj je do ivica tako da deg(vj1 ) i deg(vj2) rade
ne povećavati previše. Ovdje je graf H konstruiran na sljedeći način:
Svako lice F 2 B je predstavljeno f-temom vF u H, a svako bi je predstavljeno b-temom vbi u H,
ako Bi mora dobiti jednu povećanu ivicu od Bi do
G Bi. Dodamo ivicu (vF ; vbi) na H, i ei 2 F u ugrađivanje B. Brišemo
svi izolovani f -vrhovi iz H. Ovo vodi do bipartitnog planarnog grafa H na b- i
f - vrhovi. Sada izračunavamo podskup bridova M EH tako da je svaki b-vrh bj
ima jedan incidentni rub (bj ; ui) 2 M, a f -vrh ima što je manje moguće incidenta
ivice u M. Rub (vF ; vbi ) 2 M implicira da dodamo brid iz Bi u G Bi
u lice F. Ako je F trokut u B, onda postoji samo jedan vrh v 2 F sa v 62 Bi, ,
jer su druga dva vrha u F polovi Bi.
M je konstruisan na sljedeći način: Koristeći jednostavnu modifikaciju Eulersove tehnike za
i Eulerov ciklus u grafu, elementarni ciklusi Celem su izvučeni iz H.
Elementarni ciklus je ciklus koji koristi svaku ivicu najviše jednom. Tako H Celem
sastoji se od putanja P sa nesrodnim početnim i krajnjim tačkama (vidi sliku 5.4(b)). Od
svakom ciklusu Celem Celema i svakoj putanji P dodajemo naizmjenično jednu ivicu M
a jedno ne. Podsjetimo da je H bipartitan i da b-temena imaju stepen 2. Dakle za
svaki vrh u Celemu i svaki unutrašnji vrh puta P jedan incidentni rub ,je u M
a drugi nije. Ali isto tako za svaki b-tem, tačno jedan incidentni rub je u M,
dakle zadovoljavanje ograničenja (vidi sliku 5.4(c)). Za svaki vrh v 2 H, najviše
degH(v)
d 2 Susjedi su u M. Ovo zapažanje dovršava sljedeću teoremu:

Teorema 5.3.2 Algoritam Triconnect(G) povećava dvopovezani planarni graf


3
G na tropovezani planarni graf G0 u linearnom vremenu dodavanjem najviše puta 2
3
minimalni broj ivica, takav da (G0) maxf2; d 2 (G) npr.
Machine Translated by Google

5.3 Trikonekcija uz minimiziranje maksimalnog stepena 73

(a) primjer H sa (b) Elementarni ciklusi (c) Skup M ivica.


bijeli i crni vrhovi i nepovezane staze

Slika 5.4: Konstrukcija H i M.

Ova granica u odnosu na maksimalni stepen odgovara donjoj granici, kao


navedeno u sljedećoj teoremi:

Teorema 5.3.3 Za svako > 3 postoji dvopovezan planarni graf G sa


3
svojstvo da za svaki tropovezani planarni graf G0; G G0: (G0) d (G)e. 2

Dokaz: Neka je = (G) 4. Konstruirajte graf G koji se sastoji od dva vrha


A i B, i 2 Postoji ivica (pi; pi+1) za 0 1 vrhova p0;:::;p2 2. i <
2. Postoje ivice (A; pi) i (B; pi), za i par i 0 i 2 2. Za 2
neparan (implicira 5), umetnut je poseban vrh C sa ivicama (p0; C) i
(C; p2 2). Vidi sliku 5.5.
i sa vrhovima
0
U svakom licu Fi sa vrhovima pi ; pi+1; pi+2 ; A i u svakom licu F
pi ; pi+1; pi+2; B, mora se dodati jedan dodatni rub (sa i paran). Kada dodamo ivicu
0
(pi ; pi+2) u Fi, tada se ivica (pi+1; B) mora dodati u F i. Pošto ih ima 1
lica Fi, to znači da je ukupno povećanje stepena A i B 1. Ako je neparno, onda dodatni rub mora ići
od C do A ili B. Otuda stepen A
ili B se povećava za najmanje d e. 2
2

Koristićemo algoritam Triconnect u poglavlju 6 da trianguliramo planar


graf uz minimiziranje maksimalnog stepena.
Machine Translated by Google
74 Problem povećanja planarne trikonekcije

str 0 2 p
4
str
6
str
8

Slika 5.5: Ilustracija teoreme 5.3.3.


Machine Translated by Google

Poglavlje 6

Triangulacioni planarni grafovi

U ovom poglavlju razmatramo problem triangulacije planarnih grafova. Planarni


graf je trouglasti (ili trianguliran ili maksimalno ravan) kada svako lice ima tačno
tri vrha. Ako planarni graf nije trouglast, onda postoji lice F koje ima najmanje
četiri različita vrha, recimo v1; v2; v3; v4 ovim redoslijedom oko lica. Prema
ograničenjima planarnosti slijedi da je (v1; v3) 62 G ili (v2; v4) 62 G. Dodavanje ruba
koji nedostaje u licu F i ponavljanje ovog argumenta za sva lica koja nisu trouglovi
vodi do trouglastog planarnog grafa. Jednostavni i elegantni linearni vremenski
algoritmi zasnovani na ovoj ideji su dokumentovani u literaturi. U ovom odeljku
skiciramo dva pristupa i predstavljamo novi algoritam za triangulaciju planarnih
grafova, zasnovan na kanonskom uređenju uvedenom u Odeljku 2.5. Pretpostavimo
da je G dvopovezan planarni graf (inače možemo koristiti algoritam povećanja, opisan u poglavlju 4.
Neka je dato proizvoljno planarno ugrađivanje od G.
Prvi algoritam je zaslužan za Read [92], a modificirao ga je De Fraysseix tako
da radi u linearnom prostoru. Može se opisati na sljedeći način: posjetiti sve vrhove
G. Za svaki par uzastopnih susjeda u; w trenutno posjećenog vrha v, dodajte (u; w)
G ako w nije susjedno v u adj(u). Ovo daje trokut na vrhovima u; w; v. Primjena
ovoga na sve vrhove vodi do trianguliranog planarnog grafa G0 koji, međutim,
može sadržavati više rubova. Neka u G0 postoji k ivica (u; w). Uklanjanje jedne ivice
(u; w) vodi do lica F sa četiri vrha, recimo v; u; v0; w, a po planarnosti, (v; v0) 62 G0.
Zamjena (u; w) sa (v; v0) u F uklanja jednu višestruku ivicu. Višestruke ivice se mogu
detektovati bucketsort [1]. Zamjena svake ivice zahtijeva konstantno vrijeme, stoga ovo
dovodi do linearnog vremena, linearnog algoritma za triangulaciju prostora.
Hagerup & Uhrig [44] su promijenili ovaj algoritam tako da više ivica nije
uvedeno u G0 uopće. Ovo se dobija označavanjem suseda temena v, koji trenutno
posećujemo u algoritmu. Obraditi lica koja upadaju na v. Za svako takvo lice F sa
graničnim vrhovima v = u1; u2;:::;gore radimo: ako je p = 3, onda je F trokut. U
suprotnom, ako u3 nije označeno, dodajte ivicu (u1; u3), označite u3 i nastavite sa
triangulacijom lica sa graničnim vrhovima u1; u3; u4;:::;gore. Pošto u3 nije
označeno, (u1; u3) 62 G, pa se tako dodavanjem (u1; u3) ne uvodi višestruka ivica.
Ako je u3 označeno, onda (u1; u3) 2 G, a prema ograničenjima planarnosti, (u2; u4) 62 G.

75
Machine Translated by Google
76 Triangulacioni planarni grafovi

Dodajte ivicu (u2; u4) i nastavite sa triangulacijom lica sa graničnim vrhovima


u1; u2; u4; u5;:::;gore. Kada se obiđu sve incidentne površine v, uklanjamo oznake susjeda
v. Nakon obilaska svih vrhova G, dobija se planarni trouglasti graf
[44].
U ovom odeljku predstavljen je još jedan jednostavan algoritam linearne vremenske triangulacije.
Ovaj algoritam ima zanimljivu nuspojavu da direktno izračunava kanonik
poredak za trokutaste planarne grafove, kao što je denisano u [34]. Radi potpunosti, ponavljamo
evo ove teoreme:

Teorema 6.0.4 Neka je G trouglasti planarni graf ugrađen u ravan sa


outerface u; v; w. Postoji poredak vrhova v1 = u; v2 = v; v3;:::;vn =
w ispunjavanje sljedećih zahtjeva za svaki k; 4 k n.

1. Podgraf Gk1 G induciran sa v1; v2;:::;vk1 je dvopovezan, a


granica njegove vanjske površine je ciklus Ck1 koji sadrži ivicu (u; v);

2. vk je na vanjskoj strani Gk , a njegovi susjedi u Gk1 formiraju (najmanje 2-


elementa) podintervalu na stazi Ck1 (u; v).

Pretpostavimo da je G bipovezan i neka je dato planarno ugrađivanje od G. Praćenje


ideja teoreme 6.0.4 počinjemo s rubom (v1; v2) i dodajemo vrh vk u svaki
korak k; 3 kn, tako da možemo konstruirati Gk s trianguliranim svim unutarnjim plohama.
U tu svrhu tražimo vrh vk takav da su svi susjedi vl sa l<k uključeni
Ck1. Rubove (v ; v) sa <k odlazećim ivicama u koraku k nazivamo, tj
izlazne ivice su ivice od vrhova na vanjskoj površini Ck1 do G Gk1. Neka i
biti što manji i j biti što je moguće veći tako da (vk ; ci) i (vk; cj ) 2 G, sa
ci i cj koji pripadaju vanjskoj površini Ck1 : c1; c2;:::;cr . Ako je j>i, onda svi vrhovi
ci+1;:::;cj1 možda nema izlazne ivice do vrhova vl sa l>k. Dodamo ivice
od ci+1;:::;cj1 do vk, ako ove ivice već nisu prisutne. Ako je j = i, onda mi
pretpostavimo da je vk konsekutivno na ci1 ili ci+1 u adj(ci). Možemo dodati ivicu iz ci1
ili ci+1 do vk uz očuvanje planarnosti. Ako su sva unutrašnja lica u Gk1 triangulirana,
onda slijedi da su sva lica u Gk također triangulirana. Mi zovemo ci levi vrh
od vk i cj desni vrh vk . Vrhovi ci+1;:::;cj1 nazivaju se unutrašnjim
vrhovima. Pretpostavimo da vk ima ivice vrhova vl sa l>k. Vrh nazivamo vl;l> k, pri čemu je
vl uzastopno na ci (do cj ) u adj(vk) leftup(vk) (rightup(vk), respektivno). Ako
vk ima samo jednog susjeda vl sa l>k, tada lijevo gore(vk ) = desno gore(vk). Ako vk nema
susjedi vl sa l>k, tada leftup(vk) = nil i rightup(vk) = nil.
Za algoritam uvodimo povezanu listu, koja se zove Readlist, koja ih sadrži
vrhova, koji mogu biti sljedeći u redoslijedu triangulacije. Također uvodimo dvije varijable
za svaki vrh vk u G: old(vk), označavajući broj vrhova
vl sa l<k, i visit(vk). Povećavamo posjetu (vk) za jedan, ako postoji par vrhova c sa desnim
gore(c ) =; con
vk, lijevo
Ck gore(c)
, = vk i svim vrhovima c na Ck,
<< , nemaju izlazne ivice. Tvrdimo da ako je to slučaj, onda c
Machine Translated by Google

Triangulacioni planarni grafovi 77

i briga uzastopna u adj(vk). Pretpostavimo da ne, dakle postoji barem jedan susjed
od vk, recimo w, između c i cin adj(vk). w nije dio Ck, pošto svi vrhovi c na Ck nemaju
< <Dakle,, ne
izlazne, ivice. postoji
G fvg put od wšto
nepovezan, dojec u
osim preko v. sa
suprotnosti Ovo dovodi doda
činjenicom toga
je Gda je
bipovezan.

Koristimo varijable old(v) i visit(v) da odredimo da li postoji tačno jedan uzastopni


niz susjeda nižeg broja u adj(v), što je slučaj kada old(v) = visit(v) + 1. Algoritam
CanonicalTriangulate sada se može opisati na sljedeći način:

CanonicalTriangulate(G);
inicijalizirati old(v) i visit(v) na 0 za sve v 2 G;
počnite s rubom (v1; v2); povećati old(v) za
jedan, za sve susjede v1 i za sve susjede od v2; dodajte rightup(v1) i
leftup(v2) na listu spremnih; za k := 3 do n do

brisanje proizvoljnog vrha vk sa liste


spremnih; za sve susede vl;l> k od vk
obriši vl sa liste spremnosti (ako postoji); old(vl) := old(vl)
+1 rof; neka je ci levi vrh i cj desni vrh vk; ako je vk = leftup(ci)
i i = j i ci 6= v1 onda j := i; i := i
1
inače ako je vk = rightup(ci) i i = j i cj 6= v2 onda i := j; j := j + 1; dok
old(ci) = deg(ci) i ci 6= v1 do i := i 1 od; dok old(cj ) do
= deg(cj)
j := j + i1cjod;
6= v2
dodajte rubove od ci;:::;cj u vk (ako već nije prisutan); neka cl = desno
gore(ci) i cr = lijevo gore(cj); if old(vk) = deg(vk) onda ako je cl = cr
onda visit(cl) := visit(cl)+1 else

ako je cl = leftup(vk) onda visit(cl) := visit(cl) + 1;


ako je cr = rightup(vk) onda visit(cr) := visit(cr) + 1;
ako je old(cl) = visit(cl)+1 onda dodajte cl na listu spremnih;
ako je old(cr) = visit(cr)+1 onda dodajte cr na listu spremnih
rof;
Kraj CanonicalTriangulate

Pogledajte sliku 6.1 za ilustrirajući primjer. Da bismo dokazali da ovaj algoritam zaista
radi, potrebna nam je sljedeća lema:

Lema 6.0.5 spremna lista nije prazna na početku koraka k; 3 k n.

Dokaz: Početni graf je dvopovezan, stoga u svakom koraku k postoje najmanje


dva vrha na Ck1, koji imaju ivice vrhova izvan Gk1. Ako postoji vrh
Machine Translated by Google
78 Triangulacioni planarni grafovi

desno gore(v )
lijevo gore(v )
k
k
v
k

desni vrh
leftvertex c
c j
i Gk 1

v v
1 2

Slika 6.1: Triangulacija planarnog grafa dok se računa kanonski poredak.

v 2 G Gk1 sa v = lijevo gore(c) ili v = desno gore(c) za neki c na Ck1, i


old(v) = 1, a zatim po odbijanju posjete, visit(v) = 0. Stoga možemo izabrati vk = v.
Pretpostavimo dalje da je za svaki vrh v, sa v = lijevo gore(c ) ili v = desno gore(c ) za
neki c na Ck1, taj old(v) > 1.
Razmotrimo sada ovaj par vrhova c minimalan, ; con Ck1 (>v =) sa
rightup(c) i (c; v) 2 G, ali nije uzastopno sa c u adj(v). Bikonektivnošću
od G slijedi da postoji barem jedan izlazni rub na Ck1 između odlaznog
ivice (c ; v) i (c; v). Neka je (c ; v0) takva ivica, sa v0 = lijevo gore(c ) i
< . Po deniciji v0 6= v. Po planarnosti, v0 nema susjeda c na Ck1, ili >.
sa Pretpostavili smo old(v0) > 1, tako da v0 ima susjeda c sa ,
< . Ali minimalnošću na Ck1 slijedi da su svi susjedi v
0

formiraju uzastopni niz u adj(v0). Stoga možemo izabrati vk = v0. 2

Lema 6.0.6 Redoslijed u kojem se vrhovi dodaju je kanonski poredak.

Dokaz: U svakom koraku k nakon povećanja, vk ima ivice do vrhova ci;:::;cj


na Ck1. Ako je i = j, onda po algoritmu vk = lijevo gore(ci) ili vk = desno gore(ci), jer
dodaju se samo vrhovi, koji su desno gore(ci) ili lijevo gore(cj). Ako je vk = lijevo gore(ci) onda
ci 6= vk, a ako je vk = rightup(ci), onda je ci 6= v2. Dakle, nakon povećanja j>i
drži, a vk ima ivice na ci; ci+1;:::;cj . vk postaje dio Ck i prima at
najmanje jedan rub u vrh vl sa l>k, ako je k<n. Ovo tačno odgovara
kanonsko uređenje de Fraysseixa, Pach&Pollacka [34], kako je predstavljeno u Teoremi
6.0.4. 2

Teorema 6.0.7 Algoritam CanonicalTriangulate(G) triangulira u linearnom vremenu


dvopovezani planarni graf, dok izračunava kanonski poredak.

Dokaz: Slijedi ispravnost algoritma i kanonski poredak


iz prethodnih lema. Moramo samo dokazati da radi u linearnom vremenu. Ali
ovo slijedi direktno, uvođenjem povezane liste za održavanje Ck1 u svakom koraku,
Machine Translated by Google
6.1 NP-potpunost 79

i korištenjem pokazivača lijevo gore(v), desno gore(v) i brojača old(v) i posjet(v) za


svaki vrh v. 2

Algoritam CanonicalTriangulate je dobar i jednostavan metod za izračunavanje


kanonskog reda grafa dok se graf triangulira. Možemo koristiti ovaj algoritam kao
prvi korak za crtanje planarnog grafa planarnog sa pravim linijama na (n 2) (n 2) mreži
(pogledajte Odjeljak 10.2.1), ili za izračunavanje prikaza vidljivosti (vidi Odjeljak 10.4).

Nažalost, svi gore spomenuti algoritmi triangulacije ne trianguliraju planarni graf


tako da je maksimalni stepen minimalan. Preostali dio ovog rada posvećen je ovom
problemu. Pokazujemo da je problem odlučivanja da li se dvopovezani planarni graf
može triangulirati tako da je maksimalni stepen najviše K NP-potpun. Predstavljen je
aproksimacijski algoritam koji radi samo aditivnu konstantu od optimalne, kada je
ulazni graf trokonektan, i samo aditivnu konstantu od egzistencijalne donje granice,
kada je ulazni graf bikonektan.

6.1 NP-potpunost

U ovom dijelu dokazujemo sljedeću teoremu:

Teorema 6.1.1 Problem odlučivanja da li se dvopovezani planarni graf može


triangulirati tako da je maksimalni stepen K NP-potpun.

Dokaz: Problem je u NP: pogodite 3n 6 m dodatnih rubova i testirajte


polinomsko vrijeme da li je G ravan i ima maksimalni stepen K.
Da bismo dokazali NP-tvrdoću koristimo redukciju iz problema 3 bojenja za
tropovezane planarne grafove. Dobro je poznato da je odluka o tome da li se planarni
graf može obojiti s tri boje tako da svaki par susjednih vrhova ima različite boje NP-
potpuna [39]. Dokaz u [39] može se modificirati tako da NP-potpunost problema 3
bojenja također slijedi za tropovezane planarne grafove. Ovdje izostavljamo detalje.
Neka su dati tropovezani planarni graf G i konstanta K koja je 7 puta veća od broja
vrhova najvećeg lica u G. G ima jedinstveno ugrađivanje. Neka je G dualni graf G:
svaki vrh G odgovara licu G i postoji ivica između dva vrha u G ako i samo ako
odgovarajuća lica u G dijele ivicu. G je tropovezan i ravan. Mi kako ,slijedi:
(a; b) 2
svaka
G je ivica
zamijenjena promjenom grafa G u graf G tri komponente A1; A3; A5 i dva vrha c; d sa
Konstruiramo Ai (i = 1; 3; 5) tako da1 su
ivicama
sve unutrašnje
na a i b kao
površine
što je prikazano
trokuti i da
nasvi
slici 6.2(a).
unutrašnji vrhovi (vrhovi koji ne pripadaju vanjskoj površini Ai) imaju stepen K.
Vanjska površina Ai se sastoji na svakoj strani a i b od i uzastopni vrhovi stepena K 1,
recimo v1;:::;vi na jednoj strani i w1;:::;wi na drugoj strani. stepena K 1. Svaka strana
takođe sadrži vrh stepena K i 2, recimo v i w.
Machine Translated by Google
80 Triangulacioni planarni grafovi

a
a

c d d c
A5 A A9 A1 A5
A9
1

F'

(a) Zamjena ivice (a; b) (b) Svaka komponenta u F mora


u G. imaju istu orijentaciju.

F F

(c) Svako lice mora imati isto (d) Ako se lice F sastoji od jednog tipa
vrsta komponenti. komponenti, zatim triangulacija
od F postoji sa stepenom K.

Slika 6.2: Slike za dokaz NP-potpunosti.

v i w su susedni sa a i b, i sa v1;:::;vi i w1;:::;wi, respektivno. Mi


povećajte komponente tako da vrhovi a i b imaju stepen K. Vidi sliku
6.2(a), gdje tačkasta područja impliciraju triangulirane komponente A1; A3; A5, dakle
u njemu se nalaze dodatne ivice koje nisu prikazane na slici. Nije teško pronaći
precizne konstrukcije za A1; A3; A5, iako malo zamoran. Izostavljamo precizno
izgradnja. Primijetite da vrh a (i b) prima najmanje dvije incidentne ivice od
svaka komponenta Ai. a takođe ima upadne ivice na c i d i nema ivice (a; b)
u G 1 Dakle (G 1) 7 (G).
Dodamo vrhove unutar nekih Ai-komponenti sa ivicama na a i b u takvom pravcu
da je stepen svih vrhova a i b 2 G K u G 1 i stepen drugog
Machine Translated by Google
6.1 NP-potpunost 81

vanjski vrhovi Ai-komponenti se ne mijenjaju. Vrhove nazivamo v 2 G 1

sa deg(v) < K 1 bijela, sa deg(v) = K 1 siva i sa deg(v) = K crna,


te su u skladu s tim nacrtani na slici 6.2. Zapazite da su vrhovi G su
crno u G i ostali vrhovi u G 1 u početku su sive ili bijele. Pretpostavimo da G ima

1 triangulacija sa maksimalnim stepenom K. Popravite takvu triangulaciju i konstruirajte


planarno ugrađivanje trianguliranog grafa.

Lema 6.1.2 Između svake dvije komponente Ai; Aj sa zajedničkim vrhovima a; b


mora postojati vrh c ili d.

Dokaz: Pretpostavimo da nije, tj. postoje dvije komponente Ai; Aj , uz svaki


drugo između dva vrha a i b u G 1. Neka je F lice između Ai i Aj. Ako

,
postoje dva siva vrha susedna a ili b u F, a zatim jedan od ovih sivih vrhova
mora dobiti dvije dodatne ivice po triangulacijama, stoga će dobiti stepen > K, što
nije dozvoljeno. Dakle, pretpostavimo da se pored a i b nalaze bijela i siva
vertex. Ako želimo triangulirati F tako da svaki vrh ima stepen K, onda
svaki uzastopni niz sivih vrhova mora dovesti incidentne ivice do zajedničkog
bijeli vrh. Neka v; w su bijeli vrhovi i v1;:::;vi, w1;:::;wj sivi
vrhovima F1. Neka je j>i, tada moramo dodijeliti i+ 2 ivice između v i w1;:::;wi+2
i i ivice moraju biti dodijeljene između w i v1;:::;vi. Nakon ovog zadatka, v
i wi+2 su oba crna. Pošto je ji + 2, F nije potpuno trianguliran. Ali v
,
i wi+2 su sada susjedi u F i jedan od njih mora dobiti dodatnu granicu incidenta.
Ovo je u suprotnosti s pretpostavkom da možemo triangulirati F tako da je maksimum
stepen je K. Dakle, između svake dvije komponente Ai; Aj vrhova a i b, tamo
mora biti vrh c ili d. 2

To znači da je za svaki rub (a; b) 2 G , pripada licima F1; F2, imamo


dodijeliti jednu Ai-komponentu od a; b do F1 i jedna Aj -komponenta a; b do F2, sa
i 6= j. Dodjeljivanje Ai F1 znači da konstruiramo planarno ugrađivanje tako da je
vanjski vrhovi Ai na jednoj strani između a i b pripadaju licu F1. Triangulacija
lica F kojima pripadaju
, c i d, mogu se jednostavno uraditi dodavanjem ivica od
vrh c ili d na sve ostale vrhove lica F.

Lema 6.1.3 Za svako lice F 2 G 1 može se dodijeliti samo jedna komponenta tipa Ai
do F.

Dokaz: Pretpostavimo da možemo triangulirati lice F sa različitim komponentama Ai; Aj


koji mu je dodijeljen, tako da je maksimalni stepen i dalje K. Prvo primjećujemo da svaki
crni vrh v 2 F možda neće dobiti incidentnu ivicu povećanja, stoga mora doći
ivica između njegova dva susjeda v1; v2 2 F . Budući da za bilo koju triangulaciju, v1 ili v2
mora dobiti ukupno najmanje dvije povećavajuće ivice, jedna od njih mora biti bijela. Ovo
znači da svaka komponenta u F mora imati istu orijentaciju, tj. prilikom hodanja
oko F posjećujemo naizmjenično crni vrh, bijeli vrh i niz od
sivi vrhovi (vidi sliku 6.2(b)). Primijetite da nakon dodavanja (v1; v2) za svaku crnu
Machine Translated by Google
82 Triangulacioni planarni grafovi

vrh v u F , veličina F se smanjuje, ali pošto je v1 ili v2, recimo v1, bio siv, v1 je crn
sada, i ponavljamo naš argument za sve crne vrhove v1. Pregledajte dva susjedna
komponente Ai; Aj crnog vrha v. Neka je j>i. Nakon dodjele i + 2 ivice od
bijeli vrh w od Ai do sivih vrhova w1;:::;wi+2 od Aj , w i w1;:::;wi+2
sada su svi crni. Ali slično lemi 6.1.2, budući da ji + 2, F nije potpuno
još triangulirano, stoga w ili wi+2 moraju dobiti barem jednu dodatnu ivicu (vidi sliku
6.2(c)). Ovo je u suprotnosti s pretpostavkom da bismo mogli triangulirati F tako da je
maksimalni stepen je K. 2

Ako je samo jedna vrsta komponenti Ai dodijeljena licu F 2 G 1 onda možemo


triangulirajte F na sljedeći način: iz svakog bijelog vrha dodajemo i ivice sivim vrhovima
sljedeće komponente u kružnom redu od F. U redukovanom licu F dodjeljujemo
ivice između svaka dva uzastopna bijela vrha. Ovo potpuno triangulira F
a stepen svakog temena v 2 F postaje K. Primjer je dat na slici
6.2(d).
Iz leme 6.1.2 i 6.1.3 i konstrukcije na slici 6.2(d) slijedi
da možemo triangulirati G 1 sa maksimalnim stepenom K ako i samo ako možemo dodijeliti
svakom licu F 2 G 1 samo jedan tip komponenti Ai, i = 1; 3; 5, tj. ako i samo
ako možemo dodijeliti jedan broj i; i = 1; 3; 5, svakom licu u G tako da svaka dva
lica, dijele zajedničku ivicu u G , imaju drugačiji broj, tj. ako i samo ako postoji
postoji boja G sa tri boje tako da je svaki par dva susjeda v; w,
imaju drugu boju. Kao G i G 1 može se konstruisati u vremenskom polinomu u K; n
i m, postoji polinomska vremenska transformacija iz NP-potpunog problema
tropovezanih planarnih grafova u 3 boje na problem triangulacije planara
graf uz minimiziranje maksimalnog stepena, stoga je potonji NP-potpun. 2

6.2 Triangulacija planarnih grafova uz minimiziranje maksimalnog stepena

6.2.1 Algoritam

U ovom odeljku predstavljamo algoritam aproksimacije za triangulaciju planara


grafove uz minimiziranje maksimalnog stepena. Algoritam će dovesti do dokaza
sljedeće teoreme:

Teorema 6.2.1 Postoji linearni algoritam vremena i prostora za triangulaciju povezanog planarnog
3
grafa G tako da je za triangulaciju G 1 od G, (G 1) d2 (G)e +
11.

Važan postupak u algoritmu je triangulacija lica dodavanjem ivica


u \cik-cak" obliku, kao što je prikazano na slici 6.3. Može se opisati na sljedeći način:
Machine Translated by Google
6.2 Triangulacija uz minimiziranje maksimalnog stepena 83

cik-cak (F; v1; vp);


(* F je lice p vrhova, numerirano v1;:::;vp po redu *)
dodati rubove (vp; v2); (v2; vp1); (vp1; v3); (v3; vp2);:::; (vb str 2 2 c+2);
c; vb p
Kraj cik-cak

v
3 v4
v2
v
5

v1

v6

v 10 v7
v v
9 8

v
3 v4
v2
v
5

v1

v6

v 10 v7
v v
9 8

(a) Cik-cak jedno lice. (b) Cik-cak planarnog grafa.

Slika 6.3: Primjer cik-cak crtanja lica i cik-cak planarnog grafa.

Primjenom ove metode na lice, stepen v1 i vb p 2 c+1 ne povećava,


stepen vp i vb p 2 c (p parno) ili vb p 2 c+2 (p odd) se povećava za 1, a sve ostalo

stepeni povećavaju za 2 (videti sliku 6.3(a)).


Neka je G povezani planarni graf koji treba triangulirati. Jednostavna tehnika za
triangulacija G je primjena cik-caka na sva lica G. Međutim, budući da je vrh v
pripada deg(v) licima i deg(v) se može povećati za dva u svakom licu, to može dovesti do toga
do maksimalnog stepena od 3 (G). Štaviše, ovaj algoritam može podrazumijevati više rubova,
koji nisu dozvoljeni (vidi sliku 6.3(b)). Da bismo to zaobišli, prvo dodajemo ivice
G takav da je G ravan i tropovezan (vidi poglavlja 4 i 5), jer je tada
važi sledeća važna lema:

Lema 6.2.2 Triangulacija trokonektovanog planarnog grafa G ne može uzrokovati višestruko


ivice.

Dokaz: Pretpostavimo da nije, dakle postoje dva vrha u i v sa najmanje dva ruba
(u; v) u triangulaciji G. Neka se drugi rub (u; v) doda u lice F. Ovo
,
implicira da u i v nisu susjedi u F tako da postoje vrhovi između njih
ivice (u; v), nakon dodavanja (u; v) u F . Neka je w takav vrh. Po planarnosti G
Machine Translated by Google
84 Triangulacioni planarni grafovi

i dva ruba (u; v) slijedi da svi putevi od w do drugih vrhova G idu preko u i v. Ali ovo daje
da je G fu; vg je nepovezan, što je u suprotnosti sa trikonektivnošću G.
2

Ideja za triangulaciju G je sljedeća: izračunavamo \poseban" poredak lica G, i kada


primjenjujemo cik-cak(F; v; w) na svako lice F od G, počinjemo s nekim \posebnim"
vrhom v. Za sređivanje lica koristimo deniciju kanonskog uređenja za tropovezane
planarne grafove, kao što je to opisao Kant [66]: Neka je dato ugrađivanje
trokomponentnog planarnog grafa G. Gk označava podgraf od G, induciran na vrhovima
v1;:::;vk.

Teorema 6.2.3 ([66]) Vrhovi tropovezanog planarnog grafa G mogu se urediti u nizu
v1;:::;vn tako da su v2 i vn susjedi v1 i nalaze se na zajedničkoj površini, a za svako k ; k >
3:

1. vk je na vanjskoj strani Gk i ima najmanje dva susjeda u Gk1, koji su na vanjskoj


strani Gk1. vk ima barem jednog susjeda u G Gk . Gk je dvopovezan,

2. ili postoji l 1 takav da je vk;:::;vk+l lanac na vanjskoj površini Gk+l i ima tačno dva
susjeda u Gk1, koji se nalaze na vanjskoj površini Gk1. Svaki vrh vk;:::;vk+l ima
barem jednog susjeda u G Gk+l . Gk+l je dvopovezan.

i neka je Ck1 : v1 = c1;:::;cr = v2 vanjska strana Gk1.


Pretpostavimo da dodamo vk ,

Neka je ci krajnji lijevi susjed od vk (nazvan levi vrh) i cj krajnji desni susjed od vk na Ck1
(nazvan desni vrh). Vrhovi ci+1;:::;cj1 od Ck1 nazivaju se unutrašnjim. Vrhovi, dodati u
koraku k, nazivaju se novim u koraku k. Svaki vrh, koji ne pripada vanjskom dijelu G, je
tačno jednom nov i jednom unutrašnji. Vrhovi na vanjskoj površini G, tj. pripadaju licu
koje sadrži v1; v2 i vn, su jednom novi i ne postaju interni. Svaki vrh može biti više od
jednom lijevo ili desno. Ako trianguliramo lice Fk sa levim vrhom ci i desnim vrhom cj sa
j = i + 1, tada ci ili cj moraju dobiti ivicu povećanja, pošto su susedi na Ck1. Da prebrojimo
broj incidentnih ivica vrha v, koji se dodaje kada je v bio levi ili desni vrh, uvodimo
promenljivu extra(v), u početku 0. Svaki put kada v primi incidentnu ivicu i v je levi ili
desni vrh, povećavamo extra(v) za jedan. (Ovo nije izraženo u algoritmu Triangulate(G).)

Dodavanje ivice između suseda v u licu F označava se sa AddNeigh bors(F; v). Ovom
metodom deg(v) se ne povećava na licu F. Zigzag(F; v; w) ne povećava deg(v), ali
povećava deg(w) za jedan. Neka ima K koraka ukupno.
U koraku 1 i 2 se dodaju vrhovi v1 i v2; u koraku K se dodaje vrh vn. Algoritam postaje
sljedeći:

trokutasti (G);
Machine Translated by Google
6.2 Triangulacija uz minimiziranje maksimalnog stepena 85

2*OptBiconnect(G);
Triconnect(G);
izračunati kanonski poredak v1;:::;vn od G i početi sa (v1; v2); za k := 3 do K do

ako dodamo lice Fk sa levim vrhom ci i desnim vrhom cj onda ako


extra(ci) extra(cj) onda
AddNeighbors(Fk; cj); Cik-cak(Fk; ci; v) sa (v; ci) 2 Fk drugo

AddNeighbors(Fk; ci); Cik-cak(Fk; cj ; v) sa (v; cj) 2 Fk drugo

neka su c 01;:::;c0 t (t > 2) susedi vk s leva na desno na Ck1; neka je F lice koje
sadržil0vk; c0 l;
c0 za 1 l+1, l t 1;
cik-cak (F 01; c01; vk);
za l := 2 do t 2 uradi AddNeighbors(F 0 l ; vk); cik-cak(F 0 c0l ; c0l;
c0 l+1) rof;
Dodaj susjede (F 0 t1; c0 t1); cik-cak (F 0 t1;
t; vk)
rof;
triangulirati vanjsku površinu F pomoću cik-cak(F; v1; v2);
End Triangulate

Koristeći liste susjedstva adj(v) za ugrađivanje, nije teško implementirati algoritam tako da
radi u linearnom vremenu i prostoru. U preostalom dijelu ovog rada razmatramo povećanje
deg(v).

6.2.2 Brojanje povećanja deg(v)

U ovom dijelu pregledavamo ukupno povećanje svakog vrha v u Triangulate(G).


Razlikujemo slučajeve da je v nov, unutrašnji ili levi ili desni vrh. Povećanje deg(v), kada je v lijevi
ili desni vrh, daje extra(v). Kada je v dio vanjske površine F tada v ne postaje interno, ali cik-cak(F;
v1; v2), deg(v) se povećava
, imamo za najvišelema:
sljedeća 2. Da računamo povećanje stepena svih ostalih vrhova,

Lema 6.2.4 U svakom koraku k stepen novih i unutrašnjih vrhova raste za najviše 3.

Dokaz: Ako dodamo samo jedno lice Fk u koraku k, onda počinjemo sa primjenom Add
Neighbors(Fk; ci) ili AddNeighbors(Fk; cj ), što povećava stepen susjeda ci ili cj u licu Fk za jedan.
Tada se primjenjuje cik-cak(Fk; ci; v) ili cik-cak(Fk; cj ; v), što povećava stepen svakog unutrašnjeg
i svakog novog vrha lica Fk za najviše 2.

0
Ako dodamo vrh vk sa susjedima c 01;:::;c0 t, tada deg(c); c 6= cl ; vk) i cik-cak l; (1 lt),
povećava se za najviše 3 za AddNeighbors(F 0 c0 l+1).(FU0licu F l , (2 l t2), deg(cl ;0 c0
l)l; i povećavaju
deg(c 0 l+1) se
zaraste
0
jedanzazanajviše
AddNeighbors(F
2 0 l ; vk), a deg(c 0 l+1) povećavaju jedan cik-cak(F 0 c0 l+1). deg(c 02)
l;
c0l;
Machine Translated by Google
86 Triangulacioni planarni grafovi

0
u F 01 od Zigzag(F 02; c01; vk). deg(c 0 t1) se ne povećava u F AddNeighbors(F
t1, zbog poziva

0 t1; c0 t1). Stoga se deg(c 0 l), 2 l t 1, povećava se za najviše 3.


deg(vk) povećava za jedan u F 01 za cik-cak (F 01; c01; vk). deg(vk) se ne povećava u
U F t1, deg(vk) se povećava za jedan u AddNeighbors(F 0
0
lica F 02;:::;F 0 t2. t1; c0 t1)
i po jedan u cik-cak (F 0 t1;
c0t; vk), čime je dokaz završen. 2

Da računamo povećanje extra(v) tokom svih koraka Triangulate(G), kon


pomeriti vanjsku površinu Ck nakon dodavanja novih vrhova u bilo kojem koraku k:

Lema 6.2.5 Za svaka četiri uzastopna vrha c vrijedi sljedeće: ; c +1; c +2; c +3 na Ck , k 3,

Ako je extra(c +1) = 2 onda je ili extra(c ) = extra(c +2) = 0 ili extra(c) = extra(c +3)
= 0 i extra(c +2) = 1. Ako extra(c +1) = extra(c +2) = 1, onda imamo extra(c )
= ekstra(c +3) = 0.

Dokaz: Indukcijom. Prilikom pokretanja algoritma extra(v1) = extra(v2)=0


tako da je lema tačna. Pretpostavimo da lema vrijedi za vanjsku površinu Ck1.
Ako u koraku k dodamo lice Fk sa dva (ili više) vrhova vk1 ; vk2 sa levim vrhom
ci i desni vrh cj = ci+1, tada najniža ekstra vrijednost od ci i cj, recimo extra(ci),
povećava za jedan. Ako je extra(ci) = 1, onda korakom indukcije dobijamo sljedeće
ekstra-vrijednosti za ci1; ci; vk1 ; vk2 ; cj ; cj+1: 0, 2, 0, 0, extra(cj), 0. Ako je extra(ci) = 0, onda
dobijamo: 0, 1, 0, 0, extra(cj ), 0. Stoga i na Ck lema vrijedi.
Ako dodamo samo jedan vrh vk sa levim vrhom ci i desnim vrhom cj , onda ne
povećavamo extra(ci) i extra(cj ), i inicijaliziramo extra(vk) na 0. Otuda onda i
lema važi. 2

Lema 6.2.6 Za svaki par uzastopnih vrhova c + extra(c +1) 3. ; c +1 na Ck drži da extra(c )

Dokaz: Pretpostavimo da ne. Neka je k najmanji mogući cijeli broj takav da za dva
uzastopni vrhovi c ; c +1 na Ck : extra(c ) + extra(c +1) > 3, dakle extra(c) +
extra(c +1) = 4 na Ck, a na Ck1, extra(c) + extra(c +1) = 3. Ali prema lemi
6.2.5, extra(c 1) = extra(c +2) = 0 na Ck1. Tako i c i c +1 imaju susjede sa manjom ekstra vrijednošću.
Dodato lice u Ck ne može imati lijevi vrh c i
desni vrh c +1, jer tada između njih dolaze vrhovi sa ekstra vrijednošću 0. Dakle
extra(c) i extra(c +1) se ne povećavaju u koraku k. Ovo je u suprotnosti sa pretpostavkom
da je u koraku k ekstra(c ) + extra(c +1) > 3. 2

Posljedica 6.2.7 Za svaki vrh v 2 G, extra(v) 2.

Dakle, svaki vrh v prima najviše 3 ivice kada je v novo, najviše 2 ivice kada
v je lijevi ili desni vrh, i konačno najviše 3 ivice kada je v interni. Ovo implicira
da Triangulate(G) triangulira u linearnom vremenu i prostoru tropovezanu ravan
Machine Translated by Google
6.2 Triangulacija uz minimiziranje maksimalnog stepena 87

graf G takav da svaki vrh primi najviše 8 dodatnih upadnih bridova. Ako G nije
triconnected, onda radimo sljedeće: primjenjujemo algoritam Biconnect(G),
opisano u Poglavlju 4, da bi povezali G, uz povećanje stepena svakog vrha
za najviše 2. Zatim primjenjujemo algoritam Triconnect(G) na trikonekt G, dok
(G)
povećanje stepena svakog vrha za najviše d e. Primjena algoritama2
Biconnect, Triconnect i Triangulate upotpunjuju teoremu 6.2.1, koja
kaže da možemo triangulirati u linearnom vremenu i prostoru povezani graf G tako da
3
za maksimalni stepen triangulacije G0: (G0) d (G)e + 11. 2

Za donju granicu povećanja deg(v) možemo koristiti teoremu 5.3.2: Lako je


dokazati da za bilo koju triangulaciju G0 dvopovezanog planarnog grafa G opisanog u
3
Teorema 5.3.2, da je (G0) d (G)e. Stoga 2naš pristup radi samo kao dodatak
konstanta od egzistencijalne donje granice. Isto važi i za trokonektivni slučaj,
u tom slučaju imamo sljedeću teoremu:

Teorema 6.2.8 Za svaki = (G) 5, postoje tropovezani planarni grafovi


G takav da je za svaku triangulaciju G0 od G: (G0) (G)+3.

Dokaz: Konstruirajte tropovezani planarni graf G na sljedeći način. Uzmi V = fvg [


2
fvij1 g[fvij ij1 1g, dakle jV j = + 1. Povežite
i ; v1na
j
vrhove v1;:::;v . Povežite vi na 1 vrh vij , 1 j 1. Povežite
vij na vi(j+1) ako je j < 1 i na v(i+1)1 u suprotnom (vidi sliku 6.4). Primijetite da je G
triconnected. Pretpostavimo da možemo triangulirati G tako da (G0) (G) + 2. Tako v
može dobiti najviše dvije povećavajuće ivice. Neka su F1;:::;F susjedna lica v.
Fi se sastoji od 5 vrhova, tako da se svaka triangulacija Fi sastoji od dva povećanja
ivice, incidentne jednom vrhu w 2 Fi, koje nazivamo označenim, svojim nesusedima
Fi. Dakle, osim za najviše dva susjeda vi; vj od v, sva ostala 2 susjeda
od v mora biti označeno. Ali označavanje i vi i vi+1 povećava deg(vi) za 3. Dakle
može se označiti samo polovina susjeda v, što je veće od 5. 2 for

Dakle (G0) + 3, za 5. 2

Zanimljiv je otvoren problem zatvoriti ovaj jaz između donje granice


3, i gornja granica od 8, koju daje algoritam Triangulate.
Machine Translated by Google
88 Triangulacioni planarni grafovi

v
v 1
5
v
v
2
v
4
v
3

Slika 6.4: Ilustracija teoreme 6.2.8.


Machine Translated by Google

Poglavlje 7

Povećanje vanjskih planarnih grafova

7.1 Uvod

Spoljnoplanarni grafovi su interesantna podklasa planarnih grafova, jer svi


vrhovi dele jedno lice, odnosno spoljnu površinu. Postoje dvije specifične
tehnike crtanja za vanplanarne grafove. Prvi metod je da se svi vrhovi
dvopovezanog spoljašnjeg planarnog grafa postave na uglove pravilnog n-ugla
(u smeru kazaljke na satu oko lica). Svaka unutrašnja ivica je tetiva i nacrtana
kao prava linija unutar n-ugla. Iako je ovaj crtež ravan i konveksan, minimalni
ugao između dve uzastopne upadne ivice temena može biti O(1n), a odnos
između dužine najduže i najmanje ivice može biti O(n). Drugi algoritam za
crtanje vanjskih planarnih grafova zahtijeva kao ulaz maksimalan vanjski
planarni graf (mop), tj. sve unutrašnje površine su trouglovi.
lica F, Počinje
recimo crtanjem
sa
vrhovima u; v; w, koji ima barem jednu ivicu, recimo (u; v), na vanjskoj strani.
Crta (u; v) horizontalno i crta w iznad (u; v) tako da je dužina (u; w) = dužina (v; w), a \vuw = \uvw.
Iz (u; w) i (v; w) rekurzivno se crtaju preostala lica vanjskog grafa. Vidi
sliku 7.1 za primjer. Crtež se može konstruirati tako da je 2(d+2) prema
minimalnog kuta između rezultatu
najduže
Malitz
i najmanje
& Papakostas
ivice [80].
možeMeđutim,
biti O(2n omjer
). Ovu
konstrukciju crteža su uspješno primijenili i Lin & Skiena [78], da nacrtaju
poligon P na mreži polinomske veličine, gdje je graf vidljivosti P
maksimalni vanjski planarni graf.

Razmotrimo najprije problem povećanja vanjskog planarnog grafa tako


da je rezultujući graf bipovezan i još uvijek vanplanarni. Ako je G isključen,
tada se primjenjuje algoritam Connect(G) iz [27], opisan u poglavlju 4. Ovaj
algoritam čuva vanjski plan. Stoga možemo pretpostaviti od sada da je G
povezan i vanplanarno. Algoritam Read [92] i njegova modifikacija
Biconnect(G) opisana u poglavlju 4, mogu se koristiti za bikonekciju G. Ako
je b broj blokova, tada se dodaje najviše b 1 blokova (vidi lemu 4.1. 4. Neka
je v presek sa d(v) v-blokovima. Ako se u i w pojavljuju uzastopno u adj(v) i u i

89
Machine Translated by Google
90 Povećanje vanjskih planarnih grafova

w
u v

Slika 7.1: Crtanje vanjskog planarnog grafa.

w pripadaju različitim blokovima, tada se dodaje (u; w). Na ovaj način se dodaje d(v) 1 ivica.
Ostaje jedan par uzastopnih susjeda u i w u adj(v), koji pripadaju različitim blokovima, gdje se
ne dodaje rub (u; w). (u; v) i (v; w) pripadaju vanjskoj površini prije povećanja, dakle i nakon
povećanja, v pripada vanjskoj površini. Ovim se završava sljedeća teorema:

Teorema 7.1.1. Ako je ulazni graf G spoljašnji planaran, onda je prošireni graf dobijen pomoću
Biconnect(G) bikonektan i spoljašnji planaran.

Svaki dvopovezani graf je također mostom povezan, tako da se ovaj algoritam može koristiti
i za premošćavanje G. U oba slučaja maksimalno povećanje stepena svakog temena je najviše
2. Primetimo da ako G nije trougao, onda G ne može biti trokonektovano. Ovo slijedi jer ako G
ne sadrži tetive, onda je G ciklus, a brisanje bilo kojeg para dva nesusjedna vrha prekida vezu
G. Ako G sadrži tetivu (u; v), onda je G fu; vg je isključen.

Dvospojni (ili most-povezivanje) G sa minimalnim brojem ivica uz održavanje vanjske


planarnosti čini se mnogo težim problemom. Čak i za stabla T sa p listovima i maksimalnim
stepenom d nije teško konstruisati primere u kojima p i primeri u 2 uz očuvanje
ivice su dovoljne za bikonekciju (ili mosnu vezu) T koje su pd ,
ivice neophodne za bikonekciju (ili mosnu vezu) T vanjska planarnost. ,
Postoje i eksterplanarni grafovi G sa b blokovima i 2 privjeska, za koje je potrebno b 1 ivica da
bi se povezivalo G (u tom slučaju Biconnect(G) daje optimalno rješenje). Međutim, čini se da je
općenito teško dokazati da je rješenje i optimalno.

Da bismo primijenili ogroman broj algoritama za crtanje planarnih grafova, razmatramo


problem povećanja vanjskih planarnih grafova tako da je prošireni graf mostom povezan,
dvopovezan ili tropovezan i ravan. Pokazujemo da je broj dodatih ivica jednak broju ivica koje
bismo dodali bez dodatnog ograničenja planarnosti. Stoga su predstavljena rješenja optimalna.
Algoritmi su jednostavni i lako se mogu implementirati da rade u linearnom vremenu. Za
crtanje dvopovezanih i tropovezanih planarnih grafova poznati su mnogi napredni algoritmi,
koji se stoga mogu koristiti za crtanje (povećanog) vanjskog planarnog grafa.

Triangulacija vanjskih planarnih grafova tako da je povećanje mop može se lako izvesti u
linearnom vremenu. Pokazujemo da ovu triangulaciju možemo izvesti u polinomu
Machine Translated by Google
7.2 Povezivanje mostom 91

vrijeme tako da je maksimalni stepen minimiziran. Ovaj rezultat ima dobre karakteristike
za algoritam Malitz & Papakostas [80].

7.2 Povezivanje mostom

U ovom dijelu razmatramo problem kako dodati minimalan broj ivica vanjskom planu G,
tako da je prošireni graf G0 mostom povezan i ravan. Premosni spoj G je jednak mostu koji
povezuje šumu bc(G). Algoritam za povezivanje mostom bc(G) inspiriran je općim
algoritmom za povezivanje mosta Eswarana & Tarjana [27]. Oni su dali sljedeću donju
granicu za broj ivica potrebnih da se bc(G) poveže mostom:

Teorema 7.2.1 ([27]) Najmanje dpe + q2ivice su potrebne da bi bc(G) most bio povezan,
ako je p + q > 1.

Ako G nije povezan, tada možemo prvo primijeniti algoritam Connect(G) iz poglavlja 4.
Stoga pretpostavljamo od sada da je G povezan. Neka TBC bude njegovo BC-stablo. Djeca
svakog B-čvora su po redoslijedu posjećivanja oko odgovarajućeg bloka. Ostaje da se
pronađe skup dpe ivica za premošćavanje stabla sa p listovima i fiksiranim
2 dece svakog redosledom
B-čvora. Eswaran &
Tarjan čine graf mostom povezanim dodavanjem ivica (vi; vb p c+i) (1 dpe) sa v1;:::;vp
planarnosti i stoga
listovima TBC-a nabrojanih s lijeva na desno. Naravno, to uništava primjenjujemo
2 novu
potpuno
2

strategiju.

Korijen TBC na proizvoljnom nelisnom B-čvoru. Čvorove numerišemo u postorder-u,


što znači da prelazimo stablo obilaskom pretrage po dubini, gde prvo posećujemo potomke
čvora radi numerisanja, pre numerisanja čvora. Obilazimo djecu s lijeva na desno, što
znači da krajnji lijevo potomak list dobija broj 1, a korijen broj n. Neka su v1;:::;vn vrhovi
gdje vrh vi ima postorder-broj i. Neka su v(1);:::;v(p) listovi TBC-a, numerirani s lijeva na
desno. Sljedeću lemu je lako dokazati:

Lema 7.2.2 Potomci bilo kog čvora imaju uzastopne brojeve u bilo kom post redosledu
numerisanja.

Ideja algoritma je sljedeća: posjećujemo čvorove u rastućem postorderu


numerisanje. Ako je vi list v(k) i k je neparan, onda jednostavno dodajemo ivicu (v(k 1);
v(k)). Ako je vi interni čvor, onda testiramo da li postoji povećavajući rub (v( ); v()), pri čemu
je v() potomak od vi, a v() ne. Ako ne postoji takva ivica, mijenjamo neke dodane ivice da
bismo to dobili. U tu svrhu uvodi se varijabla x, koja povećava monoton sa 1 na p. Kasnije
je dokazano da ako je v(x) potomak od vi, onda postoji ivica koja povećava (v( ); v()), pri
čemu je v() potomak lista vi, a v() ne. Ovo tačno odgovara deniciji povezivanja mosta.
Machine Translated by Google
92 Povećanje vanjskih planarnih grafova

Algoritam OuterBridgeConnect čini ovu ideju preciznijom. (Naredba lca(v(a); v(b))


označava najmanje zajedničkog pretka listova v(a) i v(b). )

OuterBridgeConnect
A := ;; f A postaje skup povećavajućih ivica. gx := 1; za i :=
2 do n do

ako je vi list v(k) onda ako


je k neparan onda A := A [ f(v(k 1); v(k))g inače

neka v(j1);:::;v(jh) budu potomci od vi; ako je j1 paran i


x<j1 tada
A := A f(v(j1); v(j2))g[f(v(x); v(j1))g; x := j2
rof;
ako je x = 1 ili x = p onda je A := A [ f(v(1); v(p))g inače neka
(v(1); v(y)) 2 A; ako je lca(v(y); v(x)) predak lca(v(x); v(p))
onda
A := A f(v(1); v(y))g[f(v(y); v(x)); (v(1); v(p))g drugo

A := A [ f(v(x); v(p))g;
Završite OuterBridgeConnect

15
15

6 9 14
6 9 14
5 7 10 (5)
8 (6) (7) 13
5 7 10 (5)
8 (6) (7) 13 1 (1)

1 (1) 234 11 12
234 11 12 (2) (3) (4) (8) (9)
(2) (3) (4) (8) (9)

(a) Numerisanje čvorova i (b) Povećanje povezano


listovi. sa mostom.

Slika 7.2: Most-povezivanje vanjskog planarnog grafa.

Na slici 7.2 dat je primjer algoritma OuterBridgeConnect. Iz algoritma slijedi da je jAj =


dpe, ali da bismo dokazali da je G zaista mostom
2 sljedeća
povezan
Tarjanova
i planaran,
lemapotrebna
[108]: nam je
Machine Translated by Google
7.2 Povezivanje mostom 93

Lema 7.2.3 Neka je G0 = (V;E [ A), i neka je (v; w) ivica od G0. Tada je (v; w) most od G0 ako i
samo ako je v roditelj w u TBC i ne postoji rub ( ; ) 2 A takav da je potomak w u TBC i nije
potomak w u TBC.

Lema 7.2.4 Ako je u nekom koraku tokom algoritma, v(x) potomak w 6= v1, tada u proširenom
grafu w ima list potomka koji ima ivicu prema listu, a ne potomak w.

Dokaz: Nazovimo dodane ivice (v(x); v(j1)) u OuterBridgeConnect posebnim. Razmotrimo


vrh w 6= v1 sa potomcima v(j1);:::;v(jh) s lijeva na desno. Primijetite da je za svaki poseban rub
(v(a); v(b)) a neparan, a b paran, a sljedeći specijalni rub počinje u v(b + 1). Pretpostavimo prvo
da na kraju vrijedi x>jh.
Ako je jh neparan, kasnije se dodaje posebna ivica (v(jh); v(jh + 1)), a v(jh + 1) nije potomak w.
Ako je jh paran, onda neka (v(a); v(b)) bude posebna ivica sa b jh što je više moguće. Kada se
doda (v(a); v(b)), tada je x postavljeno na b + 1. Pošto su jh i b + 1 oba parna, slijedi da je x jh. Na
kraju vrijedi x jh + 2, tako da postoji posebna ivica (v(a0); v(b 0)) sa a0 jh < b0.

Pretpostavimo sada da je na kraju x jh. Ako je x = 1 onda je p>jh i ivica


(v(x); v(p)) se dodaje A. U suprotnom neka (v(1); v(y)) 2 A. Pretpostavimo prvo da je j1 Ako y.
je jh = p onda je j1 > 1, dakle dodana ivica (v (1); v(y)) ili (v(1); v(p)) zadovoljava lemu. Ako je p>jh
onda dodana ivica (v(x); v(p)) na A zadovoljava lemu. Ako je j1 > y, onda ako je p>jh onda se ivica
(v(y); v(x)) dodaje A, u suprotnom ivica od v(x) do v(y) ili v(p) zadovoljava lemu.
2

Lema 7.2.5 G0 = (V;E [ A) je mostom povezan.

Dokaz: Neka je (v; w) bilo koja ivica G0 takva da je v = roditelj(w) u TBC. Neka su potomci od
w fv(j1);:::;v(jh)g s lijeva na desno. Ako je j1 = 1, onda je u početku v(x) potomak od w i možemo
primijeniti lemu 7.2.4, pa pretpostavimo da je j1 > 1.
Svaki list dobija incidentnu proširenu ivicu, pa ako je j1 = jh onda lema sledi direktno, pa
pretpostavimo da je jh > j1. Ako je j1 neparan, tada se dodaje ivica (v(j1 1); v(j1)).
Ako se kasnije (v(j1 1); v(j1)) ukloni, tada se x postavlja na j1 + 1. Stoga je u ovom slučaju v(x)
potomak od w, i možemo primijeniti lemu 7.2.4. Inače, ako je j1 paran i x<j1, tada se dodaje
ivica (v(x); v(j1)), a v(x) nije potomak w. Ako je x j1, onda je v(x) descendentni list od w, i možemo
primijeniti lemu 7.2.4. Ovim je dokaz završen.
2

Konstruisanje grafa bc(G) može se izvršiti u linearnom vremenu, kao i dodavanje ivica tako
da je graf povezan. Izračunavanje postorder numeracije TBC-a može se lako izvesti u linearnom
vremenu. Na svakom unutrašnjem čvoru v pohranjujemo pokazivač na njegov krajnji lijevi list.
Koristeći ovaj plus jedan pokazivač za odlazak iz v(x) ukupno potrebno vrijeme je O(1) kada
posjetite vi u BridgeConnect-u. Nakon posjete vn moramo odlučiti
Machine Translated by Google
94 Povećanje vanjskih planarnih grafova

da li je lca(v(y); v(x)) predak lca(v(x); v(p)). To radimo gledajući da li postoji vrh v0 na putu
između v1 i v(p) takav da za krajnji lijevi list v(z) od v0 vrijedi y<zx. lca(v(y); v(x)) je predak
lca(v(x); v(p)), ako i samo ako postoji takav vrh v0. Ovo vodi do glavne teoreme ovog odjeljka:

Teorema 7.2.6. Problem povećanja planarne povezanosti mosta može se riješiti u linearnom
vremenu i prostoru za vanplanarne grafove.

7.3 Bikonektivnost

Za algoritam povećanja planarne bikonektivnosti pretpostavljamo da je ulazni vanjski


planarni graf G povezan (inače možemo primijeniti Connect to G). Neka je TBC BC-stablo
od G. Prvo proučavamo neka svojstva TBC. Sljedeće denicije su od Hsua i Ramachandrana
[53].

Denicija 7.3.1 Čvor v TBC-a naziva se masivnim ako i samo ako je v C-čvor sa d(v) 1 > dp e.
Čvor v TBC-a je kritičan akoako
2 samo i samo akokritični
postoji je v C-čvor sa u
C-čvor d(v) 1 = dp e. TBC je kritičan ako i
TBC-u.
2

Denicija 7.3.2 TBC je uravnotežen ako i samo ako G nema masivan C-čvor. Graf G je
uravnotežen ako i samo ako je TBC uravnotežen.

Denicija 7.3.3 (uslov povezivanja listova) Dva lista u1 i u2 TBC-a zadovoljavaju uslov
povezivanja listova ako i samo ako put P od u1 do u2 u TBC sadrži ili (1) dva čvora stepena
većeg od 2, ili (2) jedan B-čvor stepena višeg od 3.

Neka prva zapažanja o TBC-u su sljedeća:

Lema 7.3.1 ([97]) Može postojati najviše jedan masivni čvor u TBC-u. Ako postoji masivan
čvor u TBC-u, onda nema kritičnog čvora u TBC-u, a mogu postojati najviše dva kritična
čvora u TBC-u, ako je p > 2.

Lema 7.3.2 ([53]) Neka su u1 i u2 dva lista TBC koja zadovoljavaju uslov povezivanja listova
(denicija 7.3.3). Neka su i ne-usjeci u blokovima G predstavljenim sa u1 i u2 respektivno.
Neka je G0 graf dobijen iz G dodavanjem ivice između i i neka P predstavlja put između u1
i u2 u TBC.
Sljedeća tri uslova su tačna.

p0 = p 2.

Ako je v C-čvor u P sa stepenom većim od 2 u TBC, tada se stepen v smanjuje za 1 u


bc(G0).
Machine Translated by Google
7.3 Bikonektivnost 95

Ako je v C-čvor u P sa stepenom jednakim 2, tada se v eliminira u bc(G0).

Ideja za dobijanje donje granice maxfd 1; dp npr. ivice (vidi teoremu


2 3.0.1) bez zahtjeva za
planarnost je dodavanje ivice između dva lista y i z pod uslovima da put P između y i z prolazi
kroz sve kritične vrhove i novo stablo blokova ima dva manje listova ako TBC ima više od 3 lista.
Tako se stepen bilo kog kritičnog vrha smanjuje za 1 i stablo ostaje uravnoteženo (vidi [53, 97]).
U našem slučaju također moramo odabrati y i z tako da prošireni graf ostane ravan. Pokazujemo
da se to može postići i da je opća donja granica navedena u teoremi 3.0.1 postignuta za naš
problem.

Algoritam Hsua & Ramachandrana [53] za bikonekciju grafova dodavanjem minimalnog


broja ivica sastoji se od tri faze. Faza 1 povezuje G, za šta smo koristili Connect iz poglavlja 4.
Sada ćemo opisati Fazu 2 i 3 za naš problem bikonekcije vanjskih planarnih grafova. Faza 2
eliminiše masivne čvorove, a faza 3 čini graf dvopovezanim. Faza 2 se lako može modificirati za
naš problem, ali za Fazu 3 moramo opsežno modificirati algoritam.

7.3.1 Faza 2

Pretpostavimo da postoji masivni čvor v u TBC-u. (Ako ne postoji masivni čvor v, nikakva akcija
se ne preduzima u fazi 2.) Neka bude broj komponenti TBC fvg koje sadrže samo jedan list.
Nazovite takve komponente 1-lancima. Postoje d(v) komponente, od kojih svaka sadrži najmanje
2 lista, pa je p + 2(d(v)). Biramo v kao korijen TBC-a i numeriramo listove TBC-a s lijeva na desno
sa v(1);:::;v(p). Sada dodajemo 2 ivice tako da se što više 1-lanaca spoji u jedan sledećim
algoritmom, sa = d(v) 1
dp
2 e.

i := 1; A := ;; f A postaje skup povećavajućih ivica. g dok jAj < 2 i i<n


rade ako su v(i) i v(i + 1) oba 1-lanci onda A := A [ f(v(i); v(i + 1))g; i :=
i + 1 od; i := 1; dok jAj < 2 do

ako je v(i) 1-lanac i (v(i); v(i + 1)) 62 A onda je A := A [ f(v(i); v(i + 1))g; i := i + 1 od

Neka je G0 prošireni graf dodavanjem 2 ivice A između odgovarajućih privjesaka. To


radimo dodavanjem rubova između vanjskih vrhova na posljednjim blokovima 1-lanaca, čime
se čuva planarnost. Neka je T 0BC BC-stablo G0 sa p0 listovima, sa p0 = p 2 i neka d0(v) označava
d-vrijednost v u T 0BC. ,

p0
Lema 7.3.3 ([97]) Za sve l C-čvorove v od T 0BC, d0(v) 1 d 2 e drži.
Machine Translated by Google
96 Povećanje vanjskih planarnih grafova

p0
Dokaz: Za v vrijedi da je d0(v ) 1 = d(v ) 1 2 = dpe = d 2 2 e. Razmislite
C-čvor v 6= v = , p0 i pretpostavimo da je d0(v) 1 > d 2 e. Sada je pd(v ) + d(v) 2
p0
(d(v) 1) + (d(v) 1) > (dpe + ) + d što je kontradikcija.
2 2 e = (dpe2 + )+(dpe )=2d2pe 2
str, 2

7.3.2 Faza 3

U fazi 3 moramo se baviti grafom G gdje je TBC uravnotežen. (Pretpostavimo da smo izveli fazu
2.) Ideja je da se doda ivica između dva lista y i z pod uslovima da put P između y i z prolazi kroz
sve kritične čvorove (najviše 2) i BC-stablo od prošireni graf ima dva lista manje ako TBC ima
više od 3 lista. Tako se stepen bilo kog kritičnog čvora smanjuje za jedan i stablo ostaje
uravnoteženo. Također želimo da y i z budu listovi koji zadovoljavaju uvjet povezivanja listova,
jer tada možemo koristiti lemu 7.3.2 i to će dovesti do željene donje granice dpe ivica za
dvokonekciju uravnoteženog grafa. Štaviše, ova putanja mora biti takva da dodavanje ivice
između dva ne-sjeka blokova predstavljenih
2 precizniji usa y i ovoga.
vezi z ne uništava planarnost.
Dva lista y i z u TBCHajde da budemo
nazivamo
susjednima ako su nakon dodavanja (y; z) u TBC svi ostali listovi TBC ili unutar ili izvan novo
kreiranog ciklusa C. Ako su y i z susjedni, tada možemo dodati ivicu ( y 0; z0), sa y i z ne-sjecima
u blokovima B-čvorova y i z. Stoga u svakom koraku tražimo dva susjedna lista y i z, koja
zadovoljavaju uvjet povezivanja listova i put P između njih u TBC prolazi kroz sve kritične
0 0
čvorove. Pokazaćemo da ovi parovi uvek postoje.

Pošto čvorovi sa stepenom 2 nisu od interesa za algoritam, eliminišemo ih iz BC-stabla


sažimajući njihova dva incidentna ivica u jednu. To radimo i tokom algoritma. Konkretno, ako
korijen BC-stabla, recimo b, dobije stepen 2, tada uzimamo jedno od djece korijena b i
eliminiramo b iz stabla. Ovo se lako može uraditi u O(1) vremenu. Algoritam postaje sljedeći:

OuterBiconnect(G)
(* G ima najmanje 3 čvora i TBC je uravnotežen; *)
Neka je TBC ukorijenjen na proizvoljnom B-čvoru b ;
dok je p 2 do ako je d = 2 onda neka je v B-čvor
(različit od b) sa stepenom > 2, inače neka je v C-čvor sa najvećim stepenom
u TBC; koristite algoritam Pathfinder(v) da pronađete čvor w sa stepenom >
2 i dva susedna lista y i z tako da put između njih prolazi kroz v i w; nd ne-sjekove iu
odgovarajućim blokovima G predstavljenim sa y i z redom; dodati rub između i i ažurirati TBC
od;

Završite OuterBiconnect
Machine Translated by Google
7.3 Bikonektivnost 97

Sada opisujemo proceduru Pathfinder, koja pronalazi čvor w i dva susedna lista y i z čija
putanja P između njih prolazi kroz v i w. Podsjetimo iz odjeljka 7.2 da je dozvoljen bilo koji
redoslijed djece C-čvora, ali djeca B-čvora mogu se zamijeniti samo iz redoslijeda slijeva nadesno
u redoslijed zdesna nalijevo.
Konstruiramo sljedeću strukturu podataka za TBC (koja je gotovo jednaka konstrukciji PQ-stabala,
uvedena u [9] i objašnjena u Odjeljku 2.2.2)

Svaki čvor v u TBC-u je predstavljen zapisom. Ako v nije list, tada v ima pokazivač na svoje
krajnje lijevo i krajnje desno dijete, koje se naziva l-dijete i r-dijete, respektivno.

Djeca svakog čvora se pohranjuju u dvostruko povezanu listu.

Ako je čvor dijete C-čvora ili lijevo ili krajnje desno dijete B-čvora, tada ima pokazivač
roditelja na njega, inače je ovaj pokazivač nula.

Budući da možemo permutirati djecu C-čvora bilo kojim redoslijedom, mi sortiramo djecu
svakog C-čvora v tako da se sva djeca bez lista pojavljuju na jednoj strani, recimo počevši od
krajnjeg lijevog djeteta od v. Ideja je da se hoda od v prema korijenu b , do roditelja
pokazivač je nula ili b. Neka je w najviši čvor do kojeg se dolazi od v do b, tada ,mijenjamo stablo
tako da put od w do v ide samo preko l-podređenih pokazivača. Do lista y sada dolazimo tako što
slijedimo pokazivače l-djeteta iz v i lista z slijedeći r-djeteće pokazivače od lijevog brata ili sestre w
ako w nije krajnje lijevo dijete svog roditelja, u suprotnom uzimamo pokazivače r-dijete od
roditelja od w.
Ako postoje samo tri lista, onda možemo svesti TBC na novo stablo sa dva lista tako da
uberemo bilo koji par listova u TBC-u i povežemo ih. Znamo da možemo smanjiti BC-stablo od 2
lista u jedan čvor spajanjem dva lista.
Pretpostavimo dalje da je p > 3. Tada se algoritam može opisati na sljedeći način (swap(a; b)
mijenja sadržaj a i b):

Pathfinder(čvor v); (* v je
C-čvor sa najvećim stepenom u TBC-u ili B-čvor sa stepenom > 2; *)
w := v;
dok roditelj(w) 6= nula i roditelj(w) 6= b radi ako w 6=
l-dijete(roditelj(w) onda swap(w, l-dijete(parent(w))); w := roditelj( w)
od;

y := v;
dok y nije list uradi ako je
krajnje lijevo dijete od y list onda swap(l-dijete(y), r-dijete(y)); y := l-dijete(y)
od; ako je w 6= l-dijete(roditelj(w)) onda z := lijevo brat od w else z := r-
dijete(roditelj(w));
Machine Translated by Google
98 Povećanje vanjskih planarnih grafova

dok z nije list do

ako je krajnje desno dijete od z list onda swap(l-dijete(z), r-dijete(z)); z := r-dijete(z)


od;

Kraj Pathfinder

Lema 7.3.4 y i z su susjedni.

Dokaz: Neka je w vrh dobijen u OuterBiconnect. Neka je w0 roditelj w. Od w0 postoje dva puta naniže:
jedan put preko w i v do lista y, prateći samo krajnje lijeve pokazivače djece. Ako je w krajnje lijevo dijete
od w0, tada put do lista z prati krajnje desne pokazivače djeteta w0, u suprotnom put do lista z prati krajnje
desno dijete pokazivače od lijevog brata i sestre w. Stoga su u oba slučaja svi ostali listovi na jednoj strani
ciklusa, dobijeni dodavanjem (y; z) TBC-u.

To znači da možemo dodati ivicu (blokove od y i z ; ) između dva ne-sjeka od


bez uništavanja planarnosti.

Lema 7.3.5 y i z zadovoljavaju uslov povezivanja listova.

Dokaz: Neka je v početni čvor u Pathfinder-u, tada je d(v) > 2. Kada se zaustavimo u while-petlji
pathfindera, tada ili roditelj(w) = b ili roditelj(w) = nil i, prema tome, ima stepen > 2 i dio je putanje P .
Pretpostavimo wlog da je d(b ) < 3, dakle b ima stepen 1, jer smo eliminisali sve čvorove sa stepenom 2 iz
TBC. w ima stepen najmanje 3 jer svi vrhovi bez lista imaju stepen najmanje 3. Ako je w 6= v onda imamo
dva čvora sa stepenom > 2 na putu, pa pretpostavimo da je w = v. Otuda je v jedino dijete od b . Ako je v C-
čvor i postoji još jedan čvor v0 sa stepenom > 2 u TBC-u, tada je v0 krajnje lijevo ili krajnje desno dijete od
v, jer su djeca svakog C-čvora u TBC-u sortirana tako da su sva djeca bez lista javljaju na jednoj strani. Ali
staza P je konstruisana tako što se od v uzimaju l-podređeni pokazivači i uzimaju se od b r-podređeni
pokazivači. Stoga je v0 dio P . Pretpostavimo konačno da je v B-čvor (dakle d = 2).

Ako v ima stepen > 3 onda w = v zadovoljava uslov povezivanja listova, pa pretpostavimo da v ima samo
, odjenjih
dva djeteta. Pošto je v jedino dijete od b, oba djeteta od v su dio P. Pošto p > nije
3, slijedi
list, tj.
daima
barem
stepen
jedan
najmanje 3 i dio je P. Stoga listovi y i z uvijek zadovoljavaju uslov povezivanja listova.

Lema 7.3.6 Za vanplanarne grafove G sa TBC balansiranim, algoritam Out erBiconnect pronalazi skup
dpe ivica tako da, kada se ovaj skup doda2 G, dobija se dvopovezani planarni graf.
Machine Translated by Google
7.3 Bikonektivnost 99

Dokaz: Pretpostavite da je wlog p > 3. U ovom slučaju, kritični čvor mora imati stepen veći
od 2.
Slučaj 1: TBC ima dva kritična čvora v i w. Svi ostali vrhovi bez lista imaju stepen 2 i stoga su
eliminisani iz stabla. Pošto će Pathfinder pronaći još jedan čvor sa stepenom > 2 ako je prisutan,
i v i w će biti dio P.
Slučaj 2: TBC ima samo jedan kritični čvor v. OuterBiconnect uzima C-čvor sa najvišim stepenom,
tako da je v dio P. Pošto je TBC uravnotežen i p > 3, postoji čvor w 6= v sa stepenom većim od
2, inače je v masivan. Pathfinder i čvor w sa stepenom > 2 prema Lemi 7.3.5.

Slučaj 3: TBC nema kritični čvor. OuterBiconnect će uzeti C-čvor sa najvišim stepenom ako je d
2, u suprotnom uzima B-čvor sa stepenom 3. U oba slučaja Pathfinder pronalazi čvor w 6= v sa
stepenom > 2 na putu P.
U sva tri slučaja nalazimo dva čvora stepena većeg od 2 ili B-čvor stepena većeg od 3. Prema
tome, prema lemi 7.3.2, broj listova u novom BC-stablu se smanjuje za dva. Kada je v ili w
kritično, vrijednost d se smanjuje za 1. Tako BC-stablo ostaje uravnoteženo. Stoga je donja
granica teoreme 3.0.1 postignuta algoritmom.
2

Za pronalaženje C-čvora sa najvišim stepenom, održavamo polje bucket-a i inicijalno


pohranjujemo u bucket[i] sve C-čvorove sa stepenom i. Koristimo dodatni pokazivač ptr za
pronalaženje C-čvora sa najvišim stepenom, počevši od bucket[d]. Stepen čvorova se samo
smanjuje, pa ptr monotono pomiče iz bucket[d] u bucket[3]. Stoga je ukupan rad za pronalaženje
C-čvora sa najvišim stepenom O(d) ukupno. Kada se stepen C-čvora c smanji, možemo ukloniti
c iz bucket[d(c)] i pohraniti c u bucket[d(c) 1] u O(1) vremenu. Ako su sve korpe prazne, onda
nema C-čvora u TBC-u, jer C-čvor nema stepen 1 i eliminisali smo sve čvorove stepena 2. Sada
moramo uzeti B-čvor sa stepenom > 2. Primetite da bilo b ili jedno od njegovih djece mora imati
stepen > 2, stoga lako možemo pronaći takav B-čvor za O(1) vremena.

Ako je d(b ) 3, tada je najniži zajednički predak y i z uvijek B-čvor b1. Neka w1; w2 biti dva
djeteta od b1, dio P . Hodamo od y do z i svaki C-čvor činimo podređenim od b1, a svu djecu B-
čvora činimo djecom b1. Pohranjujemo ih između w1 i w2 redoslijedom kojim ih posjećujemo
između y i z. Pošto su svi B-čvorovi na P sada eliminisani i svaki C-čvor na P je sada potomak P,
stepen nekoliko čvorova na P je smanjen u ažuriranom stablu. Pošto se smanjuje samo stepen
,
čvorova na P, testiramo ove čvorove za stepen 2, jer ih tada eliminišemo. Ako je najniži
zajednički predak y i z C-čvor c1, onda uzimamo novi B-čvor b1, i radimo isto kao gore, i
dodajemo ovaj B-čvor kao dijete c1 u stablu TBC.

Lema 7.3.7 Algoritam OuterBiconnect radi u O(n) vremenu.

Dokaz: BC-stablo se može izgraditi za O(n) vremena i ima O(n) čvorova. Rutina linearnog
vremenskog sortiranja se koristi za sortiranje stepena C-čvorova. Po algoritmu
Machine Translated by Google
100 Povećanje vanjskih planarnih grafova

Pathfinder, put P između susjednih listova y i z nalazi se u O(jP j) vremenu. Prema teoremi
4.3.1, broj posjeta čvoru nije veći od njegovog stepena. Pošto je zbir stupnjeva svih čvorova u
stablu sa n čvorova O(n), slijedi lema.
2

Lema 7.3.7 dovršava sljedeći rezultat:

Teorema 7.3.8 Postoji linearni algoritam vremena i prostora za proširenje spoljašnjih grafova
dodavanjem minimalnog broja ivica tako da je rezultujući graf dvopovezan i ravan.

7.4 Trikonekcija

7.4.1 Tropovezani dvopovezani vanjski planarni grafovi

Sada razmatramo problem kako povećati vanjski planarni graf G dodavanjem minimalnog
broja ivica tako da je prošireni graf G0 tropovezan i ravan. U tu svrhu najprije ograničavamo
našu pažnju na bipovezane vanjske planarne grafove, koji su ciklusi s tetivama koje se ne sijeku.
Svaki vrh sa stepenom 2 mora dobiti dodatnu ivicu. Svaki dvopovezani vanjski planarni graf ima
najmanje dva vrha v, s deg(v) = 2 [82]. Neka je K broj vrhova stepena 2, tada ćemo pokazati da
je broj ivica koje treba dodati da bi se postigla trokonektivnost jednak dK e, što je optimalno.

2
Nije teško konstruisati primjer u kojem se vanjsko ugrađivanje (svi vrhovi koji se pojavljuju
na vanjskoj površini) mora promijeniti da bi se dobila optimalna augmentacija. Kao primjer,
razmotrite ciklus na vrhovima v1;:::;vn i neka je dato n vrhova w1;:::;wn sa wi povezanim na vi i
vi+1 (1 i<n). Vertex wn je povezan na v1 i vn. Rezultirajući graf G je vanjski planaran i svaki vrh
wi mora dobiti povećanu ivicu. Stoga se moraju dodati dne ivice. Pretpostavimo da je ivica (wi;
wj ) dodana, sa što manjim j>i i ji. Ako je j = i+ 1 onda2 slijedi
j>i + 1 da je Gne
onda fvi; vi+2g jedodati
možemo isključen.
ivicuAko
iz je
wi+1 bez prelaska ivice (wi; wj ). Stoga ne možemo uvijek održavati originalno vanjsko planarno
ugrađivanje za konstruiranje optimalne augmentacije.

Neka je G vanjski planarni graf sa datim vanjskim planarnim ugrađivanjem. Pretpostavimo


da su vrhovi numerisani v1;:::;vn duž vanjske strane. Sada konstruišemo dualni graf G od G:
svako unutrašnje lice F od G predstavljeno je averteksom wF u G.
0
, Također predstavljamo svaki
Postoji ivica između dva vrha (wF ; wF 0 ) u G i F i F dijele brid u G.
vrh v stepena 2 preko vrha v u G i dodajemo rub (v; vF ), iv 2 F u G. Zapazite da je, Glistovi
drvo Gi da su
vrhovi stepena 2 u G.

Primijetite također da ako vi i vj dijele unutrašnju stranu i ji > 1, onda je G fvi; vjg je isključen.
Ako je ji > 1, tada postoji vrh vk sa deg(vk) = 2 i i<k<j.
Pretpostavimo da vi i vj dijele lice F tada vrh wF ima potomak vk . Ako dodamo
Machine Translated by Google
7.4 Trikonekcija 101

bridova u G tako da postoji put P od vk do vrha vl, a ne potomak


wF i wF 62 P onda ,slijedi da vi i vj više nisu rezni par. Ovo
posmatranje vodi do sljedeće leme:

Lema 7.4.1 Ako je G uravnotežen, onda primjena OuterBiconnect na G , i onda


dodavanjem odgovarajućih rubova u G daje se tropovezani graf.

Dokaz: Neka je G0 prošireni graf od G nakon primjene OuterBiconnect-a


do G. Razmotrimo dva vrha vi i vj. Podijelili su vanjski dio G na dva puta:
put P1 od vi+1 do vj1, i put P2 od vj+1 do vi1. Ako vi i vj ne rade
dijele unutrašnje lice, tada je između tetiva (vk; vl), koja povezuje P1 sa P2.
Otuda G fvi; vjg je povezan. Pretpostavimo dalje da vi i vj dijele unutrašnje lice
F i neka je j>i + 1. Neka je vk vrh sa stepenom 2 i i<k<j. Ako izbrišemo wF
u povećanju G0 od G , tada je graf G0 i dalje povezan. Neka (va; vb) bude
dodani rub u G0, pri čemu je va potomak wF i vb nije potomak wF u
G . Ovo implicira da su i<a<j i b<i ili b>j. Postoji ivica između P1
i P2 u G0, stoga vi i vj nisu par za sečenje u G0. Pošto ovo važi za svakog
par vi; vj (j>i), dijeleći unutrašnje lice, ovo dokazuje lemu. 2

U algoritmu OuterBiconnect poredak djece C-čvora je


mijenjao se s vremena na vrijeme, kako bi se očuvala planarnost. Kako se možemo nositi sa ovim?
ovdje je problem, budući da je ugrađivanje G (dakle red djece) izjednačen.
Rješenje koje ovdje predstavljamo je sljedeće: Ukorijenimo G na proizvoljnom vrhu od
stepen najmanje 2, recimo br. Pretpostavljamo da je svaki unutrašnji vrh G C-čvor,
a svaki list G je B-čvor. Međutim, redoslijed djece svakog vrha
je xed. Nakon što pronađemo v sa maksimalnim d(v) hodamo prema br do, struje
vrh nije krajnje lijevo dijete svog roditelja, ili je roditelj br. Ako je roditelj
ne br onda
, ima stepen najmanje 3, što je dovoljno da zadovolji vezu lišća
stanje. Stoga Lema 7.3.2 i dalje vrijedi, i naravno, planarnost je očuvana.
Jedina stvar je sada kada grafikon nije uravnotežen, ili drugim riječima: kako
implementirati Fazu 2? Podsjetimo da je 1-lanac komponenta TBC fvg, koji sadrži
samo jedan list. Rješenje koje predstavljamo je dodavanje rubova između 1-lanaca iznutra
zajedničko unutrašnje lice. Preciznije, neka je v masivni čvor u G , tj.
d(v) > dp 2 1. Korijen G na v i neka v(1);:::;v( ) budu listovi s lijeva na desno
u G , e koji su 1-lanci. Sada dodajemo ivicu između 1-lanca v(d 2e ja i
v(d 2 e + i), za 1 i< sa = d(v) 1 1. 2 e.
dp Pošto je p 2d(v) (vidi Odjeljak
7.3.1) slijedi da je G0 d2e

prošireni graf dodavanjem ivica A između odgovarajućih privjesaka. To radimo zamjenom


1-lanaca unutar unutrašnje površine F
i dodavanje rubova između vrhova na posljednjim blokovima 1-lanaca unutar lica F čime se ,
čuva planarnost. Za ažuriranje G jednostavno izbrišemo dva 1-lanca
od G. Ovo smanjuje broj listova i stepen v za dva. Neka G 1
0 0
biti rezultujuće stablo sa p listovi, sa str = p2 , od i neka d0(v) označava d-vrijednost
vuG 1. Može se dokazati sljedeća varijanta leme 7.3.3.
Machine Translated by Google
102 Povećanje vanjskih planarnih grafova

p0
Lema 7.4.2 Za sve čvorove v od G 1, d0(v) 1 d2 e drži.

p0
Dokaz: Za v vrijedi da je d0(v) 1 = d(v) 1 i pretpostavimo da je 2 = dp 2e =d 2 e.
p0
Uzmite u obzir av 6= v , d0(v) 1 > d 2 e. Sada je pd(v) + d(v) 2
p0
= (d(v) 1) + (d(v) 1) > (dp 2e +)+d 2 e = (dp 2 e + )+(dp 2e )=2d p 2e p,
što je kontradikcija. 2

Nakon toga primjenjujemo algoritam OuterBiconnect na graf G0 kako je gore opisano.


Odgovarajuće ivice se dodaju u vanjsku stranu G. Pošto je ovo
algoritam radi u linearnom vremenu i prostoru, dobijamo sljedeći rezultat:

Lema 7.4.3 Postoji linearni vremenski algoritam za povećanje dvopovezanog erplanarnog grafa
G dodavanjem minimalnog broja ivica tako da povećani
graf G0 je tropovezan i ravan.

7.4.2 Tripovezivanje vanjskih planarnih grafova

Za trokonekciju vanjskih planarnih grafova G, koji nisu nužno dvopovezani, koristimo se


tehnika iz prethodnog odeljka. Ako G nije povezan, onda algoritam
Connect(G) se primjenjuje za povezivanje komponenti jedna s drugom, pa pretpostavite to
G je povezan.
Sada prepoznajemo blokove G i gradimo BC-stablo TBC. Obratite pažnju da ako a
blok Bi sadrži dva preseka, c1 i c2, a zatim brisanjem c1 i c2 prekida G.
Da budemo precizniji o blokovima, koji moraju dobiti ivicu povećanja, mi
navedite sljedeću lemu, koja se može vrlo lako provjeriti.

Lema 7.4.4 Blok Bi u vanjskom planarnom grafu treba barem jedno povećanje
ivica u bilo kojem povećanju trikonektivnosti ako i samo ako postoji vrh stepena 2
u Bi ili njegovom odgovarajućem B-čvoru ima stepen 2 u TBC.

Neka je jedan proizvoljni B-čvor b korijen TBC-a. Opet red djece od


B-čvor je xed. Pretpostavljamo da je red slijeva nadesno djece B-čvora
odgovara hodanju u smjeru suprotnom od kazaljke na satu oko vanjske strane odgovarajućeg
blok.
Ideja je da počnemo s privjesnim blokovima Bi , i za primjenu BicOuterTri veze na
Bi. Ali sada moraju ići najmanje dvije ivice od vrhova Bi do
vrhova, nije dio Bi. Zaista, za ovo ne dodajemo posljednju ivicu povećanja
do Bi. To implicira da dva ili tri vrha Bi ostaju sa stepenom 2. Neka Bj
biti blok, koji odgovara roditelju roditelja B-čvora Bi u TBC.
Kada primjenjujemo OuterBiconnect na Bj, predstavljamo Bi byavertex vBi sa k
ostavlja kao djeca u dualnom grafu B j od Bj , gdje je k broj vrhova
stepen 2.
Machine Translated by Google
7.4 Trikonekcija 103

20 1 6
20
1 7
6
2 7 19
19 4 5 A G
A 8
3
G 8 18 B
18 B
C
17
E 9 E
16 C
D 10
15 D
F
14
13 F 11 11
15
12
12

(a) Početni graf G. (b) Drvo G.

20 1 6
20 1
7
6
19 7
A G 4 5
A
19 2
8
18 B 3
G
C
18
17
B 8

E E 9
16 C

D D 10
F 15

11 14
13 F 11
15
12
12

(c) Primjena OuterBiconnect na G. (d) Optimalno povećanje


trikonekcije.

Slika 7.3: Tropovezivanje vanjskog planarnog grafa.


Machine Translated by Google
104 Povećanje vanjskih planarnih grafova

Primijetite da uvijek najmanje dvije ivice moraju ići od Bi ili potomaka Bi


vrhovima, a ne potomcima Bi. Ako se visi blok Bi sastoji samo od jednog pojedinačnog
vrh v u G ili ako Bi ima samo jedan vrh v stepena 2, onda to predstavljamo sa 2
ostavlja kao djecu vBi , jer moraju ići dvije ivice od v do vrhova, ne
dio Bi. Pošto svaki vrh vBi visećeg bloka Bi ima 2 ili 3 lista, nema novog
1-lanci ili masivni čvorovi su uvedeni u B j.
Nakon posjete privjesnim blokovima posjećujemo ove blokove Bj, za koje sve podređene
B-čvorove posjećuje OuterBiconnect. Računamo dualni graf B j
u kojem je svaki B-čvor potomka odgovarajućeg bloka Bi predstavljen sa
vrh vBi . vBi ima k djece, gdje je k broj ivica do kojih mora ići
preostali dio grafikona. Primjenjujemo OuterBiconnecton B j . U istom
način, dva ili tri ruba moraju ići od Bj ili njegovih potomaka do preostalog dijela
grafa. Ovaj algoritam primjenjujemo odozdo prema gore dok ne budemo u korijenu TBC-a. U
svaki korak posjećujemo blok Bi i ukupno vrijeme je linearno u broju vrhova od
Bi+ broj djece B-čvora Bi. Kombinujući ovo zapažanje sa
Lema 7.4.1 daje sljedeću teoremu.

Teorema 7.4.5 Postoji linearni algoritam vremena i prostora za povećanje van erplanarnog
grafa G za minimalni broj ivica tako da je rezultirajući graf
tropovezana i planarna.

7.5 Triangulacija vanjskih planarnih grafova

7.5.1 Triangulacija jednog lica planarnog grafa

Sada razmatramo sljedeći problem: dat planarnom grafu G sa ravnim em slojem,


triangulirati lice F od G uz minimaliziranje maksimalnog stepena. Mi
pokazati korištenjem dinamičkog programiranja da se ovaj problem može točno riješiti
polinomsko vrijeme. Koristimo ovaj algoritam da trianguliramo sve unutrašnje strane
vanjskog erplanarnog grafa dok minimiziramo maksimalni stepen. Dinamičko programiranje ima
je primijenjen za nekoliko povezanih algoritama triangulacije poligona, opisanih od
Edelsbrunner et al. [24, 25, 26]. Oni predstavljaju algoritme polinomskog vremena (koristeći
dinamičko programiranje) za triangulaciju poligona uz maksimiziranje minimuma
visina, minimiziranje maksimalnog nagiba ili minimiziranje maksimalnog ekscentriciteta.
Nažalost, ovi algoritmi se ne mogu direktno prevesti na naš problem.
Neka je dato lice F od G na k vrhova v1;:::;vk (numerirano u smjeru kazaljke na satu oko
lice). Svaki vrh vi od F ima stepen 2. Neke ivice (vi; vj ) sa vi; vj 2 F
može doći. Ove ivice se nazivaju zabranjene ivice i ugrađene su izvan F.
Primijetite da u svakoj triangulaciji vrhovi v1 i vk imaju zajedničkog susjeda
vp (2 p koji dijeli
k 1)
lice
unutrašnje
F na dva lica
liceF1 ,
F (sa
vrhovi v1;:::;vp) i F2 (sa vrhovima vp;:::;vk). Ako (v1; vp) ili (vp; vk) već jeste
prisutan izvan F , (dakle 2 <p<k 1), onda ova triangulacija nije moguća,
pošto bi to impliciralo više ivica. Inače, rekurzivno trianguliramo lica
Machine Translated by Google
7.5 Triangulacija vanjskih planarnih grafova 105

F1 i F2. Neka F 01 i F 02 označavaju triangulirana lica F1 i F2, tada


najviši stepen u F 01 i F 02 je važan, ali štaviše, pošto F1 i F2 dijele vp,
povećanje deg(vp) u F 01 i F 02 mora se dodati deg(vp) u F . Kad smo
ispitati triangulacije lica Fij, formirane vrhovima vi; vi+1;:::;vj , pregledamo
različite vrijednosti povećanja deg(vi), deg(vj ) i deg(vp) u F1 i F2. Vidi
slika 7.4.

vk 1
vk

F2 v1

F1
v v2
str

Slika 7.4: Rekurzivna denicija triangulacije jednog lica.

Obratite pažnju da kada je p = 2 (ili k 1) onda je ivica (v1; v2) (ili (vk1; vk)) već
prisutan, stoga ne treba dodavati. Da bismo se pozabavili ovim, brišemo ivice (vi; vi+1)
(1 i<k) i smanjimo deg(vi) za 2. Neka incr(vi) označava povećanje deg(vi)
kada se triangulira F1 na F 01 (pod pretpostavkom vi 2 F1). Za triangulaciju lica Fij we
moraju pohraniti različita povećanja deg(vi) i deg(vj ) u tablicu. Neka D[i; j; i0; j0]
0
biti maksimalni stepen Fij triangulacijom sa incr(vi) = i i incr(vj ) = j 0.
Ako takva triangulacija ne postoji, D[i; j; i0; j0] = 1. Jednostavna analiza pokazuje
sljedeću rekurzivnu formulu ako je i<j 1:

D[i; j; i0; j0] := min fmax f D[i; p; i0 deg(vi) + 1; p0]; D[p; j; p00; j0 1];
0
i<p<j i + 1;
0
p0 ; p00 deg(vj ) + j + 1;
(i; p) i (j; p) deg(vp) + p0 + p00 + 2
nije zabranjeno
g
g

Ako je i = j 1 onda za sve i 0; j0 za 0: D[i; j; i0; j0] =maxfdeg(vi), deg(vj )g. Mi želimo
0 0
izračunavanje mini0;j0 fD[1; k; i0; j0], deg(v1) + i + 1, deg(vk) + j + 1g. Ovo radimo do
korištenjem dinamičkog programiranja, zasnovanog na gornjim formulama, i nekim drugim idejama
koji pomažu u smanjenju vremena rada algoritma.

Teorema 7.5.1 Postoji tačan O(k3 (G) log (G)) algoritam vremena za triangulaciju jednog lica od k
vrhova grafa G tako da je maksimalni stepen
triangulacija G0 je minimizirana.
Machine Translated by Google
106 Povećanje vanjskih planarnih grafova

Dokaz: Neka je dato lice F. Prema teoremi 5.3.2 i 6.2.1 znamo da možemo
3
triangulirati F tako da je maksimalni stepen najviše d 2 (G)e+O(1). Mi ne
izračunati sve vrijednosti D[i; j; i0; j0] jer bi to oduzimalo previše vremena, ali umjesto toga
primijeniti binarno pretraživanje na maksimalnom stepenu. Dakle, moramo testirati za O(log (G)) vrijednosti
od K da li postoji triangulacija sa maksimalnim stepenom K. Neka DK[i; j; i0; j0] = istina () D[i; j; i0; j0] K.
Pretpostavimo da je K xed. Imajte na umu da je dovoljno znati:
za sve i 0, 1 takvei da jeKDK
0 0
[i; j; i0;
deg(vi), j0] = tačno
najmanja vrijednost j
0 0
i za sve j 0, 1 j K deg(vj ), najmanja vrijednost i takav da DK[i; j; i0; j0] =
0 0
tačno. Označite ove najmanje vrijednosti sa FK[i; j; i0] i GK[i; j; j0]. (Ako takav j ili ja

ne postoji, FK[i; j; i0] = 1, ili GK[i; j; j0] = 1.)


Sada DK[i; j; i0; j0] = istina, ako i samo ako postoji ap, i<p<j, (vi; vp) i
(vj ; vp) nije zabranjeno i FK[p; j; K deg(vp) FK[i; p; i0] 2] j 0. (Povećanje
stepena vp u licu Fpj ne smije biti veći od K deg(vp) FK[i; p; i0]
2. FK[i; p; i0] ivice se koriste za lice Fip, a postoje ivice (i; p); (p; j).) Dakle
FK[i; j; i0] = minfFK[p; j; K deg(vp) F [i; p; i0] 2]ji < p < j; (i; p); (p; j) ne
zabranjeno. Poslednja formula nam omogućava da izračunamo sve vrednosti FK[i; j; i0] (1 p) u
k; 0 i O(k3K) vremenu. Kada se FK izračuna, lako se određuje
i da li postoji triangulacija sa maksimalnim stepenom K. Korištenje binarnog pretraživanja uključeno
K, možemo ga implementirati tako da ukupno vrijeme izvođenja postane O(k3 (G) log (G)).
2

7.5.2 Triangulacija vanjskih planarnih grafova

U ovom odeljku razmatramo problem triangulacije unutrašnjih lica


vanjski planarni graf G. Ako je G bikonektan, onda je povećanje G0 mop.
Svaki triangulirani poligon je mop [88]. Također prepoznavanje vanjskih planarnih grafova je
na osnovu prepoznavanja mopa [82].
Prvo, napominjemo da sve blokove možemo tretirati zasebno. Jedini relevantan
informacija za blok B za GB je presek v, koji pripada i B i G B.
Ako je B povezan mostom sa GB, onda nema informacija o triangulaciji
od B je relevantan za G B. Stoga pretpostavimo da je G mostom povezan, inače
možemo primijeniti sljedeću metodu na mostom povezane komponente G. We
konstruisati stablo , gdje je svako unutrašnje lice F od G predstavljeno čvorom vF in
TT . Imamo dvije vrste ivica:

dodajte rub (vF1 ; vF2), ako F1 i F2 dijele ivicu. Odricanjem, F1 i F2


pripadaju istom bloku.

dodajte rub (vF1 ; vF2), ako F1 i F2 dijele vrh u G, a F1 i F2 pripadaju


na različite blokove G.

Sada imamo stablo gdje svaki čvor vF predstavlja lice F. Korijen T na proizvoljan
čvor vF . Neka je roditelj čvora vFa vFb, tada Fb zovemo roditeljsko lice Fa.
Machine Translated by Google
7.5 Triangulacija vanjskih planarnih grafova 107

Zajednička ivica (ili zajednički čvor ako Fa i Fb pripadaju različitim blokovima) naziva
se roditeljska ivica (ili roditeljski čvor, respektivno) Fa. Za svaku ivicu (vi; vj ) lica Fa koja
je roditeljska ivica nekog drugog lica Fb, dene D[vi; j; i0; j0] da bude maksimalni stepen
ako su Fb i svi njihovi potomci u H triangulirani, tako da je porast stepena vi najviše i
0, a stepen povećanja vj najviše j 0. Za svaki vrh vi lica Fa koji je roditelj-čvor najmanje
jednog drugog lica Fb, dene D[vi; i0] da bude maksimalni stepen, ako su ova lica Fb i
svi njihovi potomci u H triangulirani, tako da je povećanje stepena vi najviše i 0.

Sada koristimo proceduru, sličnu onoj, opisanoj u Odjeljku 7.5. Primijeniti binarno
pretraživanje na maksimalnom stepenu K. Za ksed K, dene FK[i; j; i0] i GK[i; j; j0] kao u
dokazu teoreme 7.5.1. Dene HK(i) = minfi 0jD[i; i0] kg.
Izračunajte tabele ili vrijednosti za FK; GK i HK odozdo prema gore u stablu H. Kada se
bavimo licem, dodajemo HK(i) stepenu vi. Neka su tabele FK[i; j; i0] i GK[i; j; j0] igraju
istu ulogu koju su igrali u dokazu teoreme 7.5.1. Uz manje modifikacije ovog algoritma,
može se izračunati tabela FK[v0 GK[v0 i; v0 j ; i0]

i; v0 j ; j0] za roditeljski rub (v0 i; j i ) od Fa, ili izračunajte doprinos HK[v0 i]


v0

za dokaz roditelj-čvor i od Fa. Ovdje izostavljamo neke jednostavne detalje. Primjena sličnog
v0 kao u teoremi 7.5.1, može se dobiti sljedeći rezultat:

Teorema 7.5.2 Postoji O(n3 (G) log (G)) algoritam za triangulaciju svih unutrašnjih lica
vanjskog planarnog grafa uz minimiziranje maksimalnog stepena.
Machine Translated by Google
108 Povećanje vanjskih planarnih grafova
Machine Translated by Google

Poglavlje 8

Zaključci

U dijelu B razvili smo efikasne algoritme za nekoliko problema povećanja za


planarni i vanplanarni grafovi. Za vanplanarne grafove G, optimalno O(n) vrijeme i
dati su prostorni algoritmi za pravljenje G mostom povezanim, dvopovezanim ili
tropovezanim dodavanjem minimalnog broja ivica, uz očuvanje planarnosti. U svemu
tri slučaja, stepen svakog vrha se povećava za najviše 2. Triangulacija svih
unutrašnje strane vanjskog planarnog grafa uz minimiziranje maksimalnog stepena koji može biti
postignuto iu polinomskom vremenu.
Za planarne grafove predstavili smo algoritme povećanja, dodajući samo
konstantno puta minimalni broj ivica kako bi se očuvala planarnost i različitost
ograničenja povezivanja. Na slici 8.1 dat je pregled predstavljenih algoritama Dijela B.
Osim algoritma Triangulate, maksimalno povećanje
stepena je jednaka donjoj granici najgoreg slučaja. U Triangulateu maksimalno
povećanje stepena je najviše aditivna konstanta od optimalnog. Za naše
znanja, ovo je prvi put da se razmatraju problemi povećanja
dodatno ograničenje planarnosti. Problemi povećanja nastaju u oblasti
crteži grafova, u kojima ulazni planarni graf mora biti dvopovezan, trokonektan
ili triangulirano. U poglavlju 13 takođe ćemo predstaviti algoritam za 4-povezane
trougaone planarne grafove, ali nažalost, ne možemo svaki planarni graf uvećati za
dodavanje ivica tako da postane 4-povezani trouglasti planarni graf. stoga,
ovaj problem nismo razmatrali u dijelu B.
Algoritmi povećanja, koji se ne bave ograničenjem planarnosti, postaju ključna
oblast u literaturi o algoritmima grafova. Ovdje spominjemo rad
o algoritmima povećanja, s obzirom na povezanost vrhova [27, 36, 51, 52, 53,
72, 97, 114, 117] i povezivost rubova [33, 72, 85, 115, 118]. Među ovim radovima dati
su optimalni linearni vremenski algoritmi za povećanje grafova s obzirom na to
na mosnu povezanost [27], bikonektivnost [53, 97] i trikonekciju [52].
Međutim, problem povećanja do sada nismo razmatrali proizvoljno
nedvopovezani planarni graf na trokoneni planarni graf dodavanjem minimuma
broj ivica. Kao što je najavljeno u poglavlju 5, varijanta odlučivanja ovog problema je
još uvijek otvoren. Jedan pristup rješavanju ovog problema je da se graf učini dvopovezanim, npr

109
Machine Translated by Google
110 Zaključci

algoritam vrijeme graf unosa prostora dodana donja granica (G0 )


složenost kompl. G ivice za (G0 )
Povežite se O(n) O(n) isključeno optimalno (G)+2 (G)+2
Biconnect O(n) O(n) povezan | (G)+2 (G)+2
2*OptBiconnect O(n (n; n)) O(n) povezan 2*OPT. (G)+2 (G)+2

2*OptBridgeConnect O(n (n; n)) O(n) povezan 2*OPT. (G)+2 (G)+2


3 3 3
Triconnect O(n) O(n) dvopovezan 2
*OPT. d2 (G)e d2 (G)e
Triangulate O(n) O(n) trokonektovano optimalno (G)+3 (G)+8

Slika 8.1: Pregled algoritama u dijelu B.

primjenom 2*OptBiconnect, a zatim stvaranjem grafa tropovezanim, npr

primjenom Triconnect. Ovo naravno ne vodi nužno do trokonekcije


planarni graf sa minimalnim brojem ivica, ali štaviše, postoje planarni
grafovi za koje radi bilo koje optimalno povećanje na dvopovezani planarni graf
ne dovodi do optimalne augmentacije na tropovezani planarni graf. Na slici
8.2 dat je primjer. Također je otvoreno da li se primjenjuje 2*OptBiconnect i
Trikonekcija vodi do rješenja za opći planarni problem trikonekcije sa

broj dodanih ivica samo mala konstanta puta optimalna.

(a) Optimalno (b) Od bikonektivnosti (c) Optimalno


bikonektivnost na trikonekciju trikonektivnost

povećanje povećanje

Slika 8.2: Kontraprimjer za trokonekciju nebikonektivnih planarnih grafova.

Kada je ulazni graf G ugrađen, tj. dat kao ravan graf G, tada
problem povećanja u odnosu na bikonektivnost postaje lako rješiv. U
ravan graf svaki privezak je već dodijeljen licu. U svakom licu moramo
i optimalno slaganje između privjesaka, uz očuvanje planarnosti. Ovo
problem je jednak primjeni OuterBiconnect-a na svako lice grafa, vodeće

do optimalnog linearnog vremenskog algoritma za bikonekciju opštih ravnih grafova dok


očuvanje planarnosti.
Kada se ravan graf G mora povećati na tropovezani ravan graf,
onda je problem komplikovaniji. Ne možemo jednostavno koristiti algoritam za
tropovezivanje vanjskih planarnih grafova na svako lice F od G. Jer kada smo trikonektirali
komponente unutar F, onda se ivice mogu
, dodati izvan F. Moramo se smjestiti
Machine Translated by Google
Zaključci 111

ove ivice izvan F tako da se tripovezivanje susednih lica F može uraditi i dodavanjem minimalnog broja
ivica. Primijetite također da Lema 5.1.2 više ne vrijedi za ravan graf. Iako nije teško promijeniti algoritam
Triconnect tako da radi u vremenima optimalnim u O(n) vremenu za ravan grafove, čini se prilično teškim
3
dobiti optimalno rješenje u polinomskom vremenu. 2

Razmatrali smo i problem triangulacije planarnih grafova G. Dokazali smo da je triangulacija


dvopovezanog planarnog grafa G takvog da je maksimalni stepen K NP-teška. Jansen je dokazao da je
triangulacija ravnog grafa, sa koordinatama datim za svaki vrh, tako da triangulirani ravan graf ima
maksimalni stepen K, također NP-tvrda [55]. Sa pozitivne strane, predstavili smo linearni vremenski
algoritam za triangulaciju planarnog grafa, tako da je maksimalni stepen najviše aditivna konstanta od
egzistencijalne donje granice. Za tropovezane planarne grafove ovo povećanje stepena je najviše konstanta
od optimalnog i zanimljivo je zatvoriti ovaj jaz, ili drugim riječima: da li je problem triangulacije planarnog
grafa takav da je maksimalni stepen K također NP- teško za tropovezane planarne grafove?
Machine Translated by Google
112 Zaključci
Machine Translated by Google

Dio C

Crtanje planarnih grafova

113
Machine Translated by Google
Machine Translated by Google

Poglavlje 9

Algoritmi za crtanje

Poslednjih decenija u literaturi su opisani mnogi algoritmi za crtanje, kako


sa teorijske tako i sa praktične tačke gledišta. Problem lepog crtanja grafa u
ravni dobija sve veću pažnju zbog velikog broja aplikacija. Primeri uključuju
VLSI raspored, algoritam i sliku, vizuelne jezike i CASE alate. U poglavlju 1
predstavljeni su neki detaljniji primjeri. Moguće je nekoliko reprezentacija.
Tipično, vrhovi su predstavljeni različitim tačkama u liniji ili ravni, a ponekad
su ograničeni na tačke mreže. (Alternativno, vrhovi su ponekad predstavljeni
segmentima linija [58, 89, 96, 104].) Rubovi su često ograničeni da budu
nacrtani kao prave linije [15, 31, 32, 34, 58, 80, 89, 96, 98 , 104] ili kao spojni
segmenti, tj. kada su zavoji dopušteni [100, 102, 105, 106]. Cilj je pronaći
izgled grafa koji optimizira neku funkciju troškova kao što je površina,
minimalni ugao, broj krivina ili koji zadovoljava neko drugo ograničenje. U
[18], Di Battista, Eades, Tamassia & Tollis daju dobru bibliografiju sa
komentarima sa više od 250 referenci uključujući nekoliko pokazivača na
aplikacije u kojima se pojavljuju algoritmi za crtanje. U ovom dijelu ćemo
detaljnije opisati nekoliko tehnika koje se bave neusmjerenim planarnim
grafovima. Nemamo namjeru da budemo potpuni u našem pregledu, ali
pokušavamo dati novije opće tehnike koje vode do zanimljivih teorijskih i
praktičnih granica. Algoritmi služe kao polazna tačka za nove rezultate,
predstavljene u Dijelu C.

9.1 Pravolinijski crteži


Kao rezultat, nezavisno dobijen od strane Wagnera [113], Faryja [31] i Steina [99], svaki
planarni graf se može nacrtati u ravni sa pravolinijskim ivicama. Ovo se takođe dobija
sledećim konstruktivnim dokazom, zahvaljujući Readu [92]: pretpostavimo da je G
trouglasti planarni graf. (Ako G nije trianguliran, onda u linearnom vremenu možemo
dodati ivice tako da je G trianguliran, vidi poglavlje 6.) Planarnošću se može provjeriti
da svaki vrh v od G ima barem jednog susjeda u tako da u i v imaju tačno dva zajednička komšija.

115
Machine Translated by Google
116 Algoritmi za crtanje

Ako v ne pripada vanjskoj površini, onda skupljamo brid (u; v), tj. dodajemo bridove iz u
svim susjedima v, koji još nisu susjedi od u, i uklanjamo vrh v. Crtamo smanjeni graf G0 sa
n 1 vrhova rekurzivno. Nakon toga uklanjamo dodane rubove od u do (prethodnih) susjeda
v i postavljamo v unutar odgovarajućeg lica tako da je v vidljivo od svojih prethodnih
susjeda. Ovo daje crtež sa ravnim ivicama. Koristeći zapažanje da svaki planarni graf G ima
vrh v sa deg(v) 5, možemo implementirati ovaj algoritam tako da radi u O(n) vremenu,
zahtijevajući O(n2) prostor [92].

a a

a a

b b w
u v u v u

c d
c b c b c
d

d d

Slika 9.1: Osnovni koncept Readovog algoritma za crtanje.

Nedostatak ovog algoritma je što se vrhovi postavljaju na realne koordinate.


Štaviše, ponekad neravnomjerno raspoređuje vrhove, što zahtijeva uređaje za prikaz
visoke rezolucije za crtež, budući da se vrhovi mogu postaviti vrlo blizu jedan drugom (ovo
se naziva grupiranje).
Koristeći napredniju i dublju karakterizaciju planarnih grafova, svaki trouglasti planarni
graf može se nacrtati ravnim linijama tako da su vrhovi postavljeni na koordinatama
mreže. Metoda za to, koju su opisali de Fraysseix, Pach & Pollack [34], biće izložena u
poglavlju 10. Nezavisno, Schnyder [98] je dobio linearni vremenski algoritam za crtanje
trouglastog planarnog grafa na (n2) (n2) mreži, baziran na novoj reprezentaciji
trianguliranih planarnih grafova, nazvanoj baricentrična reprezentacija. Vrhovi su široko
raspoređeni na mreži, a postoji donja granica minimalne dužine ruba. Planarni crteži
zahtijevaju (n2) površinu u najgorem slučaju [34]. Međutim, nedostatak svih ovih algoritama
za crtanje je taj što minimalni ugao između linija može biti veoma mali, što crtež čini
neprivlačnim. U [80], Malitz i Papakostas su pokazali da se svaki d-planarni graf G može
nacrtati u ravni tako da je minimalni ugao najmanje radijani, gdje je 0 < < 1 konstanta
d
(približno 0,15). Ovo slijedi izvanrednim rezultatom da se svaki vrh v trouglastog
grafa G
planarnog
može
predstaviti zatvorenim diskom D(v) tako da ako je (u; v) 2 G, onda diskovi D(u) i D(v) dodiruju
jedni druge (tzv. disk-pakovanje). Pakovanje diska D indukuje planarni graf G na očigledan
način: postavite vrh u centar svakog diska i za svaki par diskova koji se dodiruju, napravite
ivicu između vrhova u centrima dva diska. Nažalost, dokaz je nekonstruktivan, a minimalni
ugao je prilično mali. Polinomsko vrijeme
Machine Translated by Google

9.2 Konveksni crteži 117

aproksimaciju realizacije pakiranja diskova i lijepu generalizaciju na tropovezane


planarne grafove najavljuje Mohar (osobna komunikacija).
S druge strane, G se može nacrtati neplanarno sa pravim linijama tako da ),
1
minimalni ugao je najmanje d rezultatom Formanna et al. [32]. Oni također
( dokazano da je odlučivanje o tome da li se graf maksimalnog stepena 4 može
nacrtati sa minimalnim
2 dauglom NP-potpuno.planarni
li se dvopovezani U Kantugraf
[66] može
je dokazano
nacrtatida odlučivanje
planarno sa
minimalni ugao K je NP-potpun.

9.2 Konveksni crteži

Drugi način za crtanje planarnih grafova je crtanje sa konveksnim plohama, tj.


planarnim pravolinijskim crtežom tako da su sve unutrašnje granice lica konveksni
poligoni. Ovaj problem dobivanja konveksnih crteža prvi je detaljnije proučavao
Tutte [110]. Tutte je također dao jednostavnu metodu za pronalaženje konveksnog crteža.
Ovdje je vanjsko lice bilo koji propisani konveksni poligon i pozicija P (v) = (x(v); y(v))
svakog vrha v je data sa
1 1
x(v) = X x(w) y(v) = X y(w)
deg(v) deg(v)
(v;w)2E (v;w)2E

Koristeći Gaussovu eliminaciju, koordinate se mogu pronaći jednostavnim


algoritmom, koji radi u O(n3) vremenu i zahtijeva O(n2) prostora. Koristeći sofisticiraniju
shemu eliminacije rijetke matrice koja se oslanja na teorem o planarnom separatoru,
ovo dovodi do O(np n) algoritma, koji zahtijeva samo O(n log n) prostora [79].
Thomassen [109] je karakterizirao klasu planarnih grafova koji dozvoljavaju
konveksan crtež. Ovdje ne dajemo potpunu karakterizaciju, ali se može opisati kao
klasa bipovezanih planarnih grafova, gdje su \gotovo" svi razdvojni parovi dio
vanjskog dijela. Na osnovu ove karakterizacije, Chiba et al. [14] predstavljaju O. (n)
vremenski rekurzivni algoritam, koji se može opisati na sljedeći način: pretpostavimo
da je odabrana vanjska strana F dvopovezanog planarnog grafa G, pretpostavimo
da su svi vrhovi v 2 F postavljeni, te da su vrhovi stepena dva eliminisani, dok se
povezuju njihovi (Vrh stepena 2 kasnije se može postaviti na pravolinijski segment
koji spaja dva vrha koji su mu susjedni.) Preostali dio algoritma je sljedeći:

Konveksno crtanje(G); f pretpostavimo n 4, inače je G nacrtan kao trougao


g neka je v vrh, koji je ugaona tačka vanjske površine; neka G0 := G fvg;
neka su B1;:::;Bp blokovi od G0; neka su za svaki Bi, vi i vi+1 dva rezna
vrha od Bi, stavite vrhove na vanjsku stranu svakog Bi na konveksnu
površinu unutar trougla v; vi; vi+1 tako da: , sa (v; vi); (v; vi+1) 2 E;
Machine Translated by Google
118 Algoritmi za crtanje

v
v
p+1
v
1

B
str
B1

v v
2 str
Bp 1
B2
....

v v
3 p 1

Slika 9.2: Crtanje konveksnog planarnog grafa (iz [14]).

vrhovi susjedni v su kutne tačke konveksnog poligona; ostali vrhovi


su na pravolinijskim segmentima ovog poligona; za svaki blok Bi do
ConvexDraw(Bi) rof;
Kraj ConvexDraw

Vidi sliku 9.2 za ideju algoritma, a vidi [14] za potpuni opis. U [13], Chiba et al.
proširio algoritam na opće planarne grafove tako da je vanjska strana svake nacrtane
tropovezane komponente nacrtana kao konveksni poligon. Nažalost, eksperimenti su
pokazali da se ovaj algoritam ponekad distribuira neravnomjerno, što zahtijeva uređaje
za prikaz visoke rezolucije.

9.3 Crtanje planarnih grafova pomoću st-Numbe

prsten

Nekoliko algoritama za crtanje planarnih grafova zasnovano je na st-numeraciji. st-


numeracija je numerisanje vrhova v1;:::;vn od G tako da (v1; vn) 2 E i svaki vrh vi (1 <i<n)
ima bridove na vrhove vk i vl, sa k< i<l. Ovo je moguće samo kada je G bikonektan, stoga
pretpostavimo da je G bikonektan. (U suprotnom, lažne ivice se mogu dodati G da bi G
bio dvopovezan uz očuvanje planarnosti.
Pogledajte Poglavlje 4 za opsežno istraživanje ovog problema povećanja. Lažne ivice su
potisnute u konačnom crtežu.) Graf sa st brojem naziva se st-graf.

Neka su ivice (vi; vj) usmjerene vi! vj , ako je j>i. Neka je dato planarno ugrađivanje
od G. G ima tačno jedan izvor (tem s = v1) i jedan ponor (vrh t = vn).
Machine Translated by Google
9.3 Crtanje planarnih grafova korištenjem st-numeracije 119

Orijentacija se također naziva bipolarna orijentacija [96]. Prvo ćemo ponoviti i proširiti
teoremu 2.2.2.

Teorema 9.3.1 ([104, 122]) Sve ulazne ivice bilo kog vrha u G pojavljuju se uzastopno u
rotaciji oko v, kao i sve izlazne ivice, u bilo kojem ugrađivanju G. Granica svakog lica se
sastoji od tačno dva usmerena puta u G.

Određujemo lijevo(e) (desno(e)) da bude lice lijevo (desno) od e. Lice koje odvaja
dolazne od izlaznih ivica u smeru kazaljke na satu naziva se levo(v), a drugo odvajanje
se zove desno(v). Najviši i najniži numerisani vrh lica označen je sa high(F) i low(F), vidi
sliku 9.3.

visoko (F)

lijevo(e) e desno(e)
lijevo(v) desno (v) v
F

nisko (F)

Slika 9.3: Svojstva planarnih st-grafova.

Rubovi dualnog grafa G od G su usmjereni na sljedeći način: ako su Fl i Fr lijeva i


desna strana nekog ruba (v; w) od G, tada je dualni rub usmjeren od Fl prema Fr ako (v;
w ) 6= (s; t) i od Fr do Fl, ako je (v; w)=(s; t). Orijentacija G je takođe bipolarna orijentacija,
sa izvorom s desnom stranom (s; t) i ponorom t lijevom stranom (s; t).

9.3.1 Prikaz vidljivosti

U prikazu vidljivosti planarnog grafa vrhovi su predstavljeni kao horizontalni segmenti,


a ivice kao vertikalni segmenti tako da svaki rubni segment ima svoje krajnje tačke na
segmentima povezanim sa njegovim upadnim vrhovima i ne prelazi nijedan drugi
segment vrha. Otten & van Wijk [89] uveli su ovu reprezentaciju, koja ima primjenu na
šeme kola, i pokazali da svaki planarni graf to priznaje. Ovdje ćemo detaljnije opisati
algoritam Rosenstiehl & Tarjan [96].
(Ovaj algoritam su nezavisno pronašli Tamassia & Tollis [104].)
Machine Translated by Google
120 Algoritmi za crtanje

Za crtanje grafa prvo konstruišemo st-numeraciju i usmeravamo ivice od s do t. Zatim


izračunavamo dualni graf G i usmjeravamo rubove u G, od gore
izvora
opisano.
s ka ponoru
Za svakit vrh
kao všto
odjeG,
neka d(v) označava dužinu najduže staze od s do v. Neka je D = d(t). Za svaki vrh F od G
neka d(F) označava broj čvorova na najdužoj putanji od s do F. Neka je d(s )=1 i D = d (t).,
Ove dužine se lako mogu izračunati u linearnom vremenu i dati koordinate u prikazu
vidljivosti. Širina crteža postaje D 1, a visina D.

Vidljivost(G);
izračunati st-numeraciju za G;
konstruisati planarni st-graf G i njegov dualni G ;
izračunati d(v) za sve vrhove u G i d(F ) za vrhove u G ; za svaki vrh v
6= s; t nacrtajte horizontalnu liniju između (d(lijevo(v)); d(v)) i
(d(desno(v)) 1; d(v)); rof; za vrh s, nacrtajte horizontalnu liniju između (0; 0) i (D 1; 0);
za vrh t, nacrtajte horizontalnu liniju između (0; D) i (D 1; D); za svaki rub (u; v) 6= (s; t)
do

povući liniju između (d(lijevo(u; v)); d(u)) i (d(lijevo(u; v)); d(v)); rof; za
rub (s; t), nacrtajte liniju između (0; 0) i (0; D);

Kraj vidljivosti

Teorema 9.3.2 ([96, 104]) Algoritam Visibility(G) izračunava u linearnom vremenu prikaz
vidljivosti dvopovezanog planarnog grafa na mreži veličine najviše (2n 5) (n 1).

t
g 4
g
4

e 3
e
s* t*
d 2 6
1
c 2 d c
f 1
2
1

b f b
3
5

a
a s 0

Slika 9.4: Izgradnja prikaza vidljivosti.

Koraci su takođe ilustrovani na slici 9.4. Slijedi da su vrhovi v od G, v 6= s; t, stepena 2,


predstavljeni su jednom tačkom u prikazu vidljivosti
Machine Translated by Google
9.3 Crtanje planarnih grafova korištenjem st-numeracije 121

(npr. vidi sliku 9.7). U Poglavlju 13 je pokazano da se prikaz vidljivosti 4-povezanog planarnog
grafa može konstruisati na mreži veličine najviše (n1) (n1).
Koristeći ovaj rezultat, u poglavlju 14 je pokazano da svaki planarni graf može biti predstavljen
3
prikazom vidljivosti na mreži najveće veličine (bako linearne vremenske
2 nc3) (n1).
složenosti
Postići za ovaj
algoritam, pokazujemo da konstruiranjem stabla od 4 bloka trianguliranog planarnog grafa
može se uraditi u linearnom vremenu.
Ovaj jednostavan algoritam također su uspješno primijenili Di Battista i Tamassia [20], koji
su pokazali da korištenjem ove vrste konstrukcije možemo konstruirati u O(n) vremenu crtež G
naviše na mreži veličine najviše (2n). 5) (n 1) tako da ima najviše 4n 10 krivina. Podsjetimo da je
crtež prema gore ako je za svaku usmjerenu ivicu (v; w) : y(w) > y(v). Rezultat za crteže prema
gore dobija se konstruisanjem prikaza vidljivosti G, a zatim sažimanjem svakog horizontalnog
segmenta u jednu tačku. Osim n 1 ivica, sve ostale ivice će dobiti najviše dva savijanja. Postoji
najviše 2n 5 ivica, što dovodi do najviše 4n 10 krivina.

1
Ovaj broj se može poboljšati na (10n 31)
3 krivina [20], pa čak i na 2n 5 krivina [22]. Di Battista,
Tamassia & Tollis koristili su algoritam Visibility(G) i za izračunavanje ograničene vidljivosti
prikaza grafova. U ograničenom prikazu vidljivosti ivice nekih zadanih putanja disjunktnih ivica
su vertikalno poravnate [22].

9.3.2 Ortogonalni crteži

Algoritam Vidljivost(G) se takođe može koristiti za konstruisanje ortogonalnog crteža G.


Ortogonalni crtež je planarni crtež gde su vrhovi predstavljeni tačkama, a svaka ivica je
naizmenični niz horizontalnih i vertikalnih segmenata.
Heuristički algoritam Tamassia & Tollis [105] za minimiziranje broja savijanja u ortogonalnim
crtežima je sljedeći:

Ortogonalno(G); :=
Vidljivost(G); za svaki
v 2 konvertujte ga u
, čvor kao što je prikazano na slici 9.5 rof; optimizirajte
crtanje pomoću sljedećih optimizacija (pogledajte sliku 9.6):
T 1: pomjeriti uzastopne krivine od 90o i 270o u jednoj ivici po pravoj liniji;
T 2: rotirati vrh, ako sve upadne ivice imaju ugao od 90o;
T 3: zamijeniti vrh stepena 3 na upadnu krivinu;
konstruisati ugradnju mreže;
End Orthogonal

Teorema 9.3.3 ([105]) Postoji linearni vremenski algoritam za izračunavanje ortogonalne


reprezentacije dvopovezanog planarnog grafa G sa najviše n+2 savijanja ako je (G) 3, i sa najviše
2n + 4 savijanja ako je (G ) 4.

Na slici 9.7 dat je primjer kompletnog procesa konstruiranja ili togonalnog crteža, koristeći
prikaz vidljivosti. Ista veza sa brojem
Machine Translated by Google
122 Algoritmi za crtanje

(a) (d)

(b) (e)

(c) (f)

Slika 9.5: Pretvaranje prikaza vidljivosti u ortogonalni crtež.

v v

u
T1: 270o T2: 90o
90o

u 90o
90o
u u

v v

o
u 180
T3:

90o
u w
w

Slika 9.6: Optimizacija ortogonalnog crteža.

zavoja je već dobio Storer [100]. Predstavio je nekoliko heuristika polinomskog vremena
za minimiziranje broja savijanja za 3- i 4-planarne grafove. Storer je također dokazao
da je nekoliko problema optimizacije koji se tiču veličine mreže i broja krivina NP-
potpuni. Storer je pokazao da postoje grafovi u 3 ravni za koje bilo koji ili togonalni
n n
raspored zahtijeva mrežu. Donja2 granica
2 planarnih
od n +grafova
1 savijanja
je također
za crtanje
2 Postoje
uključena
ortogonalnih
i grafovi
u [100].
u 43-
ravni za koje je potrebna (n 1) (n 1) mreža, a postoje i grafovi u 4 ravni, koji zahtijevaju
2n 2 savijanja u bilo kojem ortogonalnom crtežu [100]. S druge strane, Tamassia [102]
je pokazao da se za 4-ravan graf G, problem izračunavanja ortogonalnog crteža s
minimalnim brojem savijanja može riješiti za O(n2 log n) vremena. Ovaj fascinantan
rezultat slijedi svođenjem problema na instancu problema maksimalnog toka.

Zaista, ovaj rezultat vrijedi samo za ugrađene planarne grafove. Da bi se izračunao


precizan minimalni broj savijanja, moraju se provjeriti sva različita planarna ugradnja.
Nedavno su Di Battista et al. predstavljeni polinomski algoritmi za bikon-
Machine Translated by Google
9.4 Pregled dijela C 123

8 8 8

7 7 7

6 6 5
6 5
4 5
4
4 3
3

3 2
2
2 1
1 1

(a) (b) (c)

8
6 7
6 7
5
4 4
5

2
3
123

(d) (e)

Slika 9.7: Primjer konstruiranja ortogonalnog crteža (iz [105]).

povezani 3-planarni grafovi i serijski paralelni grafovi, dajući ortogonalni crtež s


minimalnim brojem savijanja [19]. Ovdje se početno ugrađivanje ne mijenja.

9.4 Pregled dijela C

U poglavlju 10 obnavljamo kanonsko sređivanje, uvedeno u Odjeljku 2.5, na


takozvano krajnje lijevo kanonsko sređivanje ili lmc-poređanje. Svaki lmc-order
je također st-numeracija. Ako je ulazni graf trianguliran, tada je lmc poredak
kanonski poredak za triangulirane planarne grafove, kao što su uveli de
Fraysseix, Pach&Pollack [34]. lmc-uređenje vodi do linearnog okvira za crtanje
vremena i može se koristiti za širok raspon crtanja prikaza (tropovezanih)
planarnih grafova. U Poglavlju 10 pokazujemo da se algoritam planarnog
pravolinijskog crtanja mreže de Fraysseix, Pach&Pollack [34] može implementirati
tako da radi u linearnom vremenu, a veličina mreže se može smanjiti na (n 2) (n 2). (U [15] alternati
Machine Translated by Google
124 Algoritmi za crtanje

Opisana je implementacija linearnog vremena, koja zahtijeva (2n 4) (n 2) mrežu, pri čemu
planarni graf mora biti trouglast.) Za naš algoritam je već dovoljno da je ulazni graf
trokonektan umjesto trianguliran. Posebno pokazujemo da, koristeći lmc-ordering, sve
unutrašnje površine mogu biti konveksne. Ovaj algoritam nadmašuje algoritme iz [111,
14] i nije samo od teoretskog interesa, već vodi i do ugodnijih slika (vidi sliku 10.3). Također
daje novi i prilično jednostavan dokaz činjenice da svaki tropovezani planarni graf dopušta
konveksan planarni crtež. Također je prikazano da se svaki tropovezani planarni graf G
može nacrtati u ravnini na (2n 6) (3n 6) mreži s minimalnim uglom > radijana, tako da u
svakoj ivici postoje najviše 3 krivine, a najviše 5n15 krivina ukupno. Vrhovi i krivine
1 d2 postavljaju
se na
tačke mreže. Čini se da je ovo prvi praktični algoritam za crtanje za crtanje ravnih grafova
sa vrhovima vrhova predstavljenim tačkama mreže i ivicama polilinijama, koji imaju vrlo
razumne granice veličine mreže, broja krivina i minimalnog ugla.

U poglavlju 11 dokazujemo da ako je G trokonektan i 4-planaran, onda G može biti ne


3
nacrtana sa najviše d 2 + 4 krivine na nn mreži. Ovo poboljšava najpoznatije
granicom od 2n+ 4 se značajno savija u trokonektivnom slučaju. Predstavljamo i klasu
tropovezanih grafova u 4 ravni, za koje bilo koji ortogonalni raspored zahtijeva najmanje
4
3 (n 1) + 2 savijanja. Za bilo koji 3-planarni graf G pokazujemo da se G može nacrtati bnc

najviše bnc2+ 1 savijanja na bnc je 2 mrežom.


2 Lijepa karakteristika crteža
da ima razapinjuće stablo koje koristi n 1 pravolinijskih ivica, i da sve ivice ne-stabla imaju
najviše 1 savijanje (ako je n > 4).
U poglavlju 12 predstavljamo linearni vremenski algoritam za crtanje tropovezanih 3-
n n
planarnih grafova na heksagonalnoj mreži 2 veličine
2 da se svaki
. Koristeći
3-planarni
ovaj algoritam
graf sa > 4pokazujemo
vrha može
nacrtati sa pravolinijskim rubovima tako da je minimalni ugao inače. Kao sporedni rezultat
4 ako je G tropovezan,
3, dokazujemo da se svaki tropovezani i
6-planarni graf možeda nacrtati
heksagonalnoj
na O(n)
svaka ivica imaO(n)
mreži tako
najviše 4
krivine.

U poglavlju 13 razmatramo problem predstavljanja svakog vrha v od G kao


pravougaonik R(v) takav da ako je (v; w) 2 G, onda R(v) i R(w) dijele granicu.
Ovo se zove pravougaoni dualni problem. Bhasker & Sahni [7] opisali su vrlo komplikovan
linearni algoritam vremena za ovaj problem, zasnovan na takozvanom regularnom
označavanju ivica. On je pokazao da se pomoću ovog označavanja koordinate mogu
izračunati na jednostavan i elegantan način, koristeći topološko sortiranje [47].
Predstavljamo jednostavan algoritam linearnog vremena za izračunavanje regularnog
označavanja ivica, na osnovu kanonskog reda za 4-povezane trouglaste planarne grafove.
Ovo završava novi i prilično lak pristup za pravokutni dualni problem. Primjena ovog
uređenja na prikaze vidljivosti dovodi do veličine mreže od najviše (n 1) (n 1) za
predstavljanje 4-povezanih planarnih grafova kao prikaza vidljivosti. Ovo poboljšava
najbolje poznate granice mreže za faktor 2. Koristeći ovaj rezultat pokazuje se da se svaki
3
planarni graf može nacrtati kao prikaz vidljivosti, koristeći mrežu najveće 2veličine (b
nc3) (n1),
poboljšava najpoznatiju granicu od (2n 5) ( n 1) znatno.
Dio C završava s nekoliko povezanih rezultata, zaključaka i završnih zapažanja u
Machine Translated by Google
9.4 Pregled dijela C 125

Poglavlje 14. Poglavlje 14 takođe sadrži neke otvorene probleme i uvodi neke
zanimljiva srodna polja za dalja istraživanja.
Machine Translated by Google
126 Algoritmi za crtanje
Machine Translated by Google

Poglavlje 10

Okvir za crtanje i

Konveksni crteži

10.1 Okvir za crtanje

U ovom odeljku menjamo kanonski poredak, opisan u Odeljku 2.5, na krajnje


kanonički (lmc) poredak za tropovezane planarne grafove. Koristeći ovo
obnavljanje, dobijamo linearni vremenski okvir za predstavljanje tropovezanih planarnih grafova
na različite načine na mreži. Među ovim prikazima, detaljno razmatramo konveksne
pravolinijske mrežne crteže, prikaze vidljivosti, ortogonalne i heksagonalne
crteži i proračun pravokutnih duala.

10.1.1 lmc-naručivanje

Podsjetimo iz odjeljka 2.5 da je kanonski poredak tropovezanog planarnog grafa


niz skupova V1; V2;:::;VK vrhova takvih da je V1 = fv1; v2g, VK = fvng, i
v2 i vn su susjedi v1 i dijele lice (vanjsko lice). U koraku k, 1 <k<K
dodaje se skup vrhova Vk. Ako je Vk singleton, z, tada z pripada Ck i ima
barem jedan susjed u G Gk ; ako je Vk lanac, fz1;:::;z`g, onda je svaki vrh zi
i
(1 i samo `)z1
ima
i z`komšiju
imaju susjeda
u G Gkna Ck1. ,
U svakom koraku, graf Gk, koji se sastoji od vrhova V1;:::;Vk, je bipovezan.
Opšta ideja za crtanje grafa je da počnete sa rubom (v1; v2) i dodate
u koraku k vrhovi Vk . U koraku K se dodaje vrh vn. Pretpostavimo da je to ulog
korak 1 v1 je nacrtan krajnje lijevo, a v2 krajnje desno. Neka je Ck1 : c1 = v1; c2;:::;cq = v2 biti
vrhovi s lijeva na desno na vanjskoj strani Gk1. Prilikom sabiranja vrhova
od Vk neka su cl i cr dva susjeda Vk na Gk1, pri čemu su l i r mali i veliki
koliko je to moguće, respektivno. cl nazivamo levim vrhom, a cr desnim vrhom. Ivice do
niži (viši) numerisani susjedi vrha v nazivaju se dolazni (odlazni) rubovi
od v, a in(v) i out(v) označavaju odgovarajući broj.
Vrhove postavljamo tako da na mreži tako da pri sabiranju Vk odgovarajuće dolazne ivice, the
imaju smjer prema dolje. Štaviše, želimo

127
Machine Translated by Google
128 Okvir za crtanje i konveksni crteži

održava invarijantu da vrhovi c1;:::;cq od Ck ostaju \vidljivi iz


,
vrh" tokom svakog koraka. Ovo implicira da nakon dodavanja Vk vrhova cr ;:::;cq mora biti
\pomaknuto udesno", kao i nekoliko unutrašnjih vrhova Gk1 . Međutim, ažuriranje
sve x-koordinate vrhova u Gk u svakom koraku implicira kvadratno vrijeme rada.
Da bismo to izbjegli, koristimo lijenu evaluaciju:
Izračunavamo tačne koordinate vrha samo kada je to neophodno
izračunati koordinate ostalih vrhova. To znači da su samo tačne koordinate vrhova na vanjskoj
strani bitne za vrijeme umetanja. Kao prvo
korak ka ovom procesu, obnavljamo kanonsko uređenje na krajnje lijevo kanonsko
naručivanje, koje ćemo od sada zvati lmc-ordering.

Denicija 10.1.1 Kanonski poredak je krajnji levi kanonski (lmc-) poredak ako
možemo dodati u bilo kom koraku ka skup vrhova Vk sa levim vrhom cl ili skup vrhova Vk0 sa
levi vrh cl 0 i l<l0
, važi, tada k<k0.

Drugim riječima, uzimamo ovaj skup vrhova Vk , za koji je odgovarajući levi vrh
cl je minimalan u odnosu na l. Po planarnosti slijedi da i odgovarajuće
desni vrh, recimo da je, cr minimalan u odnosu na r.
Da bismo izračunali lmc poredak, održavamo listu Outerface-Stack za vrhove
na vanjskoj strani s lijeva na desno, implementiran kao stek i inicijaliziran kao fv2g.
Takođe se pohranjuju skupovi vrhova Vk kanonskog reda, sa pokazivačima na njegov levi i desni
vrh. Obratite pažnju da se Vk može dodati u koraku k0, ako su sve dolazne ivice Vk
su dio Ck01. Sada brišemo vrhove odozgo od Outerface-Stack-a, do
nalazimo vrh cr na vrhu, koji je desni vrh skupa vrhova Vk koji nije dodat ,
još. Neka Vk = fz1;:::;z`g s lijeva na desno, zatim dodamo z`;:::;z1 ovim redoslijedom
na Outerface-Stack. Ponavljamo ovaj korak s ažuriranim Outerface-Stackom, sve dok
dodaju se svi setovi Vk. Kada se vrh cr izbriše iz Outerface-Stack-a, tada je cr
ne desni vrh nekog skupa Vk (koji još nije dodat), jer inače sve
druge dolazne ivice Vk su lijevo od cl na trenutnoj vanjskoj površini, što bi
impliciraju da se Vk može dodati. Stoga će svaki skup vrhova Vk jednom biti dodan u
naručivanje. Ovo implicira da će svaki vrh jednom biti dodan i jednom obrisan
Outerface-Stack. Pošto se vrhovi dodaju s lijeva na desno u Outerface-Stack
skupovi vrhova Vk se dodaju krajnje lijevom redu.

Teorema 10.1.1 S obzirom na kanonski poredak, lmc poredak se može izračunati u


linearno vrijeme.

Dokaz: Ispravnost je prikazana iznad. Što se tiče vremenske složenosti, svaki


vrh v se jednom dodaje i jednom briše iz Outerface-Stack-a. Testiranje da li
vrh cr na vrhu Outerface-Stack je krajnji desni vrh nekog skupa Vk (nije dodat
ipak) zahtijeva konstantno vrijeme, što upotpunjuje dokaz. 2

Na slici 10.1 dat je primjer lmc-poređanja koji će služiti kao


primjer za gotovo sve algoritme za crtanje, predstavljene u ovom radu.
Machine Translated by Google

10.1 Okvir za crtanje 129

15 15

14 14
13
12
13 12
11 11

6
8 7
10 7 6 89
9 10
4 4
3 3

5 5

2 2
1 1

Slika 10.1: Od kanonskog uređenja grafa na slici 2.13 do lmc reda.

U algoritmima za crtanje razlikujemo koordinate umetanja vk (kada postavljamo vk po lmc


redoslijedu) i endkoordinate vk (u kompletnom crtežu).
Uvodimo logičku varijablu correct(v), koja označava da li je x(v), sa v 2 Ck,
je preračunato. Također uvodimo brojač za svaki vrh v, nazvan shift(v).
shift(cr) označava vrijednost, koja se mora dodati svim x(ck), sa jkr, gdje
c1;:::;cr je trenutna vanjska strana Ck. Kada se vrh v doda lmc redoslijedom,
postavljamo correct(v) = false i shift(v) = 0. Pregledajte korak k. Neka je cr desni vrh
od Vk . Hodamo duž vanjske strane od cr prema c1 dok ne pronađemo prvu istinitu
označeno ispravno (c ). Zatim se vraćamo od c do cr. Prilikom posjete c( <<r)
dodajemo P <i pomaknite(cl) na x(c) i postavite correct(c) na true, jer se x(c) ponovo izračunava.
Dodamo P <i<r shift(cl) u shift(cr). Ovaj pristup je ispravan od god
slijedeće dvije leme vrijede u koraku k:

Lema 10.1.2 Al l vrhovi c , < r, ima ispravno(c) = netačno.

Dokaz: Pretpostavimo da ne. Provjerite prvi put da je vrh c na vanjskoj površini


naišli za koje ispravno (c ) = netačno i ispravno (c +1) = istina. ispravno (c +1) =
true znači da se u koraku k0 < k, x(c +1) i correct(c +1) ponovo izračunavaju, zbog
, il
0
umetanje skupa vrhova Vk0 sa levim vrhom cl 0 netačno + 1. Ali ispravno(c ) =
znači da u koraku k dodajemo Vk sa desnim vrhom c . Ovo je u suprotnosti sa
poricanje lmc-naručivanja. 2

Lema 10.1.3 r> vrijedi za desni vrh cr.

Dokaz: Pretpostavimo da ne. correct(c ) = true znači da u koraku k0 < k, mi


ažuriran x(c ), zbog umetanja Vk0 sa levim vrhom cl 0 . Dodavanje Vk sa ; l0
0
desni vrh cr u koraku k implicira l > r. Pošto je k0 < k, ovo je u suprotnosti sa denicijom
lmc-naručivanja. 2
Machine Translated by Google
130 Okvir za crtanje i konveksni crteži

Lema 10.1.4 Ukupno vrijeme za posjetu lažno označenim vrhovima i ažuriranje


shift(v), x(v) i correct(v) za sve l vrhove v je O(n).

Dokaz: Kada ubacimo Vk u korak k sa levim vrhom cl i desnim vrhom cr potrebno, extra
je vreme za hodanje prema c1 do prvog tačno označenog ispravnog (c ). Sve
ispravne vrijednosti vrhova c ;:::;cr1 su označene kao istinite nakon posjete. Ako u
korak k0 > k, correct(c) ponovo postaje netačan (sa 1), zatim vrh r
skup Vk0 sa desnim vrhom ck0 = dodat cis, sa k0 l. Ovo je u suprotnosti sa lmc redoslijedom,
stoga svaki ispravan(c) postaje jednom lažan i postaje istinit nakon posjete
cagain. Ažuriranje zahtijeva konstantno vrijeme, dakle ukupno vrijeme za posjetu lažnom
označeni vrhovi i ažuriranje shift(v); x(v) i ispravno(v) za sve vrhove je O(n).
2

Ove tri leme pokazuju da u bilo kom koraku k možemo izračunati ažurno
x-koordinate vrhova c1;:::;cr od Ck1 pri dodavanju Vk gdje je cr ,
desni vrh Vk . Neka su P (v)=(xinsert(v); yinsert(v)) koordinate v na
vrijeme dodavanja v.
Međutim, kako možemo izračunati krajnje x-koordinate vrhova. Zaista,
ovdje moramo prijeći vrhove Vk u opadajućem redoslijedu, tj. od VK do
V1, i inicijalno postavite shift(v) = 0 za sve v 2 V . Kada se razmatraju vrhovi od
Vk = fz1;:::;z`g, postavljamo shift(cl) = shift(z1), sa l<i<r, a cl i cr lijevi i desni vrh, odnosno,
od Vk i c1;:: :;cq vanjsku površinu, Ck1 od Gk1 . shift(cl) je
nije ažurirano (jer cl nije pomaknut kada se inicijalno dodaje Vk). Pošto je i cr
dio nekog vanjskog Ck01 , k0 > k, shift(cr) bi već mogao biti veći od nule na
trenutak posjete Vk. Postavlja se pitanje da li je dodata i ova vrijednost
na vrhove Vk ili ne. Ako je to bio slučaj, onda ova vrijednost pomaka ne bi trebala biti
ponovo dodano u shift(cr). Kako možemo riješiti ovaj problem?
Rješenje je sljedeće: za izračunavanje desnog pomaka cr razlikujemo
pomaci dodani u cl+1;:::;cr1 i u cr, uvođenjem nove varijable, rshift(v).
Kada se razmatra Vk za izračunavanje krajnjih x-koordinata, i cr se mora pomaknuti
vrijednost x0 više udesno od cr1, tada dodajemo rshift(z1) + x0 na rshift(cr). The
krajnje koordinate vrhova z1;:::;z` od Vk sada su date sa xinsert(zi)+ shift(zi)+
rshift(zi); 1 i `.
Tehnika izračunavanja konačnih koordinata odgovara ideji o
izračunavanje umetnutih koordinata: kada se vrhovi Vk pomaknu udesno
kasnijem koraku, tada se i vrhovi cl+1;:::;cr takođe moraju pomeriti udesno.
Sav ovaj posao može se obaviti u linearnom vremenu u potpunosti. Metodu zovemo za računanje
koordinate insert- i end, koristeći shift(v) vrijednosti pomaka-metoda. Ovo
Metoda će poslužiti kao opšti okvir za crtanje planarnih grafova na mreži. The
ideja pomicanja vrhova se široko koristi, npr. u Chrobakovom algoritmu crtanja mreže
& Payne [15]. Generalizacija potonje tehnike opisana je u Odjeljku 10.5.2.
U Odjeljku 10.2 koristimo lmc-redoslijed da nacrtamo tropovezani planarni graf
sa konveksnim plohama na (2n 4) (n 2) mreža. U Odjeljku 10.2.1 pokazujemo kako
Machine Translated by Google
10.2 Konveksni crteži 131

veličina mreže se može smanjiti na (n 2) (n 2). U Odjeljku 10.5.2 date su optimizacije za


izračunavanje lmc-poređanja i izračunavanje koordinata. Nekoliko povezanih primjena lmc-
poređanja je također dato u ovom poglavlju. U poglavljima 11 i 12 koristimo lmc poredak
za crtanje planarnih grafova ortogonalno i na heksagonalnoj mreži.

10.2 Konveksni crteži

Lmc-uređenje je generalizacija kanonskog uređenja de Fraysseixa et al.


[34]. Možemo primijeniti lmc-ordering i shift-metodu da dobijemo linearnu implementaciju
pravolinijskog algoritma za crtanje trianguliranih planarnih grafova [34].
(U [15] je opisana još jedna linearna implementacija [34], uz pretpostavku da je ulazni graf
trianguliran.) Štaviše, pokazat ćemo da se ovaj algoritam može modificirati tako da
možemo nacrtati svaki tropovezani planarni graf sa konveksnim plohama na mreži .
Algoritam iz [34] je sljedeći: održava pravolinijsko ugrađivanje tokom svakog koraka k
lmc-poređanja tako da

1. v1 je na (0; 0), v2 je na (2k 4; 0).

2. Ako je v1 = c1; c2;:::;cr = v2 je vanjska strana Gk u koraku k, tada x(c1) < x(c2) <
< x(cr).

3. Rubovi (vl; vl+1) imaju nagib +1 ili 1.

Pretpostavimo prvo da je G trianguliran, u kom slučaju možemo dodati vrh vk u svaki


korak k lmc-poretka [34]. Neka je L(v) skup vrhova. Ideja algoritma je sledeća: kada dodamo
vrh vk sa levim vrhom cl i desnim vrhom cr tada se svi vrhovi cl+1;:::;cr1 pomeraju jedan
udesno, a vrhovi cr ;:::;cr su pomaknuta dva udesno (i naravno, nekoliko unutrašnjih vrhova
Gk1 također mora biti pomaknuto udesno). Tačka ukrštanja prave sa nagibom +1 od cl i
prave sa nagibom 1 od cr označava mesto za vrh vk.

Svi vrhovi cl;:::;cr su vidljivi iz ove tačke, pogledajte sliku 10.2 za odgovarajuću sliku.
Konkretno, algoritam je sljedeći:

f U svakom koraku k, neka c1;:::;cr bude vanjska strana,


a cl i cr su levi i desni vrh vk, odnosno g neka je (p1 ; p2)
tačka preseka linije nagiba +1 iz p1 i linije nagiba 1 iz p2.

P (v1) := (0; 0); L(v1) := fv1g;


P (v2) := (2; 0); L(v2) := fv2g;
P (v3) := (1; 1); L(v3) := fv3g; za
k := 4 do n do za v 2 Sr
l=j L(cl) do x(v) := x(v)+2 rof;
Machine Translated by Google
132 Okvir za crtanje i konveksni crteži

za v 2 Sj1 l=i+1 L(cl) do x(v) := x(v)+1 rof;


P (vk) := ((x(cl); y(cl)); (x(cr); y(cr)));

L(vk) := fvkg [ Sj1 l=i+1 L(cl)


rof

vk
P (ci; cj)
q

ci+1 s ci+1 s
ci s s s cj1 cj kp s s s cj1 cj
s s
s ci+2 s cj2
s ci+2 s cj2
Gk1 Gk
c2 s c2 s
s s s s
v1 = c1 v2 = cr v1 = c1 v2 = cr

Slika 10.2: Ideja algoritma pravolinijskog crtanja.

Ispravnost ovog algoritma je dokazana u [34]. Vrijednosti pomaka 1 i 2 se javljaju u algoritmu i mi ažuriramo
odgovarajuće varijable shift(v) i rshift(v) na sličan način. Kompletan algoritam se sada može implementirati na sljedeći
način:

LinearRaight-lineDraw(G);
P (v1) := P (v2) := (0; 0); za k := 3 do
n izvršiti ažuriranje x(cl) i shift(cr);

shift(cr) := shift(cj) + 2;

P (vk) := ((x(cl); y(cl)); (x(cr)+ shift(cj); y(cj))) rof; shift(v) := rshift(v) := 0


za sve v 2 V ; za k := n do 2 do

za svaki unutrašnji vrh vi od vk uradite shift(vi) := shift(vk)+ rshift(vk)+1 rof; rshift(cr) := rshift(cj)+ rshift(vi) + 2;
x(vk) := xinsert(vk)+ shift(vk)+ rshift(vk) rof;

Kraj LinearStraight-lineDraw

Štaviše, korišćenjem lmc-poređanja već je dovoljno da je planarni graf trokonektan, jer kada saberemo Vk =
fz1;:::;z`g, možemo nacrtati z1;:::;z` na horizontalnoj liniji sa udaljenost dva između. Ovo daje da ivica (cl; z1) ima nagib
+1, ivice (z1; z2);:::; (z`1; z`) imaju nagib 0 i dužinu 2, a ivica (z` ; cr) ima nagib 1. Lako je vidjeti da ovo još uvijek daje
ispravan pravolinijski crtež na (2n 4) ( n 2) mreža.
Machine Translated by Google

10.2 Konveksni crteži 133

U preostalom dijelu ovog odjeljka malo ćemo modificirati ovaj novi algoritam
da su sve unutrašnje strane konveksne.

Neka je Vk fz1g, i neka su ci1 ;:::;cis vrhovi na Ck1, susedni z1. (i1 = l
i je = r.) Neka je Fj (1 j<s) lice koje formiraju ivice (z1; cij ); (z1; cij+1 )
i put Bj između cij i cij+1 .

Lema 10.2.1 Svaki put Bj ima sljedeći obrazac:

Od cij do nekog vrha c opadajuće j, niz Dj , jDj j 1, vrhova sa striktno


y-koordinate.
Dva vrha c cj ; j sa istom y-koordinatom.
Od c j do cij+1 , niz Uj vrhova sa striktno rastućom y-koordinatom.

Dokaz: Denicijom lmc-uređaja, svaki vrh v 2 Vk ima susjeda


w 2 Vk0 , sa k0 > k. Denicijom algoritma LinearStraight-lineDraw
slijedi da je y(w) > y(v). U koraku k vrhovi cij+1;:::;cij+11 već imaju
viših komšija. Neka cj < ij+1 biti najniže postavljeni vrh, sa ij sa y(c) = y(c jer
=
j j), tada i minimalno.
j bi inačeAko
postojao
postoji
j vrh
vrhc cj +j 1,
, j < <j , j koji nema

viši komšija. Od cij do c vrhovi imaju striktno opadajućuj y koordinatu, a od c do cij+1 vrhovi imaju striktno
rastuću y-koordinatu. j+1
2

Primijetite da sve ivice na Ck1 imaju nagib +1, 0 i 1 prije dodavanja Vk . Kada
dodajući z1, pomeramo 1c;:::;c
udesnos1 za jedan, a pomeramo cs1+1;:::;cis udesno
po dva. Kao što je gore objašnjeno, crtamo z1 u tački (ci1; cis).
Kada je Vk = fz1;:::;z`g, dodajemo samo jedno lice F1. Neka je B1 putanja od Ck1
između cl i cr . B1 takođe ima obrazac Leme 10.2.1. Pomeramo c udesno za jedan, a c1+1;:::;cr 1
ic 1

udesno za 2p. z1;:::;z` se postavljaju kako je objašnjeno


iznad.

Ovo daje sljedeće nagibe nakon dodavanja Vk:

Nagib ivice (c 11; c 1 ) je u opsegu [1; 0).

Nagib ivice (cs1 ; cs1+1) je u opsegu (0; +1).

Svi ostali nagibi na Ck1 se ne mijenjaju.

Nagibi upadnih ivica Vk su u opsegu (1; 1] [ [+1;1).

Ovo implicira da su lica F1;:::;Fs1 konveksna kada se ubacuje Vk u koraku k.


Da bismo sačuvali konveksnost tokom ostalih koraka k0 > k, dodajemo ivice od cij do
c j ;:::;cij2 (1 j s). Ovo ne uništava planarnost i implicira da ako cij
se pomera udesno u nekom koraku k0 > k, tada se i cj+1;:::;cij1 pomera udesno
sa istom vrednošću. Modificirani graf se i dalje zove G. Sada možemo dokazati
slijedeća lema.
Machine Translated by Google
134 Okvir za crtanje i konveksni crteži

Lema 10.2.2 Lica ostaju konveksna tokom algoritma.

Dokaz: Pretpostavimo da je Vk = fz1g, i neka su cij (1 js) i Fij (1 j<s) ckao


cj ; štoj je gore navedeno. (Dokaz

je analogan kada je jVk j > 1.) Razmotrimo korak k0 > k.


Ako je cis pomaknut udesno, tada dodanim lažnim rubovima, također cs1+1; cis1 su pomaknuti udesno
sa istom vrijednošću, čime se zadržava planarnost jedinog relevantnog lica, Fs1. Ako je z1 pomaknut
udesno, onda se vrhovi ci2 ;:::;cis pomjeraju i udesno, a ako je cij pomjereno, onda cj1+1;:::;cij1 i cij+1;
cj+1 su pomaknuti udesno sa istom vrijednošću. Ovo daje planarnost lica F1;:::;Fs1. To također ima za
posljedicu da ako je ci pomaknut udesno (i1 i<is), onda je ci 0 i<i0 is pomaknut udesno s najmanje istom
vrijednošću. ,

Koristimo ovo zapažanje za slučaj da je ci1 pomaknut udesno u nekom kasnijem koraku k. Tada je
z1 također pomaknut udesno za barem istu vrijednost. Stoga su vrhovi c1+1;:::;ci2 pomaknuti udesno
najmanje za vrijednost pomaka od ci1 ;:::;c. Ovo čuva planarnost u F1 i završava dokaz. 1

Na kraju uklanjamo dodane lažne ivice od cij do cj s). j; cj+1;:::;cij2 (1

Teorema 10.2.3 Postoji linearni algoritam vremena i prostora za crtanje tropovezanog planarnog grafa
konveksno sa pravolinijskim ivicama na (2n 4) (n 2) mreži.

Naš algoritam ne samo da je bolji od algoritama iz [110, 13], već je i mnogo lakši za implementaciju
od algoritma iz [13]. Međutim, nedostatak algoritma je to što crteži nisu striktno konveksni, kao oni iz
[110, 13]. Sa pozitivne strane, ovaj algoritam daje novi dokaz da svaki tropovezani planarni graf
dozvoljava planarni crtež, u kojem je svako unutrašnje lice konveksno. Spoljna strana je trougao.

Što se tiče čvrstoće veličine mreže, primjećujemo da svaki striktno konveksan crtež ciklusa sa n vrhova
zahtijeva (n3) mrežu [78]. Na slici 10.3 dat je pravolinijski konveksni crtež grafika na slici 10.1.

10.2.1 Konveksni crteži na (n 2) (n 2) mreži

U ovom odeljku opisujemo metodu za smanjenje veličine mreže za faktor 2. Ova optimizacija je
zajednički rad sa Chrobakom, a zasnovana je na važnom zapažanju koje je napravio Schnyder. Ideja je
da se vanjska strana Ck1 održava tokom algoritma crtanja, tako da svaka ivica ima nagib, koji je 1; 0, ili
u rasponu [+1;1), umjesto 1; 0; +1, kao što je opisano u prethodnom odeljku.

Neka je Vk = fz1;:::;z`g, koji dodajemo iz lijevog vrha cl u desni vrh cr u koraku k. Ako cl nema ivice
vrhova dodatih u koraku k0 > k, onda možemo postaviti z1 tačno iznad cl, dakle x(z1) := x(cl), u
suprotnom postavljamo x(z1) := x(cl) + 1. Cr ` pomeramo udesno, a tačka ukrštanja prave sa nagibom
1, počevši od P (cr), sa vertikalnom linijom x(z1) + ` 1 daje mesto z`. Stavljamo zi (1 i<`) na (x(z`) ` + i 1;
y(z`)), i dodajemo ` shift(cr). Testiranje da li cl ima prednost
Machine Translated by Google
10.2 Konveksni crteži 135

13
345

1 2

Korak 3 11
7 8 12
9 10
6
3 4 5

1 2

7 8 Korak 9
6
34 15
5

1 2

Korak 5 14

13

11 12
7 8 7 13
9 8
6 10 9 10
5 6
34 34 5

1 2 1 2

Korak 7 Korak 11

Slika 10.3: Konveksni crtež grafa sa slike 10.1.

vrh dodan u koraku k0 > k je lak, jer je ugrađivanje planarnog grafa


je dato. Ako je cl1 susedan sa z1 u adj(cl), onda ne postoji takav vrh, inače
postoji jedan. Na slici 10.4 je pokazano da su susjedi c od vk na Ck1, sa ij, vidljivi iz P (vk). Ovo slijedi iz
činjenice da ako je za vrh
c , x(c +1) = x(c), tada c nema ivicu za vk. Nagib (cl; z1) je 0
ili u opsegu [+1;1), nagibi ivica (zi; zi+1) su 0 (1 i<p), a
nagib ivice (z`; cr) je 1.

Lema 10.2.4 Primjena gore opisane modifikacije u algoritmu za crtanje konveksne mreže daje
ispravan pravolinijski crtež tropovezanog planarnog grafa G
na (n 1) (n 1) mreži.

Dokaz: Moramo samo dokazati veličinu mreže. Počinjemo s horizontalnom ivicom


(v1; v2) dužine 1. Pretpostavimo da smo u koraku k dodali skup vrhova Vk = fz1;:::;z`g
(` 1) od lijevog vrha cl do desnog vrha cr. Ovo povećava širinu za jedan, i
visina za najviše `. Ovo daje ukupnu dužinu od n 1, a od linije kroz
v2 i vn imaju nagib 1, a x(vn) = 0, slijedi da je i visina n 1. 2

Sada modificiramo algoritam na isti način kao u prethodnom dijelu


da su sve unutrašnje strane konveksne. Pretpostavimo da dodajemo vrh vk. Neka su cp i cq dva
0
vrhova na Ck1, takav da ne postoji susjed cl od vk, sa p<l<q. Neka je F
lice, koje sadrži k.č.; cq i vk .
Machine Translated by Google
136 Okvir za crtanje i konveksni crteži

v
k
P(c ji, c )

c c
i cj i cj

Gk 1 Gk

v=c1 v=c2 v=c1 v=c2


1 r 1 r

Slika 10.4: Konveksni crteži na (n 2) (n 2) mreži.

Lema 10.2.5 Postoje konstante = + 1 ; , sa str q, i = ili


takve da prije dodavanja vk:

sve ivice (ca; ca+1); p a< , imaju nagib 1;

sve l ivice (cb; cb+1);< b< q, imaju nagib 1;

ivica (c; c+1) ima nagib u opsegu (0;1);

ako je = + 1, tada (c ; c) ima nagib 0.

Dokaz: Prvo primjećujemo da svaki vrh v ima susjeda, recimo w, što je


dodan u kasnijem koraku i ima y(w) y(v). U koraku k vrhovi cp+1;:::;cq1
već imaju više pozicionirane komšije. Neka je c najniže postavljeni vrh, sa
str q. Ako je >p i (c1; c) horizontalno, onda od c1 do cp vrhovi
su striktno rastuće u Y -smjeru, tako da imaju nagib 1. Ako je >p, onda je cb
levi vrh cb+1; b<q. Algoritmom crtanja postavljamo x(cb+1) = x(cb),
tako su ivice (cb; cb+1) vertikalne. Ako je = p, onda chas susjed vk. Ovo daje
x(c+1) = x(c) + 1. U ovom slučaju (c; c+1) ima nagib u opsegu [+1;1). 2

Da bismo postigli konveksno lice F 0, radimo sljedeće. Neka je vk dodani vrh


sa levim vrhom cl i desnim vrhom cr . Samo x(cr) se povećava kada se doda vk. Takođe i to
slijedi da ako se shift(cl) ili shift(vk) povećava, onda se pomak povećava za vrhove
cl;:::;cr . Jedina stvar je kada se shift(cr) povećava, a shift(vk) se ne povećava.
Neka je cp susjed od vk, sa p<j što je moguće većim, i neka je najmanji kao
moguće, sa y(+ 1) > y() i p <j. Dodamo ivice od cr do c;:::;cr1
u koraku k. Ovo ne uništava planarnost u ugrađivanju, a znači u
algoritam, da ako pomaknemo ,cr onda pomjerimo i c+1;:::;cr1 udesno. Ovo
implicira da i dalje vrijedi x(c+1) = x(c+2) = = x(cr), te stoga Lema 10.2.5
:::
Machine Translated by Google
10.2 Konveksni crteži 137

0
drži nakon dodavanja vk. Ovo implicira da je lice F konveksno kada se ubacuje vk u koraku
k. Iste vrijednosti slijede kada dodamo lanac z1;:::;z` umjesto jednog vrha vk,
jer se u ovom slučaju z1;:::;z` postavljaju na horizontalnu liniju. Ponovo primjenjujemo Lemu
10.2.2, koji kaže da unutrašnja lica ostaju konveksna tokom algoritma. Poslije
ovim brišemo dodane rubove od cr do c. Sada ; c+1;:::;cr1.
skiciramo kako modificirati algoritam kako bismo smanjili veličinu mreže na
(n 2) (n 2). Prvo biramo vn da bude susjed v2 različit od v1 nadalje
vanjsko lice G. Konstruiramo kanonsku dekompoziciju i izvodimo prethodnu
algoritam za K 1 koraka. U posljednjem koraku, nakon što smo već ugradili G2, postavljamo
P (vn) = (1; n 2), i ne pomeramo nijedan vrh udesno.
Da bismo pokazali ispravnost, samo trebamo pokazati da će dodavanje vn rezultirati
ispravno, konveksno ugrađivanje. Prema lemi 10.2.5 i algoritmu, prije dodavanja vn imamo x(c1) =
x(c2) = = x(cl) = 0 i x(cr) = n 2, gdje je cr = v2. Ivica
:::

sa nagibom 1 od v2 sadrži tačku (1; n 3). To implicira da su svi vrhovi


cl;:::;cr su vidljive iz (1; n 2). Konveksnost vanjske strane proizlazi iz
izbor vn. Kao rezultat toga, dobijamo sljedeću teoremu.

Teorema 10.2.6 Postoji linearni algoritam vremena i prostora za crtanje tropovezanog


planarni graf konveksno u (n 2) (n 2) mrežu.

Na kraju ovog poglavlja dat je potpuni pseudo-Pascal kod za (n 2) (n 2) algoritam za crtanje


konveksne mreže, uključujući neke druge optimizacije,
opisano u odjeljku 10.5.2. Veličina mreže odgovara najpoznatijim granicama mreže za
crtanje planarnog grafa planarnog na mreži (vidi Schnyder [98]). Štaviše, daje a
novi dokaz da svaki tropovezani planarni graf dopušta planarni crtež, u kojem
svako unutrašnje lice je konveksno. Međutim, crtež nije striktno konveksan, tj
mogu biti uglovi veličine . Kada želimo da dobijemo strogo konveksan crtež, onda
veličina mreže postaje veća, budući da svako crtanje ciklusa dužine n već zahtijeva
mreža veličine (n3) prema rezultatu Lin & Skiena [78]. Nažalost, ne vidimo jednostavno
način da promijenimo naš algoritam konveksnog crtanja tako da izbjegava uglove s veličinom.
Chiba et al. pokazao da ako se graf može nacrtati konveksno, onda nakon eliminacije
vrhovima stepena 2, skoro sve tropovezane komponente imaju ivicu na
granica vanjske površine. Ali koristeći naš algoritam, možemo nacrtati dvopovezanu planarnu
grafovi, gdje svaka tropovezana komponenta ima rub na vanjskoj površini, konveksan kao
dobro. Ovo slijedi primjenom da se svim vrhovima dodaje vrh vn+1 sa ivicama
na vanjskoj strani daje tropovezani planarni graf. Primjena algoritma na
prošireni graf, i konačno uklanjanje temena vn+1 daje željeni rezultat.
Čini se da su vrhovi sa stepenom 2 mnogo teži problem. Kako možemo postaviti
ovi vrhovi se vraćaju nakon primjene ConvexSmallGridDrawing na smanjenom
graf? Konkretno, neka v ima susjede u i w. Neka najveća zajednička
djelitelj jx(w) x(u)j i jy(w) y(u)j je 1, tada ne postoji unutrašnja tačka mreže
na crtežu ivice (u; w). Stoga se problem postavljanja v čini teškim
pri postavljanju vrhova na koordinatama mreže.
Machine Translated by Google
138 Okvir za crtanje i konveksni crteži

10.3 Mješoviti model

U ovom odeljku koristimo okvir za crtanje, uveden u Odeljku 2.5, da nacrtamo bilo koji
tropovezani d-planarni graf G na (2n 6) (3n 9) mreži tako da postoji najviše 5n 15 krivina i
2
da je minimalni ugao najmanje radijani. Svi vrhovi i koordinate savijanja
d samo
bitna
će tačke
postavljeni
mreže.
Svaka ivica će imati najviše tri savijanja i dužinu O(n).

Svaki rub, recimo (u; v) će imati sljedeći format. Od vas ide do an


0
izlazna tačka od u, recimo bo, od bo ide u vertikalnom smjeru do tačke, recimo b 0, od b
ide u horizontalnom smjeru do ulazne točke, recimo bi od v, a od bi ide do v.
Ovdje je važno pitanje koje su koordinate ulaznih i izlaznih tačaka i kako ih izračunati.
out(v)1 Neka outl(v) = b in(v)3 in(v)3 bc i inr (v) = d e. Ideja je da se krajnje tačke v postavi
na sljedeća mjesta: dijagonalne
out(v)1
linije od (x(v) outl(v); 1) do (x(v)1; y(v)+
outl(v)), i od (x(v)+ outr(v);
2 c i1)
outr
do (x(v)+1;
(v) = d y(v)+ outr(v)),
2 e. iSlično
koristeći
za in(v),
(x(v); tj.
y(v)+
inl(v)
outl(
= v)).
2 2

Za ulazne tačke to se definiše slično: dijagonalne linije od (x(v) inl(v); 1) do (x(v) 1; y(v)
outl(v)), i od (x(v)+ outr (v); 1) do (x(v)+1; y(v) outr(v)), i tri tačke (x(v) outl(v); y(v)), (x(v) ); y(v)
outl(v)) i (x(v)+ outr(v); y(v)). Pogledajte sliku 10.5 za neke primjere i odgovarajuće granične
okvire.

Slika 10.5: Primjeri graničnih okvira.

Širina graničnog okvira je maxfout(v) 1; in(v) 3g, visina je inl(v)+ outl(v). Ideja je da se
umetnu vrhovi kanonskog uređenja tako da se granični okviri ne sijeku ili dodiruju.
Također izlazne ivice se ne smiju ukrštati ili preklapati, tj. to znači da za svaki par uzastopnih
vrhova cl; cl+1 na vanjskoj površini, x(cl+1) > x(cl) + outr(cl) + outl(cl+1) mora držati. Sada
možemo objasniti različite korake dodavanja na sljedeći način:
Machine Translated by Google
10.3 Mješoviti model 139

Dodavanje vrha v

Za y-smjer, jednostavno postavljamo y(v) = maxfy(cl)+outl(cl)+1; y(cr )+outl(cr)+1g.


U x-smjeru, problem je malo teži: neka u1;:::;uin(v)(v) budu susjedi
od v, što odgovara redoslijedu slijeva nadesno ulaznih ivica v. Neka je u = uinl(v).
tada želimo imati x(v) = x(u), ali također (za izlazne ivice), želimo imati
x(v) > x(cl) + outr(cl) + outl(v). Stoga postavljamo x(v) = maxfx(u); x(cl) + outr(cl) +
outl(v) i pomaknite uinl(v);:::;uin(v)1 udesno (ako je x(cl)+outr(cl)+outl(v) > x(u)).
Za desni vrh cr postavljamo x(cr) = maxfx(cr); x(v) + outr(v) + outl(cr)+1g.

Dodavanje z1;:::;z`, ` > 1.

Sada svaki vrh z1;:::;z` ima tačno dva ulazna ivica, pa su stoga postavljeni
na horizontalnoj liniji na visini maxfy(cl) + outl(cl); y(cr) + outl(cr)g + 1. U
x-smjeru ne moramo se baviti dolazećim rubovima, stoga postavljamo x(z1) =
x(cl) + outr(cl) + outl(z1) + 1, postavljamo x(zi) = x(zi1) + outr(zi1) + outl(zi)+1
(1 < ip), i postavljamo x(cr) = maxfx(cr); x(z`) + outr(z`) + outl(cr)+1g. Slika
10.6 ovo čini preciznijim.

z
1
w
1
ww 3 ....
w
2 str
cr
cr

cl

cl

(a) Dodavanje jednog vrha. (b) Dodavanje više vrhova.

Slika 10.6: Dodavanje vrhova u mješoviti model.

Analiza algoritma

Koristeći tehniku pomaka, objašnjenu u odjeljku 2, nije teško dobiti linearni algoritam
vremena i prostora, koji zadovoljava ograničenja u pogledu širine i
visina, kao što je dato u dva relevantna koraka. Stoga sada detaljno razmatramo
broj krivina, veličina minimalnog ugla i ukupna veličina mreže.

2
Lema 10.3.1 Veličina minimalnog ugla je stepen G. , gdje je maksimum
Machine Translated by Google
140 Okvir za crtanje i konveksni crteži

Dokaz: Neka v ima maksimalni stepen. Minimalni ugao, recimo, je dostignut


na izlaznoj tački koja je susedna horizontalnoj liniji. Ako je deg(v) < 6, onda jeste
1
lako dokazano, stoga pretpostavimo deg(v) 6. Veličina ugla je arctan( outr (v) arctan(b) )
2
stepen(v)2 c). Koristeći seriju potencije arktana znamo da je za jxj < 1,
2 1 1 1 2
arctan(x) = x x3 . Od b 3x3 + mi
5 x5 1 7x7 + ::: x ( 3 c
deg(v)2 deg(v)1 , dobijete
2 1 2 3 2
ono što dovršava dokaz. stepen(v) ,3 2
stepen(v)1 stepen(v)1 )

Lema 10.3.2 Veličina mreže je najviše (2n 6) (3n 6).

Dokaz: Za širinu primijetite da x(ci+1) = x(ci) + outr(ci) + outl(ci+1) vrijedi u


svaki korak na vanjskoj površini ako je y(ci+1) 6= y(ci) i x(ci+1) = x(ci)+outr(ci)+outl(ci+1)
inače. Ako je y(ci+1) = y(ci) onda (ci; ci+1) nije izlazna ivica bilo kojeg vrha. Neka
nas pozivamo (ci; ci+1) u ovom slučaju neoznačeno. Brojanje vodi do horizontalne udaljenosti od at
većina P 1 i<n outl(vi)+outr(vi)+broj neoznačenih ivica = P 1 i<n(out(vi)1) =
2n 6.

Dodavanje vrha vk zahtijeva više povećanja visine po vrhu nego dodavanje a


lice, stoga pretpostavimo da dodajemo vrh vk u svakom koraku. Neka dolazne ivice od
vrh vk dolazi iz vrhova u1;:::;ur , onda y(vk) max1 i pfy(ui)g + maxf1 +
inr(v);outr(u1);outr(ur)g. Povećanje za svaki vrh vk tokom umetanja je
najviše 1 + inr(vk) + outr(vk). Sumiranje ovoga za sve vrhove dovodi do totala
udaljenost u Y smjeru od najviše 3n 6 jedinica. 2

Lema 10.3.3 Postoji najviše 5n 15 krivina. Svaka ivica ima najviše 3 savijanja
i dužina O(n).

Dokaz: Sve izlazne ivice temena v, osim one koja ide pravo nagore,
zahtijeva jedno savijanje u najgorem slučaju da ide u vertikalnom smjeru. Dodjeljujemo ove krivine
do koraka umetanja od v. Dodavanje lica zahtijeva manje savijanja po vrhu nego dodavanje
vrh, pa pretpostavimo da dodajemo samo vrhove vk . Ako je in(vk ) = 2 i y(cl) y(cr), onda
doći će do najviše 1 savijanja (cl; vk) i 2 savijanja (cr ; vk). (Slično važi
kada y(cl) y(cr).) U svakoj ivici, jedna krivina je već bila dodijeljena umetanju
korak cl i cr stoga dodavanje
, vk sa in(vk) = 2 zahtijeva najviše jedno savijanje za
dolazne ivice. Ako je in(vk) 3, tada su potrebna najviše 2 in(vk)4 dodatna savijanja
dolazne ivice. Ivica (v1; v2) ne zahtijeva savijanje. Računanje ovoga vodi do potpunog
najviše 5n 15 krivina. Svaka ivica ide najviše jednom okomito i jednom horizontalno,
stoga zahtijeva 3 savijanja u najgorem slučaju i prema lemi 10.3.2, ima dužinu O(n). 2

Teorema 10.3.4 Postoji linearni algoritam vremena i prostora za crtanje trokomponentnog


d-planarni graf ravan na (2n 6) (3n 9) mreži sa najviše 5n 15 krivina i
1
minimalni ugao > d2 , u kojoj svaka ivica ima najviše 3 krivine i dužinu O(n).
Machine Translated by Google
10.4 Prikazi vidljivosti 141

15

14

12

11 13

6 7 8 9 10

34 5

1 2

Slika 10.7: Crtanje grafikona sa slike 10.1 sa krivinama.

Na slici 10.7 dat je crtež grafika sa slike 10.1.


Obratite pažnju da smo u poglavlju 5 dokazali da se svaki graf G može povećati za
3
dodavanje ivica trokomponentnom planarnom grafu G0 tako da (G0) d2 (G)e + 3.
Ovo daje sljedeću teoremu.

Teorema 10.3.5 Postoji linearni algoritam vremena i prostora za crtanje planarnog grafa
ravan na (2n 6) (3n 9) mreži sa najviše 5n 15 krivina i minimalno
4
ugao > 3 (G)+1 , u kojoj svaka ivica ima najviše 3 krivine i dužinu O(n).

10.4 Prikazi vidljivosti

Pošto je svaki lmc poredak ujedno i st-red, možemo koristiti lmc poredak u raznim
aplikacije za crtanje, gdje se koristi st-red. Sada fokusiramo pažnju na
konstrukcija reprezentacije vidljivosti lmc-uređenjem. U vidljivosti
reprezentacija svaki vrh je mapiran u horizontalni segment, a svaki rub je
preslikan na vertikalnu liniju, dodirujući samo dva vrh segmenta njegovih krajnjih tačaka.
Na slici 10.8 dat je primjer. Zanimljiva je reprezentacija vidljivosti
praktične posledice. Zanimljiva činjenica korištenja lmc-orderinga je da sada
imamo pomake na rubovima umjesto na vrhovima i algoritam
postaje prilično jednostavan i može dovesti do kompaktnijih reprezentacija.
Pri tome, kada se dodaje Vk, , y-koordinate vrhova, već postavljenih, su
zanimljivo, kao i x-koordinate (cl; vk) i (cr ; vk), gdje su cl i cr
lijevi i desni vrh Vk, odn. Stoga pridružujemo y-koordinatu, y(v).
svaki vrh, i x-koordinatu, x(u; v), i promjenjivu promjenjivu, shift(u; v), na svaki
ivica (u; v).
Horizontalni segment, koji predstavlja vrh v, mora imati dužinu najmanje out(v)
1. Ako dodamo Vk = fzg, onda horizontalni segment, koji predstavlja z, ide od
(x(z; cl); y(z)) do (x(z; cr); y(z)). Ako je Vk = fz1;:::;z`g, ` > 1, onda možemo nacrtati
Machine Translated by Google
142 Okvir za crtanje i konveksni crteži

horizontalni segmenti z1;:::;z` naizmjenično na nekoj visini Y i Y + 1, kao što je prikazano na


slici 10.8. Implementacija kompletnog algoritma sada slijedi direktno i prepuštena je
čitaocu.
Pošto je in(v) 2 za svaki vrh v, to znači da dodavanje vk povećava visinu za 1 i širinu za
maxf0; out(vk) 2g. Ako za svaki vrh vi; out(vi) 2 važi, onda ovo vodi do prikaza vidljivosti na
mreži veličine najviše (n1) (n1).
Zaista, dokazujemo u Odjeljku 13.4 da je moguće kanonsko uređenje 4-povezanog
trouglastog planarnog grafa, u kojem svaki vrh vk ima out(vk) 2. Ovo smanjuje
širinu za faktor 2 u odnosu na veličinu mreže za prikaze vidljivosti 4-povezanih planarnih
grafova. Moguće je nekoliko povezanih tehnika sažimanja i optimizacije, što općenito
dovodi do kompaktnijih rasporeda od algoritama u [57, 89, 96] općenito. Konkretno, kada
dodamo lice Fk u lmc-Visibility(G), možemo to učiniti tako da se Y -smjer poveća za najviše
2. Štaviše, u poređenju sa [96], ne moramo izračunati dualni graf .

Teorema 10.4.1 Postoji linearni vremenski algoritam za konstruisanje vidljivosti planarnog


grafa na mreži veličine najviše (2n 5) (n 1).

Na slici 10.8 dat je prikaz vidljivosti grafa na slici 10.1, a dat je i prikaz vidljivosti grafa,
koji zahtijeva (2n 5) (n 1) mrežu. U Poglavlju 13 predstavljen je algoritam linearnog
vremena, koji konstruiše prikaz vidljivosti planarnog grafa na mreži najveće veličine (b
3
2nc 2) (n 1).

15
n

....
14

6
12 13

5
11

6 8 9 4

.... ....
5 7 3 10 3

4 2 2

1
1

(a) Prikaz vidljivosti grafa na slici (b) Grafikon koji zahtijeva mrežu
10.1. veličine (2n 5) (n 1).

Slika 10.8: Prikazi vidljivosti.

10.5 Poboljšanja lmc-naručivanja

U ovom odeljku predstavljamo dve važne optimizacije našeg okvira za crtanje.


Prvo poboljšanje slijedi dokazivanjem da lmc poredak G definira lmc poredak na dualnom
grafu G od G. Konkretno, ako je G tropovezana 3-planarna
Machine Translated by Google
10.5 Poboljšanja lmc-naručivanja 143

graf, onda je G trouglasti planarni graf, i možemo koristiti mnogo jednostavniji algoritam
de Fraysseixa, Pach&Pollack [34] za izračunavanje kanonskog reda za G . Od
ovo kanonsko uređenje G možemo izvesti lmc poredak za G u efikasnom
način. Drugo poboljšanje je taj shift-metod, kako ga je uveo Chrobak
& Payne [15] za linearnu implementaciju algoritma pravolinijskog crtanja mreže
od de Fraysseixa, Pach&Pollack se mogu usvojiti u našem okviru. Tačnije, mi
može generalizirati ovu tehniku, zasnovanu na kanonskom uređenju trokutastog planara
grafove, tako da radi za kanonsko uređenje tropovezanih planarnih grafova.
To znači da nema potrebe za obnavljanjem kanonskog uređenja za trikonekcije
planarne grafove prema lmc-poretku. Ovo daje novi linearni vremenski okvir, i
čini se da je konstanta u O(n) manja u generaliziranom Chrobak & Payneu
okvira nego primjenom lmc-orderinga. Kao primjer prikazujemo kompletan
algoritam konveksnog crtanja tropovezanih planarnih grafova na kraju ovog poglavlja,
koristeći modificirani Chrobak & Payne pristup.

10.5.1 Aspekti dualnosti

Neka je G tropovezani planarni graf. Neka je G dualni graf od G, tj. svaki


lice G je vrh u G , i postoji ivica (u; v) u G , ako je odgovarajući
lica dijele ivicu u G. Pretpostavimo da je lmc poredak dat na vrhovima G. Mi
konstruirati označavanje na stranama G na sljedeći način: ako je k najmanji cijeli broj takav
da svi vrhovi lica F pripadaju Gk u lmc-poretku, tada postavljamo label(F ) =
0
K + 3 k. Neka je (v1; vn) 2 F 0; F 00, sa F vanjske strane. Postavljamo label(F 0) = 1 i
oznaka (F 00) = 2.

Teorema 10.5.1 Označavanje lica G odgovara lmc-poretku od


dualni graf G.

Dokaz: Prvo ćemo dokazati obrnutom indukcijom na koracima lmc-poretka da


dodijeljeno označavanje odgovara kanonskom poretku dualnog grafa G.
Neka wF označava vrh u G , što odgovara licu F u G. Neka G označava
inducirani podgraf na vrhovima wF sa oznakom(F ) i u G. Počinjemo s brisanjem
0
vn iz G. (v1; vn) pripada F i F 00, a label(F 0) = 1 i label(F 00) = 2. Pošto
0
deg(vn) 3, postoje deg(vn) 2 preostala lica F u G, sa oznakom(F
i 0 i ) = 3. By
aspektima dualnosti, odgovarajući vrhovi wF 0i formiraju uzastopni lanac od wF 0
do wF . Otuda G 3 zadovoljava ograničenja teoreme 2.5.1.
00 Neka je k xed, 3 <k<K, i pretpostavimo da je lice Fi ili vrh vi već bio
određen za svaki i>k takav da GK+3i zadovoljava ograničenja Teoreme
2.5.1. Razmotrimo 2 slučaja u koraku k: brisanje temena vk ili lica Fk iz Gk.
Pretpostavimo prvo da brišemo vk sa p suseda nižeg broja. Zatim p 1 lica
F se
0
brišu iz Gk, koji svi imaju oznaku (F 0 i ) = K + 3 k. Izgradnjom od
,
i postoje bridovi (wF 0i ; wF 0i+1 ) (1 i<p 1), pa slijedi da je svaki wF 0i G ima
stepen 2 u GK+3k . Svaki wF 0i ima susjeda s višom oznakom, budući da F
0
i sadrži
Machine Translated by Google
144 Okvir za crtanje i konveksni crteži

ivica Ck1. wF 01 i wF 0p1 imaju susjede sa nižom oznakom, jer F 01 i


F 0p1 sadrže ivicu Ck.
Ako izbrišemo lice Fk u koraku k, tada se wFk dodaje na GK+3k . wFk ima barem
dva susjeda s nižom oznakom i najmanje jedan susjed s višom oznakom. U
U oba slučaja lako se može provjeriti da je dodati lanac ili vrh GK+3k na
vanjska strana. GK+3k je dvopovezan i indukcijom GK+3k zadovoljava ograničenja
teoreme 2.5.1.

Završavamo sa rubom (v1; v2) u G. Pretpostavimo da (v1; v2) pripada F 0 (spoljna površina)
i F 000, a zatim oznaka (F 000) = K prema deniciji. Ali pošto su v2 i vn susjedi v1
i pripadaju vanjskoj površini, slijedi da su wF 000 i wF 00 oba susjeda wF 0
u G , i pripadaju zajedničkom licu, što upotpunjuje dokaz da je dodijeljeno
označavanje je kanonski poredak za G .
Na isti način, razmatranjem dualnog grafa G , lako sledi da je
kanonsko uređenje je krajnje lijevo, jer ako izbrišemo vrh vk ili lice Fk iz Gk onda je ,
odgovarajuće lice ili vrh u G krajnje lijevo u odnosu na vrhove
wF 0 i wF 00 . 2

Primijetite da je u [96] sličan rezultat dobiven za st-red. Otuda to


čini se da je lmc-poređanje moćna generalizacija st-poretka u
tropovezano kućište. (Pogledajte i ilustraciju na slici 10.9.)

vk
w2 w3
w4
u w1
3 1u
u
1 u2

(a) Dodavanje vrha vk . (b) Dodavanje lanca w1; : : :;w4.

Slika 10.9: Dualni graf takođe implicira lmc poredak.

Ako je G trokonektan i 3-planaran, onda je G triangulirani planarni graf. U


u ovom slučaju možemo koristiti kanonski poredak de Fraysseixa, Pach&Pollacka [34] da
izračunaj lmc poredak G . F vrhovi G su numerisani v1;:::;vf po
jednostavan linearni vremenski okvir. Svaki vrh vi u G odgovara licu Fi in
G koji se mora dodati. Ova optimizacija se može koristiti za izračunavanje lmc reda u
Odjeljku 11.2 i Odjeljku 12.1, gdje razmatramo trokonektovane 3-planarne
grafovi.
Machine Translated by Google
10.5 Poboljšanja lmc-naručivanja 145

10.5.2 Nova metoda pomaka

U ovom odeljku objašnjavamo još jednu tehniku za izračunavanje koordinata, zasnovanu na


metodi pomaka, koju su opisali Chrobak & Payne [15]. Oni su uveli ovu tehniku za implementaciju
algoritma pravolinijskog crtanja mreže de Fraysseixa, Pach&Pollacka [34] u linearnom vremenu.
Ovdje pokazujemo da se ova tehnika može promijeniti tako da radi i za naše algoritme crtanja
za tropovezane planarne grafove.
Koristeći ovu tehniku nema potrebe da se provjerava kanonski poredak za tropovezane
planarne grafove prema lmc-poretku. Ključno zapažanje u [15] je da kada crtamo vk, nije
potrebno znati tačne pozicije cl i cr. Ako znamo samo njihove y-koordinate i njihove relativne x-
koordinate, tj. ako znamo x(cr)x(cl); y(cl) i y(cr), onda možemo izračunati y(vk) i xo skup vk u
odnosu na cl, to je x(vk) x(cl).

Da bi se ovo dobilo, tokom algoritma se konstruiše stablo T. U prvoj fazi dodajemo nove
vrhove, izračunavamo njihove xo skupove i njihove y-koordinate i ažuriramo xo skupove jednog
ili dva vrha. U drugoj fazi prelazimo stablo i izračunavamo krajnje x-koordinate akumulirajući o
skupove. Pretpostavimo da je vrh v T-predak vrha w. Pod kumulativnim skupom o od v do w,
označenim sa c(v; w), mislimo na zbir skupova o duž grane od v do w uključujući onaj od w, ali
isključujući onaj od v. Imajte na umu da, ako je w a T -predak vrha x, tada c(v; x) = c(v; w) + c(w;
x). Dodavanjem x-koordinate korijena v1 stabla kumulativnom skupu o od v1 do čvora, može
se odrediti ispravna x-koordinata čvora. Za svaki vrh v pohranjujemo sljedeće informacije:

lijevo(v) = levi T -sin od v desno(v)


= desni T -sin od vx(v) = x(v) x(w), xo
skup v od njegovog T -oca wx(v) = x-koordinata od vy(v) = y-
koordinata od v

Ako u; v su bilo koja dva čvora, onda neka je x(u; v) = x(v)x(u). Konkretno, x(v) = x(u; v) gdje
je u otac v. Želimo da naglasimo da će algoritam pohraniti samo x(v) za svako v; kad god je
potrebna vrijednost x(u; v), gdje je v 6= lijevo(u); right(u), mora se izračunati pronalaženjem
najnižeg zajedničkog pretka w od u; v, dodavanjem svih o skupova na putu od w do v i
oduzimanjem svih o skupova na putu od w do u.

U smislu našeg stabla T , kada dodamo Vk , trebamo pomjeriti T (cr) udesno.


Ključno zapažanje koje vodi do algoritma linearnog vremena je da zapravo nije potrebno znati
tačne pozicije cl i cr u vrijeme kada instaliramo Vk = fz1;:::;z`g. Ako znamo samo njihove y-
koordinate i o skup x(cl; cr) onda za svaki i > 1 možemo izračunati y(zi) i xo skup zi u odnosu na
zi1, xo skup od z1 u odnosu na cl, i xo skup cr u odnosu na z`.

Pretpostavićemo, radi jednostavnosti, da su sve veze u T inicijalizovane na nulu.


Machine Translated by Google
146 Okvir za crtanje i konveksni crteži

Algoritam se sastoji od dvije faze. U prvoj fazi dodajemo nove vrhove,


izračunati njihove xo skupove i y-koordinate. U drugoj fazi prelazimo preko stabla
i izračunati krajnje x-koordinate gomilanjem o skupova.
Počinjemo sa ugrađivanjem V1 i V2, gdje je V1 = fv1; v2g i V2 = fz1;:::;z`g:

za i := 1 do ` 1 do right(zi) := zi+1;
desno(v1) := z1; desno(z`) := v2;
P (v1) := (0; 0); P (v2) := (` + 1; 0);
za i := 1 do ` do P (zi) := (i; 1);

Sada, za svaki k = 3; 4;:::;K, nastavljamo na sljedeći način. Neka je c1;:::;cq vanjski


lice Gk1 ; i neka je cl, cr levi i desni vrh Vk = fz1;:::;z`g u Gk1.
Zatim izvršite sljedeće korake.

:= +
(p); := (q);
Predračunaj o skupovima: izračunaj i = x(cl; ci), za i = l + 1;:::;r;
Ažuriraj vrh cl: ako je >l (a time i r>l + 1) onda počni
desno(c) := lijevo(cl);
ako lijevo(cl) 6= nula onda x(lijevo(cl)) := x(lijevo(cl)) ;

lijevo(cl) := desno(cl)
kraj ;
desno(cl) := z1;
Instaliraj Vk: ako je cl zasićen tada := 0 else := 1;
x(z1) := ;
y(z1) := y(cr)+ r ` + 1 za i := 2 ;
do ` početi
desno(zi1) := zi;
x(zi) := 1;
y(zi) := y(z1)
kraj ;
desno(z`) := cr ;
ako <onda počni
lijevo(z1) := c +1;
x(c +1) := +1 ;

desno(c) := nula;
kraj ;
Ažuriraj čvor cr : ako je + 1 < q onda počni
desno(cr1) := lijevo(cr);
x(lijevo(cr)) := x(lijevo(cr)) + x(cr);
lijevo(cr) := c+1;
x(c+1) := +1 kraj; r;

x(cr) := r `+1 ;
Machine Translated by Google
10.5 Poboljšanja lmc-naručivanja 147

U ovom trenutku sve y-koordinate i xo skupovi su već izračunati. Sve što ostaje da se uradi
je da se izračunaju x-koordinate. Da bismo to učinili, pozivamo AccumulateO setove(v1; 0), gdje
je AccumulateO skupovi sljedeći:

procedura AccumulateO setovi(v: vertex, : integer); započeti


ako je v 6= nil onda započeti x(v) := + x(v);

AkumuliratiO skupove (lijevo(v); x(v));


AkumulirajO skupova(desno(v); x(v))
kraj kraja

Na slici 10.10 data je konstrukcija stabla i vrijednosti x(v).


za primjer sa slike 10.1.
Primijetite da algoritam također izračunava razapinjuće stablo 3-povezanog planarnog
grafa sa stepenom najviše 3. Ovo daje novi dokaz (i algoritam linearnog vremena) za Barnettovu
teoremu [3]. Opšti problem je NP-tvrd, tj. dat je graf i razapinjuće stablo sa stepenom najviše K
(K 2) (problem ND1 u [38]).
Naš algoritam se također može generalizirati, koristeći sljedeću Thomassenovu teoremu:

Teorema 10.5.2 Neka je G ravan graf sa spoljnim licem S takav da svi vrhovi koji nisu u S imaju
stepen 3. Tada G ima konveksan prikaz sa spoljnim delom S ako i samo ako je G interno 3-
povezan.

Ako G zadovoljava pretpostavke iz gornje teoreme i S = (u1;:::;uj ), tada dodavanjem vrha z0


sa ivicama na u1;:::;uj dobija se tropovezani graf G . Primjenom algoritma na G i ne dodavanjem
, teoremu:
z0 u posljednjoj fazi, dobijamo pravolinijski i interno konveksan crtež za G. Ovo daje sljedeću

Teorema 10.5.3 Ako je ravan graf G sa stepenom 3 konveksan za crtanje, tada algoritam,
modifikovan kao gore, konstruiše u linearnom vremenu interno konveksan crtež G u (n 1) (n 2)
mrežu.
Machine Translated by Google
148 Okvir za crtanje i konveksni crteži

2
u pravu
3

u pravu
u pravu

lijevo 4 u pravu
u pravu lijevo
u pravu 4
7
u pravu u pravu u pravu
5 6
7
8 u pravu
lijevo desno 5 6
u pravu
u pravu u pravu 8
10 12 13 u pravu
u pravu
11 u pravu lijevo 11
u pravu 12 13
9 14 10
9 14

(a) Stablo grafa G7. (b) Stablo grafa G.

x(v)
dodavanje vrhova koraka 1 2 3 4 5 6 7 8 9 10 11 12 13 14
8 9, . . . , 814 0 1 1 1 1 1
7 10 1 1 1 1 1
6 7 020 1 1 1 1 1
5 5, 6 0 1020 2 1 1 1 1
4 4 00 1030 2 1 1 1 1
3 3 000 1030 2 3 121
2 2 0 2 0 0 -1 0 3 0 2 4 191

Slika 10.10: Stablo T i x(v).


Machine Translated by Google

Poglavlje 11

Ortogonalni crteži

U ovom poglavlju razmatramo problem crtanja planarnog grafa G na


pravolinijskoj ušnoj mreži sa ortogonalnim ivicama, tj. ivice su poligonalni lanci
horizontalnih i vertikalnih segmenata. Vrhovi su predstavljeni tačkama. Ovaj
problem ima važne primjene u VLSI-dizajnu i dobio je veliku pažnju tokom
posljednjih godina. U Odjeljku 9.3.2 opisano je nekoliko algoritama za
ortogonalne crteže dvopovezanih 3- i 4-planarnih grafova, koji izvorno potiču
od Storera [100], Tamasije [102], Tamasije & Tollisa [105] i Tamasije, Tollisa & Vittera [106 ].

11.1 Ortogonalni crteži 4-planarnih grafova


Prvo ćemo razmotriti problem kada je ulazni graf G tropovezani graf u 4 ravni.
Koristeći varijantu teoreme 2 iz [106], možemo dobiti sljedeću donju granicu:

Teorema 11.1.1 Postoje ugrađeni tropovezani 4-planarni grafovi Gn sa 3n + 1 vrh i 6n


+ 1 ivica, za koje bilo koji raspored zahtijeva najmanje 4n + 2 savijanja.

Dokaz: Razmotrite tropovezani ravan graf Gn sa 3n +1 vrhova, i njegov


izgled na slici 11.1(a), koji ima 4n + 3 krivine. Obratite pažnju da nema
savijanja na ivicama između dva bijela vrha. Vrhovi, koji su u početku imali
stepen 4, sada imaju stepen 2 i brišu se dok spajaju dva incidentna ivica. Ovo
dovodi do dvopovezanog planarnog grafa G0n sa 2n +2 vrha (vidi sliku
11.1(b)). U nastavku 4 u [106] je prikazano da je prikazani raspored na slici
11.1(b) G0n najbolji u odnosu na minimalni broj zavoja, koji je 4n + 2. Ako je
postojao raspored za Gn sa manje od 4n + 2 savijanja, tada je postojao bolji
raspored G0n sa manje od 4n + 2 krivine, što je u suprotnosti sa Corollary 42 iz [106].

Neka je G tropovezani 4-planarni graf. Neka je dat lmc poredak G.


Uvodimo promenljivu mark(vi) za svaki vrh v, što je važno kada se dodaje Vk
= fvg na Gk1. v ima najviše dva izlazna ruba, recimo do u1 i u2 (slijeva

149
Machine Translated by Google
150 Ortogonalni crteži

(a) Grafikon G5. (b) Grafikon G05.

4
Slika 11.1: Donja granica od 3 (n 1) + 2 krivine.

desno). Ako je v desni vrh od u1, a v nije lijevi vrh od u2, onda postavljamo mark(v) = lijevo,
inače postavljamo mark(v) = desno.
Postoje četiri smjera za povezivanje ruba na v, odnosno lijevo, desno, gore i dolje od v.
Smjer se naziva slobodnim ako još nijedna ivica nije povezana u tom smjeru od v. Ideja za
algoritam je sljedeća: dodajemo v na Gk1 tako da down(v) nije slobodan u Gk. Neka su cl i
cr lijevi i desni vrh v. Povezujemo (cl; v) na desno(cl), ako je slobodno, inače na gore(cl), ako
je slobodno, inače na lijevo(cl). Suprotan smjer se prati za cr. Želimo dodati v tako da kada
je mark(v) = lijevo onda lijevo(v) bude slobodno nakon sabiranja. Pošto je v desni vrh od u1,
možemo koristiti lijevo(v) za rub (v; u1) s lijeve strane. Kada se koristi desno(u1) za (v; u1),
tada se u (v; u1) ne dešavaju savijanja, u suprotnom se koristi up(u1), što daje jedno
savijanje. Slično za mark(v) = desno.

Algoritam, koji pokušava to postići što je više moguće, može se detaljnije opisati na
sljedeći način:

4-Ortogonalno(G); rub
(v1; v2) preko down(v1) i down(v2); za k := 3
do K 1 do
Neka je Vk = fz1;:::;z`g;
ako je ` = 1 i in(z1) = fcl; ci; crg onda
(cl; z1) preko
lijevo(z1); (ci; z1) preko
down(z1); (cr ; z1)
preko desno(z1); ako je ` = 1 i in(z1) =
fcl; crg onda ako je mark(z1) = lijevo ili (lijevo(cr) slobodno i desno(cl)
nije slobodno) onda (z1; cl) preko down(z1) i (z1; cr) preko
desno(z1) else (z1; cl) preko lijevo(z1) i (z1; cr) preko dolje(z1); inače
(` > 1)
Machine Translated by Google
11.1 Ortogonalni crteži 4-planarnih grafova 151

c z
l 1
v v
1 2

c
i
cr

Počevši od (v1; v2). Dodavanje z1 sa in(z1) = fcl; ci; crg.

c cr
l z lijevo u pravu
1
z z
1 1
c
l
c
l
cr cr

Dodavanje z1 sa in(z1) = fcl; crg.

v
n

lijevo lijevo

lijevo
u pravu lijevo z z6
z 5 cα
lijevo z 3 z4
2
z1

cr cr

cl

c=vl
1

Dodavanje z1; : : :;z`. Dodavanje vn.

Slika 11.2: Dodavanje vrhova i lica za dobijanje ortogonalnog crteža.

ako je desno(cl) slobodno onda (z1; cl) preko lijevo(z1) inače preko down(z1);
za i := 2 do ` do

ako je down(zi1) slobodan onda (zi1; zi) preko down(zi1) inače preko right(zi1);
ako je mark(zi) = lijevo onda (zi1; zi) preko down(zi) inače preko lijevo(zi);
rof;
ako je left(cr) slobodan onda (z`1; z`) preko down(z`); (z` ; cj) preko desno(z`) drugo
(z`1; z`) preko lijevo(z`); (z`; cr) preko down(z`)
rof;
rubovi od cl; ci2 ; ci3 ; Kraj cr do vn preko lijevo(vn), dolje(vn), desno(vn) i gore(vn), odnosno;
4-Ortogonalno

Pogledajte sliku 11.2 za ilustraciju različitih slučajeva.


Machine Translated by Google
152 Ortogonalni crteži

Postoji nekoliko načina za izračunavanje koordinata. Ovdje ukratko opisujemo y metodu, koju su dali
Biedl & Kant [8]: Napomena da se y-koordinata vrha nikada kasnije ne mijenja, tako da moramo brinuti samo
o x-koordinatama. Ključno zapažanje je da ne moramo znati vrijednosti x-koordinata ulaznih ivica vi kada
dodajemo vi. Možemo napraviti sljedeći trik: kroz cijeli algoritam održavati listu kolona. Svaki ugrađeni vrh v

sadrži pokazivač x(v) na jedan element Columns. Kad god želimo da dodamo kolonu, dodajemo novi element
u kolone. Pohranjivanjem liste kao niza pokazivača možemo to učiniti bez promjene bilo koje od x-vrijednosti
vrhova, koji su već posjećeni. Konačne x-koordinate se izračunavaju obilaskom kolona i dodjeljivanjem rastućih
vrijednosti svakom elementu.

Svaki vrh i zavoj zatim provjerava vrijednost elementa na koji pokazuje i pohranjuje je kao svoju x-koordinatu.
Ovo daje planarni ortogonalni crtež.
3
Lema 11.1.2 Broj krivina je najviše d tri krivine, a sve ostale ivice 2ne + 3. Jedna ivica ima najviše
imaju najviše 2 krivine.

Dokaz: Neka je Vk = fz1;:::;z`g. Pretpostavimo da je prvi ` > 1. Za svaki vrh zi se koristi dolje(zi) i lijevo(zi) ili
desno(zi). Rub prema dolje (zi) uvijek zahtijeva jedan dodatni savijanje, a drugi ne. Ako mark(z1) = desno, a
desno(z1) koristi (z1; z2), onda je kasnije potrebno dodatno savijanje za izlaznu ivicu preko lijevo(z1). Slično
vrijedi i za z` kada je mark(z`) = lijevo. Stoga ovo podrazumijeva najviše ` savijanja.

Ako je ` = 1 onda imamo najviše dva savijanja ako je in(z1) = 3, pa pretpostavimo da je in(z1) = 2. Dolazna
ivica, koristeći down(z1), nema dodatnih savijanja, druga ivica dobija još jedno savijanje . Ako su desna(cl) i
gore(cr) oba slobodna, tada su obje ivice, (cl; z1) i (cr; z1) prave (koristeći lijevo(z1) i dolje(z1), odnosno).
Međutim, ako je mark(z1) = lijevo, tada je potrebno dodatno savijanje za izlaznu ivicu z1, koristeći desno(z1).
Ovo dodatno savijanje dodjeljujemo koraku k. Slično kada je mark(z1) = desno, stoga se u svim slučajevima
uvodi najviše jedno dodatno savijanje kada je in(z1) = 2.

Također sličan dodjela slijedi za ivicu (v1; v2): dodjeljujemo dodatne krivine ivica, koristeći vezu lijevo(v1)
ili desno(v2), koraku 1. Sumirajući ovo vodi do sljedeće tabele:

korak # vrhova # ivica # savijanja 2


` = 1, in(z1)=2 ` = 1, 1 1

in(z1)=3 z1;:::;z`
1` 3`+1 2`

Svaki vrh v ima deg(v) 4, dakle m 2n. Razmotrimo korake 2;:::;K 1 u kojima se dodaje n 3 vrha i najviše 2n 5
ivica. Dodavanje Vk = fzg sa ne 6 ivica je 1 vrh. Ovo daje
3
in(z) = 3 se javlja najviše dne 2 puta, 2jer tada se najviše d doda, a najviše bn najviše 2

2(dne 2) + bnc 1+8= d najviše2 tri


+1 savijanja,
ivice se dodaju
svi ostali
sarubovi
najvišeimaju
bnc 2ne
najviše
+ 3 2 savijanja
2 .
3
2 2 savijanja. Rub, koristeći up(vn) ima at
2
Machine Translated by Google

11.1 Ortogonalni crteži 4-planarnih grafova 153

Lema 11.1.3 Veličina mreže je najviše n n.

Dokaz: Povećanje visine u koraku k, 1 <k<K, je najviše `, gdje


Vk = fz1;:::;z`g. U koraku 1 povećanje visine je najviše jedan, au koraku K dva,
što dokazuje ukupnu visinu n.
Za ukupnu širinu, razmatramo različite slučajeve za korak k, 1 <k<K. Neka
Vk = fz1;:::;z`g. Ako je ` > 1, tada je x(zi)x(zi1) = 1 (1 <i<`). Ako je x(z`)x(z`1) > 1
onda nema povećanja širine uopšte u ovom koraku, pošto je tada x(cr)x(cl) > `1. Ako
(cl; z1) je horizontalno, onda to znači povećanje za jedan u širini, ako je (cl; z1) okomito
i mark(z1) = desno, tada jedan izlazni rub od z1 mora ići preko l(z1), stoga je ovo
znači i povećanje širine za jedan kasnije. Ovo povećanje dodjeljujemo koraku k. A
slično vrijedi i za (z`; cr). Pošto je x(cr) x(cl) + 1 u koraku k 1, slijedi da je
povećanje širine je najviše ` u koraku k.
Ako je ` = 1 i in(z1) = 2, tada se širina povećava za jedan, zbog činjenice da
dodatni stupac bi mogao biti potreban za izlaznu ivicu z1 preko lijevog(z1) kada
mark(z1) = desno (slično kada mark(z1) = lijevo). Ako je ` = 1 i in(z1) 3 onda je
širina se ne povećava.

Za (v1; v2) dodjeljujemo dodatne kolone koje zahtijevaju odlazne ivice preko
lijevo(v1) i desno(v2) do koraka 1, dajući početnu širinu od tri jedinice. Ovo daje
sljedeća tabela:

# vrh se povećava u širinu


korak 1, 2 3
dodavanjem (v1; v2) k, ` = 1 1
1 i in(z1)=2 k, ` = 1 i 0
in(z1)=3 k, ` > 1 1` `
K, dodajući vn 1 0

Ovo dovodi do ukupne širine od najviše n. 2

Zaista, u našem rješenju, ivica koja koristi up(vn) ima najviše tri savijanja, sve ostale
ivice imaju najviše dva savijanja. Kako možemo izbjeći ivicu sa tri krivine? Zaista,
Even & Granot je dokazao da je svaki ortogonalni crtež 4-planarne trianguliran
planarni graf na 6 vrhova (oktaedar) zahtijeva najmanje jednu ivicu sa najmanje
tri krivine [29]. U našem slučaju, ako postoji vrh v sa deg(v) = 3 onda možemo postaviti
vn = v. Inače neka je n > 6. Tada postoji lice sa najmanje 4 vrha, koje
biramo da budemo vanjsko lice. Neka vn1 ;:::;vn4 budu susjedi vn s lijeva na
u pravu. Ako rub (vn; vn4 ) koristi desno (vn4 ), tada mijenjamo četiri smjera vn4 tako da
da se up(vn4) koristi za (vn4; vn). Pošto mark(vn4) = desno (po deniciji), to slijedi
da se uvede najviše jedan dodatni zavoj. Štaviše, pošto je n4 6= 2 slijedi da je
sve ostale ivice i dalje imaju najviše 2 savijanja. Ovim se završava sljedeća teorema.

Teorema 11.1.4 Postoji linearni algoritam vremena i prostora za crtanje svakog trokonektnog
3
4-planarnog grafa G ortogonalno na nn mreži sa najviše d 2 ne + 4 krivine,
tako da svaka ivica ima najviše dva savijanja i dužinu O(n) ako je n > 6.
Machine Translated by Google
154 Ortogonalni crteži

q q
n n

c 15 c 15
g g

14 14 13
f m f m

12 11 12 11
h l h l

6 e 7 8 6 e 7 8
d d

b 1 3 45 9 10 13 b 1 3 4 5 9 10 k
str

2 2
i k i str

a j a j

(c) Ortogonalni crtež. (d) Najviše 2 savijanja na svakoj ivici.

Slika 11.3: Ortogonalni crtež 4-planarnog grafa sa slike 10.1.

Na slici 11.3 dat je ortogonalni crtež grafa sa slike 10.1. U


posebno, na slici 11.3(d) je prikazano kako promijeniti vk tako da sve ivice imaju
najviše 2 krivine. Prethodna granica za broj savijanja bila je 2n + 4, data od strane
Tamassia & Tollis [105]. Stoga naš algoritam značajno poboljšava ovaj rezultat za
tropovezani planarni grafovi. U algoritmu Tamassia & Tollis, svaka ivica dobija
najviše 4 krivine, stoga poboljšavamo i ovu granicu. Nedavno, Biedl & Kant
predstavio linearni vremenski algoritam za konstruisanje ortogonalne reprezentacije
povezani planarni graf na nn mreži, koji ima najviše 2n + 2 krivine, i
svaka ivica je savijena najviše dva puta. Imajte na umu da su najviše 2 savijanja na svakoj ivici najbolje
moguće, jer ako planarni graf sadrži trokut za razdvajanje na vrhovima
vi; vj ; vk, tada barem jedna ivica trougla za razdvajanje ima najmanje 2 savijanja
bilo koji ortogonalni crtež.

11.2 Ortogonalni crteži 3-planarnih grafova

11.2.1 Tropovezani 3-planarni grafovi

U ovom dijelu predstavljamo linearni algoritam vremena i prostora za crtanje svake 3-planarne
graf sa najviše bn 2c + 1 savija se na bn 2 cbn 2c grid. Ovo poboljšava sve prethodne
granice (od [100, 105]) i poklapa se s najgorim mogućim donjim granicama i stoga je
najbolje moguće. Zanimljiva sporedna pojava je da postoji razapinjuće stablo koje koristi n 1
ravnih ivica. Sve mn + 1 Pretpostavimo 2 c + 1 ivice koje nisu stabla imaju najviše jednu krivinu.
bn
3
prvo da je G trokonektan. Po Ojlerovoj formuli, n je parno, m = n i 2
n
f = + 2.2 Neka je dat lmc poredak G. Slično kao u odjeljku 11.1 postoje
četiri smjera za povezivanje ivice na v, odnosno lijevo(v), gore(v), desno(v) i dolje(v).
Svaki vrh v (osim v1; v2 i vn) ima jednu izlaznu ivicu i povezujemo ovo
Machine Translated by Google
11.2 Ortogonalni crteži 3-planarnih grafova 155

rub preko up(v) na v. Počinjemo s postavljanjem v1 i v2 na (0; 1) i (1; 1). rub (v1; v2)
ide preko down(v1) i down(v2), dakle preko (0; 0) i (1; 0). U koraku 2, vrhovi
z1;:::;z` od V2 se postavljaju na horizontalnu liniju između v1 i v2, tj. preko desno(v1)
i lijevo (v2). U svakom koraku k, 3 k<K, postavljamo z1;:::;z` takođe na horizontalu
linija visine 1 + maxfy(cl); y(cr)g, sa cl i cr levim i desnim vrhom Vk.
Ako je ` > 1 onda pomeramo crtež tako da je x(z1) = x(cl) i x(z`) = x(cr). Pošto
in(Vk ) = 2 za 2 k<K i in(vn) = 3, slijedi da je K = f , pri čemu je f broj
n
lica u G. Obratite pažnju da je f = +2 (n je paran).
2 Kompletan algoritam sada može
biti opisan na sljedeći način:

3-Ortogonalno

P (v1) := (0; 1); P (v2) := (1; 1);


za k := 3 do f 1 do
pretpostavimo da dodajemo z1;:::;z` (` 1), od cl do cr ;
y(z1) := := y(z`) := 1 + maxfy(cl); y(cr)g;
ažuriranje x(cl) i shift(cr);
x(z1) := x(cl);
za l := 2 do ` 1 do x(zl) := x(z1) + l 1 rof;
ako je ` > 1 onda x(z`) := maxfx(z1) + ` 1; x(cr)+ shift(cr)g;
shift(cr) := maxfshift(cj); x(z`) x(cj )g
rof;
P (vn) := (x(cl); 1 + maxfy(cl); y(cl); y(cr)g); gdje je in(vn) = fcl; cl; crg;
za k := f do 2 do
pretpostavimo da smo dodali z1;:::;z` iz cl u cr ;
za i := 1 do ` do x(zi) := xinsert(zi) + P 1 ji shift(zj ) rof;
ako je ` = 1 onda shift(cr) := shift(z1) inače shift(cr) := x(z`) xinsert(cj)
rof;
Kraj 3-Ortogonalno

n
Lema 11.2.1 Broj savijanja je najveći 2 + 2.

3 n
Dokaz: Pošto je m = 2 n, dodajemo najviše 2 2 puta vrh v sa in(v) = 2,
svaki uvodi po jednu krivinu. Rub (v1; v2) uvodi 2 savijanja, kao i
dodavanje vn. 2

n n
Lema 11.2.2 Veličina mreže je najveća 2 2
.

Dokaz: Ivica (v1; v2) daje 1 jedinicu u X- i Y-smjeru. Zatim dodajemo n 2


1

puta lice sa ` 1 vrhom, povećavajući X-smjer za najviše ` 1 jedinica


i Y -smjer (osim prvi put) za 1 jedinicu. Dodavanje vn povećava Y -
n
smjer za 1 jedinicu. Brojanje ovoga zajedno vodi do najviše jedinica u X-smjeru 2
in jedinice u Y smjeru. 2 2

Na slici 11.4(b) dat je primjer tropovezanog 3-planarnog grafa.


Machine Translated by Google
156 Ortogonalni crteži

20 19
20

19 20
16
19
18
4 17
18 18
3 16
1
17 16 17
5
15 15
13 14
13
15
6 14 13
7 14
12 12
11
2 12
8 11
9
789 10

1 3456 2 1 345 6 7 8 9 10

10 11 2

Slika 11.4: Ortogonalni crtež tropovezanog 3-planarnog grafa.

Crtež možemo promijeniti na sljedeći način, tako da bude jedan zavoj manje, i tu
je razapinjuće stablo, koje koristi samo pravolinijske ivice (ako je n > 4). Neka su vrhovi od
prvo nacrtano lice biti numerisano v1; vi; vi1;:::;v3; v2. Postavljamo v1; vi; vi1;:::;v3 na a
0
horizontalnu liniju i stavite v2 na (x(v3); y(v3) 1). Neka je F drugo lice, gdje
(v2; v3) pripada. Neka su vj ;:::;vk ostali vrhovi F 0. Crtamo vj ;:::;vk na
horizontalna linija na visini y(v3), kao što je prikazano na slici 11.4(c). Preostala lica
su nacrtani slično kao i ranije. Primijetite da je korištenjem ove strategije svaki trostruko povezan
planarni graf G sa n vrhova može se nacrtati ortogonalno na mreži veličine najviše + 1 zavoja (n je
n n
2 (n
2 1), sa najviše 2 parno), u kojoj postoji raspon
stablo, koristeći samo ravne horizontalne i vertikalne ivice. Sve ivice koje nisu stabla imaju
najviše jedan zavoj (ako je n > 4).
Primjećujemo da se bolje granice mogu dobiti ako je dualni graf G od G a
4-povezani planarni graf u kojem su sve unutrašnje strane trouglovi. To je pokazano
Bhasker & Sahni [7] da se u ovom slučaju G može nacrtati ortogonalno u linearnom vremenu
tako da ima najviše 4 krivine. U poglavlju 13 to pokazujemo promenom
kanonsko uređenje 4-povezanih trokutnih planarnih grafova i primjena
metodom crtanja He [47], možemo postići isto ortogonalno crtanje u vrlo
jednostavan način u linearnom vremenu i prostoru.

11.2.2 Crtanje dvopovezanih 3-planarnih grafova

U ovom odeljku generalizujemo rezultate odeljka 11.2.1 na dvopovezanu 3-planarnu


grafovi G. Prisjetite se denicija iz Odjeljka 2.4 u odnosu na tropovezane komponente, SPQR-stablo,
skelet(bi) i relevantno(bi). Neka su date tropovezane komponente G. Od ovih komponenti konstruišemo
SPQR-stablo TSP QR
od G. Neka je za svaki čvor bi u T , si; ti su polovi bi, i neka je Bi = skelet(bi).
Korijenimo T u proizvoljnom S-čvoru br. Pošto svaki vrh ima stepen 2 ili 3, to slijedi
Machine Translated by Google
11.2 Ortogonalni crteži 3-planarnih grafova 157

da su jedine veze koje se mogu pojaviti trostruke veze. Neka je bi P-čvor u T . Tvrdimo da bi nema R-
čvorova kao susjeda. Pretpostavimo da nije, i neka je bj R-čvor, susedan P-čvoru bi u T . Ali u
relevantnom (bj ) postoje 3 puta između si i ti. Ali tada u G, deg(si) > 3 i deg(ti) > 3. Dakle, dva susjeda
bi u T bi1 i bi2, su S-čvorovi, a treći susjed, recimo bi3, je Q- ili S- čvor. bi3 je dijete bi u TSP QR, i , recimo

spajamo skelet(bi3)
Q-čvor,satada
skeletom(bi2),
sadrži rub gdje
(si; ti).
jeAko
bi2 drugo
je bi3 S-čvor,
dijete bi.
tadaSpojeni
si i predstavljamo
ti nisu
podgraf
susjedni.
je ciklus.
S'-čvorom.
Spojeni
Ako podgraf
jeNa
bi3
ovaj način uklanjamo sve P-čvorove iz TSP QR.

Uklanjamo i sve Q-čvorove iz TSP QR (oni su listovi u TSP QR). Za svaki R-čvor bi, skelet(bi) je
tropovezani 3-planarni graf; za svaki S-čvor ili S'-čvor bi, skelet(bi) je ciklus. Pošto je deg(v) 3 za svaki
vrh, susjedi R-čvora i roditelj S'-čvora su S-čvorovi. Susjedi S-čvora i djeca S'-čvora su R- ili S'-čvorovi.

Algoritam za crtanje dvopovezanih 3-planarnih grafova prati strukturu TSP QR. Svaka tropovezana
komponenta Bi ima tačno dva vrha, si i ti, zajednička sa Bj, gdje je bj = roditelj(bi) u TSP QR.
Tropovezane komponente Bi, sa bi
listom u TSP QR, nacrtane su na sljedeći način:

bi je R-čvor Bi je nacrtan algoritmom 3-Ortogonal sa v1 = si i


v2 = ti.

0 0
bi je S-čvor Neka (si; s0 i) i (ti; t0 i) 2 Bi, s i 6= ti i t fsi; i 6= si. Neka je B0i Bi i ti
su
0 0
tig. Ako je jB0 ij 4, nacrtajte
nalazi
B0 ukao
donjem
pravougaonik
lijevom
i kutu,
i donjem
tako
a 2da
druga
se
desnom
s vrha postavljena i
u druge dvije kutne točke. Ako je jB0 ij = 3, onda stavite s u gornji levi ugao, u donji desni ugao,
0
a drugi vrh je postavljen u gornji desni ugao ti. Ako je jB0 ij = 2, B0
i horizontalno.
je ivica koju povlačimo
Za Bi, postavite
0
P (si)=(x(s 0 i); y(s 0 i) 1), ako je jB0 ij 6= 3, i P (si)=(x(s 0 i); y(s 0 i) 2) ako je jB0 ij = 3.
i

Postavite P (ti)=(x(t 0 i)+1; y(t 0 i)).

bi je S'-čvor Nacrtamo Bi kao pravougaonik takav da su si i ti donji lijevi i donji desni ugao. Ako jedna
putanja između si i ti u Bi sadrži najmanje 2 druga vrha, onda se vrhovi postavljaju u druge 2
kutne tačke.

Neka je jBij = n0. Ako je bi R-čvor, onda je n0 paran. Ako je bi S'-čvor, onda možemo nacrtati Bi tako
n0
da je y(ti) = y(si) i x(ti) = x(si) + b kada je bi R-čvor nakon brisanja (si;2 tic.).Važe
Ako iste
je bijednakosti
S-čvor, onda je y(ti) =
y(si)+1 i x(ti) = x(si) + bc, a svi vrhovi v 2 Bi; v 6= si; ti, imaju x(v) < x(ti) i y(v) > y(si). U svim slučajevima
n0
bi korišćena površina je najviše
2 b Crtamo trokonenu komponentu Bj ,
n0 n0
2 c (b 2 c 1).
pri čemu bj nije list u TSP QR, nakon svake
trokonene komponente Bi je nacrtana, sa roditelj(bi) = bj . Neka je x(bi) = x(ti) x(si) i y(bi) = y(ti)y(si) na
crtežu Bi, tada je ideja da se crtež Bj rastegne tako da na crtežu Bj , x(ti) x(si) = x(bi) i y(ti) y(si) = y(bi).
Machine Translated by Google
158 Ortogonalni crteži

Tada možemo postaviti crtež Bi u crtež Bj bez ukrštanja ivica.


jBi j+jBj j
Konkretno, želimo da rastegnemo crtež Bj tako da je x(bj ) c i b 2
jBi j+jBj j 1.
y(bj ) b 2 c

Ako je bj S-čvor, tada su sve ivice bj prave linije. Svako dijete bi od bj je


R- ili S'-čvor, dakle y(bi) = 0, i lako možemo rastegnuti rub (si ; ti) u Bj
na dužinu x(bi). Ako je bj S'-čvor, tada se može pojaviti jedna ivica sa krivinom, ako oba
staze između sj i tj imaju dužinu 2. Neka je P = sj ; v; tj biti takav put. Ali
sada slijedi da ako je (sj ; v) virtualna ivica, onda (v; tj) nije virtualna, u suprotnom
stepen(v) 4. Možemo postaviti v tako da incidentna virtualna ivica v bude pravac
linija. Stoga možemo nacrtati Bj sa svim virtualnim ivicama nacrtanim kao prave linije. Možemo
jBij jBi j
rastegnuti (si; ti) lako tako da ima dužinu x(bi). y(bi) b 1, x(bi) c, 2 c b 2

i (si; ti) ima dužinu 1, dakle povećanje u X- i Y-smjeru, kada


jBi j
umetanje crteža Bi unutar crteža Bj je najviše b 2 c
1. Možemo
postavite pravougaonik, koji predstavlja Bi, na vanjsku stranu pravougaonika, koji predstavlja
Bj . Na ovaj način ne dolazi do ukrštanja.
Pretpostavimo konačno da je bj R-čvor, pa je Bj tropovezani graf. Ovo
implicira da je bi S-čvor, dakle Bi je ciklus. Neka (si; s0 i); (ti; t0 i) 2 Bi; s0 i 6= ti i
t 0i 6= si. Takođe y(t 0 i) = y(s 0 i) važi i na crtežu Bi. Postavljanje Bi zavisi od
različite situacije, koje se mogu dogoditi za rub (si; ti) u Bj . Slika 11.5 pokazuje ovo
zamjene.
Situacija (a) se javlja kada dodamo jedan vrh. Situacija (b) i (c) su slučajevi
za dodavanje lanca sa najmanje 3 vrha. Situacija (d) se javlja kada dodamo lanac
dužine 2 u Bj . Ali ovdje možemo postaviti krivinu na ulaznoj ivici si, jer
još uvijek imamo putanju, koristeći samo pravolinijske ivice od ti do si. Takođe i povećanje
u X-smjeru dodavanjem lanca dužine 2 je 1. Otuda Lema 11.2.1 i Lema
11.2.2 i dalje držati.

Situacija (e) se javlja kada je vrh si = sj, tj. pol od Bj. Slična situacija
može se pojaviti za vrh ti. Iz ove zamjene proizlazi da je iako veličina
jBi j+jBj j jBij+jBj j
ukupni crtež je najviše b 2 c (b 2 c1), polovi sj i tj od Bj nisu
nužno uglove ovog pravougaonika. Ali ipak d(si); l(si) i d(ti); r(ti)
su besplatni. parent(bj) je S- ili S'-čvor, i možemo nacrtati rubove od sj preko d(sj)
i od tj preko r(tj ) na isti način kao što je opisano za ivice (si; s0 i) i (ti; t0 i).
Stoga, iako sj i tj nisu tačke ugla površine, možemo dodati ivice
od sj i tj do suseda u Bj bez ukrštanja ivica u traženoj oblasti.
Situacija (f) se događa kada je (si; ti) horizontalna ivica, koja pripada prvom dodanom
lanac između sj i tj .
Kada je (si; ti) unutrašnja dolazna ivica vn od Bj, tada imamo 2 situacije.
Situacija (g) se javlja kada je jBj j > 4. Tada je ili l(si) ili r(si) slobodan, i možemo
koristite sličnu zamjenu. Ako je jBj j = 4, tada l(si) i r(si) nisu slobodni, stoga
jedina moguća zamjena je kao što je prikazano u situaciji (h). Ovo dovodi do crteža od
jBij+jBj j jBi j+jBj j jBi j
veličina b 2 c (b 2 c 1), i x(tj) = x(sj ) + b 2 c 1 drži. Ali dodajući Bi
unutar drugog tropovezanog grafa crtanjem 2 spojne ivice horizontalno (kao
Machine Translated by Google
11.2 Ortogonalni crteži 3-planarnih grafova 159

s'i
si

si
t'i
s'i
(a)
si t'i
(b)
ti
si ti
ti ti

s'i si
si
t'i
s'i
ti
(c) si t'i (d) si ti
ti ti

ti
s'i si
t'i ti
(e) si (f) s'i
t'i
si ti si ti

si si

si s'i si s'i
(g) (h)
ti ti
t'i
t'i ti
ti

Slika 11.5: Zamjena virtuelnih ivica trostruko povezanim komponentama.

u situaciji (h)) već rješava problem. Ovim je završena sljedeća lema:

Lema 11.2.3 Nakon zamjene virtuelne ivice (si; ti) odgovarajućim ortogonalnim crtežom Bi u ortogonalnom
crtežu od Bj, ukupna potrebna veličina mreže je na
jBi j+jBj j jBij+jBj j
većina b 2 c (b 2 c 1).

To znači da nakon zamjene svih virtuelnih rubova Bj trokomponentnim com


n0 n0
komponenti Bi, dobijamo ortogonalni crtež veličine b 2 c (b 2 c 1), sa n0 the
broj vrhova u relevantnom (bj ). Nastavljamo ovaj pristup sve dok ne dođemo do root br
od TSP QR. Ako G nije tropovezan, onda TSP QR sadrži S-čvor, a mi smo pretpostavili
da je br S-čvor.
Lako se primjećuje da nema savijanja kada uzmemo u obzir S- ili
S'-čvor. Tako se dobija sljedeća teorema:

Teorema 11.2.4 Postoji linearni algoritam vremena i prostora za crtanje dvopovezanog


3-planarni graf na mreži veličine najviše bn 2 cbn 2 c, sa najviše bn 2c + 1 krivine,
Machine Translated by Google
160 Ortogonalni crteži

sa svojstvom da postoji razapinjuće stablo od n 1 pravolinijskih ivica, dok je al l


ivice koje nisu stabla imaju najviše 1 krivinu (ako je n > 4).

Na slici 11.6 dat je primjer dvopovezanog 3-planarnog grafa G, SPQR stabla od G i odgovarajućeg
ortogonalnog crteža G.

11.2.3 Ortogonalno crtanje općih 3-planarnih grafova

Proširujemo algoritam 3-Orthogonal za crtanje proizvoljnih 3-planarnih grafova ili togonalno.


Pretpostavimo da su sve dvopovezane komponente Bi od G nacrtane ortogonalno
jBi j jBij
mrežu veličine najviše b 2 c (b 2 c 1). Konstruiramo BC-stablo TBC od G. Neka
ci = roditelj(bi) u TBC. Pretpostavljamo da je presek ci bloka Bi ucrtan u jedan
ugao ortogonalnog crteža Bi. Pošto ci ima stepen 2 u Bi, to slijedi
korijen odgovarajućeg SPQR-stabla od Gi je S- ili S'-čvor, stoga se postavlja
ci u uglu se lako može dobiti. Neka je cl drugi susjed od ci, onda je cl
je i cutvertex. cl ima jedno ili dvoje djece u TBC-u. Prvo crtamo ova 2
odgovarajuće blokove, a zatim ga spojite u jedan crtež, kao što je prikazano na slici 11.7.
Na crtežu neće biti dodatnih savijanja. Također potrebna površina
jBi j+jBjj jBi j+jBj j
za blokove za crtanje Bi i Bj je najviše b 2 c b 2 c, čime se završava
sljedeća teorema:

Teorema 11.2.5 Postoji linearni algoritam vremena i prostora za crtanje bilo koje 3-planarne
graf na bn 2 2 c mreža sa najviše bn
bn 2c + 1 krivine, sa svojstvom da postoji
c je razapinjuće stablo od n 1 pravolinijskih ivica, dok sve ivice koje nisu stabla imaju najviše
1 savijanje (ako je n > 4).
Machine Translated by Google
11.2 Ortogonalni crteži 3-planarnih grafova 161

13
12

11
13
14 12 13
15 14
10 10
16 9
9
8 11
17 6
7 14
18 15
2 11 9 8
3
6 7
1
18 6
5 1
5
6

4
15
16 23
1
18 17 5
4

(a) Ulazni graf G. (b) SPQR-stablo G.

12

11 13 14 15

14 17 16
9 6
2 1
13 10
11 4 18

3 5
18 789
15 6
1 56 6

14 98
7
13 11
16
2 3
10
17 12
18 15
145

(c) Crtanje tropovezanih (d) Kompletan crtež.


komponenti.

Slika 11.6: Ortogonalni crtež dvopovezanog 3-planarnog grafa.


Machine Translated by Google
162 Ortogonalni crteži

ci
c
l cj
ci
cj c
l

Slika 11.7: Ortogonalni crtež blokova.


Machine Translated by Google

Poglavlje 12

Heksagonalni crteži

U 11. poglavlju razmatrali smo crteže 3- i 4-planarnih grafova na pravolinijskoj


mreži. U ovom poglavlju razmatramo crteže 3-planarnih grafova na heksagonalnoj
mreži. U heksagonalnoj mreži postoje tri pravca linija (vidi sliku 12.1): linije od 0
stepeni (ovde se nazivaju X-smer), =3 stepena (ovde se nazivaju Y-smer) i 2 =3
stepena linije (ovde se zovu Z -smjer). U ovom poglavlju ćemo pokazati da možemo
nacrtati bilo koji 3-planarni graf na heksagonalnoj mreži, tako da najviše jedna ivica
ima krivine. Ova savijena ivica se ne može uvijek izbjeći. Na primjer, razmotrite graf
K4 na slici 12.1.

Z-smjer Y-smjer

3 4

1 2

X-smjer

Slika 12.1: Crtež K4 na heksagonalnoj mreži.

Koristeći crtež na heksagonalnoj mreži, možemo dokazati glavni rezultat ovog


poglavlja, koji kaže da se svaki 3-planarni graf G može nacrtati sa pravolinijskim
rubovima tako da je najmanji ugao ako je4G trokonektan, a inače . 3,

Ovo rješava otvoreni problem Formanna et al. [32].

163
Machine Translated by Google
164 Heksagonalni crteži

12.1 Tropovezani 3-planarni grafovi

Neka je G tropovezani 3-planarni graf sa n vrhova. Tada n mora biti paran,


3 n
broj ivica m = + 2, pošto je po2n Eulerovom
i broj lica f = 2
formula, mnf + 2 = 0. Neka je dat lmc poredak G. U svakom koraku k,
3 k<n dodajemo jedno lice, Fk, au posljednjem koraku K dodajemo vn. Ovo daje to
0 0
K = f . Neka je F drugo
biti vanjska
lice kojestrana,
sadrži i neka F 00 6= F
(v1; vn). Neka je Fn ovo incidentno lice vn, koje ne sadrži (v1; vn). Podsjetimo
date denicije novih i unutrašnjih vrhova, te lijevog i desnog vrha
u poglavlju 2.

Denicija 12.1.1 E(Fk) je skup ivica Fk , dodato u koraku k.

Denicija 12.1.2 Osnovna ivica Fk, nazvana be(Fk), je ivica koja pripada
takođe na najniže numerisano lice Fj koje je susedno Fk.

Neka je osnovna ivica F3 (v1; v2). Po deniciji jE(Fk)j 2 za sva lica


Fk ;k 3, jer dodajemo barem jedan vrh v u koraku k. Osnovne ivice igraju
važnu ulogu u algoritmu crtanja. Prvo je svakom dodijeljena dužina lth
osnovna ivica, izračunato na sljedeći način:

Postavite lth(e) = 1 za sve ivice e 2 G;


za k := f do 3 do lth(be(Fk)) := P e2E(Fk ) lth(e) 1 krov;

Za svaki rub e pokazaćemo da je dužina e na rezultirajućem crtežu označena


po dužini(e), je najmanje lth(e). Neka je k1 = lth((v1; v2)). Za koordinate P (vi) =
(x(vi); y(vi)) koristimo jedinice duž X- i Y-ose. Crtež je konstruisan
kao što slijedi:

Neka su v2 i v3 dva susjeda v1 u F3. (v2 i v3 nisu nužno


susjedi.) Počinjemo sa crtanjem F3 kao trokuta veličine k1, tj. P (v2) =
(0; 0); P (v1)=(k1; k1); P (v3)=(k1; 0), a ostali vrhovi F3 su postavljeni na
horizontalna linija između v2 i v3, tako da je dužina svake ivice e lth(e).
Ove ivice čine osnovu za dodavanje lica F4;:::;Ff1.
Ako je Vk = fzg, onda idemo od lijevog vrha cl prema gore u Y -smjeru i od
desni vrh cr prema gore u Z-smjeru. Prelazna tačka je mesto za z (vidi
Slika 12.2(b)). Ako je Vk = fz1;:::;z`g, onda idemo od cr jedne jedinice u Z-smjeru i
od cl u Y -smjeru do iste visine (pretpostavimo y(cr) y(cl)) i dodamo z1;:::;z`
na horizontalnoj liniji između (vidi sliku 12.2(c)).
Za računanje P (vn) zanemarujemo rub (v1; vn). Dodavanje (v1; vn) se dobija odlaskom
od v1 jedan korak u X-smjeru, k1 koraka u Y-smjeru, k1 koraka u Z-smjeru i
jedan korak u negativnom X-smjeru do vn (vidi sliku 12.2(d)). Dodavanje vrhova
v1;:::;vn1 se može opisati na sljedeći način:
Machine Translated by Google
12.1 Tropovezani 3-planarni grafovi 165

w1
v2
v
3
cj
c
F3 i
Fk
k1
v
2
v3

v1
F3

(a) Struktura F3. (b) Dodavanje lica sa jednim


vrh trenutnog crteža.

vn

ww
12

c
ci j
Fk v
2 v
3
v
2 v
3 F3
F3
v
1

(c) Dodavanje lica sa dva (d) Kompletan crtež.


vrhova trenutnog crteža.

Slika 12.2: Ilustracija algoritma HexaDraw.

HexaDraw
P (v1)=(k1; k1);
neka su v2 = z1;:::;z` = v3 ostali vrhovi F3;
P (z1) := (0; 0);
za i := 2 do ` do P (zi) := (x(zi1) + lth((zi1; zi)); 0) rof;
za k := 4 do f 1 do
pretpostavimo da dodajemo z1;:::;z` (` > 1) od cl do cr ;
x(z1) := x(cl);
ako je ` = 1 onda

(*) y(z1) := y(cr) + x(cr) x(cl)


ostalo

(*) y(z1) := y(z2) := ::: := y(z`) := maxfy(cl); y(cr)g + 1;


za i := 2 do ` 1 do x(zi) := x(zi1) + lth((zi; zi1)) rof;
x(z`) := x(cr) + y(cr) y(z1)
rof;
Završi HexaDraw
Machine Translated by Google
166 Heksagonalni crteži

Lako je vidjeti da se algoritam može implementirati da radi u linearnom vremenu i


svemir. Da bismo dokazali ispravnost algoritma, potrebne su nam sljedeće leme.

Lema 12.1.1 Najmanje jedna od unutrašnjih ivica lica Fk je horizontalna.

Dokaz: Pretpostavimo da ne. Neka je cl levi vrh, a cr desni vrh Fk.


cl i cr su imali stepen 2 prije dodavanja Fk i stoga (cl; cl+1) moraju imati Z-smjer
prema dolje i (cr1; cr) moraju imati Y -smjer prema gore, ako nisu horizontalni.
Ali ne može postojati vrh c l< <r takav, da (c 1; c ) ima Z-smjer i
(c ; c +1) ima Y -smjer, jer bi tada po HexaDrawu, c imao stepen 4.
Stoga mora postojati barem jedna horizontalna unutrašnja ivica kada se dodaje Fk. 2

Lema 12.1.2 Unutrašnje ivice novog lica Fk su: prvo 0 ivica u Z smjeru prema dolje, zatim jedna
horizontalna ivica i zatim 0 ivica u Y smjeru
prema gore, ovim redoslijedom s lijeva na desno.

Dokaz: Ako za unutrašnji vrh c važi da je (c 1; c ) Y -smjera i


(c ; c +1) je Z-smjera onda prema deniciji c ima stepen 2 u Gk i, prema tome,
ne može biti interna. Slično kada su jedna ili dvije od ovih ivica horizontalne. Dakle
postoji tačno jedna horizontalna ivica e. Sve lijeve unutrašnje ivice e su u Z-smjeru
i sve ivice desno od e su u Y -smjeru. 2

Lema 12.1.3 e je nacrtana horizontalno () e je osnovna ivica.

Dokaz: =) Neka je (c ; c +1) horizontalna unutrašnja ivica kada se dodaje Fk


Gk+1. Prema lemi 12.1.1, takva ivica postoji. Sve unutrašnje ivice Fk lijevo (desno) od
c imaju Z-smjer (Y-smjer) prema gore prema lemi 12.1.2. Ali ove ivice jesu
dodaje se iza c jer
, je c krajnji desni vrh lica pri sabiranju (c 1; c )
po algoritmu HexaDraw. Slično za c +1. najniže numerisano Ali tada (c ; c +1) pripada
susedno lice Fk, pa je (c ; c +1) osnovna ivica.
(= Pretpostavimo da je e horizontalna ivica, koja pripada Fi i Fj sa i>j. Dakle, e jeste
horizontalna unutrašnja ivica Fi. Pretpostavimo da je (Fi) = e sa e
0
0 6= e. Već znamo
da e 0 je horizontalna, ali tada postoje dvije horizontalne unutrašnje ivice prilikom dodavanja
Fi. Ovo je u suprotnosti sa lemom 12.1.2. 2

Lema 12.1.4 Za svaku ivicu e, dužina(e) lth(e).

Dokaz: Indukcijom na plohama Fk. Osnovna ivica F3 je nacrtana dužinom


k1. x(v3) x(v2) = k1, što je jednako zbiru lth(e) svih ivica e između v2
i v3, stoga je lema tačna za F3.
Pretpostavimo da je lema tačna za i = 3;:::;k 1. Pokazujemo da dodajemo Fk sa
0
HexaDraw takav da dužina(e) lth(e) za svaki rub u Gk . Neka e = (c ; c +1) =
Machine Translated by Google

12.1 Tropovezani 3-planarni grafovi 167

biti (Fk). Od c imamo 0 ivica u Z-smjeru prema gore do lijevog vrha cl i


od c +1 imamo 0 ivica u Y -smjeru prema gore do desnog vrha cr . Pretpostavimo
wlog da y(cl) y(cr) i da dodamo najmanje dva vrha z1;:::;z`. Od
cl idemo jedan korak u Y -smjeru do mjesta z1. Od cr idemo u Z-smjeru do
iste visine za mjesto z`. (cl; z1) i (z`; cr) nisu osnovne ivice, stoga lth(e)=1
a time i dužina(e) lth(e) za (cl; z1) i (z`; cr). Štaviše, x(z`) x(z1) =
x(cr) + y(cr) y(z1) x(z1) = x(cr) x(cl) (y(cl)+1 y(cr)). Primijetite to od
c do cl idemo u Z-smjeru prema gore, dakle x(cl) + y(cl) = x(c) + y(c), a od
c +1 do cr idemo u Y -smjeru prema gore, dakle x(cr) + y(cr) x(c +1) + y(c +1).
Imajte na umu da je y(c +1) = y(c), kao (c ; c +1) = be(Fk), dakle horizontalno. Dakle
x(z`)x(z1) = x(cr)x(cl)(y(cl)+1y(cr)) x(c +1)x(c)1 lth(e 0)1 po
indukcija. lth((cl; z1)) = lth((z`; cr)) = 1, dakle P 1 i<p lth((zi; zi+1)) = lth(e 0) 1,
stoga i u Gk sve ivice e imaju dužinu najmanje lth(e). 2

Kako je lth(e) 1 za sve rubove e, ova lema dokazuje ispravnost algoritma


HexaDraw.

20
19

18
16 17
1
15
13
2 20 14
12
3
11
6
7 5 4 7
89 10
8 3
2 65 4
10
15 17
9 14 16

11 12 18
13 19

Slika 12.3: Grafikon sa slike 11.4 sa odgovarajućim crtežom od Hex aDraw.

n n
Lema 12.1.5 Veličina heksagonalne mreže je 2 2
.

3 00
Dokaz: postoje iF
0

2n ivice i n 2 + 2 lica. F nemaju osnovne ivice,


n 3
dakle postoje 2 osnovne ivice. Sve 2n ivica, osim (v1; vn), dodaju se l-om od
Machine Translated by Google
168 Heksagonalni crteži

bazna ivica. Početna dužina 1 osnovne ivice e zanemaruje se prilikom izračunavanja lth(e),
a svaki lth(e) se smanjuje za 1 u proračunu. Dakle, k1 = lth(be(F3)) =
3 n n
= n
2
n1 2 2 2 1. Dodavanje (v1; vn) povećava veličinu u Y - i Z-smjeru
po jedan. Ovo vodi do crteža veličine n u svakom pravcu. 2
2

Na slici 12.3 dat je primjer crteža tropovezanog 3-planarnog grafa.


Možemo koristiti algoritam HexaDraw kako slijedi da nacrtamo tropovezanu 6-planarnu
graf G na heksagonalnoj mreži: zamijenite svaki vrh vk sa deg(vk) > 3 ciklusom
C(vk) dužine deg(vk) pri čemu svaki vrh C(vk) ima ivicu prema susjedu
vk. Neka je G0 rezultujući graf. G0 je trokonektovana i 3-planarna. Prijavljujemo se
HexaDraw u G0 tako da lice Fk odgovarajućeg ciklusa C(vk) sadrži at
najmanje jedna unutrašnja tačka pk heksagonalne mreže, tj. veličina F u X-, Y - i
Z-smjer je lth(e), jer 2. Ovo slijedi kada postavimo lth(be(F )) = P
e2E(Fk )
onda je lth(be(F )) 2, i možemo postaviti z1;:::;z` tako da je y(z1) =maxfy(cl) +
2; y(cr)+2g. Kada promijenimo G0 u G, tj. zamijenimo ciklus C(vk) vrhom vk, postavljamo vk u unutrašnju
tačku pk lica Fk.

str
Z str
str
str
Z Y

Fi
Y str str str
str
X Z Y
str X str
i str
X str X
Fi
str
i
str Z
i str str
str
X
str Y Z
X
str
Y
str str
Y Z

Slika 12.4: Postavljanje pk unutar Fk.

Lema 12.1.6 Možemo izabrati pk unutar Fk tako da su svi putevi između pk i


vrhovi Fk su verteks disjunktni i imaju najviše jedan zavoj.

Dokaz: Neka su pX i pX ova mjesta na heksagonalnoj mreži, idući od


postavite pk u X-smjeru, odnosno negativnom X-smjeru. Analog pY ; pY ; pZ i pZ
su dened. Neka je (c ; c +1) osnovna ivica Fk, i pretpostavimo da kada saberemo Fk, dodamo vrhove z1;:::;z` iz
cl u cr. Pretpostavimo da je deg(vk) = 6, slučajevi
deg(vk) = 4 i deg(vk) = 5 su slični.
Ako je Fk 6-ugao, onda je i 6= ; j 6= + 1 i ` = 2. Neka je P (pk )=(x(c); y(cr)).
Lako se može provjeriti da je ovo mjesto unutrašnja tačka Fk. pY = c i
pX = cr . pX = cl, ili na rubu (cl; c ) ili (cl; z1). pY = z2, ili na rubu (z2; z1) ili
(z2; cr). pZ = z1, ili na rubu (z1; cl) ili (z1; z2). pZ = c +1, ili na rubu (c +1; c ) ili
(c +1; cr). Stoga možemo postaviti ivice (pk; c); (pk ; c +1); (pk; cr); (pk ; z2); (pk; z1)
Machine Translated by Google
12.1 Tropovezani 3-planarni grafovi 169

i (pk; cl) preko tačaka pY ; pZ ; pX ; pY ; pZ i pX respektivno, tako da oni


su temensko disjunktni, a svaka ivica ima najviše jednu krivinu (vidi sliku 12.4).
Ako je Fk 5-ugao, tada je = l + 2 ili r = + 3 ili ` = 3. Razmotrimo slučaj
da je p = 3, i r = + 2. (Ostali slučajevi su slični promjenom različitih smjerova.) Postavljamo
pk na (x(z3); y(cr)). Iz toga slijedi da je pX = cr i
pY = z3. pX je na rubu (c ; z1). pY je na rubu (c ; c +1); pZ = c +2, ili uključeno
ivica (c +2; c +1) ili (c +2; c +3); pZ = z1, ili na rubu (z1; z2) ili (z1; cl). Stoga mi
može postaviti ivice (pk ; c ); (pk ; c +1); (pk; c +2); (pk; cr); (pk ; z2) i (pk ; z1) preko
tačke pY ; pZ ; pX ; pY ; pZ i pX respektivno, tako da su temensko disjunktne,
i svaka ivica ima najviše jednu krivinu (vidi sliku 12.4).
Ako je Fk 4-ugao, onda imamo p = 4 ili r = +4 ili l = 3. Razmotrimo slučaj p =
4 detaljnije. (Ostali slučajevi idu slično promjenom različitih smjerova.)
Sada vrijedi l = i r = + 1, i y(z1) y(cl) + 2, jer smo pretpostavili da
dužina Fi u svakom pravcu je najmanje 2, što se dobija pomoću lth(be(Fk)) :=
P e2E(Fk) lth(e). Postavljamo P (pk )=(x(z3); y(ck) + 1). Opet, nije teško provjeriti
da možemo postaviti ivice (pk; c ); (pk ; c +1); (pk ; z4); (pk ; z3); (pk; z2) i (pk; z1)
preko tačaka pY ; pZ ; pX ; pY ; pZ i pX, respektivno, tako da su temeno disjunktne, a svaka
ivica ima najviše jednu krivinu (vidi sliku 12.4). Ovim se završava
dokaz, jer Fk ne može biti trougao. 2

Na slici 12.4 ilustrovani su različiti slučajevi. To dovodi do sljedećeg


teorema:

Teorema 12.1.7 Postoji linearni vremenski algoritam za crtanje trokonene 6-planarne


graf na heksagonalnoj mreži veličine najviše (6n 12) (6n 12) tako da svaki rub
ima najviše 4 krivine.

Dokaz: Svaki vrh vk od G dovodi do najviše deg(vk) vrhova u G0, dakle


nG0 6n12. Primjena HexaDraw-a tako da svako lice Fk ima barem jedno unutrašnje
tačka pk se može dobiti postavljanjem lth(be(F )) = P e2E(Fk) lth(e). Ovo implicira da
svaka ivica (osim (v1; vn)) se dodaje l-oj osnovnoj ivici. Početna dužina 1 od
osnovna ivica e se zanemaruje prilikom izračunavanja lth(e). Ovo daje da je k1 = lth((v1; v2))
u G0 je mG0 1 fG0 +2= nG0 1=6n 13 (koristeći formulu Euler). Ovo
dokazuje veličinu mreže od (6n 12) (6n 12). Postavljamo svaki vrh vk na mjesto pk.
Ovo daje najviše jedno savijanje koje dolazi od pk do svakog vrha Fk. Na tom vrhu
stvara se još jedna krivina. Isto se radi na drugoj krajnjoj tački ove ivice, dakle
ima najviše 4 krivine na svakoj ivici. 2

U [105] predstavljen je linearni vremenski algoritam za crtanje 4-planarnog grafa na


O(n2) pravolinijska mreža s najviše 4 krivine u svakoj ivici. Stoga teorema 12.1.7
proširuje ovaj rezultat na pozitivan način na tropovezane 6-planarne grafove. Biedl (lično
komunikacija) pokazao da postoji klasa tropovezanih 6-planarnih grafova,
zahtijeva O(n) savijanja u bilo kojem heksagonalnom crtežu.
Machine Translated by Google
170 Heksagonalni crteži

Možemo koristiti modifikaciju HexaDraw-a, tako da dobijemo pravu liniju


n n
crtanje trokomponentnog 3-planarnog grafa G na pravolinijskoj
2 mreži.
2 Za ovo
cilj uzmi Y-os okomitu na X-os, i pusti da Z-osa pravi ugao
stepena =4 sa X-osom. Vidi sliku 12.5(a). Sada radimo algoritam
HexaDraw. Koordinate slijede X- i Y-smjer. Konačno se krećemo
vrh v1 do tačke (k1 + 1; 1), koja vodi do pravolinijskih ivica (v1; v2); (v1; v3) i
(v1; vn), kao što je prikazano na slici 12.5(b). Veličina mreže u X i Y smjeru je i dalje ista
isto, čime se dokazuje sljedeća teorema.

Teorema 12.1.8 Postoji linearni vremenski algoritam za crtanje trokonene 3-planarne


n n
graf ravan sa pravim linijama na an 2 2 grid.

Najbolja granica za veličinu mreže za crtanje ravnih grafova pravolinijom


ivice na mreži je (n2) (n2) (vidi Poglavlje 10), stoga teorema 12.1.8 poboljšava
ovo rezultira faktorom 4 u slučaju tropovezanih 3-planarnih grafova. Takođe ovde, svaki
lice je nacrtano konveksno.

Y-smjer Z-smjer
vn vn

v v3 v2 v
2 3

v1

v
1

X-smjer
(a) (b)

Slika 12.5: Crtanje tropovezanog 3-planarnog grafa na koordinatama mreže.

12.2 Crtanje grafikona sa stepenom najviše 3

U ovom odeljku pokazujemo kako se algoritam HexaDraw može koristiti za crtanje


netrokonektovanih 3-planarnih grafova na heksagonalnoj mreži bez savijanja. Ovo proširenje se
dobija na sličan način kao u odjeljku 11.2. U odjeljku 11.2 smo pokazali
Machine Translated by Google
12.2 Crtanje grafikona sa stepenom najviše 3 171

kako koristiti algoritam za ortogonalne crteže tropovezanih 3-planarnih grafova


za crtanje općih 3-planarnih grafova ortogonalno. Ne možemo dodati ivice G da
bismo dobili trokonektivnost, jer to može dati vrhove v sa deg(v) > 3. Pretpostavimo
da je G bikonektovano, inače se dvopovezane komponente G mogu nacrtati
zasebno. (Međusobno su povezani mostovima, pošto (G) 3).
Neka je G bipovezan 3-planarni graf, ali ne trokonezan. Neka je TSP QR SPQR-
stablo od G. Neka je za svaki čvor bi u TSP QR, si; ti biti polovi bi. Root TSP QR na
proizvoljnom S-čvoru. Pošto svaki vrh ima stepen 2 ili 3, sledi da jedine veze koje
se mogu pojaviti su trostruke veze. Mi spajamo dvije komponente, potomke P-
čvora, u jednu komponentu, koja je označena S'-čvorom (vidi također Odjeljak
11.2.2). Na ovaj način se iz TSP QR uklanjaju svi P-čvorovi. Također
uklanjamo
planarni svi Q-čvorovi iz TSP Zaza
QR. graf; svaki
svakiR-čvor
S-čvorbi,iliskelet(bi)
S'-čvor bi,jeskelet(bi)
tropovezani
je 3-
ciklus. Pošto je deg(v) 3 za svaki vrh, djeca S'- i R-čvora su S-čvorovi, a svi susjedi S-
čvora su R- ili S'-čvorovi.

Ideja za crtanje G je sljedeća: Počinjemo sa crtanjem ovih tropovezanih


komponenti Bi, za koje je bi list u TSP QR, sa Bi način:
= skelet(bi). To se radi na sljedeći

bi je R-čvor Draw Bi koristeći algoritam HexaDraw, sa si = v1 i


ti = vn.

bi je S-čvor Nacrtajte sve nevirtuelne ivice ciklusa Bi kao horizontalnu liniju između
si i ti, sa virtuelnom ivicom (si; ti), koja zahteva dva savijanja, ispod nje.

bi je S'-čvor Nacrtajte ciklus Bi kao paralelepiped na X- i Y-osi tako da su si i ti


ugaone tačke. (Ako je jBij = 3, onda se crta kao trokut.)
Zatim se crtaju tropovezane komponente Bj, za koje su već nacrtane sve
tropovezane komponente Bi, bi dijete bj u TSP QR. Mi zamjenjujemo virtualni rub
(si; ti) u Bj crtežom Bi. Ovo se radi \rastezanjem" crteža Bj tako da razlika u
koordinatama si i ti odgovara razlici u koordinatama na crtežu Bi. Ako je bi R- ili S-
čvor, tada su sve ivice, osim ruba između polova, su ravne linije. Ako je bi S'-čvor,
onda su svi rubovi ravne linije. U svim slučajevima, polovi si i ti su ugaone tačke
pravokutnika na X- i Y-osi Koristeći ovu strategiju, prilično je lako nacrtati
tropovezane komponente Bj , kada bj nije list. Neka je bi dijete bj . Neka je x(bi) =
x(ti)x(si) i y(bi) = y(ti)
svakiy(si)
virtuelni
na crtežu
rub (si;
Bi. bj
ti) je
mijenja
R-čvortako
Apply
daHexaDraw(Bj),
je x(ti)x(si) = x(bi)
u kojem
i y(ti)y(si)
se
= y(bi) na crtežu Bj.

bj je S-čvor Rubovi Bj (osim ivice (sj ; tj )) su u početku nacrtani na horizontalnoj


liniji, stoga je lako promijeniti je tako da za svaku virtualnu ivicu si ; ti, x(ti) =
x(si) + x(bi) i y(ti) = y(si) + y(bi).
Machine Translated by Google
172 Heksagonalni crteži

ti

ti

R-čvor
s
i

s
i

s
i
s
i ti

S-čvor
ti

S'-čvor s
i ti
s
i ti

Slika 12.6: Crtanje tropovezanih komponenti 3-planarnog grafa.

bj je S'-čvor Nacrtajte Bj kao pravougaonik, ali promijenite virtualne ivice (si; ti), koje su sve pravolinijske
ivice, tako da je x(ti) x(si) = x(bi) i y( ti) y(si) = y(bi) na crtežu Bj.

Na slici 12.6 dati su različiti slučajevi za crtež. Primjenjujemo ovu strategiju crtanja za svaki čvor bj
u SPQR stablu, sve dok bj = root(TSP QR). U ovom slučaju pretpostavili smo da je bj S-čvor. Odgovarajući
ciklus Bj crtamo pravim linijama na heksagonalnoj mreži. Tada znamo koordinate svih vrhova sa bj =
parent(bi), na crtežu Bj . Postavljamo sve tropovezane komponente Bi od Bj. Nastavljamo ovo dok se
sljedeća teorema: , ne dobije potpuni crtež G. Ovim se završava

Teorema 12.2.1 Postoji algoritam linearnog vremena za crtanje netrokonektovanog 3-planarnog grafa
na heksagonalnoj mreži sa pravolinijskim ivicama tako da je minimalni ugao
3
.
Machine Translated by Google

12.3 Crteži sa ravnim linijama 173

12.3 Crteži sa ravnim linijama

U ovom dijelu dolazimo do glavne teoreme ovog poglavlja, koja je pozitivna


odgovor na sljedeće pitanje, koje su postavili Formann et al. [32]:

Da li svaki planarni graf sa stepenom 3 ima planarno ugrađivanje sa


pravolinijske ivice tako da je najmanji ugao barem konstantan,
nezavisno od broja vrhova?

Ako 3-planarni graf G nije tropovezan, onda prema teoremi 12.2.1 možemo nacrtati
G sa ravnim ivicama tako da je najmanji ugao . Ovo je takođe najbolje 3
moguće prema sljedećoj lemi:

Lema 12.3.1 Postoje 3-planarni grafovi sa n vrhova, za koje u bilo kom rasporedu
3 . Ako je n = 6, onda
minimalni ugao je najviše 4 , ako je n = 4 tada 6
.

Dokaz: Ako G sadrži trokut, najbolji način da ga nacrtate je jednake veličine


uglovi od . Ako
3 je G tropovezani planarni graf sa 6 vrhova, tada je najveći
lice ima četiri vrha. Dakle, u bilo kom crtežu G spoljašnje lice Fout ima najviše
četiri vrha. Svaki vrh Fout ima dva unutrašnja upadna ugla. Zbroj od
uglovi u 4-ugaoniku su 2 . Dakle, postoji ugao sa veličinom. Ako je n = 4, onda =
28 4
najveće lice ima tri vrha, a dokaz slijedi na sličan način. 2

U ovom dijelu dokazujemo da se svaki tropovezani 3-planarni graf može nacrtati


sa pravolinijskim rubovima tako da je minimalni ugao barem ako je n 6. Ako je n4 ,= 6
tada se crtež sa minimalnim uglom lako konstruiše,
4 pa pretpostavimo da je n 8.
Neka je dat lmc poredak G. neka v i v budu druga dva susjeda
od v2, nejednako sa v1. Neka je Fx lice koje sadrži (v2; v) i (v2; v). (TO JE
lako izračunati lmc-poredak tako da je x = 4.) Neka je k2 = lth(be(Fx)) i neka
n
1
k1 = k2.2 Pretpostavljamo k2 k1, u protivnom jednostavno stavljamo k2 = k1 (samo ovo
donekle uvećava crtež).
Algoritam HexaDraw mijenjamo na sljedeći način: crtamo rub (v1; v2) horizontalno
sa dužinom k1. Crtamo lice Fx kao trokut veličine k2, tj. crtamo vand v k2 jedinice iz v2 u Z-smjeru,
odnosno Y-smjeru. Crtamo v3 k2 jedinice iz v1 in
Y -smjer. Preostali vrhovi F3 i Fx postavljeni su na horizontalnu liniju
između vand v3 u odnosu na dužinu ivica osnove (vidi sliku 12.7).
Sada primjenjujemo HexaDraw da nacrtamo preostale vrhove. Ovo daje heksagonal
crtanje sa savijanjima samo u (v1; vn). Ako je F3 trokut, tada je v = v3 i k1 = 0.
Neka je P (v) = (0; 0), onda mijenjamo crtež na sljedeći način: postavljamo P (v1) =
(k1 + k2; k1 k2) i P (v2) = (2k1 + 2k2; 0), kao što je prikazano na slici 12.7(b). Kao što smo
ako koristimo donju heksagonalnu mrežu, slijedi da svi uglovi imaju veličinu najmanje =6,
i samo uglovi \v3vnv1; \vnv1v3; \v3v1v2 i \v v2v mogu imati veličinu < =3 (vidi
označeni uglovi na slici 12.7(b)). Ako je n = 4, tada 6 uglova ima veličinu =6: Ovo
završava sljedeći rezultat:
Machine Translated by Google
174 Heksagonalni crteži

20 20
19 19

18 18

16 17 16 17

15 15

13 13
14 14
12 12
11 11
1

7 89 10 6 5 43 7 89 10 6 5 4 3

2
1

Slika 12.7: Promjena heksagonalnog crteža tako da svi uglovi 6


.

Lema 12.3.2 Postoji pravolinijski crtež tropovezanog 3-planarnog grafa


sa n 6 vrhova u kojima svaki ugao ima veličinu < =3. =6, a ima najviše 4 ugla

Sada malo mijenjamo algoritam crtanja tako da minimalni ugao bude


4 , ako je n 8. Ovdje koristimo model mreže sa slike 12.5. Pretpostavimo da je
vanjska strana ima 5 vrhova, a taj Fx ima 4 vrha (takav je par susjednih
00

F faces uvijek postoji, ako je n 8).


Neka su v i v ostali susjedi od v, nejednaki sa v2. Neka je (v; v ) 2 Fx.
Neka je Fy drugo lice koje sadrži (v; v). Po deniciji, (v; v) = be(Fy). Neka
n
k3 = lth(be(Fy)); k2 = lth(be(Fx)) k3, i k1 = 1 k2 k3. Uvećavamo 2

vrijednost k3 (i eventualno k1 i k2), tako da je k3 = 2k1 + k2. Sada postavljamo


ivica (v ; v2) horizontalna. Postavljamo lica Fx; Fy i F3 takvi da su svi vrhovi
od ovih lica, osim v2 i v, imaju istu y-vrijednost,
, a svi uglovi imaju veličinu
4 . Ovdje postavljamo P (v)=(k3; k3) i P (v2)=(k2 + 2k3; k3), i postavljamo
P (v ) = (0; 0); P (v )=(k3; 0); P (v )=(k2 + k3; 0); P (v3)=(k1 + k2 + k3; 0) i
P (v1) = (2k1+2k2+2k3 ; 0), kao što je prikazano na slici 12.8. Ostali vrhovi Fy ; Fx and
F3 se postavljaju na horizontalnu liniju između v i v3 u odnosu na dužinu
osnovne ivice. Algoritam HexaDraw se koristi za crtanje preostalih vrhova.
Ovo daje P (vn)=(k1 + k2 + k3; k1 + k2 + k3). Kako je k3 = 2k1 + k2 slijedi da je
sve ivice su horizontalne, vertikalne ili imaju nagib +1 ili 1. Ovo daje crtež
sa minimalnim uglom kao što 4je, prikazano na slici 12.8, i završava dokaz
sljedeća teorema:
Machine Translated by Google

12.4 Heuristika za smanjenje površine 175

20
1819
16 17
13 15
vn
12 14

k2
+3k+k1

v F'
3 11 6 4 1
v v
δ vv γ α 1 8 9 10 5 3

k
Fy
F
3 Fx 3
v v
β 2
7
2
k
1 k 3 1k
k3 k k3
2

Slika 12.8: Crtanje tropovezanog 3-planarnog grafa G sa minimalnim uglom 4


.

Teorema 12.3.3 Svaki tropovezani 3-planarni graf sa n 6 vrhova može se nacrtati sa pravolinijskim
ivicama na mreži veličine najviše 2n 2n mreže tako da je minimalni ugao i da su sve l unutrašnje strane
nacrtane konveksno. 4

Na slici 12.8 dat je primjer grafikona sa slike 12.3.

12.4 Heuristika za smanjenje površine

U ovom poglavlju razmatrali smo crteže planarnih grafova sa stepenom najviše 3 na heksagonalnoj
mreži. Opisan je linearni vremenski algoritam HexaDraw za ovaj problem, koji vodi do mreže linearne
veličine u slučaju tropovezanih 3-planarnih grafova. Međutim, u HexaDraw-u uvijek idemo od lijevog
vrha u Y smjeru i od desnog vrha u Z-smjeru na istu visinu, čak i kada nema razloga da idemo prema
gore. Na primjer, pretpostavimo da je y(cl) > y(cr) i (cl; cl+1) u Z-smjeru prema dolje, tada možemo
postaviti nove vrhove z1;:::;z` lica Fk na horizontalnu liniju na visini y(cl) umjesto y(cl) + 1. Da bismo to
dobili, mijenjamo dvije linije sa (*) kako slijedi u HexaDraw-u:

..
.
ako (y(cl) > y(cr) i y(cl) > y(cl+1)) ili (y(cr) > y(cl) i y(cr) > y(cr1)) onda y(z1 ) := y(z2) := ::: := y(z`) :=
maxfy(cl); y(cr)g drugo

..
.

U slučaju da dodamo jedan vrh z1 i vrijedi (y(cl) > y(cr) i y(cl) > y(cl+1)), tada postavljamo x(z1) := x(cr) +
y(cr ) y(cl). Da bismo dokazali da algoritam za crtanje HexaDraw radi ispravno nakon ove modifikacije,
dokazujemo sljedeću varijantu leme 12.1.2.
Machine Translated by Google
176 Heksagonalni crteži

(Primijetite da lema 12.1.1 i dalje vrijedi i da još uvijek vrijedi: e je osnovna ivica =) e je
nacrtano horizontalno.)

Lema 12.4.1 Sve unutrašnje ivice lica Fk lijevo od be(Fk) su horizontalne ili
prema gore u Z-smjeru. Sve unutrašnje ivice Fk desno od be(Fk) su horizontalne ili
prema gore u Y smjeru.

Dokaz: Pretpostavimo da postoje ivice (c ; c +1) i (c; c+1) u Y - i Z-smjeru


na jednoj strani horizontalne ivice, sa + 1 . Ako je +1 = onda denicijom
chas stepen 2 u Gk+1 i, prema tome, mora biti levi ili desni vrh. Ako je +2 = onda postoji samo jedna
horizontalna ivica između ivica Y - i Z-smjera,
stoga c +1 ili cm mora imati stepen 2 u Gk+1. Ako je > + 2 onda ih ima više
horizontalne uzastopne ivice. Ako ove ivice pripadaju jednom licu Gk+1 onda je
unutrašnji vrhovi c +2;:::;c1 imaju stepen 2 u Gk+1 , inače opet c +1 ili chas
stepen 2 u Gk+1.
Stoga postoji horizontalna ivica (c ; c +1) takva da je lijevo od c sve unutrašnje
ivice su horizontalne ili prema gore u Z-smjeru. Desno od c +1 sve unutrašnje ivice
su horizontalne ili prema gore u Y smjeru. Slično lemi 12.1.3 možemo dokazati
da možemo izabrati tako da (c ; c +1) bude osnovna ivica. 2

Ova lema implicira da u nekim slučajevima možemo značajno smanjiti ukupnu visinu. Još jedna
optimizacija je sljedeća. Možemo koristiti crtež na slici
12.7(a) za crtež heksagonalne mreže. Ako je k2 mali, to smanjuje visinu
crteža. Neka je Fx lice koje sadrži v2 i dva susjeda v2, a nisu jednaka
do v1. Općenito nije lako pronaći lmc poredak tako da je k2 mali, ali jeste
postaje rješiv kada je Fx trokut. (Kada postoji trougao Ft u G, onda je
nije teško odrediti broj G tako da je Ft = Fx.) Neka su v i v druga dva
susjedi v2, nejednaki sa v1. Tada (v ; v) 2 Fx. Neka također (v ; v) 2 Fy ; Fy 6= Fx.
Tada je be(Fy) 6= (v ; v), jer Fy sadrži barem jedan rub e sa e 2 F3. Dakle
k2 = 1, i dobijamo crtež G unutar trougla sa stranicama n 2
.

Posljednja optimizacija koju primjećujemo je kada je x(z`) x(z1) > P 1 i<p lth((zi; zi+1))
u trenutku dodavanja lica Fk. Ovo je slučaj kada je y(cr) > y(c +1) sa
(c ; c +1) osnovni rub Fk i cr desni vrh Fk. U HexaDraw-u ovo
vodi do crteža dužine((zp1; z`)) > lth((zp1; z`)). Sada možemo oduzeti
dužina((zp1; z`)) lth((zp1; z`)) od lth((c ; c +1)). Ažuriramo lth((a; b)) za sve
osnovne ivice (a; b) obilaskom lica Ff1;:::;F3, ovim redom nakon HexaDraw-a.
Koristeći nove l-ove osnovnih ivica ponovo primjenjujemo HexaDraw da nacrtamo G u
linearno vrijeme na heksagonalnoj mreži manje veličine.
Na slici 12.9, ove optimizacije su primijenjene na primjer dat u
n
Slika 12.3. Koristeći ova zapažanja, možemo koristiti manju mrežu od n 2 2
nacrtati
tropovezani planarni grafovi. Da li postoje tropovezani 3-planarni grafovi za
n n
za koji svaki pravolinijski crtež zahtijeva mrežu ostaje otvoren
2 2 problem.

Na slici 12.10(a) dat je primjer planarnog grafa stepena 3, koji zahtijeva


Machine Translated by Google
12.4 Heuristika za smanjenje površine 177

1
1
2 20
20 3
3
6 19 17 4
7 5 4 18
8 16
10 12 14 5
15 17 13 15
14 16
9
11 8
11 6
9 10
12 18
13 19 7 2

Slika 12.9: Optimizacija crtanja grafa na slici 12.3.

2 + 1) (n
(n + 1) mreža za pravolinijsko ugrađivanje (n = 8k, za neki cijeli broj k > 0),
4
ali nije trostruko povezan. Na slici 12.10(b) planarni graf najvišeg stepena
2 2
4 je prikazan, za koji svaki pravolinijski crtež zahtijeva (n 1) 3 (n 1) 3
n1
grid, ako se koristi ovo ugrađivanje, i n+1 2 3 inače (n = 6k + 1, za neke
cijeli broj k > 0). Ovo daje neke naznake čvrstoće našeg algoritma. The
n1 n1
tropovezani 3-planarni graf na slici 12.10(c) zahtijeva ( + 2) ( + 2) mrežu,
3 3
n1 n1
ako se koristi ovo ugrađivanje, a ( + 43) mreža
+ 4) ( u suprotnom
6 (n = 12k + 1, za
neki cijeli broj k > 0).

(a) (b) (c)

Slika 12.10: Primjeri planarnih grafova za donje granice veličine mreže.


Machine Translated by Google
178 Heksagonalni crteži
Machine Translated by Google

Poglavlje 13

Rectangular Duals

13.1 Uvod

U ovom poglavlju razmatramo problem predstavljanja grafa G pravokutnim


dualom. Ovo se primenjuje u projektovanju podova elektronskih čipova i u
arhitektonskom projektovanju. Pravougaoni dual se definiše na sledeći način.
Pravougaoni sistem podjele pravougaonika R je podjela R na skup = fR1;
R2;:::;Rng pravougaonika koji se ne preklapaju tako da se četiri pravougaonika
ne sastaju u istoj tački. Pravougaoni dual planarnog grafa G je pravougaoni
sistem podjele i jedan prema jedan korespondencija R : V ! takva da su dva
vrha u i v susjedna u G ako i samo ako njihovi odgovarajući pravokutnici R(u)
i R(v) dijele zajedničku granicu. U primjeni ove reprezentacije, vrhovi G
predstavljaju module kola, a ivice predstavljaju susjedstva modula.
Pravougaoni dual omogućava postavljanje modula kola koji čuva potrebna susjedstva.
Slika 13.1 prikazuje primjer planarnog grafa i njegovog pravokutnog duala.
Ovaj problem su prvi proučavali Bhasker & Sahni [6, 7] i Ko zminski i Kinnen
[73]. Bhasker & Sahni dali su linearni vremenski algoritam za konstruiranje
pravokutnih duala [7]. Algoritam je prilično komplikovan i zahtijeva mnogo
intrigantnih postupaka. Koordinate pravougaonog duala koji je konstruisan njime
su realni brojevi i nemaju smislenu vezu sa strukturom grafa. Ovaj algoritam se
sastoji od dva glavna koraka: (1) konstruisanje takozvanog regularnog označavanja
ivica (REL) od G; i (2) konstruisanje pravougaonog duala koristeći ovo označavanje.
Pojednostavljenje koraka (2) je dato u [47]. Koordinate pravokutnog duala
konstruiranog algoritmom u [47] su cijeli brojevi i imaju jasno kombinatorno
značenje. Međutim, korak (1) se i dalje oslanja na komplikovani algoritam u [7].
Paralelnu implementaciju ovog algoritma, koji radi u O(log n log n) vremenu sa
O(n) procesorima, daje He [46].
U ovom radu predstavljamo linearni vremenski algoritam za korak (1): pronalaženje
regularnog označavanja ivica. (U [71] je predstavljen još jedan algoritam.) Ovaj
algoritam proširuje kanonski poredak tropovezanih planarnih grafova, dat u Odjeljku 2.5 do 4-

179
Machine Translated by Google
180 Rectangular Duals

povezani trouglasti planarni grafovi. Ispada da je i kanonski poredak


daje smanjenje za faktor 2 u širini prikaza vidljivosti od 4-
povezani planarni grafovi. Štoviše, korištenjem ovog poretka pokazuje se vidljivost
reprezentacija bilo kojeg planarnog grafa može se konstruirati na mreži najviše veličine
3
(b 2 n 1) (n 1) mreža.
Ovo poglavlje je organizovano na sljedeći način: u odjeljku 13.2 predstavljamo deniciju
regularno označavanje ivica (REL) i pregledamo algoritam u [47] koji izračunava a
pravougaoni dual iz REL. U odjeljku 13.3 predstavljamo baziran na REL algoritmu
o kanonskom poretku. Odjeljak 13.4 govori o algoritmu za prikaz vidljivosti 4-povezanih planarnih
grafova. Odjeljak 13.5 brie y opisuje vidljivost
algoritam predstavljanja za opšte planarne grafove.

13.2 Pravokutni dvostruki algoritam

Razmotrimo ravan graf H. Neka je u0; u1; u2; u3 biti četiri vrha na vanjskoj strani
u smjeru suprotnom od kazaljke na satu. Neka je Pi (i = 0; 1; 2; 3) putanja na vanjskoj strani
koji se sastoji od vrhova između ui i ui+1 (dodatak je mod 4). Tražimo pravougaoni dual RH od H
tako da je u0; u1; u2; u3 odgovaraju četiri ugla pravougaonika
RH i vrhovi na P0 (P1; P2; P3, respektivno) odgovaraju pravokutnicima
nalazi se na sjevernoj (zapadnoj, južnoj, istočnoj, respektivno) granici RH. Da bi
da pojednostavimo problem, modificiramo H na sljedeći način: Dodajte četiri nova ; vW ; vS ; vE.
vS ; ; vE, respektivno) na svaki vrh na P0 (P1; P2; P3, respektivno)
vrha vN Povežite vN (vW
i dodajte četiri nove ivice (vS; vW); (vW; vN); (vN ; vE); (vE; vS). Neka je G rezultat
graf. Lako je vidjeti da H ima pravougaoni dual RH ako i samo ako G ima a
pravougaoni dvojni RG sa tačno četiri pravougaonika na granici RG (vidi sliku
13.1(a) i (b)). Neka je četverougao ciklus dužine 4. Sljedeća teorema
dokazano u [6, 73]:

Teorema 13.2.1 Planarni graf G ima pravougaoni dual R sa četiri pravougaonika


na granici R ako i samo ako (1) svako unutrašnje lice je trokut i
vanjsko lice je četverougao; (2) G nema trouglove koji razdvajaju.

Graf koji zadovoljava uslove iz teoreme 13.2.1 naziva se pravi trougao


planarni (PTP) graf. Od sada ćemo raspravljati samo o takvim grafovima. Zapiši to
uslov (2) teoreme 13.2.1 implicira da je G 4-povezan. Pošto G nema br
razdvajajući trouglove, stepen bilo kog unutrašnjeg vrha v od G je najmanje 4. (Ako
deg(v) = 3, tada bi trokut indukovan na susjedima v bio razdvojni
trougao.)
Pravokutni dualni algoritam u [47] uvelike ovisi o konceptu regularnog
označavanje rubova (REL) definirano na sljedeći način [7, 47]:

Denicija 13.2.1 Pravilno označavanje rubova PTP grafa G je particija


unutrašnje ivice G u dva podskupa T1; T2 usmjerenih ivica tako da:
Machine Translated by Google
13.2 Pravokutni dvostruki algoritam 181

vn

vn

a g
j a g
f
d j f
b
vw v vw d b v
e
e

i e
e c h i h
c

v
s
v
s

(a) Početni graf G. (b) Pravougaoni dual od G.

6
vn
n*

vn 5
a g
j
e*
a g f 4
j 5
w* f d
2 b
d vw 3 v
1 b 6 2 e
vw 4 v
e
23
0 i
i 5 e c h
e c h 7
1

v
v
s
s s*
0

(c) Grafikon G1. (d) Grafikon G2.

Slika 13.1: PTP graf, njegov pravougaoni dual i st-grafovi G1 i G2

1. Za svaki unutrašnji vrh v, ivice incidentne na v pojavljuju se u smjeru suprotnom od kazaljke


na satu oko v kako slijedi: skup ivica u T1 ostavlja v; skup ivica u T2 koji ulazi u v; skup ivica u
T1 koji ulazi u v; skup ivica u T2 ostavljajući v.

2. Neka vN ; vW ; vS ; vE su četiri vanjska vrha u smjeru suprotnom od kazaljke na satu. Sve


unutrašnje ivice incidentne na vN su u T1 i ulaze u vN. Sve unutrašnje ivice koje se javljaju na
vW nalaze se u T2 i napuštaju vW. Sve unutrašnje ivice incidentne na vS su u T1 i napuštaju
vS. Sve unutrašnje ivice koje ulaze u vE nalaze se u T2 i ulaze
vE.

Pravilno označavanje ivica je blisko povezano sa planarnim st-grafovima, opisanim u Odjeljku


9.3.
Neka je G PTP graf i fT1; T2g je REL od G. Od fT1; T2g konstruiramo dva planarna st-grafa kako
slijedi. Neka je G1 graf koji se sastoji od ivica T1
Machine Translated by Google
182 Rectangular Duals

visoko (F)

gore (v)

lijevo(e) e desno(e) lijevo(v) desno (v) v


v

F ispod (v)

G G
1 2

nisko (F)

Slika 13.2: Svojstva planarnih st-grafova.

, vW
plus četiri vanjske ivice (usmjerene kao vS ! vW vS ! vE, vE ! vN! vN
), ,
i novi rub (vS ; vN). G1 je planarni st-graf sa izvorom vS i sink vN. Za
svaki vrh v, lice G1 koje odvaja ulazne ivice v od izlaznih
ivice v u smjeru kazaljke na satu označene su lijevo(v). Drugo lice G1 to
razdvaja dolazne i odlazne ivice v je označeno sa right(v). (Vidi
Slika 13.2.)
Neka je G2 graf koji se sastoji od ivica T2 plus četiri vanjske ivice
(usmjeren kao vW ! vS vN , vS ! vE,i nova
! vE), vW ! vN je (vW, ; vE). G2
ivica
planarni st-graf sa izvorom vW i ponorom vE. Za svaki vrh v, lice G2
koji odvaja ulazne ivice v od izlaznih ivica v u smeru kazaljke na satu
smjer je označen gore (v). Drugo lice G2 koje razdvaja dolazno
a izlazne ivice od v označene su sa ispod (v). (Pogledajte sliku 13.2.)
Dualni graf G 1 od G1 se definiše kako slijedi. Svako lice Fk od G1 je čvor

vFk u G 1, i postoji ivica (vFi; vFk) u G 1 ako i samo ako Fi i Fk dijele

zajednički rub u G1. Usmjeravamo rubove G 1 kako slijedi: ako su Fl i Fr

lijevo i desno lice ivice (v; w) od G1, usmjerite dvostruku ivicu od Fl do Fr


ako je (v; w) 6= (vS; vN) i od Fr do Fl ako je (v; w)=(vS; vN). G 1 je planarni st-graf

čiji su izvor i ponor desno lice (označeno sa w) i lijevo lice (označeno


po e ) od (vS ; vN ), respektivno. Za svaki čvor F od G 1, neka d1(F ) označava dužinu

najdužeg puta od w do F. Neka je D1 = d1(e). Za svaki unutrašnji vrh v od


G, dene: xleft(v) = d1(left(v)), i xright(v) = d1(right(v)). Za četiri eksterijera
vrhovi, dene: xleft(vW) = 0; xright(vW) = 1; xleft(vE) = D1 1; xright(vE) = D1;
xleft(vS) = xleft(vN) = 1; xdesno(vS) = xdesno(vN) = D1 1.
Dualni graf G 2 od G2 se denimira slično. Za svaki čvor F od G 2, neka d2(F )

označava dužinu najduže staze od izvornog čvora G 2 do F. Neka je D2

dužina najduže staze od izvornog čvora do ponornog čvora G 2. Za svaki in

teriorni vrh v od G, dene: ylow(v) = d2(ispod(v)), i yhigh(v) = d2(above(v)). Za


Machine Translated by Google
13.3 Izračunavanje REL pomoću kanonskog reda 183

četiri vanjska vrha, dene: ylow(vW ) = ylow(vE) = 0; yhigh(vW) = yhigh(vE) = D2; ylow(vS)
= 0; yhigh(vS) = 1; ylow(vN ) = D2 1; yhigh(vN ) = D2.
Pravougaoni dualni algoritam se oslanja na sljedeću teoremu iz He.

Teorema 13.2.2 ([47]) Neka je G PTP graf i fT1; T2g je REL od G. Za svaki vrh v od G,
dodijelite v pravougaonik R(v) omeđen sa četiri prave x = xleft(v), x = xright(v), y =
ylow(v), y = yhigh(v). Tada skup fR(v)jv 2 V g formira pravougaoni dual od G.

Slika 13.1 prikazuje primjer teoreme. Slika 13.1(c) prikazuje st-graf G1. Mali kvadrati
na slici predstavljaju čvorove G, a cijeli brojevi u kvadratima predstavljaju
1 vrijednosti.
njihoveSlika
d1
13.1(d) prikazuje graf G2. Slika 13.1(b) prikazuje pravougaoni dual konstruisan kao u
teoremi 13.2.2. Algoritam za izračunavanje pravokutnog duala je sljedeći [47]:

Rectangular Dual (G);


konstruisati regularno označavanje ivica fT1; T2g
od G; konstrukcija od fT1; T2g planarni st-grafovi G1 i G2;
1 od
konstruisati dualni graf G iz G2; G1 i G d1(F 2) za
izračunati u Gčvorove
i d2(F)
za čvorove u G 2; dodijeliti svakom
1 R(v)
vrhukao
v od
u teoremi
G pravougaonik
13.2.2;

End RectangularDual

Ako imamo REL PTP grafa, onda se pravougaoni dual može lako konstruisati u
linearnom vremenu ovim algoritmom. U sljedećem odjeljku pokazujemo kako izračunati
REL PTP grafa.

13.3 Računanje REL pomoću kanonskog reda

ing

U ovom dijelu razmatramo 4-povezane planarne trouglaste grafove. Imajte na umu da


dodavanje ivice koja povezuje dva nesusedna vanjska vrha PTP-grafa G vodi do 4-
povezanog planarnog trouglastog grafa. Dakle, pretpostavljamo da je G 4-povezan
planarni trouglasti graf. Neka su vanjski vrhovi G u; v; w.

Teorema 13.3.1 Postoji označavanje vrhova v1 = u; v2 = v; v3;:::, vn = w od G ispunjava


sljedeće zahtjeve za svaka 4 kn:

1. Podgraf Gk1 od G induciran sa v1; v2;:::;vk1 je dvopovezan i granica njegove


vanjske strane je ciklus Ck1 koji sadrži rub (u; v).

2. vk se nalazi na vanjskoj strani Gk1, a njegovi susjedi u Gk1 čine (najmanje 2-


elementni) podinterval putanje Ck1 f(u; v)g. Ako je k n2, vk ima najmanje 2 susjeda
u G Gk1.
Machine Translated by Google
184 Rectangular Duals

Dokaz: vrhovi vn; vn1;:::;v3 su definirani obrnutom indukcijom. Broj


tri vanjska vrha u; v; w od v1; v2 i vn. Neka je Gn1 podgraf od G
nakon brisanja vn. Po 4-konektivnosti G, Gn1 je trokonektan, a njegovo vanjsko lice
Cn1 je ciklus i, prema tome, prihvata ograničenja teoreme. Neka je vn1 6= v1
biti vrh Cn1 susedan i sa v2 i vn u G. Po 4-konektivnosti, G fvn; vn1g je dvopovezan i njegovo
vanjsko lice Cn1 je ciklus i, prema tome, priznaje
ograničenja.

Neka je k<n 1 xed i pretpostavimo da je vi određen za svaki i>k


takav da podgraf Gi induciran sa V fvi+1;:::;vng zadovoljava ograničenja
teoreme. Neka Ck označava granicu vanjskog lica Gk. Pretpostavimo
prvo da Ck nema unutrašnje akorde. Pretpostavimo v1; ck1 ;:::;ckp ;v2 su vrhovi
Ck ovim redoslijedom između v1 i v2. Zatim slijedi 4-konektivnost G da
p 2. Ako svi vrhovi ck1 ;:::;ckp imaju samo jednu ivicu u odnosu na vrhove u G Gk onda ,
pošto je G ravan trouglasti graf, oni su susjedni istom vrhu
vj za neki k<j<n. U ovom slučaju imamo i (v1; vj ); (v2; vj) 2 G. Ali onda
f(v1; vj); (vj; v2); (v2; v1)g bi bio trougao za razdvajanje. Dakle, najmanje jedan vrh,
reci ck , ima najmanje 2 susjeda u G Gk. ck je sljedeći vrh vk u našem poretku.
Zatim pretpostavimo da Ck ima unutrašnje akorde. Neka je (ca; cb) (b>a + 1) takva tetiva
taj ba je minimalan. Neka je također (cd; ce) akord sa e>db takav da je ed
minimalno. (Ako ne postoji takav akord, neka (ca; cb)=(cd; ce) i numerirajte vrhove
u smjeru kazaljke na satu oko Ck tako da je a = 1 < b = d i e = 1.) Pretpostavimo, bez
gubitak općenitosti, da v1; v2 62 fca+1;:::;cb1g. Ako svi vrhovi ca+1;:::;cb1 imaju
samo jedna ivica do vrhova u G Gk onda pošto , je G trouglasti graf, oni
su susjedni istom vrhu vj, f(va; vj); (vj; a imamo i (va; vj); (vb; vj ) 2 G. Ali onda
vb); (vb; va)g bi bio trougao za razdvajanje. Dakle, postoji barem jedan
vrh c ;a< < b, koji ima najmanje dva susjeda u GGk i nema incident
akordi. c je sljedeći vrh vk u našem poretku. 2

Teorema 13.3.2 Kanonski poredak se može izračunati u linearnom vremenu.

Dokaz: Dodamo dvije oznake na svaki vrh v: visited(v), označavajući broj


posjećeni i izvučeni susjedi v, i akordi(v), koji označavaju broj incidenta
akordi v. Algoritam prati strukturu dokaza teoreme 13.3.1.
Počinjemo s vn i vn1 i inicijaliziramo posjećene oznake i njihove akorde
susjedi, nakon brisanja vrhova vn i vn1. Računamo poredak u
obrnuti redoslijed i ažurirati oznake nakon odabira vrha vk na sljedeći način: posjećujemo
svaki susjed v od vk. Neka su ci;:::;cj (j>i) susedi (ovim redom) od vk
u Gk1. Povećavamo visited(cl) za jedan, za i j. Ako je j =l i + 1, onda je bilo
,
akord (ci; cj ) u Gk1 stoga smanjujemo akorde (ci) i akorde (cj) za jedan, jer
(ci; cj ) postaje dio Ck1. Ako je j>i + 1, onda za svaki cl (i<l<j), izračunavamo
akordi(cl). Ako postoji akord (cl; v), tada također povećavamo akorde (v) za jedan. Ovo je
urađeno označavanjem vrhova koji su dio trenutnog vanjskog lica.
Machine Translated by Google
13.3 Izračunavanje REL pomoću kanonskog reda 185

Iz teoreme 13.3.1 slijedi da, ako je k 3, onda postoji vrh v sa posjećenim(v) 2 i tetivi(v) = 0, i to se
može izabrati kao sljedeći vrh vk u našem poretku.
Označavamo v kao posjećeno. Pošto postoji samo linearan broj ivica, kanonski poredak se dobija u
linearnom vremenu. 2

14

vk
akordi = 0
11 12
posjećeno = 2 5
6
10 13
1
7

3
4 8 9

v v
1 2
2

Slika 13.3: Računanje kanonskog reda grafa sa slike 13.1.

Da bismo izračunali REL PTP grafa G, prvo dodajemo ivicu koja povezuje dva nesusedna vanjska
vrha G. Ovo daje 4-povezani planarni trouglasti graf G0. Izračunavamo kanonsko numerisanje G0, a
zatim brišemo dodanu ivicu. Četiri vanjska vrha G sada su numerirana kao v1; v2; vn1; vn, respektivno.
Zatim pokazujemo da se REL od G može lako izvesti iz kanonskog uređenja.

Prvo, za svaki rub (vi; vj) od G, usmjeriti ga od vi do vj , ako je i<j. Definirajte osnovnu ivicu temena
vk kao ivicu (vl; vk) za koju je l<k minimalno. Tem vk ima dolazne ivice iz ci;:::;cj koje pripadaju Ck1
(spoljna strana Gk1), pretpostavljajući ovim redom s leva na desno. ci nazivamo levim vrhom vk, a cj
desnim vrhom vk. Neka su vk1 ;:::;vkl susedi vk sa većim brojem, ovim redom s leva na desno. (vk ; vk1 )
nazivamo lijevom i (vk; vkl ) desnom ivicom vk. Primijetite da slijedeći denicije iz Odjeljka 6, vk1 =
leftup(vk) i vkl = rightup(vk).

Lema 13.3.3 Osnovna ivica ne može biti lijeva ili desna ivica.

Dokaz: Pretpostavimo da je lema netačna. Pretpostavimo da je lijeva ivica (vk; vk1) od vk osnovna
ivica vk1. Dakle, vk je najniži sused od vk1. Pošto je G trouglasto, postoji ivica između lijevog vrha vk,
recimo vi sa i<k, i vk1 .
Ali ovo je u suprotnosti sa činjenicom da je (vk; vk1) osnovna ivica vk1. Argument je sličan za desnu
ivicu. 2

Lema 13.3.4 Ivica je ili lijeva ivica, desna ivica ili osnovna ivica.
Machine Translated by Google
186 Rectangular Duals

Dokaz: \isključivo ili" slijedi iz prethodne leme. Potrebno je samo dokazati da je svaki
rub lijeva ivica, desna ivica ili bazna ivica. Neka je vk (3 k n2) vrh sa ulaznim rubovima koji
dolaze iz ci; :::;cj , ovim redom s lijeva na desno. Neka je (vk; c ) osnovna
cl (i<l<j) imaju
ivica vk.
najmanje
Svi vrhovi
dva
susjeda sa većim brojem, jedan od njih je vk, drugi je susjedni (cl; vk), pa je ili (cl1; cl) ili (cl;
cl+1).Tako između ci i c slijedi da je cl+1 desni vrh cl ( 1 l< ).Između c i cj vrh cl je lijevi vrh
od cl+1 (l<j).Stoga su ivice (cl; vk) desni rubovi za il< i lijevi rubovi za <l j. Rub (c ; vk ) je
bazna ivica. Slično, možemo pokazati da lema vrijedi za dolazne ivice vn1 i vn.

Konstruišemo REL za G na sledeći način: sve leve ivice pripadaju T1, sve desne ivice
pripadaju T2. Osnovna ivica (c ; vk) od vk se dodaje na T1, ako je = j, na T2, ako je = i, a
inače proizvoljno na T1 ili T2. (Četiri vanjske ivice ne pripadaju ni T1 ni T2.)

Lema 13.3.5 fT1; T2g formira regularno označavanje ivica za G.

Dokaz: Neka su vk1 ;:::;vkd izlazni rubovi vrha vk (3 kn 2).


Iz teoreme 13.3.1 slijedi da je d 2. Tada je (vk; vk1 ) lijevi rub vk i nalazi se u T1. (vk; vkd ) je
desna ivica vk i nalazi se u T2. Rubovi (vk; vk2 );:::; (vk ; vkd1 ) su osnovne ivice vk2 ;:::;vkd1,
respektivno. Neka je vrh vk(1 d) najviši sused od vk. Tada svi vrhovi od vk1 do vkh imaju
monoton rastući broj, kao i vrhovi od vkd do vk. Inače je postojao vrh vkl takav da su vkl1 i
vkl+1 numerirani veći od vkl . Ali to implicira da je vk jedini susjed s nižim brojem od vkl ,
sa kanonskim uređenjem G. Stoga za svaki vkl (1 <l<d, l 6= ), ili kl1 < kl < kl+1 ili kl1 > kl >
kl+1. Dakle, konstrukcijom T1 i T2, rubovi (vk; vkl ) se dodaju na T1, štoako
je kontradikcija
je 1 l< i na T2, ako
je <l d. Rub (vk; vk) proizvoljno se dodaje T1 ili T2. Ovim je završen dokaz da se ivice
pojavljuju u suprotnom od kazaljke na satu oko vk na sljedeći način: skup ivica u T2 ulazi u
, vk.
vk; skup ivica u T1 koji ulaze u vk; skup ivica u T2 koji ostavlja vk; skup ivica u T1 ostavljajući

Neka su v11 ;:::;v1d susjedi v1 sa većim brojem s lijeva na desno. Tada je v11 = vn i v1d
= v2, a prema gore opisanom argumentu, (v1; v12 );:::, (v1; v1d1 ) pripadaju T2. Slično, sve
odlazeće ivice v2 pripadaju T1. Sve dolazne ivice vn1 pripadaju T2, a sve dolazne ivice vn
pripadaju T1. Ovim je dokaz završen.
2

Od izgradnje fT1; T2g iz kanonskog numeriranja može se lako izvesti u O(n) vremenu,
teorema 13.3.2 i lema 13.3.5 čine naš REL algoritam linearnog vremena. Vidi sliku 13.3 za
konstrukciju REL-a iz kanonskog reda.
Machine Translated by Google
13.4 Algoritam za predstavljanje vidljivosti 187

13.4 Algoritam za predstavljanje vidljivosti

Prikaz vidljivosti planarnog grafa G preslikava vrhove G na horizontalne segmente


i ivice G na vertikalne segmente. U odeljku 10.4 dali smo novi algoritam za
konstruisanje prikaza vidljivosti tropovezanog planarnog grafa, koristeći lmc-
poređanje. Zaista, primijetili smo da ako je out(vk) 2 za svaki vrh vk;k < n veličina
1, tada je
mreže najviše (n 1) (n 1). Pošto ovo važi za kanonski poredak za 4-povezane
trouglaste planarne grafove, to dovodi do željene veličine mreže za 4-povezane
planarne grafove. (Ako 4-povezani planarni graf nije trianguliran, tada možemo
primijeniti bilo koji algoritam triangulacije, kao što je opisano u poglavlju 6.) U
odjeljku 9.3.1 predstavili smo algoritam Visibility(G) iz [96, 104], koji konstruiše u
linearno vrijeme prikaz vidljivosti grafa G. Vidljivost (G) počinje konstruiranjem st-
numeracije. Ako je G 4-povezan planarni trouglasti graf, onda možemo koristiti
opisani kanonski poredak, jer je i ovaj poredak st-numeracija. Slika 13.4 prikazuje
primjer primjene Vidljivosti(G) 4-povezanog planarnog trouglastog grafa,
korištenjem kanonskog reda. Sada ćemo pokazati da i algoritam Visibilitiy(G) dovodi
do iste veličine mreže.

14

13
14
12

0 1 11

2 11 12 3
5 10
2 5
3 4
9
10 6
13
1 1 3 6 8
7 11
4 5 7
7
2
6 6
6
3
4 8 9
5
2 9 10
3 78
4

2 2

Slika 13.4: Kanonski poredak vodi do kompaktnog prikaza vidljivosti.

Teorema 13.4.1 Vidljivost(G) konstruiše prikaz vidljivosti G na mreži veličine najviše


(n 1) (n 1).

Dokaz: Ispravnost Vidljivosti(G) prikazana je u [96, 104]. Pokazujemo da je


veličina mreže najviše (n 1) (n 1). Ovo slijedi direktno za visinu, budući da je dužina
najduže staze od v1 do vn najviše n 1.
Neka je s izvorni čvor G, a t izvorni čvor G. Svaki vrh v od G odgovara licu Fv od
G . Ako je v 6= v1; v2; vn1; vn, tada v ima 2 dolazna
Machine Translated by Google
188 Rectangular Duals

i 2 izlazne ivice, stoga dvije usmjerene putanje od niske (Fv ) do visoke (Fv) oba imaju dužinu 2. Neka je G0
graf koji se dobije iz G uklanjanjem ponornog čvora t i njegovih upadnih rubova. (Na slici 13.4, t je čvor
predstavljen kvadratom označenim sa 11.) Ovo spaja lica Fv1 ; Fv2 i Fvn od G u jedno lice F 0. Imajte na umu
da za svako lice F 6= Fvn1 od G0 dva usmjerena puta F između low(F) i high(F) u G0 imaju dužinu 2. biti izvor
G0 i neka je t ponor G0 . Primijetite da s ,

0 0 0

Neka s =
0 0

s = nisko(F 0) i t = lijevo((v2; vn)) = visoko(F 0). (Na slici 13.4, t je čvor

predstavljeno kvadratom označenim sa 10.) Jasno je da postoje najmanje dvije ivice e sa Fvn1 = lijevo(e), a 0

jedina ivica e sa desnim(e) = Fvn1 ima krajnju tačku t . Neka je Plong bilo koja najduža putanja od s do tsudo
0 0
G tje
1 plus dužina Plonga. . Zatim dužina bilo koje najduže staze od

Tvrdimo da Plong ima najviše jedan uzastopni niz ivica zajednički sa bilo kojim licem F od G0. U suprotnosti
pretpostavimo da tvrdnja nije tačna. Pretpostavimo da Plong posjećuje neke čvorove F pretpostavimo da je
w1 posljednji, zatim l 1 čvorova u1;:::;ul 62 F ,paovim
opetredoslijedom,
neki čvorovi F,odneka
F koje
je wd
ne posjećuje
prvi. NekaPlong
su w2;:::;wd1
(vidi sliku
čvorovi,
13.5.)
,
,
Pretpostavimo da je F = desno((w1; w2)). (Ako je F = lijevo((w1; w2)), dokaz je sličan.) Neka je F1 = lijevo((w1;
w2)). Obratite pažnju da je w1 = nisko(F1). Usmjerena putanja F1, počevši od ivice (w1; w2), ima dužinu 2.
Dakle, w2 ima izlaznu ivicu do čvora F1, a izlaznu ivicu do w3. Dakle, w2 = low(F2), sa F2 = lijevo((w2; w3)).
Ponavljajući ovaj argument, slijedi da je wd1 = low(Fd1), sa Fd1 = lijevo((wd1; wd)). Međutim, lako je vidjeti da
je wd = high(Fd1). To znači da jedan od dva usmjerena puta Fd1 ima dužinu 1. Ova kontradikcija dokazuje
tvrdnju.

Plong
F1 F
2
w w
1 2 w
3

nisko (F) F
visoko (F)

Slika 13.5: Primjer dokaza teoreme 5.1.

Prilikom prelaska ruba e Plonga, po prvi put. posjećujemo lijevo(e) ili desno(e) (ili oboje)
Svaku ivicu e dodjeljujemo licu F sa e 2 F koje sada posjećujemo prvi put. ,G0 ima n 2 lica. Svakom
, licu F od G0,
prema tvrdnji, at
Machine Translated by Google

13.4 Algoritam za predstavljanje vidljivosti 189

najviše jedna ivica e 2 Plong je dodijeljen. Dakle, najduži put od s do t u G ima dužinu n 1.
2

Vidljivost(G) se može primijeniti na opći 4-povezani planarni graf tako što ćete ga najprije
triangulirati. (Triangulacija 4-povezanog planarnog grafa je očigledno još uvijek 4-povezana.) Budući da
je granica najgoreg slučaja za prikaz vidljivosti primjenom proizvoljnog st-numeriranja (2n 5) (n 1) [96,
104], naša algoritam smanjuje širinu prikaza vidljivosti za faktor 2 u slučaju 4-povezanih planarnih
grafova. U poglavlju 14 pokazujemo da se ovaj algoritam može koristiti za konstruisanje kompaktnijih
prikaza vidljivosti opštih planarnih grafova.
Machine Translated by Google
190 Rectangular Duals
Machine Translated by Google

Poglavlje 14

Kompaktnija vidljivost

Zastupanje

14.1 Uvod

U ovom poglavlju razmatramo problem crtanja opšte kompaktne reprezentacije


vidljivosti. Kao što je definisano u Poglavlju 9, u prikazu vidljivosti svaki vrh se
preslikava u horizontalni segment, a svaka ivica se preslikava na vertikalnu
liniju, dodirujući samo dva vrha segmenta svojih krajnjih tačaka. Jasno je da to
dovodi do lijepe i čitljive slike, te stoga postaje veoma interesantna (vidjeti
također odjeljak 9.3.1 i 9.3.2 i sliku 14.1).
Pokazujemo da svaki planarni graf može biti predstavljen prikazom
3
na mreži najveće veličine 2 vidljivosti nc 3) (n 1). Ovo poboljšava sve prethodne granice
(b znatno. Nacrt algoritma da se to postigne je kako slijedi. Pretpostavimo da je
ulazni graf G trianguliran (inače primijeniti algoritam triangulacije, opisan u
Poglavlju 6). Zatim dijelimo G na njegova 4 -povezane komponente i konstruišemo
stablo G od 4 bloka. Pokazujemo da to možemo učiniti u linearnom vremenu za
triangulirane planarne grafove, čime se poboljšava O(n (m; n) +m) algoritam
vremena Kanevskog i dr. [63] za ovaj poseban slučaj Za svaku 4-povezanu
komponentu izračunavamo kanonski poredak, kao što je predstavljeno u
teoremi 13.3.1, što dovodi do vidljivosti te komponente na mreži veličine najviše
(n 1) (n 1 ) (Teorema 13.4.1) Predstave 4-povezanih komponenti se kombinuju u
jedan ceo crtež, što dovodi do željene širine.
U tu svrhu važna je sljedeća lema.
Lema 14.1.1 Neka v1; v2;:::;vn beanonično 4-uređenje 4-povezanog
trouglastog planarnog grafa G, tako da je vn1 susjed i v1 i vn. Tada je
i
numeracija ui = vni+1 (sa 1 n) također ispravan kanonski 4-red u1;:::;un od G.

Dokaz: 4-konektivnošću od G, v1; vn1 i vn tvore jedno lice u G, dakle


vrhovi u1; u2 i un čine jedno lice. Svaki vrh ui (2 <i<n 1) ima at

191
Machine Translated by Google
192 Kompaktniji prikaz vidljivosti

8
8

7
7
3

7 6
0
12
5 4 5
6 6

5
3
4
3
4 3 2
5
2
3 1
1 2

Slika 14.1: Kanonski 4-redopis i odgovarajuća reprezentacija vidljivosti.

najmanje 2 dolazna i 2 izlazna ivica, pošto vrh vni+1 ima najmanje 2 izlazna
i 2 ulazne ivice. Iz ovog zapažanja i 2-povezanost Gi the ,
Slijedi inducirani podgraf na u1;:::;ui, čime je dokaz završen. 2

Kanonsko uređenje 4-povezanog trouglastog planarnog grafa G tako da


v1; vn1 i vn formiraju jedno lice mogu se konstruisati u linearnom vremenu. U
U preostalom dijelu ovog poglavlja, (G) označava crtež dobijen primjenom
Vidljivost (G). y(v) označava y-koordinatu segmenta vrha v, a x(u; v)
označava x-koordinatu ivice (u; v) u (G). Primijetite da je x(v1; vn) < x(v1; v2) <
x(v2; vn) u (G). Veličina crteža je veličina najmanjeg pravougaonika sa
strane paralelne sa x- i y-osom koja pokriva crtež.

14.2 General Compact Visibility Representa


cija

U ovom odeljku pokazujemo kako možemo konstruisati prikaz vidljivosti planara


graf G na mreži, što daje širinu manju od 2n 5. Pretpostavljamo da je G
je trianguliran (inače primijeniti proizvoljnu linearnu vremensku i prostornu triangulaciju
algoritam (vidi Poglavlje 6). Da bismo primijenili rezultat teoreme 2.3, podijelimo G na njegov
4-povezane komponente. Pošto je G trianguliran, 4-povezana komponenta G je
4-povezani triangulirani planarni podgraf od G. Iz ovoga konstruiramo 4-blok
stablo T od G: svaka 4-povezana komponenta Gb od G je predstavljena čvorom b u T .
Postoji ivica između dva čvora b i b
0
u T , ako trojka koja odvaja pripada
i Gb i Gb0 . Po planarnosti svaka trojka od tri vrha je trougao koji razdvaja
i pripada upravo dvije 4-povezane komponente. Trojka koja razdvaja je an
unutrašnje lice u Gb i spoljašnje lice Gb0 . U Odjeljku 4 pokazujemo da T može biti
izračunato u linearnom vremenu i prostoru za triangulirane planarne grafove. Vidi sliku 14.2
Machine Translated by Google
14.2 Općenito kompaktno predstavljanje vidljivosti 193

D
C

A B

I
F
J
G H
D
C
E

IK

Slika 14.2: Stablo od 4 bloka grafa na slici 1.

za stablo od 4 bloka grafa na slici 1.


Korijenimo T u proizvoljnom čvoru b. Izračunavamo kanonski poredak za Gb ,
kao što je definisano u teoremi 2.1, i prema tome usmjeriti ivice. U algoritmu, mi
0
prelazite T odozgo prema dolje i posjetite odgovarajuće 4-povezane komponente. Neka b
biti dijete b u T trokutu, i neka V (Gb0 ) označava skup vrhova Gb0 . Neka u; v; w be
(trokutu) od Gb0 . Pretpostavimo da su ivice usmjerene u ! v i
v ! w u Gb. Definiramo c(Gb0 ) = v. Koristeći lemu 14.1.1, imamo dvije mogućnosti
za izračunavanje kanonskog reda u Gb0 (neka je n0 = jV (Gb0 )j):

Normal(Gb0) Postavljamo u = v1; v = v2 i w = vn0 i izračunajte kanonski poredak


v1; v2;:::;vn za Gb0 ,
Machine Translated by Google
194 Kompaktniji prikaz vidljivosti

Reverse(Gb0) Postavljamo u = un0 ; v = u2 i w = u1, i izračunaj kanonsko


naručivanje u1; u2;:::;un0 do Gb0 . Tada je redoslijed obrnut: postavljamo vi :=
un0i+1 , za sve i sa 1 i n0.

U Normal(Gb0), v ima broj v2, u Reverse(Gb0), v ima broj vn01. U oba


redoslijed, u = v1 i w = vn0 . Vidi također sliku 14.3.
Obje numeracije će se primijeniti u algoritmu kako bi se postigao kompaktniji
predstavljanje vidljivosti. Uvodimo oznaku l(v) za svaki vrh v, koji može imati
vrijednost gore, dolje ili neoznačena. Ako je l(v) = neoznačeno, tada se v naziva neoznačeno,
u T , i moramo da računamo
0
inače v se naziva označenim. Pretpostavimo da posjećujemo čvor b

kanonski poredak za Gb0 . Neka je v = c(Gb0). Vrijednost l(v) implicira da li smo


koristite Normal(Gb0) ili Reverse(Gb0): ako je l(v) = gore, primjenjujemo Normal(Gb0), ako je l(v) =
dolje, primjenjujemo Reverse(Gb0 ), inače možemo učiniti oboje. To ćemo kasnije pokazati
koristeći ove oznake, povećanje širine pri crtanju Gb0 \inside" Gb je na
0
najviše n0 3 umjesto n0 2, kada je l(v) = gore ili dolje (b roditeljski čvor od b u T).
Ova metoda se primjenjuje na sve 4-povezane komponente G. Nakon usmjeravanja
rubova, ovo daje usmjereni aciklički graf, a primjenom topološkog uređenja daje se
st-numeracija vrhova. Primjena algoritma Vidljivost(G) sada daje
ceo crtež. Kompletan algoritam se sada može preciznije opisati kao
slijedi:

CompactVisibility (ulaz: planarni graf G)


trokutasti G;
konstruirati 4-blokovno stablo T od G i korijen T u proizvoljnom čvoru b;
izračunati kanonski 4-redoslijed za Gb i usmjeriti rubove Gb;
neka je n0 = jV (Gb)j; l(v2) = dolje, l(vn01) := gore;
l(vi) := neoznačeno za sve vi 2 Gb; i 6= 2; i 6= n0 1;
0
za svako dijete b od b do DrawComponent(Gb0) rof;
izračunati st-numeraciju u usmjerenom grafu G;
primijeniti Vidljivost na G;
Kraj CompactVisibility

procedura DrawComponent(G0);
početi
Slučaj l(c(G0)) od
neoznačeno : Normalno (G0); l(c(G0)) := dolje; l(vjV (G0 )j1) := gore;
: Normalno (G0); l(c(G0)) := neoznačeno; l(vjV (G0)j1) := gore;
gore dolje : Revers (G0); l(c(G0)) := neoznačeno; l(v2) := dolje;
za svaki vi 2 G0 sa 2 <i< jV (G0)j 1 postaviti l(vi) := neoznačeni rof;
usmjeriti rubove G0 vi ! vj i j>i;
00 0
za svako dijete b trenutnog čvora b u T do DrawComponent(Gb00) rof;
kraj;

Pošto je G trianguliran, sljedeća lema se lako može provjeriti:


Machine Translated by Google
14.2 Općenito kompaktno predstavljanje vidljivosti 195

Lema 14.2.1 Neka je G trouglasti planarni graf i neka je u = desni vrh (v)
i w = desno gore(v). Postavljanje x(u; v) := x(v; w) := maxfx(u; v); x(v; w)g nema
povećati širinu (G).

Neka sada b biti (ne-korijenski) čvor u T sa roditeljem b u T. Neka je G0 podgraf


0

od G, koji se sastoji od svih posjećenih 4-povezanih komponenti u CompactVisibility. Neka


u; v; w biti vanjska strana Gb0 sa u, ! v i v ! w u Gb. Sljedeća lema
slijedi (n0 = jV (Gb0 )j) :

Lema 14.2.2 Ako je x(u; w) < x(u; v) < x(v; w) u (G0), tada primjenjujući Normal(Gb0 )
ima za rezultat da je širina (G0 [ Gb0 ) najviše širina (G0) + n0 3.

Dokaz: U (Gb0 ), x(u; v) x(u; w) n0 2 i x(v; w) x(u; w) n0 1 po


Teorema 13.4.1. U (G0), x(u; v) x(u; w) 1 i x(v; w) x(u; w) 2. Dakle
širina (G0 [ Gb0 ) je najviše širina (G0)+(n0 1) 2. 2

w w w w w
v v
v
v
v

u u u u u

Slika 14.3: Oblik lica u odnosu na l(v), Normal(Gb0) i


Obrnuto (Gb0).

Isto se može dokazati za x(v; w) < x(u; v) < x(u; w) i primjenom Normala,
ili kada je x(u; w) < x(v; w) < x(u; v) ili x(u; v) < x(v; w) < x(u; w) i primjena
0
Obrnuto. Pogledajte sliku 14.3 za ilustraciju ovoga. Pretpostavimo sada da su G0, b i b
su definisane kao u prethodnoj lemi. Sada se može dokazati sljedeća lema. Neka
v = c(Gb0).

Lema 14.2.3 Ako je v označeno, onda nakon primjene Normal(Gb0) ako je l(v) = gore i
Obrnuto (Gb0) ako je l(v) = dolje, širina (G0 [ Gb0 ) je najviše širina
(G0) + n0 3,

Dokaz: Neka u; v; w biti trostruka odvajanja Gb0, dakle v = , sa tobom ! v i v ! w in


, c(Gb0 ). Ako je out(v) = 1 u Gb onda je l(v) = ,gore.
ili x(v;
Stoga
w) < je
Gb x(u; v) < x(u; w) u (G0) ili možemo promijeniti (G0) bez povećanja širine (za
Lema 14.2.1) takva da je x(u; w) < x(u; v) < x(v; w) u (G0). Primjena leme
14.2.2 daje željeni rezultat. Isto slijedi kada je in(v) = 1 u Gb dakle kada ,
l(v) = dolje.
00
Preostali slučaj je kada je v bilo c(Gb00 ) za neko b 6= b 0, a trenutno
posjeta b 00, l(v) = neoznačeno. Neka je trostruka odvajanja Gb00 u0; v; w0, sa
Machine Translated by Google
196 Kompaktniji prikaz vidljivosti

u0 ! v i v ! w0. Neka je G00 podgraf od G, koji se sastoji od posjećenih 4-povezanih komponenti u


trenutku posjete Gb00 . Prema lemi 14.2.1 možemo pretpostaviti da je x(u0; v) = x(v; w0) u (G00).

Razmotrimo slučaj x(u0; w0) < x(u0; v) (slučaj x(u0; v) < x(u0; w0) ide slično).
U CompactVisbility se primjenjuje Normal(Gb00). Pošto je in(v) = 1 u Gb00, postavite x(u0; v) , možemo

na x(v; w0) u (Gb00 ) bez povećanja širine (vidi lemu 14.2.1).


Ovo ima za rezultat da je x(v;leftup(v)) < x(u0; v) u (G0). Ako je w = leftup(v), onda se dokaz završava
opažanjem da je x(u; w) < x(v; w) < x(u; v) u (G0) i primjenom leme 14.2.2.

Ako je w 6= lijevo gore(v), onda je w = desno gore(v) i u = desni vrh(v). Prema lemi 14.2.1 možemo
pretpostaviti da i x(u0; v) = x(v; w0) i x(desni vrh(v); v) = x(v; desno gore(v)) vrijedi u (G00). Ali pošto x(u0;
v) < x(v; w0) važi u (Gb00), to direktno sledi da je x(desni vrh(v); v) < x(v;desno gore(v)) u (G00 [ Gb00).
Dokaz se ponovo završava opažanjem da je x(u; v) < x(v; w) < x(u; w) u (G0) i primjenom leme 14.2.2.

Vidi sliku 14.4 za ilustraciju dokaza Leme 14.2.3.

w w w w
x
F
x x

v v v v

u u u u

(a) Lice i 4-povezana komponenta. (b) 2 različite mogućnosti za crtanje unutar lica.

Slika 14.4: Ilustracija leme 14.2.3.

3
Lema 14.2.4 Širina prikaza vidljivosti G je najviše b 2 nc 3.

Dokaz: Neka su b1;:::;bp čvorovi T u redoslijedu posjeta. Neka je Ki broj označenih vrhova nakon
posjete bi (1 ip). Neka je K0 početni broj označenih vrhova.
v2 i vn01.
grafu
K0 Kada
=dodaje
2, pošto
posjetimo
vrh
suv2
u početku
ili
Gbi,
vn01
tada
i označeni
ne
seoznačava
trenutnom
samo
se.
Ako je l(c(Gbi )) 6= neoznačeno, tada je povećanje širine najviše jV (Gbi )j3 i l(c(Gbi )) postaje neoznačeno,
tj. Ki = Ki1. Ako
dolje,
je l(c(Gbi
tj. Ki = ))
Ki1= neoznačeno,
+ 2. Dakle, u oba
ondaslučaja
je povećanje
kada seširine
posjećuje
najviše
GbijV, (Gbi
širina)j2crteža
i l(c(Gb0
se povećava
)) postaje
za najviše jV (Gbi )j 3 + . jV (Gb0 j 3 je takođe tačno broj dodatih vrhova Gb0 .

KiKi1 2
Machine Translated by Google
14.3 Izgradnja stabla od 4 bloka 197

Pošto je širina (Gb1 ) najviše jV (Gb1 )j 1 i Kp je paran i Kp n 2


(izvor i ponor G nikada se ne obilježavaju), iz toga slijedi da je ukupna širina od
n22 3
(G) je najviše n 1 + bKpK0 c = n 12+ b b 2nc
2
2 c 3.

Što se tiče vremenske složenosti, u Odjeljku 4 pokazujemo da stablo od 4 bloka može biti
izračunato u linearnom vremenu. Izračunavanje kanonskog 4-poretka također zahtijeva linearno vrijeme.
Zadržavamo smjer ivica posjećenih 4-povezanih komponenti, i
iz ovoga se c(Gb0 ) može odrediti direktno u O(1) vremenu. Konačno Vidljivost(G) jeste
primijenjeno, što zahtijeva linearno vrijeme [96, 104]. Ovim se završava sljedeća teorema.

Teorema 14.2.5 Postoji linearni algoritam vremena i prostora za izračunavanje prikaza vidljivosti
3
planarnog grafa G na mreži najveće veličine (b 2 nc3) (n1).

Razmotrite graf na slici 1. Na slici 14.2 dato je stablo od 4 bloka. The


prikaz vidljivosti korijenskog bloka dat je na slici 14.1. Crtanje drugog
4-povezane komponente unutar i primjena Vidljivost vodi do crteža kao
dato na slici 1. Obratite pažnju da l(D); l(G) i l(I) su dolje, l(F); l(J) i l(K) su
gore, svi ostali vrhovi grafa su neoznačeni. Stoga je označeno 6 vrhova,
6
a ukupna širina je najviše n 1 + 1 je 12.) 2 = 15. (Širina na crtežu na slici

14.3 Izgradnja stabla od 4 bloka

U ovom odeljku prikazujemo metodu za konstruisanje 4-blokovnog stabla triangulisanog


planarni graf. Pošto ova klasa grafova ima neka posebna svojstva, nema potrebe
da koristimo komplikovani algoritam Kanevskog i dr., koji gradi stablo od 4 bloka od
opšti graf u O(n (m; n) + m) vremenu [63]. U našem slučaju trojka koja se razdvaja je
trougao za razdvajanje, koji čini osnovu za algoritam.
Za određivanje trouglova koji razdvajaju koristimo algoritam Chiba &
Nishizeki [11] za određivanje trouglova u grafu. (U [94], Richards opisuje drugi linearni algoritam
vremena.) Chiba & Nishizeki prvo sortiraju vrhove u v1;:::;vn
tako da deg(v1) deg(v2) ::: deg(vn). Posmatrajući da svaki trougao
koji sadrži vrh vi odgovara ivici koja spaja dva susjeda vi, oni prvi
označiti sve vrhove u koji su susjedni vi (za trenutni indeks i). Za svaku označenu u i
svaki vrh w susedan u oni testiraju da li je w označen. Ako je tako, trokut vi; u; w
je na listi. Nakon što je ovaj test završen za svaki označeni vrh u, oni brišu vi iz
G i ponovite proceduru sa vi+1. Počevši od v1, ovaj algoritam navodi sve
trokuta bez dupliciranja u n 2 koraka.
U našem slučaju tražimo trouglove koji razdvajaju. Ako se trokut ne razdvaja, onda je to lice
u trianguliranom planarnom grafu. Da bismo ovo testirali, pohranjujemo
ugrađivanje originalnog grafa također u liste susjedstva, recimo u liste susjedstva adj(v)
za sve v 2 G. Ako je trokut u; v; w nije razdvajanje (tj. lice), tada u i w
pojavljuju se uzastopno u adj(v), koji se može testirati u O(1) vremenu održavanjem
Machine Translated by Google
198 Kompaktniji prikaz vidljivosti

trokut-list L
M

L L
....

umrežavanje
vrhovima lica
I K
J
G
H
G

F E
E

D
C

A B

Slika 14.5: Struktura podataka za konstruisanje stabla od 4 bloka.

crosspointers. Da bi izračunali vremensku složenost ovog algoritma, Chiba & Nishizeki


koristiti arboričnost G, denisanu kao minimalni broj šuma koje se razdvajaju na rubovima
koji se G može dekomponovati i označiti sa a(G) [45].

Lema 14.3.1 ([11]) P (u;v)2E minfdeg(u); deg(v)g 2 a(G) m.

Koristeći ovu lemu, Chiba & Nishizeki pokazuju da je vremenska složenost algoritma
O(a(G) m). Ako je G ravan onda je a(G) 3 ([45]), tako da algoritam radi
O(n) vrijeme u slučaju da je G planaran.
Da bismo dobili stablo od 4 bloka sada uvodimo sljedeću strukturu podataka: Neka
L je lista trouglova koji razdvajaju. L(u; v; w) označava zapis u L, koji sadrži
razdvajajući trougao u; v; w. L(u; v; w) sadrži ivice (u; v); (v; w) i (w; u),
i postoje unakrsni pokazivači između L i ivica i vrhova u G.
Sada želimo \sortirati" trouglove koji razdvajaju, koji sadrže ivicu (u; v). Ovdje
radimo sljedeće: Neka adj(v) = w0; w1;:::;wd1 (u smjeru kazaljke na satu oko v sa
u odnosu na planarno ugrađivanje). Razdvajamo trokute v; wi; wj pohranjen na
v po redu u odnosu na w0;:::;wd1 . Ako postoje trokuti koji razdvajaju v; wi; wj
i v; wi; wk onda postavljamo pokazivač od ruba (v; wi) u L(v; wi; wj) do ivice (v; wi)
u L(v; wi; wk), ako je k>j (sabiranje po modulu d). Ovo radimo za svaki vrh v 2 G.
Naravno, kada posjećujemo vrh wi i razmatramo razdvajanje trokuta v; wi; wj and
v; wi; wk, nema potrebe postavljati još jednu usmjerenu ivicu između L(v; wi; wj) i
L(v; wi; wk).
Zapazite sada da kada rub (u; v) u L(u; v; w) nema izlaznu ivicu, tada
to znači da kada podijelimo G na (u; v); (v; w); (w; u) na dva podgrafa, recimo
G1 i G2, zatim svi ostali trokuti koji razdvajaju, koji sadrže (u; v), pripadaju ili G1 ili G2.
Počinjemo od proizvoljnog trougla u L, recimo u; v; w, pri čemu svaka ivica u L(u; v; w)
ima ili dolaznu ili odlaznu ivicu. Mi
podijeliti graf na (u; v); (v; w) i (w; u) u dva podgrafa, recimo G1 i G2.
Machine Translated by Google
14.3 Izgradnja stabla od 4 bloka 199

Neka je adj(v) = w0;:::;wd1 i neka je u = w0 i w = wi, 0 <i<d. Da bismo dobili G1 i G2, podijelili smo adj(v)
na dvije susjedne liste, recimo adj1(v) i adj2(v) sa adj1(v) = w0;:::;wi i adj2(v) = wi;:: :;wd1; w0 (slično za
adj(u) i adj(w)).
Neka adj1(v) odgovara G1. Ako svi ostali trouglovi za razdvajanje, koji sadrže (u; v), pripadaju G1, onda
uvodimo w0 u adj2(v). Ovo dovodi do toga da svi ostali trouglovi u L, koji sadrže (u; v), i dalje pokazuju
na desnu ivicu strukture podataka, tj. u susednoj listi G1. Testiranje da li ostali trouglovi za razdvajanje,
koji sadrže (u; v), pripadaju G1 ili G2, može se testirati provjerom da li (u; v) u L(u; v; w) ima ulaznu ili
odlaznu ivicu. uvodimo w0 u adj1(v). Slično se radi za ivice (v; w) i (w; u) u odnosu na adj(w) i adj(u).
Označavamo L(u; v; w) kao posjećeno i brišemo dolazne i odlazne ivice L(u; v; w), i nastavljamo dok se
ne posjete svi trouglovi u L koji razdvajaju.

Da bismo konstruirali stablo od 4 bloka, primjenjujemo jednostavno prelaženje kroz strukturu


podataka za određivanje povezanih komponenti. Veze preko vrhova lica daju veze u stablu od 4 bloka.
Za svaku 4-povezanu komponentu dodajemo pokazivače na njena tri vrha na vanjskoj površini.
Kompletan algoritam se sada može opisati na sljedeći način:

Izgradite stablo od 4 bloka


nabrojati sve trouglove koji razdvajaju i pohraniti ih u L; sortiraj
trouglove koji razdvajaju i dodaj usmjerene ivice u L; dok nije posjećen
svaki trougao u L
Neka je L(u; v; w) zapis u L takav da je svaka ivica (u; v); (v; w) i (w; u) u L(u; v; w) ima dolaznu
ili odlaznu ivicu; podijeliti graf na rubovima (u; v); (u; w); (v; w); postaviti pokazivač između
dva odgovarajuća lica; od; odrediti povezane komponente i konstruirati stablo od 4 bloka;

End Construct stablo od 4 bloka

Teorema 14.3.2 Stablo od 4 bloka triangulisanog planarnog grafa može se konstruisati u linearnom
vremenu i prostoru.

Dokaz: Određivanje i pohranjivanje ciklusa razdvajanja zahtijeva O(n) vremena, jer svaki planarni
graf ima najviše n 4 trougla za razdvajanje. Sortiranje razdvojenih trouglova na vrhu v može se obaviti
u O(deg(v)) vremenu korišćenjem (dvostrukog) sortiranja po kanti, pošto vrh v pripada najviše deg(v)2
trouglova za razdvajanje. Stoga je ukupno vrijeme sortiranja O(n). Održavanjem podliste L gdje
pohranjujemo sve trouglove koji razdvajaju, koji se mogu posjetiti sljedeći, možemo pronaći sljedeći
trokut za razdvajanje u O(1) vremenu. Pošto postoje unakrsni pokazivači između ivica i vrhova u G i
odgovarajućeg unosa u L, možemo podijeliti graf na trouglu za razdvajanje u O(1) vremenu. Određivanje
povezanih komponenti i izgradnja stabla od 4 bloka postiže se jednostavnim prelaskom kroz graf, čime
se završava dokaz.

2
Machine Translated by Google
200 Kompaktniji prikaz vidljivosti
Machine Translated by Google

Poglavlje 15

Zaključci

U dijelu C proučavali smo problem crtanja planarnog grafa, tako da nema para ukrštanja ivica i
vrhova i krivina postavljenih na tačke mreže. U tu svrhu definisali smo novo uređenje, nazvano
kanoničko uređenje, na vrhovima tropovezanog planarnog grafa. Koristeći ovaj poredak, mnoga
poboljšanja i novi rezultati se dobijaju za nekoliko modela predstavljanja planarnih grafova. Da
bismo dobili algoritam linearnog vremena, nisu nam potrebne napredne i sofisticirane strukture
podataka.
Nakon što izračunamo planarno ugrađivanje grafa i pohranimo ga u liste susjedstva adj(v),
možemo izračunati kanonski poredak samo dodjeljivanjem dodatnih brojača svakom vrhu, kao što
su shift(v), interval(v) i akordi( v). Različiti algoritmi za crtanje se također mogu implementirati
korištenjem malog broja varijabli za svaki vrh, i održavanjem vanjskog lica Ck1 u dvostruko
povezanoj listi.
Ovo je prvi put da jedna nova karakterizacija planarnog grafa vodi do tako širokog područja
primjene u pogledu zahtjeva za crtanje. Ako rubovi moraju biti ravne, onda možemo nacrtati svaki
tropovezani planarni graf na mreži veličine najviše (n 2) (n 2) tako da je svako lice konveksno, tj. da
svi unutrašnji uglovi imaju veličinu . Ovaj problem je bio otvoren nekoliko godina u zajednici
crtanja grafova. Štaviše, na
ovomreži
odgovara
(vidi Schnyder
najpoznatijim
[98]). granicama
Također smo
mreže
koristili
za crtanje
kanonsko
planarnog
sređivanje
grafa
za
konstruiranje ortogonalnih crteža 3-planarnih i tropovezanih 4-planarnih grafova. U slučaju
tropovezanih 4-planarnih grafova, broj ukupnih krivina se smanjuje sa 2n + 4 na dn > 6). Također
smo dokazali egzistencijalnu donju granicu (n 1) + 2 savijanja za klasu 4-planarnih grafova. U
slučaju 3-planarnih grafova predstavili smo algoritam koji crta 3-planarni graf ortogonalni sa
3n
najviše bnc + 12 savijanja
e + 4 savijanja
ukupnosa na
svojstvom
mreži veličine
da svakanajviše
ivica bncbn
ima najviše
c. Ovo2 se
savijanja
podudara
(akos obje donje
4
granice u odnosu na broj 3

2 2
savijanja i veličine mreže. Štaviše, pokazali smo da ako je n > 4, onda postoji razapinjuće stablo
koje koristi samo pravolinijske ivice, a sve preostale ivice imaju najviše jednu krivinu.

Koristeći heksagonalnu mrežu kao model za crtanje, pokazali smo da se svaki tropovezani 3-
n n
planarni graf može nacrtati heksagonalno na mreži tako2 da jedna
2 ivica ima

201
Machine Translated by Google
202 Zaključci

većina 3 krivine, a sve ostale ivice nemaju savijanja. Što je još važnije, koristeći ovaj rezultat pokazali smo da
se svaki 3-planarni graf može nacrtati sa minimalnim uglom ako graf nije trokonektan, i sa problemom
3,
inače.
otvorenog minimalnog ugla Formanna et al. [32]. Kao sporedni rezultat pokazali
4,
Ovo
smo darješava an
se svaki
trokomponentni 6-planarni graf može nacrtati ravan na O(n) O(n) heksagonalnoj mreži tako da svaka ivica
ima najviše 4 krivine. Ostale primjene kanonskog uređenja su u oblasti pravokutnih duala i računalnih
reprezentacija vidljivosti. Za oba prikaza predstavljeni su novi i prilično jednostavni algoritmi. Koristeći
kanonski poredak za 4-povezane trouglaste planarne grafove, možemo konstruirati prikaz vidljivosti 4-
povezanog planarnog grafa na mreži veličine najviše (n 1) (n 1), smanjujući tako najpoznatiju veličinu mreže
za faktor 2. Ovaj rezultat se također koristi za konstruiranje prikaza vidljivosti planarnog grafa na mreži
veličine najviše (b značajno. Ovaj algoritam također koristi novi rezultat, naime da stablo od 4 bloka
trianguliranog planarnog grafa može biti konstruisan u linearnom vremenu i prostoru.

3
2 nc 3) (n 1) mreža, poboljšavajući najpoznatiju veličinu mreže od (2n 4) (n 1)

Osnovna područja u polju algoritama grafova su paralelni i dinamički algoritmi. Budimo precizniji o ovoj
oblasti u odnosu na probleme opisane u ovoj tezi. Nedavno je najavio O(log4 n) algoritam za izračunavanje
kanonskog reda za tropovezane planarne grafove [48]. Ovo daje paralelni algoritam za nekoliko algoritama
za crtanje, opisanih u Dijelu C. Posebno, s obzirom na kanonski poredak, On je dokazao da se konveksni
planarni crtež na (2n 2) (n 1) može dobiti u O(log n) vrijeme [48]. Jou, Suzuki i Nishizeki [61] predstavili su O(log
n log n) vremenski paralelni algoritam za algoritam crtanja heksagonalne mreže za tropovezane planarne
grafove, predstavljen u Poglavlju 12. Ovaj algoritam je zasnovan na O(log n log n) paraleli algoritam za
Schnyderov algoritam za crtanje mreže, koji su opisali Furer et al. [37]. U [46], He opisuje O(log n) paralelni
algoritam za varijantu pravougaonog dualnog algoritma, opisanog u poglavlju 13. Model paralelnog računanja
u [37] je EREW PRAM sa O(n) procesorima. U drugim algoritmima, koji su ovdje opisani, model paralelnog
izračunavanja je CRCW PRAM sa O(n) procesorima. U [16], Cohen et al. opisati različite dinamičke algoritme za
ažuriranje slike nakon dodavanja (ili brisanja) ivice ili vrha. Nažalost, čini se da ovaj okvir ne radi za naše
algoritme za crtanje.

Vjerujemo da se može dati više kombinatornih zapažanja u pogledu lmc-poretka od onih datih u ovoj tezi.
Nedavno je napravljena nova karakterizacija planarnih grafova, zasnovana na st-uređenju dvopovezanih
planarnih grafova [95]. Generalizacija na tropovezane planarne grafove, korištenjem lmc-poređanja, može
dati nove kombinatorne i praktične rezultate za crteže planarnih grafova.

Završimo dio C s nekoliko riječi o praktičnijim aspektima uvedenih problema crtanja grafova. U ovom
kontekstu, estetski aspekti i sposobnost čitanja važniji su od teoretskih izvedenih granica o veličini mreže,
uglovima, broju krivina i drugim kriterijumima. Duboko istraživanje planarnog crtanja trouglastih planarnih
grafova sa vrhovima predstavljenim tačkama i ivicama pravolinijskim ivicama (također Fary crtež) predstavili
su Jones et al. [60]. Oni proučavaju
Machine Translated by Google
Zaključci 203

algoritam Chiba et al. [14], de Fraysseix et al. [34], Read [92] i Tutte [111].
Koristili su sljedeće metrike da uporede različite crteže:

standardna devijacija u veličini ugla,

standardna devijacija dužine ivice kao procenat srednje dužine ivice,

i standardnu devijaciju površine lica kao procenat srednje površine lica.

Zaključili su da je algoritam de Fraysseixa et al. [34] je nesumnjivo najbolji od četiri


ispitana algoritma. Najvažniji nedostatak ostalih algoritama je činjenica grupisanja: na
relativno malom području je postavljeno previše vrhova. To dovodi do vrlo kratkih ivica,
malih površina lica i pretrpanog i neurednog crteža. Algoritam de Fraysseixa et al. (i
njegova implementacija linearnog vremena, zbog Chrobak & Payne [15]) nema ovaj
problem, jer su vrhovi postavljeni na tačke mreže. Međutim, problem ovog algoritma je
što veličina uglova može postati vrlo mala, što takođe čini crtež neatraktivnim.

Vidi sliku 15.1 za rezultat primjene algoritma de Fraysseixa et al., Read i Tutte na
trouglasti planarni graf sa 32 vrha. Da ih pregledam

(a) Konveksna mala mreža (b) Modifikovano čitanje (c) Tutte


Crtanje

Slika 15.1: Crtanje trouglastog planarnog grafa.

problema, implementirali smo naš (n 2) (n 2) algoritam konveksnog crtanja mreže


ConvexSmallGridDrawing(G), kao što je predstavljeno u poglavlju 10. Također smo
modificirali algoritam Read [92], predstavljen u poglavlju 10: koristimo sofisticirani način
za odabirom sljedećeg vrha v za brisanje, a kada vraćamo v nazad, pokušavamo
optimizirati uključene veličine uglova i dužine ivica. Tačnije, umjesto da brišemo jedan
vrh u svakom koraku, uklanjamo nezavisan skup vrhova iz crteža.
Pošto se planarni graf može lako obojiti sa 6 boja u linearnom vremenu, ovo daje
jednostavan metod za izdvajanje nezavisnog skupa veličine najmanje n=6. Ideja je da
kada je nezavisni skup više ili manje raspoređen na G, onda se smanjuje vjerovatnoća
da su vrhovi grupirani u cijelom crtežu. Algoritam se može opisati na sljedeći način (neka
je N(v) skup susjeda vrha v):
Machine Translated by Google
204 Zaključci

Modificirano čitanje (G);


izračunati planarno ugrađivanje trouglastog planarnog grafa G; let u; v; w su
vrhovi na vanjskoj strani G; n0 := n; dok n0 > 3 izračunava nezavisni skup I u G,
sa u; v; w 62 I ; neka vn0jI j+1; vn0jI j+2;:::;vn0 := vrhovi od I ; za i := n0 jI j + 1 do
n0 do

0
neka vi biti susjed vi u G, sa jN(v 0 i) \ N(vi)j = 2; obrisati vi iz G i dodati

rubove od v0 susjedima vi; od; n0 := n0 jI j; od; postavite


i v3 kaotritrokut;
vrha v1;
zav2;
i := 4
do n do OptimalPlacement(vi) rof;

Završi modificirano čitanje

Preostala stvar je da se izračuna optimalno mjesto vi u odnosu na njegove susjede. Koje je najbolje mjesto
za vertex vi? Uzmimo za ovo lice Fi, lice u koje treba postaviti vi (na taj način nakon uklanjanja dodatih ivica
iz v0 i). Tada je F poligon u obliku zvijezde, odnosno unutar F postoji neprazna oblast iz koje su vidljivi svi
vrhovi iz Fi. Ovo neprazno područje naziva se jezgro F. Neka je u1; u2;:::; bili su susjedi vi.

Za postavljanje vi, dužina ivice (uj ; vi), (1 j d), a važna je i veličina upadnih
uglova vi i uj unutar Fi. Ovaj problem ima mnogo veze sa nekoliko problema linearnog programiranja u
računarskoj geometriji. Matou sek, Sharir & Welzl [81] razmatrali su problem izračunavanja tačke pi unutar
jezgre Fi, tako da se nakon povezivanja pi sa svim vrhovima Fi pravolinijskim rubovima, minimalni ugao
između dva susjedna ruba maksimizira. Ovaj problem su nazvali kutno-optimalno postavljanje točke u
poligonu i pokazali da se korištenjem generaliziranog linearnog programiranja ovaj problem može riješiti
u linearnom vremenu [81].

U našem modelu želimo da se bavimo i minimalnim uglom i minimalnom dužinom upadnih ivica vi.
Stoga uvodimo dvije varijable: ugao i udaljenost. Postavljamo vi tako da je minimalni ugao unutar Fi veći
od i svaka upadna ivica vi ima dužinu veću od . Korištenjem binarnog pretraživanja mogu se postići
optimalne vrijednosti parametara i. Izračunavanje površine se vrši određivanjem skupa poluprostora,
kojem mora pripadati vrh v, i provjerom da li je njegov presjek prazan ili ne. Pogledajte Preparato & Shamos
[91] za opis ove metode. Trouglasti planarni graf ima 3n 6 ivica, stoga je prosječni stepen svakog temena
6. Ovo daje O(1) rad koji se amortizira za izračunavanje optimalnog mjesta vi. Stoga se ukupni algoritam
može implementirati da radi u O(n log n) vremenu.

Uporedili smo algoritam SmallGridConvex sa ModifiedRead sa


Machine Translated by Google
Zaključci 205

s obzirom na dužinu ivica, veličine uglova i površinu lica. Ovo

vodi do tabele, kao što je prikazano na slici 15.2.

vrhovima
Alg. 50 100 150 200 250 300 350 400 450 500

Ivice jej Čitaj 22.39 17.58 15.10 14.87 13.79 12.34 12.78 13.42 12.24 11.26
Konveksna 33.71 25.89 25.85 22.26 21.72 20.28 17.99 17.04 19.75 18.30
Čitaj 19.30 17.94 17.08 17.76 16.78 15.84 18.23 18.61 17.77 16.15
Konveksna 30.06 26.66 28.39 25.95 27.01 26.52 23.78 22.46 26.51 24.94
Čitaj 27.00 64.20 110.20 197,40 284,00 382,20 475,00 476,80 576,20 673,00
100n
Konveksna 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 19.60
Čitaj 39.60 75.60 121,80 209,40 292,60 392,20 486,00 491,20 590,00 695.40
200n
Konveksna 33.40 65.80 92.20 121.40 148,80 189,00 214,60 239,40 277,40 301.40

Uglovi Čitaj 2.63 3.01 3.21 3.85 4.09 4.33 4.48 4.27 4.44 4.45
Konveksna 1.24 1.23 1.23 1.23 1.23 1.23 1.23 1.23 1.24 1.23
Čitaj 2.16 2.21 2.34 2.47 2.47 2.43 2.49 2.52 2.46 2.55
Konveksna 1.04 1.06 1.07 1.08 1.07 1.08 1.08 1.08 1.09 1.08
Čitaj 28.80 38.20 48.80 41.80 38.40 42.60 42.20 63.20 51.40 63.20
5n

Konveksna 78,80 127.40 191,20 236,60 274,80 312,60 333,40 391,00 465,40 478.60
Čitaj 54.40 70.60 85.40 76.40 68.20 74.40 102.40 99.20 89.80 119,80
10n
Konveksna 108.20 171.60 240,80 291,60 346,00 394,60 422,00 489,80 551,60 584.80

Lica jF j Čitaj 67.03 43.63 24.59 19.93 17.59 15.79 11.76 13.31 10.14 8.16
Konveksna 62.75 28.29 20.26 14.47 11.53 9.87 8.51 7.47 6.74 5.70
Čitaj 72.44 63.19 47.70 40.72 48.13 38.36 37.03 39.81 41.84 31.16
Konveksna 76.21 52.98 44.70 45.73 36.78 34.74 25.51 34.16 15.83 22.48
Čitaj 34.80 86.40 158,80 283,00 359,40 457,60 593,60 642,20 753,60 842.20
25n
Konveksna 0,00 0,00 0,00 0,40 58.60 67.40 77.40 89.60 210.60 224.20
Čitaj 35.00 88.60 163,60 288,80 365,20 461,40 603,40 647,80 763,80 855.60
50n
Konveksna 0,00 0,80 36.60 49.20 111.60 137.20 225,20 245,60 350,80 370,80

Slika 15.2: Izlaz različitih algoritama za crtanje.

jej označava prosječnu dužinu ivica; označava standardnu devijaciju, 100n označava broj ivica, sa dužinom od najviše 100n, itd. Dakle u trokutasti

planarni grafovi sa 350 vrhova u prosjeku su imali 189 ivica sa maksimalnom dužinom

200n . Obratite pažnju da u algoritmu konveksnog crtanja postoji samo nekoliko kratkih ivica

(sa dužinom od najviše 100n), postoji mnogo malih uglova (veličina najviše 5n), i postoji

ima samo nekoliko lica sa malom površinom (površina najviše 25n ).

Eksperimentalni rezultati potvrđuju zaključke Jonesa et al. [60], gore navedeno

(vidi sliku 15.1): modificirani algoritam Read ima veliki problem grupiranja,

a algoritam ConvexSmallGridDrawing ima problem uvođenja a

puno uglova male veličine. Što je još važnije, to navodimo (kao i Jones et al.).

pravolinijski crtež nije idealan model za predstavljanje trokutaste ravni

grafovi. Dobijene slike ne zadovoljavaju estetske kriterije za dobijanje a

čitljiv crtež, kao što je navedeno u poglavlju 1 (pogledajte i sliku 15.1). Sve istraženo

U slučajevima smo uočili probleme u pogledu grupiranja, površine lica, veličine ugla i ivice

dužina. Vjerujemo da je algoritam d-planarnog crtanja, opisan u odjeljku 10.3

i prikaz vidljivosti, opisan u odjeljku 10.4, daju pogodnije

uvid u strukturu planarnog grafa. Crteži trouglastog planara

graf sa slike 15.1, koristeći ovaj model predstavljanja, dat je na slici 15.3.
Machine Translated by Google
206 Zaključci

32
31

30

29
28

27

26
25
24
23

22 21

20 19

18
17

16 14

15 13
12

11
10

9
8
7

5
4

3
1
2

(a) Crtež G kao d-planarni graf. (b) Crtež G kao prikaz vidljivosti.

Slika 15.3: Crtanje trouglastog planarnog grafa.

Kada je ulazni graf trokonektan i ima relativno mali broj ivica, onda i Tutteov algoritam konveksnog
crtanja (pogledajte Poglavlje 10) i ConvexS mallGridDrawing daju nešto čitljivije slike. (Pošto graf nije
trouglast, algoritam Reada se sada ne može koristiti.) Na slici 15.4 rezultat je dat kada se ovi algoritami
primjenjuju na tropovezani planarni graf sa 32 vrha. U ovoj postavci, algoritam ConvexSmallGridDrawing
ima prednost što su vrhovi postavljeni na koordinatama mreže. Izlaz Tutteovog algoritma sadrži nekoliko
lica sa relativno malom površinom, ali ovdje svi unutrašnji agle imaju veličinu manju od te su stoga striktno
konveksne. Pošto ovaj graf ima maksimalan stepen 4, možemo ga predstaviti i ortogonalnim crtežom, kao
što je predstavljeno u poglavlju 11. Iako ovaj algoritam može implicirati savijanja ivica, svaka ivica ima
dužinu najmanje 1, svako lice ima površinu od najmanje 1 , a veličina uglova je najmanje =2. Tražena
površina je najviše n n. Stoga je ova reprezentacija dobar kandidat kada planarni graf ima maksimalni
stepen 4.

Također primjećujemo da je u literaturi opisano nekoliko algoritama za pravolinijsko crtanje, baziranih


na lokalnim zamjenama ili simuliranom žarenju. Iako su dobijeni crteži ljepši od nekoliko modela
predstavljenih ovdje, odgovarajuća cijena s obzirom na potrebno vrijeme je vrlo visoka. Stoga prije izbora
Machine Translated by Google
Zaključci 207

(a) Konveksna mala mreža (b) Tutte (c) Ortogonalno


Crtanje

Slika 15.4: Crtanje tropovezanog planarnog grafa.

algoritam za crtanje, pitanje koliko vremena algoritam može koristiti


odgovorio. Jasno je da ako se crteži moraju dati odmah, predstavljeni
algoritmi nadmašuju postojeće odgovarajuće algoritme s obzirom na vrijeme
i dali rezultate. Nadamo se da će vam predstavljeni algoritmi pomoći u predstavljanju
razne vrste mreža i dijagrama na zgodan način....
Machine Translated by Google
208 Zaključci
Machine Translated by Google

Bibliografija

[1] Aho, AV, JE Hopcroft i JD Ullman, Dizajn i analiza kompjuterskih algoritama,


Addison-Wesley Publ. Comp., Reading, Mass., 1974.

[2] Auslander, L., and SV Parter, On embedding graphs in the plane, J. Math.
Mech. 11 (1961), str. 517{523.

[3] D. Barnette. Stabla u poliedarskim grafovima. Canad. J. Math. (18): 731 {736, 1966.

[4] Bertolazzi, P., i G. Di Battista, O ispitivanju povlačenja naviše trokonenih digrafa,


u: Proc. 7th Annual ACM Symp. on Computational Geometry, North Conway,
1991, str. 272{280.

[5] Bertolazzi, P., G. Di Battista, C. Mannino i R. Tamassia, Optimal Upward Planarity


Testing of Single-Source Digraphs, Manuscript, Dip. di Informatica e Sistemistica,
Universit a degli Studi di Roma La Sapienza, 1992.

[6] Bhasker, J., i S. Sahni, Linearni algoritam za provjeru postojanja pravokutnog


duala planarnog trianguliranog grafa, Networks 7 (1987), str. 307-317.

[7] Bhasker, J., i S. Sahni, Linearni algoritam za pronalaženje pravougaonog duala


planarnog trianguliranog grafa, Algorithmica 3 (1988), str. 147{178.

[8] Biedl, T. i G. Kant, Bolja heuristika za planarne ortogonalne crteže, u: Proc. 2.


Evropski simpozijum o algoritmima (ESA'94), Bilješke s predavanja u Comp.
Science 855, Springer-Verlag, 1994, str. 24{36.

[9] Booth, KS i GS Lueker, Testiranje svojstava uzastopnih jedinica, grafova intervala


i testiranje planarnosti grafa korištenjem algoritama PQ-stabla, J. of Computer
and System Sciences 13 (1976), str. 335{379.

[10] Cai, J., X. Han i RE Tarjan, Nova rješenja problema četiri planarnog grafa, Teh.
Izvještaj, Odsjek za kompjuterske nauke, Univerzitet u Njujorku/Institut Courant,
1989.

[11] Chiba, N., i T. Nishizeki, Arboričnost i algoritmi za popis podgrafa, SIAM J. Comput.
14 (1985), str. 210{223.

209
Machine Translated by Google
210 BIBLIOGRAFIJA

[12] Chiba, N., T. Nishizeki, S. Abe i T. Ozawa, Linearni algoritam za ugrađivanje


planarnih grafova pomoću PQ-stabala, J. of Computer and System Sciences 30
(1985), str. 54{76 .

[13] Chiba, N., K. Onoguchi i T. Nishizeki, Lepo crtanje ravnih grafova, Acta Informatica
22 (1985), str. 187{201.

[14] Chiba, N., T. Yamanouchi i T. Nishizeki, Linearni algoritmi za konveksne crteže


planarnih grafova, u: JA Bondy i USR Murty (Eds.), Progress in Graph Theory,
Academic Press, New York, 1984. , str. 153{173.

[15] Chrobak, M., i TH Payne, Linearni vremenski algoritam za crtanje planarnih grafova
na mreži, Tech. Rep. UCR-CS-90-2, Dept. of Math. i Comp.
Nauka, Univerzitet Kalifornije u Riversideu, 1990.

[16] Cohen, RF, G. Di Battista, R. Tamassia, IG Tollis i P. Bertolazzi, Okvir za dinamičko


crtanje grafova, u: Proc. 8th Annual ACM Symp. on Computational Geometry,
Berlin, 1992, str. 261{270.

[17] Cormen, TH, CE Leiserson i RL Rivest, Uvod u algoritme, MIT Press, Cambridge,
Mass., 1990.

[18] Di Battista, G., Eades, P. i R. Tamassia, IG Tollis, Algoritmi za automatsko crtanje


grafova: anotirana bibliografija, Tech. Izvještaj, Dept. of Comp. Nauka, Brown
Univ., 1993.

[19] Di Battista, G., G. Liotta i F. Vargiu, Spiralnost ortogonalnih reprezentacija i


optimalni crteži serijsko-paralelnih grafova i 3-planarnih grafova, u: Proc. 3.
Radionica o algoritmima i strukturama podataka, Bilješke s predavanja u Comp.
Science, Springer-Verlag, 1993, da se pojavi.

[20] Di Battista, G. i R. Tamassia, Algoritmi za ravninske reprezentacije acikličkih digrafa,


Teoret. Comp. Science 61 (1988), str. 436{441.

[21] Di Battista, G. i R. Tamassia, Inkrementalno testiranje planarnosti, u: Proc. 30th


Annual IEEE Symp. on Found. of Comp. Science, North Carolina, 1989, str. 436{441.

[22] Di Battista, G., R. Tamassia i IG Tollis, Zahtjev za površinu i prikaz simetrije u


grafovima crteža, Discrete i Comp. Geometrija 7 (1992), str. 381{ 401.

[23] Di Battista, G., R. Tamassia i IG Tollis, Reprezentacije grafova ograničene vidljivosti,


Inf. Proc. Pisma 41 (1992), str. 1{7.

[24] Edelsbrunner, H., Triangulations, Tech. Izveštaj CS 497, Dept. of Comp. Nauka,
Univerzitet Illinois u Urbana Champaign, 1991.
Machine Translated by Google
BIBLIOGRAFIJA 211

[25] Edelsbrunner, H. i TS Tan, Kvadratni vremenski algoritam za triangulaciju


minimalne dužine, u: Proc. 32th Annual IEEE Symp. on Found. of Comp.
Science, Puerto Rico, 1991, str. 548{559.

[26] Edelsbrunner, H., TS Tan i R. Waupopitsch, O(n2 log n) vremenski algo ritam za
triangulaciju minmax ugla, u: Proc. 6th Annual ACM Symp. on Computational
Geometry, Berkeley, 1990, str. 44-52.

[27] Eswaran, KP, i RE Tarjan, Problemi sa povećanjem, SIAM J. Comput. 5 (1976), str.
653{665.

[28] Even, S., Algoritmi grafova, Computer Science Press, Potomac, MD, 1979.

[29] S. Even i G. Granot, Pravolinijski planarni crteži sa nekoliko savijanja u svakoj ivici,
rukopis, Fakultet komp. Science, the Technion, Haifa (Izrael), 1993.

[30] Even, S., i RE Tarjan, Računanje st-numeracije, Teoret. Comp. Sci


ence 2 (1976), str. 436{441.

[31] Fary, I., O pravim predstavljanjima planarnih grafova, Acta Sci. Math.
Seged 11 (1948), str. 229{233.

[32] Formann, M., T. Hagerup, J. Haralambides, M. Kaufmann, FT Leighton, A.


Simvonis, E. Welzl i G. Woeginger, Crtanje grafova u ravni sa visokom rezolucijom,
u: Proc. 31. Godišnji IEEE Symp. on Found. of Comp. Science, St. Louis, 1990, str.
86{95.

[33] Frank, A., Povećanje grafova kako bi se zadovoljili zahtjevi vezanosti rubova, u:
Proc. 31. Godišnji IEEE Symp. on Found. of Comp. Science, St. Louis, 1990, str.
708{718.

[34] Fraysseix, H. de, J. Pach i R. Pollack, Kako nacrtati planarni graf na


grid, Combinatorica 10 (1990), str. 41{51.

[35] Fraysseix, H. de, i P. Rosenstiehl, Dubina, prva karakterizacija planarnosti, Annals


of Discrete Math. 13 (1982), str. 75{80.

[36] Frederickson, GN, i J. Ja'Ja, Algoritmi aproksimacije za nekoliko problema


povećanja grafova, SIAM J. Comput. 10 (1981), str. 270{283.

[37] Furer, M., X. He, M.-Y. Kao i B. Raghavachari, O(n log log n)-radni paralelni
algoritmi za pravolinijsko ugrađivanje planarnih grafova u mrežu, u: Proc. 4th
Annual IEEE Symp. o paralelnim algoritmima i arhitekturama, San Diego, 1992,
str. 410{419.
Machine Translated by Google
212 BIBLIOGRAFIJA

[38] Garey, MR, i DS Johnson, Kompjuteri i intractability: Vodič za teoriju NP-potpunosti,


Freeman & Co., San Francisco, 1979.

[39] Garey, MR, DS Johnson i L. Stockmeyer, Neki pojednostavljeni NP-potpuni grafovi


problemi, Teoret. Comp. Science 1 (1976), str. 237{267.

[40] Garg, A., MT Goodrich i R. Tamassia, Crteži drveća naviše, u: Proc. 9th Annual ACM
Symp. on Computational Geometry, San Diego, 1993, da se pojavi.

[41] Goldschmidt, O., i A. Takvorian, E cient Graph Planarization Two Phase Heuristic,
Tech. Izvještaj ORP91-01, Odsjek za mašinstvo, Univ. Teksasa u Austinu, 1991.

[42] Granot, G., Planarni crteži grafova na pravolinijskoj mreži sa nekoliko krivina u
svakoj ivici, mr. Teza (na hebrejskom), Fakultet komp. Science, the Tech nion, Izrael,
1993. (u pripremi).

[43] Haandel, F. van, Pravolinijsko ugrađivanje na mrežu, mr. Teza, INF/SCR-91-19,


Odsjek komp. Nauka, Univerzitet Utrecht, 1991.

[44] Hagerup, T. i C. Uhrig, Triangulacija planarnog grafa, u: Biblioteka efikasnih tipova


podataka i algoritama (LEDA), softverski paket, Max-Plank Instit ut fur Informatik,
Saarbr ucken, 1991.

[45] Harary, F., Teorija grafova, Addison{Wesley Publ. Comp., Reading, Mass.,
1969.

[46] He, X., E cient Parallel Algorithms for Two Graph Layout Problems, Tech.
Izvještaj 91-05, Dept. of Comp. nauka, Državni univ. New Yorka u Bu alu, 1991.

[47] He, X., O pronalaženju pravougaonih duala planarnih trianguliranih grafova, SIAM
J. Comput., 1993, da se pojavi.

[48] He, X. i M.-Y. Kao, Paralelna konstrukcija kanonskog reda i konveksnog crtanja
tropovezanih planarnih grafova, rukopis, odjel komp.
nauka, Državni univ. New Yorka u Bu alu, 1993.

[49] Hopcroft, J., i RE Tarjan, Podjela grafa na tropovezane komponente,


SIAM J. Račun. 2 (1973), str. 135{158.

[50] Hopcroft, J., i RE Tarjan, E cient planarity testing, J. ACM 21 (1974),


str. 549{568.

[51] Hsu, T.-S., O četveroveznom trokomponentnom grafu, u: Proc. 33. Godišnji IEEE
Symp. on Found. of Comp. Science, Pittsburgh, 1992, str. 70{79.
Machine Translated by Google
BIBLIOGRAFIJA 213

[52] Hsu, T.-S., i V. Ramachandran, Algoritam linearnog vremena za povećanje


trikonektivnosti, u: Proc. 32th Annual IEEE Symp. on Found. of Comp.
Science, Puerto Rico, 1991, str. 548{559.

[53] Hsu, T.-S., i V. Ramachandran, O pronalaženju najmanjeg povećanja za bikonekciju


grafa, u: WL Hsu i RCT Lee (Eds.), Proc. drugog godišnjeg međ. Symp. o
algoritmima, Bilješke s predavanja u Comp. Science 557, Springer-Verlag, 1992,
str. 326{335.

[54] Hsu, WL, i S. Shih, Jednostavan test za planarne grafove, Rukopis, Institut za
informacione nauke, Academia Sinica Taipei, Tajvan, 1992.

[55] Jansen, K., One Strike Against the Min-max Degree Triangulation Problem,
Manuscript, Fachbereich IV, Mathematik und Informatik, Universit at Trier,
Njemačka, 1992.

[56] Jayakumar, R., K. Thulasiraman i MNS Swamy, O maksimalnoj planarizaciji


neplanarnih grafova, IEEE Trans. o krugovima i sistemskim naukama 23 (1986),
str. 843{844.

[57] Jayakumar, R., K. Thulasiraman, i MNS Swamy, Planarno ugrađivanje: algoritmi


linearnog vremena za postavljanje vrhova i uređenje rubova, IEEE Trans. o
krugovima i sistemima 35 (1988), str. 334{344.

[58] Jayakumar, R., K. Thulasiraman i MNS Swamy, O(n2) algoritmi za planarizaciju


grafa, IEEE Trans. o kompjuterskom projektovanju 8 (1989), str. 257{267.

[59] Johnson, DS, Kolona NP-potpunosti: tekući vodič, J. iz Alg. 3


(1982), str. 89{99.

[60] Jones, S., P. Eades, A. Moran, N. Ward, G. Delott i R. Tamassia, Napomena o


algoritmima za crtanje planarnih grafova, Tech. Izveštaj br. 216, Ključni centar za
softversku tehnologiju, Dept. of Comp. Nauka, Univerzitet Queensland, 1991.

[61] Jou, L.-j., H. Suzuki i T. Nishizeki, Paralelni algoritam za crtanje planarnih grafova
na mrežama, rukopis, Fakultet informacionog inženjerstva, Tohoku Univ., Japan,
1992.

[62] J unger, M., i P. Mutzel, Rješavanje problema maksimalne težine planarnog


podgrafa po granama i rezovima, rukopis, Instit ut f ur Informatik, Universit at zu
K oln, 1992.

[63] Kanevsky, A., R. Tamassia, G. Di Battista i J. Chen, On-line održavanje


četveropovezanih komponenti grafa, u: Proc. 32th Annual IEEE Symp. on Found.
of Comp. Science, Puerto Rico, 1991, str. 793{801.
Machine Translated by Google
214 BIBLIOGRAFIJA

[64] Kant, G., Implementacijski aspekti planarizacije grafa korištenjem PQ-stabala, mr. Teza,
Odsjek za kompjuterske nauke, Univerzitet Utrecht, 1989.

[65] Kant, G., O(n2) algoritam maksimalne planarizacije zasnovan na PQ-stablima, Tech.
Izveštaj, RUU-CS-92-03, Dept. of Comp. Nauka, Univerzitet Utrecht,
1992.

[66] Kant, G., Crtanje planarnih grafova korištenjem lmc reda, prošireni sažetak
u: Proc. 33th Ann. IEEE Symp. on Found. of Comp. nauka, Pitsburg,
1992, str. 101-110.

[67] Kant, G., Hexagonal grid drawings, in: EW Mayr (Ed.), Proc. 18th Intern.
Radionica o teorijsko-grafskim konceptima u Comp. Nauka (WG'92), Predavanje
Bilješke u Comp. Science 657, Springer-Verlag, 1993, str. 263{276.

[68] Kant, G., Kompaktnija reprezentacija vidljivosti, u: J. van Leeuwen (Ed.),


Proc. 19th Intern. Radionica o teorijsko-grafskim konceptima u Comp. Nauka
(WG'93), Bilješke s predavanja u Comp. Science, Springer-Verlag, 1993, da se pojavi.

[69] Kant, G. i HL Bodlaender, Problemi povećanja planarnog grafa, Prošireni sažetak u: F.


Dehne, J.-R. Sack i N. Santoro (Eds.), Proc. 2nd
Radionica o algoritmima i strukturama podataka, Bilješke s predavanja u Comp. Nauka
519, Springer-Verlag, 1991, str. 286{298.

[70] Kant, G., i HL Bodlaender, Triangulacija planarnih grafova uz minimiziranje maksimalnog


stepena, u: O. Nurmi i E. Ukkonen (Eds.), Proc. 3rd
Scand. Radionica o teoriji algoritama, Bilješke s predavanja u Comp. Nauka 621,
Springer-Verlag, 1992, str. 258{271.

[71] Kant, G., i X. He, Dva algoritma za pronalaženje pravougaonih duala planarnih
grafovi, u: J. van Leeuwen (Ed.), Proc. 19th Intern. Radionica o teorijskim konceptima
grafova u Comp. Nauka (WG'93), Bilješke s predavanja u Comp. Science, Springer-
Verlag, 1993, da se pojavi.

[72] Khuller, S. i R. Thurimella, Aproksimacijski algoritmi za povećanje grafa, u: W. Kuich


(Ed.), Proc. 19th Int. Kolokvijum o automatima, jezicima i programiranju (ICALP'92),
Bilješke s predavanja u komp. Nauka 623,
Springer-Verlag, 1992, str. 330{341.

[73] Ko zminski, K. i E. Kinnen, Pravougaoni dual planarnih grafova, Mreže


5 (1985), str. 145{157.

[74] Kuratowski, K., Sur le probl eme des courbes gauches en topologie, Fund. Math.
15 (1930), str. 271{283.

[75] La Poutr e, JA, On-line Planarity Testing, Tech. Izvještaj, Dept. of Comp.
Nauka, Univerzitet u Utrechtu, 1993. da se pojavi.
Machine Translated by Google
BIBLIOGRAFIJA 215

[76] Lempel, A., S. Even i I. Cederbaum, Algoritam za testiranje planarnosti grafova,


Teorija grafova, Int. Symp. Rim (1966), str. 215{232.

[77] Lengauer, Th., Kombinatorni algoritmi za raspored integriranog kola, Teub ner/
Wiley & Sons, Stuttgart/Chichester, 1990.

[78] Lin, Y.-L., i SS Skiena, Aspekti složenosti grafova vidljivosti, Izvještaj 92-08, Dept. of
Comp. nauka, Državni univ. iz New Yorka, Stony Brook, 1992.

[79] Lipton, RJ, DJ Rose, i RE Tarjan, Generalizirana ugniježđena disekcija, SIAM


J. Numer. Anal. 16 (1979), str. 346{358.

[80] Malitz, S., i A. Papakostas, O ugaonoj rezoluciji planarnih grafova, u: Proc. 24th
Annual ACM Symp. Theory of Computing, Victoria, 1992, str. 527{538.

[81] Matou sek, J., M. Sharir i E. Welzl, Subeksponencijalna granica za linearno


programiranje, Tech. Izvještaj B-92-17, Fachbereich Mathematik, Freie Universit u
Berlinu, Njemačka, 1992.

[82] Mitchell, SL, Linearni algoritmi za prepoznavanje vanplanarnih i maksimalnih van


erplanarnih grafova, Inf. Proc. Pisma 9 (1979), str. 229{232.

[83] Micali, S., i VV Vazirani, O(p VE) algoritam za pronalaženje maksimalnog podudaranja
u opštim grafovima, u: Proc. 21. Godišnji IEEE Symp. Pronađen. of Comp. Science,
Sirakuza, 1980, str. 17{27.

[84] Mutzel, P., Algoritam brzog linearnog ugradnje vremena baziran na Hopcroft
Tarjanovom testu planarnosti, Tech. Izvještaj 92.107, Instit ut fur Informatik, Univer
sit at zu K oln, 1992.

[85] Naor, D., D. Guseld i C. Martel, Brzi algoritam za optimalno povećanje povezivosti
ivica, u: Proc. 31. godišnji IEEE Symp. on Found. of Comp.
Science, St. Louis, 1990, str. 698{707.

[86] Nishizeki, T., i N. Chiba, Planarni grafovi: teorija i algoritmi, Annals of Discrete
Mathematics 32, North-Holland, 1988.

[87] Nummenmaa, J., Konstruiranje kompaktnih pravolinijskih planarnih rasporeda


korištenjem kanonskog prikaza planarnih grafova, Teoret. Comp. Science 99 (1992),
str. 213{230.

[88] O'Rourke, J., Art Gallery Teoreme i algoritmi, Oxford Univ. Pritisnite, Novo
Jork, 1987.

[89] Otten, RHJM, i JG van Wijk, Grafičko predstavljanje u interaktivnom dizajnu izgleda,
u: Proc. IEEE Int. Symp. on Circuits and Systems, 1978, str. 914{918.
Machine Translated by Google
216 BIBLIOGRAFIJA

[90] Ozawa, T. i H. Takahashi, Algoritam planarizacije grafa i njegove primjene na nasumične


grafove, u: Teorija grafova i algoritmi, Bilješke s predavanja iz računarstva 108, Springer
Verlag, 1981, str. 95{107 .

[91] Preparata, FP, i MI Shamos, Računska geometrija, Uvod, Springer-Verlag, New York, 1985.

[92] Read, RC, Nova metoda za crtanje grafa s obzirom na ciklički red ivica na svakom vrhu,
Kongr. Broj. 56 (1987), str. 31{44.

[93] Reingold, E., i J. Tilford, Tidier drawing of trees, IEEE Trans. o softverskom inženjerstvu 7
(1981), str. 223{228.

[94] Richards, D., Pronalaženje kratkih ciklusa u planarnim grafovima pomoću separatora, J.
Alg. 7 (1986), str. 382{394.

[95] Rosenstiehl, P., H. de Fraysseix i P. de Mendez, lična komunikacija,


1992.

[96] Rosenstiehl, P., i RE Tarjan, Pravolinijski planarni rasporedi i bipolarne orijentacije


planarnih grafova, Discrete and Comp. Geometrija 1 (1986), str. 343{353.

[97] Rosenthal, A. i A. Goldner, Najmanja povećanja za bikonekciju grafa,


SIAM J. Račun. 6 (1977), str. 55{66.

[98] Schnyder, W., Ugrađivanje planarnih grafova na mrežu, u: Proc. 1. godišnji ACM-SIAM
Symp. o diskretnim algoritmima, San Francisco, 1990, str. 138{147.

[99] Stein, SK, Konveksne karte, Proc. Amer. Math. Soc. 2 (1951), str. 464{466.

[100] Storer, JA, O planarnim ugrađivanjem s minimalnim troškovima čvora, Networks 14 (1984),
str. 181{212.

[101] Supowit, K., i E. Reingold, Složenost lijepog crtanja stabala, Acta Informatica 18 (1983),
str. 377{392.

[102] Tamassia, R., O ugrađivanju grafa u mrežu sa minimalnim brojem


krivina, SIAM J. Comput. 16 (1987), str. 421-444.

[103] Tamassia, R., G. Di Battista i C. Batini, Automatsko crtanje grafova i čitljivost dijagrama,
IEEE Trans. o sistemima, čovjeku i kibernetici 18 (1988), str. 61{79.

[104] Tamassia, R., i IG Tollis, Jedinstveni pristup prikazima vidljivosti planarnih grafova, Discr.
i Comp. Geometrija 1 (1986), str. 321{341.
Machine Translated by Google
BIBLIOGRAFIJA 217

[105] Tamassia, R., i IG Tollis, Efikasno ugrađivanje planarnih grafova u linearno vrijeme, u: Proc.
IEEE Int. Symp. on Circuits and Systems, Philadelphia, str. 495{498, 1987.

[106] Tamassia, R., IG Tollis i JS Vitter, Donje granice za planarne ortogonalne crteže grafova,
Inf. Proc. Pisma 39 (1991), str. 35{40.

[107] Tarjan, RE, Algoritmi za pretragu u dubinu i linearni graf, SIAM J. Comp. 1 (1972), str.
146{160.

[108] Tarjan, RE, Bilješka o pronalaženju mostova grafa, Inf. Proc. Pisma 2 (1974), str. 160{161.

[109] Thomassen, C., Planarnost i dualnost konačnih i beskonačnih planarnih grafova, J.


Comb. Teorija, Serija B 29 (1980), str. 244-271.

[110] Tutte, WT, Konveksni prikazi grafova, Proc. London Math. Soc. 10 (1960), str. 302{320.

[111] Tutte, WT, Kako nacrtati graf, Proc. London Math. Soc. 13 (1963), str.
743{768.

[112] Vauchter, J., Lepo štampanje drveća, Softverska praksa i iskustvo 10 (1980), str. 553{561.

[113] Wagner, K., Bemerkungen zum Vierfarbenproblem, Jber. Deutsch. Math. Verein 46 (1936),
str. 26{32.

[114] Watanabe, T., Y. Higashi i A. Nakamura, Problemi povećanja grafa za određeni skup vrhova,
u: T. Asano, T. Ibaraki, H. Imai i T. Nishizeki (ur.), Proceedings 1. Annual Int. Symp. o
algoritmima, Bilješke s predavanja u Comp. Science 450, Springer-Verlag, 1990, str.
378{387.

[115] Watanabe, T., i A. Nakamura, Problemi povećanja ivice povezivanja, J. of Computer and
System Sciences 35 (1987), str. 96{144.

[116] Watanabe, T., i A. Nakamura, 3-connectivity augmentation problemi, u: Proc. 1988 IEEE
Int. Symp. on Circuits and Systems, 1988, str. 1847{1850.

[117] Watanabe, T., T. Narita, i A. Nakamura, problemi povećanja povezivanja sa 3 ivice, u: Proc.
1989 IEEE Int. Symp. on Circuits and Systems, 1989, str. 335{338.

[118] Watanabe, T., M. Yamakado, i K. Onaga, Algoritam za povećanje linearnog vremena za


probleme povećanja povezivanja sa 3 ivice, u: Proc. 1991 IEEE Int. Symp. on Circuits and
Systems, 1991, str. 1168{1171.
Machine Translated by Google
218 BIBLIOGRAFIJA

[119] Westbrook, J., Testiranje brze inkrementalne planarnosti, u: W. Kuich (Ed.), Proc.
19th Int. Kolokvijum o automatima, jezicima i programiranju (ICALP'92), Bilješke
s predavanja u Comp. Science 623, Springer-Verlag, 1992, str. 342{353.

[120] Wetherell, C., and A. Shannon, Tidy drawing of trees, IEEE Trans. na Soft
ware Engineering 5 (1979), str. 514{520.

[121] Williamson, SG, Ugrađivanje grafova u ravan { algoritamski aspekti, Ann.


Discrete Math. 6 (1980), str. 349{384.

[122] Woods, D., Crtanje planarnih grafova, Ph.D. Disertacija, teh. Rep. STAN CS-82-943,
Odsjek za kompjuterske nauke, Univerzitet Stanford, 1982.
Machine Translated by Google

Indeks

(G), 12 bipolarna orijentacija, 119


(m; n), 22 1- blok, 12, 29 blok stablo, 28
lanac, 95 veza, 30 most, 12 most-blok,
1set(F), 67 54 most-blok stablo, 54
2*OptBiconnect, 51 most povezan, 12 most
2*OptBridgeConnect, 55 2-blok povezan graf, 54
stablo, 28 2-povezano, 12 2-ivica-
povezano, 12 2set(F), 67 3-blok
stablo, 42 3-povezana komponenta,
29
C-čvor, 29
kanonski poredak za
4-povezane planarne grafove, 184 za
3-Ortogonalno, 155 4-
trouglaste planarne grafove, 76 za
povezano, 180
tropovezane planarne grafove, 127
gore (v), 182 krajnje lijevo, 123, 127
AddNeighbors, 84 adj(v), CanonicalTriangulate, 77 lanac, 12
14 susjednih lista, 14 čipova, 3 akorda, 13 akorda (v), 184
susjednih, 11 algoritam, grupiranje, 203
4 ugla optimalno
postavljanje, 204
dodjeljivanje(F), 67 aug(b), 60
Poveži, 45
povezan, 12
povezan graf, 12
B-čvor, 29 ograničeni prikaz vidljivosti, 121 konveksan,
osnovna ivica, 164, 133 strogo, 137 konveksan crtež, 6, 131
185 bc(G), 42, 45 bc(G),
28
BC-stablo, 28 ConvexDraw, 117
be(F ), 164 ispravnih(v), 129
ispod (v), 182 unakrsnih pokazivača,
Bikonekt, 46 14 kumulativnih o set,
bikonektovani, 12 145 para za sečenje, 12
bikonektivni komponentni, 12, 29 cutvertex, 12 ciklusa, 12
bikonekovani planarni graf, 5

219
Machine Translated by Google
220 INDEX

d, 42 dolazni, 127
d, 29 inkrementalno testiranje planarnosti,
d(v), 45 50 unutrašnja ivica, 13 unutrašnja
d(v), 29 strana, 13 unutrašnji vrh, 13 unutrašnji
de g (v), 11 vrh, 76 nesvodljivih, 24
pokazivač pravca, 19
pakovanja diskova, 116
isključeno, 12 dvostruki
grafikon, 13, 119, 143
k-povezan , 12
k-ravan graf, 13
metoda dodavanja ivica, 16
l-dijete (v), 97
ivica(b), 58 ivica(b), 30 ivica,
lca, 92 lijevo
4, 11 električni dijagram, 3
elementarna ciklusa, 72 (e), 119, 188 lijevo

prazna lista, 26 (v), 119, 182 lijevo,


185 krajnje lijevo
kanonsko poredak, 123, 127 lijevo gore(v),

Ojlerova formula, 13 185 lijevo (v), 76 lijevo vrh , 76, 127, 185
dužina (e), 164
vanjska ivica, 13
vanjska strana, 13
vanjska vrh, 13 ekstra
LinearStraight-lineDra w, 132 lmc-
ivica, 66
naručivanje, 123, 127 nisko (F), 119, 188
lice, 13 nisko (v), 182 lth (e), 164
fary crteža, 202
F ary crtež, 6
zabranjena ivica, 104
m, 11
slobodno, 150 granica,
MakeGraph, 15
18
oznaka (v), 149
G , 13 odgovarajući rub, 66
praznina, maksimalni vanjski planarni graf, 14
64 grafikon, 4, maksimalni planarni graf, 13
11 mreža, 4 maksimalna planarizacija, 26
Gup, 19 maksimalni podijeljeni par, 30
MaximalPlanarize, 27
HexaDra w, 165 maksimalni planarni podgraf, 21
heksagonalni crtež, 163 Mengerova teorema, 12
heksagonalna mreža, 163 spajanje, 30
visoka (F), 119, 188 visoka Modified Read, 204 mop,
(v), 182 14 više ivica, 75, 83

implementacija, 203 u
(v), 127 n, 11
Machine Translated by Google
INDEX 221

blizu para, 27 ravni graf, 13


čvorova, 4 polova, 31 poligon,
30 potencijalnih
Ortogonalni, 121 listova, 26
ortogonalni crtež, 5, 121, 149 out(v), PQ-stablo, 17
127 praktičnih aspekata, 202
OuterBiconnect, 96 preferirana lista, 26 pravi
OuterBridgeConnect, 92 vanjska trouglasti planarni graf, 180
strana, 13 vanjski planarni graf, PTP graf, 180
14, 89 maksimalno, 14 odlaznih,
127 izlaznih ivica, 76 vanjskih q, 42
vrhova, 50 Q-čvor, 17, 30
četverokut, 180

r-dijete(v), 97
R-čvor, 30
p, 45
pravokutni dvojni, 7, 124, 179
d, 42
pravokutni sistem podjele, 179
p(v), 45
RectangularDual, 183
p(v), 29
reducibilno, 24 referentne
P-čvor, 17, 30
ivice, 30 regularno označavanje
P (v), 117
ivica, 124, 179, 180
Paralelno, 65
REL, 179
putanja, 12
desno(e), 119, 188
pendant, 29
desno(v), 119, 182
pendant blok, 29
desno, 185 desno
pendant most-blok, 54
gore(v), 185 desno
relevantni čvor, 17 relevantni
gore(v), 76 desno
korijen, 18 relevantni(b), 58,
vrh, 76, 127, 185
156 relevantni(b), 32 planarni
Kruta, 69
st-graf, 17 planar embedding,
13 planarni graf, 12 S-čvor, 30
dvopovezanih, 5 maksimalnih, šema, 3
13 trouglastih, 6, 13 razdvojna (k 1) skupa, 12 para
trianguliranih, 13 razdvajanja, 12 indikator
trokonenih, 6 planarnih sekvence, 26
grafova, 4 planarni Serija, 62
separator teorema, 117 pomaka(v),
planarni st-graf, 118 129 skelet(b), 58, 156, 171
planarizacija, 21, 23 kostur(b), 30 podijeljenih
komponenti, 30 podijeljenih
parova, 30 maksimalnih, 30
cijepanja, 30
Planarize, 25
Machine Translated by Google
222 INDEX

spqr-stablo, 156, 171 y (v), 117


SPQR-stablo, 30
Zigza g, 83
st-graf, 17, 118 st-
numeracija, 17, 118
pravolinijski crtež, 115 strogo
konveksno, 137

TBBC, 54
TBC, 28
stablo,
14 trokut, 12, 30
trouglasti planarni graf, 6, 13 pravi,
180
Triangulacija, 84
triangulirani planarni graf, 13
triangulacijski algoritam, 76
Trokonekcija, 61
trokomponentna komponenta,
29 trokomponentni planarni graf,
6 tspqr, 58, 156, 171
TSP QR, 30
tip A, 23 tip
B, 23 tip H,
23 tip W, 23

crtanje prema gore, 5, 121


ugradnja odjela nagore, 19
UpwardEmbed, 20

v-blok, 45 v-
blok, 12
vrhova, 4, 11
metoda dodavanja vrhova, 16
virtualna ivica, 30
Vidljivost, 120
prikaz vidljivosti, 5, 119, 187 ograničeno,
121 posjeta d ( v), 184

VLSI, 4

x(b), 171
x(v), 117

y(b), 171
Machine Translated by Google

Samenvatting

Computers raken meer en meer ingeburgerd in de samenleving. Ze worden gebruikt


om informatie uit te rekenen, op te slaan en snel weer te geven. Deze weergave kan
gebeuren u tekstu, tabele of in allerlei andere schema's. Een plaatje zegt vaak more
dan 1000 woorden, mits het plaatje duidelijk and overzichtelijk is. Een schema kan
bestaan uit rechthoeken met informatie en verbindingslijnen tussen deze rechthoeken.
Denk maar aan een schematische weergave van de organisatie structuur van een
bedrijf. Od beschouw een schematische weergave van alle relaties en links in een
database of een ander software programme. Ook een plan voor een uit te voeren
project moet duidelijk laten zien welke onderdelen afhankelijk van elkaar zijn en
tegelijk of na elkaar uitgevoerd moeten worden. Uit een schema moeten alle
onderlinge relations direct blijken.
Ook op het gebied van electrische schakelingen zijn er vaak vereenvoudigde
schema's die alle verbindingen tussen de componenten weergeven. Denk maar aan
de bijlagen van een televisietoestel. Een schema wordt hier veelal gebruikt om
kasnijim reparations of uitbreidingen aan de electrische schakelingen uit te voeren.
De elec trische schakelingen kunnen uit duizenden componenten bestaan. Als er zeer
veel van deze schakelingen grasch weergegeven moeten worden, is het belangrijk
dat tekeningen van deze netwerken snel gemaakt kunnen worden, en het resultaat
moet duidelijk en overzichtelijk zijn. In meer algemene zin bestaat een netwerk uit
een aantal componenten, met verbindingen tussen deze componenten. In de
wiskunde worden deze netwerken ook wel grafen genoemd. De komponenten
worden knopen genoemd i de verbindingen lijnen.
Dit proefschrift is gewijd aan het automatisch tekenen en grasch representeren
van grafen. De hierboven vermelde voorbeelden geven een goed inzicht in de be
trokken vragen bij de methoden, ook wel algoritmen genoemd, om een layout van
een graaf te maken. Helaas zijn esthetische kriterij zoals \leesbaarheid" of een \mooie
tekening" niet direct te vertalen tot wiskundige formule. Anderzijds kan een wiskundig
optimaliseringcriterium een goede keus zijn voor een bepaalde graaf, maar leiden
tot een onoverzichtelijke tekening in andere gevallen. Heel vaak voldoet een goede
tekening aan een combinatie van optimaliseringscriteria. Een belangrijk Criterium is
ofdat de graaf zonder kruisende lijnen getekend kan worden. Als dit het geval je dan
wordt de graaf planair genoemd.
We besttuderen in dit proefschrift het automatisch tekenen en representeren van

223
Machine Translated by Google
224 SAMENVATTING

planaire grafen in het platte vlak en op roosters (dus alle coordinaten zijn gehele
getallen). We tekenen de planaire grafen ook zonder kruisende lijnen. Engleski
kriterijumi za predstavljanje planaire grafena, genoemd in de literatuur, zijn de
volgende:

Het minimaliseren van het aantal bochten in de verbindingen (of het tekenen
van de graaf met alle verbindingen als rechte lijnen weergegeven).

Het minimaliseren van het total gebruikte gebied waarbinnen de representatie


\mooi" kan worden weergegeven.

Het plaatsen van de knopen, lijnen en bochten op roostercoordinaten.

Het maximaliseren van de hoeken tussen elke twee opeenvolgende uitgaande


verbindingen van een knoop.

Het maximaliseren van de totale afstand tussen de knopen.

De interne gebieden moeten convex getekend worden.

Kwantitatieve uitspraken over de kwaliteit van een tekenalgoritme worden steeds


gedaan in termen van het aantal knopen van een graaf.
Het proefschrift is onderverdeeld in drie delen:
Deel A presenteert een inleiding tot het gebied van planaire grafen. Het geeft een
uitgebreid overzicht ven de belangrijkste basetechnieken en algoritmen, die vooraf
gaan aan de algoritmen, beschreven in de andere delen.
Podijelite B, riješite probleme u vezi sa planom grafike i označite ga sa
samenhangendheid wordt bereikt. Een graaf heet k-samen hangend als na het
weglaten van k 1 willekeurige knopen de resulterende graaf nog steeds niet in
meerdere stukken uiteen valt. Vele tekenmethoden voor planaire grafen stellen 2- of 3-
samenhangendheid als voorwaarde voor de graaf, die getekend moet worden. In
sommige andere gevallen moet de planaire graaf getrianguleerd zijn, dat wil zeggen,
elk gebied moet een driehoek zijn. U dijelu B riječi su različiti algoritmi besproken om
een planaire graaf uit te breiden met zo weinig mogaoijk extra (dummy) verbindingen
zodat aan de 2- of 3-samenhangendheidseis of aan de triangulatie voldaan wordt
zonder de planazen. Hierna kan de gewenste tekenmethode toegepast worden, waarbij
de toegevoegde verbindingen natuurlijk niet getoond worden in het uiteindelijke
plaatje.
Deel C betreft het belangrijkste onderwerp van dit proefschrift, namelijk het
tekenen en representeren van planaire grafen. Hiervoor presenteren we een total
nieuwe, algemene methode. Deze is gebaseerd op een speciale ordening van de
knopen van een 3-samenhangende planaire graaf, de canonical ordening genoemd.
Vrata gebruik te maken van deze ordening kunnen velepredstavništva u lineaire tijd
geconstrueerd worden, waarbij de graaf altijd planair getekend wordt. Zo worden de
volgende resultaten verkregen. (Een bijbehorende illustratie van enkele resultaten is
gegeven in de guur op page 225.) n geeft het aantal knopen aan.
Machine Translated by Google
SAMENVATTING 225

15

15

15 14

14

14
12
12
13
12
11 11 13
11
6
7 8 9
6 7 89 10
10 7 8 13
4 10
3 9
6 34 5
5
5 34

1
2
1 2
1 2

(a) Dekanonsko uređenje (b) Convexe gebieden (c) Grote hoeken

15 14
15
13
11 12
14

12 11
12 13 56
1 7 10 13
6 7 8 11

6 8 9
1 3 4 5 9 10 4
5 7 3 10 3 8 9
2
4 2
2
1

(d) Orthogonale tekening (e) Predstavnik vidljivosti (f ) Dvostruki pravougaoni

1. Elke 3-samenhangende planaire graaf kan getekend worden met rechte lijnen
op een (n 2) (n 2) pijetao zodat elk interne gebied konveksan je.

2. Elke planaire graaf kan getekend worden op een rooster van grootte ten hoogste
2
(2n6) (3n6) met ten hoogste 5n15 bochten en minimum hoek > waarbij elke lijn 3d+1 ,
maximaal 3 bochten en Lengte ten hoogste 2n heeft. d je de
maximale graad.

3. Elke 3-samenhangende planaire graaf met maximale graad 4 kan getekend wor den op een
nn rooster met knopen gerepresenteerd als punten en verbindin gen als horizontale en
3
vertikale lijnen met ten hoogste d 2 ne+4 bochten waarbij
elke lijn ten hoogste 2 bochten heeft for n > 6 (orthogonale tekening).

4. Elke planaire graaf met maximale graad 3 kan getekend worden op een bn 2

2c
cbn pijetao sreo deset hoogste bn 2 c+1 bochten, waarbij er een opspannende boom
is waarvan alle verbindingen rechte lijnen zijn en alle overige verbindingen ten
hoogste 1 bocht hebben, voor n > 4.

5. Elke planaire graaf met maximale graad 3 kan getekend worden met knopen
als punten en verbindingen als rechte lijnen en wel zodanig dat de kleinste hoek
tussen twee openvolgende verbindingen van een knoop minimaal 45 graden is
als de graaf 3-samenhangend is, en minimalno 60 graden anders.

6. Elke 4-samenhangende getrianguleerde planaire graaf kan getekend worden


met knopen als rechthoeken zodanig dat twee rechthoeken een stuk grens
Machine Translated by Google
226 SAMENVATTING

gemeenschappelijk hebben dan en slechts dan als er een verbinding is tussen de


twee betre ende knopen (pravokutni dual).

7. Elke planaire graaf kan getekend worden met de knopen als horizontale balken
en alle verbindingen verticaal, alleen de betre ende eindknopen aanrakend, op
een (n 1) (n 1) rooster als de planaire graaf 4-samenhangen is, b
3
2nc 2) (n 1) pijetlovi (predstavništvo vidljivosti).

Het proefschrift bevat verder allerlei kleinere resultaten en voorbeelden. Različiti al


goritmen zijn ook ge mplementeerd. Hierdoor zijn ook tabellen met rezultate van
opgenomen različitih programa i geanalyseerd. Došli smo do proefschrift i ook upoznali
različite zaključke aan de hand van de theoretische en praktisch behaalde grenzen.
Nadamo se da ćete u tevreden bent over de leesbaarheid en overzichtelijkheid van de
getoonde graaftekeningen.
Machine Translated by Google

Curriculum Vitae

Goossen Kant

3. januara 1967 geboren te Rijswijk (N.Br.)

1979 { 1984 middelbare škola: Chr. Scholen Gemeenschap


\De Wegwijzer", Sleeuwijk
maj 1984 HAVO diploma behaald

1984 { 1985 HTS Den Bosch:


sept. 1984 { febr. 1985: Weg-en Waterbouwkunde
mart 1985 { juni 1985: Electrotechniek

1985 { 1989 studie informatica aan de Rijksuniversiteit Utrecht


avgust 1989 doktorski ispit informatika

naslov afstudeerscriptie:
\Aspekti implementacije planarizacije grafikona
Korištenje PQ-stabala"

1989 { 1993 Asistent u Opleiding aan de Vakgroep Informatica


van de Rijksuniversiteit Utrecht

227

You might also like