Professional Documents
Culture Documents
Full (1) Prevod
Full (1) Prevod
Full (1) Prevod
Algoritmi za
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
Kant, Goossen
ISBN 90-393-0416-5
Trefw.: algoritmen / grafentheorie.
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.
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
Algoritmi za
Sadržaj
Predgovor iii
A Uvod xi
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
3 Uvod 41
vii
Machine Translated by Google
viii SADRŽAJ
8 Zaključci 109
15 Zaključci 201
Bibliografija 209
Samenvatting 223
dio A
Uvod
1
Machine Translated by Google
Machine Translated by Google
Poglavlje 1
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.
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.
Minimiziranje ukupnog broja savijanja u rubovima (ili nacrtajte graf bez savijanja, tj.
pravolinijskih rubova)
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].
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
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
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
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).
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.
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
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
4 5
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.
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.
Input-format je sljedeći: U
prvom redu n, broj čvorova.
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.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
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
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
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).
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.
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.
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
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
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
2.3.1 Uvod
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
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.
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.
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.
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
[6, 3, 2]
[3, 1, 0] [3, 1, 1]
[1, 0, 0]
[2, 0, 0]
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
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.
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
,
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
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
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
kada tražimo minimalan broj izbrisanih rubova. Uradili smo isti test
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.
je bi- ili tropovezan, a ako nije, podijeliti graf na bi- i tropovezane komponente. U tu svrhu predstavljamo dva stabla u ovom dijelu.
[45]. Ovo stablo je također označeno kao stablo blokova, bc(G) ili stablo od 2 bloka u [53]. The
od G u tropovezane komponente, koje su uveli Di Battista & Tamassia [21]. Povezana stabla su stablo sa 2 podgrafa i stablo od 3
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
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
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
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
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:
Teorema 2.5.1 Svaki tropovezani planarni graf G sa unaprijed definiranim v1; v2; vn ima a
kanonsko uređenje.
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
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
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
Teorema 2.5.2 Za svaki tropovezani planarni graf može biti kanonski poredak
izračunati u linearnom vremenu i prostoru.
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
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
39
Machine Translated by Google
Machine Translated by Google
Poglavlje 3
Uvod
41
Machine Translated by Google
42 Uvod
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.
Poglavlje 4
Planarna bikonektivnost
Problem povećanja
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.
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
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
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
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.
b b
0 1
c
0
...
c
m 1
B c
1
a
3m
x
s(a)
3m
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.
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.
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*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
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
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).
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
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.
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.
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
A
B
B
C D C
D
F
F
E
E
Slika 4.5: Dvostruko povezivanje planarnog grafa korištenjem grafa maksimalnog podudaranja.
Poglavlje 5
Planarna trikonekcija
Problem povećanja
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
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
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).
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
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
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
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
serija(b)
za i := 1 do k učiniti
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
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.2 koja se odnosi na (b) je trokonektovana nakon primjene serije (b).
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.
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)}
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.
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
od;
End Parallel
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:
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:
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
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
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).
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
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
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.
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 .
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:
str 0 2 p
4
str
6
str
8
Poglavlje 6
75
Machine Translated by Google
76 Triangulacioni planarni grafovi
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.
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
Pogledajte sliku 6.1 za ilustrirajući primjer. Da bismo dokazali da ovaj algoritam zaista
radi, potrebna nam je sljedeća lema:
desno gore(v )
lijevo gore(v )
k
k
v
k
desni vrh
leftvertex c
c j
i Gk 1
v v
1 2
6.1 NP-potpunost
a
a
c d d c
A5 A A9 A1 A5
A9
1
F'
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.
,
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
Lema 6.1.3 Za svako lice F 2 G 1 može se dodijeliti samo jedna komponenta tipa Ai
do F.
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
6.2.1 Algoritam
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.
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
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
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:
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.
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
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).
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
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.
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
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
Dakle (G0) + 3, za 5. 2
v
v 1
5
v
v
2
v
4
v
3
Poglavlje 7
7.1 Uvod
89
Machine Translated by Google
90 Povećanje vanjskih planarnih grafova
w
u v
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.
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].
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.
Lema 7.2.2 Potomci bilo kog čvora imaju uzastopne brojeve u bilo kom post redosledu
numerisanja.
OuterBridgeConnect
A := ;; f A postaje skup povećavajućih ivica. gx := 1; za i :=
2 do n do
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)
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: 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
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.
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.
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.
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
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.
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.
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
Kraj Pathfinder
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.
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
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.
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
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
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.
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
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
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.
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.
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
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
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.
vk 1
vk
F2 v1
F1
v v2
str
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
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]
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
109
Machine Translated by Google
110 Zaključci
povećanje povećanje
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
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
Dio C
113
Machine Translated by Google
Machine Translated by Google
Poglavlje 9
Algoritmi za crtanje
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
v
v
p+1
v
1
B
str
B1
v v
2 str
Bp 1
B2
....
v v
3 p 1
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.
prsten
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)
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
(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].
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
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)
v v
u
T1: 270o T2: 90o
90o
u 90o
90o
u u
v v
o
u 180
T3:
90o
u w
w
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.
8 8 8
7 7 7
6 6 5
6 5
4 5
4
4 3
3
3 2
2
2 1
1 1
8
6 7
6 7
5
4 4
5
2
3
123
(d) (e)
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.
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.1 lmc-naručivanje
127
Machine Translated by Google
128 Okvir za crtanje i konveksni crteži
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.
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
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
2. Ako je v1 = c1; c2;:::;cr = v2 je vanjska strana Gk u koraku k, tada x(c1) < x(c2) <
< x(cr).
Svi vrhovi cl;:::;cr su vidljivi iz ove tačke, pogledajte sliku 10.2 za odgovarajuću sliku.
Konkretno, algoritam je sljedeći:
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
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;
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
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 .
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
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
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.
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
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.
v
k
P(c ji, c )
c c
i cj i cj
Gk 1 Gk
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
:::
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).
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.
Š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
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
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
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
15
14
12
11 13
6 7 8 9 10
34 5
1 2
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).
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
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).
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.
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
vk
w2 w3
w4
u w1
3 1u
u
1 u2
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:
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.
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);
:= +
(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:
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.
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
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
Poglavlje 11
Ortogonalni crteži
149
Machine Translated by Google
150 Ortogonalni crteži
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
c cr
l z lijevo u pravu
1
z z
1 1
c
l
c
l
cr cr
v
n
lijevo lijevo
lijevo
u pravu lijevo z z6
z 5 cα
lijevo z 3 z4
2
z1
cβ
cr cr
cl
c=vl
1
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
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:
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
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:
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
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
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
.
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
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.
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:
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
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
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
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).
Na slici 11.6 dat je primjer dvopovezanog 3-planarnog grafa G, SPQR stabla od G i odgovarajućeg
ortogonalnog crteža G.
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
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
ci
c
l cj
ci
cj c
l
Poglavlje 12
Heksagonalni crteži
Z-smjer Y-smjer
3 4
1 2
X-smjer
163
Machine Translated by Google
164 Heksagonalni crteži
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.
w1
v2
v
3
cj
c
F3 i
Fk
k1
v
2
v3
v1
F3
vn
ww
12
c
ci j
Fk v
2 v
3
v
2 v
3 F3
F3
v
1
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
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.
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
n n
Lema 12.1.5 Veličina heksagonalne mreže je 2 2
.
3 00
Dokaz: postoje iF
0
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
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
Y-smjer Z-smjer
vn vn
v v3 v2 v
2 3
v1
v
1
X-smjer
(a) (b)
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.
ti
ti
R-čvor
s
i
s
i
s
i
s
i ti
S-čvor
ti
S'-čvor s
i ti
s
i ti
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
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
.
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
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
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
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.
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.
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
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).
Poglavlje 13
Rectangular Duals
13.1 Uvod
179
Machine Translated by Google
180 Rectangular Duals
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]:
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
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
visoko (F)
gore (v)
F ispod (v)
G G
1 2
nisko (F)
, 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
č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]:
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.
ing
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
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.)
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
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
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
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)
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
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
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
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
D
C
A B
I
F
J
G H
D
C
E
IK
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;
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).
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.
w w w w w
v v
v
v
v
u u u u u
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,
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
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.
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.
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
Š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).
trokut-list L
M
L L
....
umrežavanje
vrhovima lica
I K
J
G
H
G
F E
E
D
C
A B
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.
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:
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
0
neka vi biti susjed vi u G, sa jN(v 0 i) \ N(vi)j = 2; obrisati vi iz G i dodati
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.
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
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
(vidi sliku 15.1): modificirani algoritam Read ima veliki problem grupiranja,
puno uglova male veličine. Što je još važnije, to navodimo (kao i Jones et al.).
č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
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.
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.
Bibliografija
[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.
[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
[13] Chiba, N., K. Onoguchi i T. Nishizeki, Lepo crtanje ravnih grafova, Acta Informatica
22 (1985), str. 187{201.
[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.
[17] Cormen, TH, CE Leiserson i RL Rivest, Uvod u algoritme, MIT Press, Cambridge,
Mass., 1990.
[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
[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.
[31] Fary, I., O pravim predstavljanjima planarnih grafova, Acta Sci. Math.
Seged 11 (1948), str. 229{233.
[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.
[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
[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).
[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.
[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
[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.
[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.
[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.
[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.
[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
[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.
[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.
[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.
[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
[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.
[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.
[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.
[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.
[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.
[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
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
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
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
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
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
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).
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
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
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.
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).
Curriculum Vitae
Goossen Kant
naslov afstudeerscriptie:
\Aspekti implementacije planarizacije grafikona
Korištenje PQ-stabala"
227