Sunteți pe pagina 1din 11

Capitolul 16

Grafuri triangulate

16.1 Definiții

Să ne amintim că orice graf simplu planar cu vârfuri are cel mult muchii.
În acest capitol, acum vom studia grafuri simple planare unde acestea sunt dense. Adică
aceste grafuri sunt maximale planar în sensul în care nu le mai putem adăuga o muchie fără să
stricăm planaritatea sau simplitatea. Un alt termen mai des folosit pentru aceste grafuri este
graf triangulat planar, ceea ce vom studia în cele ce urmează.

Definiția. 16.1

Un graf triangulat este un graf planar unde fiecare față este un triunghi.

În Figura 16.1 putem vedea un graf care nu este triangulat pentru că fețele nu sunt triunghiuri
și un graf care este triangulat dar nu este simplu

Lema 16.2 Fie un graf planar simplu conex cu cel puțin 3 vârfuri. Atunci dacă
și numai dacă este un graf triangulat.

Demonstrație: Să ne uităm la demonstrația lemei 11.9, unde am demonstrat că .


Pentru a obține egalitatea , avem nevoie de un număr de linii L cu metoda dublei
numărări egal cu , ceea ce înseamnă că fiecare față este incidentă în exact 3 muchii.
Invers, dacă fiecare față este incidentă la 3 muchii, egalitatea se menține și .

Din formula lui Euler, care spune că , putem arată foarte ușor că fiecare
graf triangulat cu cel puțin 3 vârfuri are exact fețe.

În final putem arăta că grafurile triangulate pot fi ușor conexe.


Lema 16.3 Orice graf triangulat este 3-conex.

Demonstrație: Să presupunem că un graf este simplu și triangulat. Această cerință este


satisfăcută dacă , așa că vom presupune că . Vom arată că în afara cazului în care
este 3-conex, putem adăuga o muchie grafului fără să îi strigăm simplitatea sau
planaritatea. Noul graf are muchii conform Lemei 16.2 și este planară și simplă, ceea
ce contrazice Lema 11.9.

Să presupunem că nu este conex și are componentele . Atunci unele fețe


trebuie să conține vârfuri de la 2 componente, de exemplu fețele exterioare conțin și
.

Atunci putem adăuga o muchie ; acest lucru nu va strica planaritatea pentru că


ambele vârfuri sunt pe câte o față, și această muchie nu a existat înainte pentru că nodurile
adiacente sunt în componente diferite.

Să presupunem că este conex, dar nu biconex și are un nod de articulație care


aparține componentelor biconexe . Găsiți muchiile incidente la în sens orar.
La un moment dat, trebuie să fie un punct de tranziție între o muchie dintr-o componentă
biconexă și o muchie într-o altă componentă biconexă, să presupunem că sunt 2 muchii
consecutive și cu și . Atunci putem adăuga muchiile ;
acestea nu vor putea strica planaritatea pentru că și sunt vecini consecutivi ai lui , iar
această muchie nu exista înainte pentru că și aparțin componentelor biconexe diferite.

În final putem presupune că este biconex, dar nu triconex și are o pereche de


tăieturi (numim tăietură (cut) în graf o partiție a mulțumii în 2 submulțimi nevide
)

Atunci să fie componentele conexe a lui și să fie subgraful lui


indus de către și vârfurile lui . Orice muchie aparține unuia dintre
grafurile .

Să urmărim muchiile incidente lui în sens orar începând de la (dacă există) și


de la muchie aleasă oarecare. Următoarea muchie aparține unui subgraf, să spunem . Apoi
urmărim muchiile până găsim prima muchie care nu aparține lui . Această muchie
nu poate fi , pentru că nu am găsit încă nici o muchie aparținând lui , iar altminteri
nu am mai căuta. Așadar ar aparține altui graf decât , să zicem . Atunci să
fie muchia anterioară lui , în sens orar.
Apoi putem adăuga o muchie ; aceasta nu poate strica planaritatea pentru că
și sunt vecini consecutivi lui . Această muchie nu a existat înainte, deoarece altminteri
și ar fi în aceași componentă a și deci aceluiași subparagraf.

Vezi Figura 16.2 pentru o ilustrare a acestui exemplu. În mod special această lemă arată că
fiecare graf triangulat are o includere planară unică în teorema lui Whitney

Figura 16.2 Un graf triangulat este 3-conex, altfel putem adăuga o muchie

Avertisment: Numele de ”graf triangulat” este utilizat des în literatură.

 Noi folosim acest termen pentru grafurile planare ale căror fețe sunt triunghiuri.
Oriunde posibil vom scrie ”graf triangulat planar” pentru claritate.
 Unele referințe (de exemplu [Gol80] se referă la grafurile cordale ca grafuri
triangulate, deoarece în mare parte pentru fiecare ciclu, avem o coardă și deci cel mai
scurt ciclu indus trebuie să fie un triunghi.
Nu este absolut nici o asemănare între grafuri cordale și grafuri triangulate planar: sunt
multe grafuri care sunt cordale dar nu sunt triangulate planar ( ex. orice arbore) și sunt
multe grafuri care sunt triangulate planar dar nu sunt cordale (ex. o dublă piramidă).
 O a treia utilizare a ”triangulat” ( sau în mod specific, ”triangulare”) provine de la
geometria computațională, grafic și simularea numerică. Aici, o triangulare se referă la
un set de puncte în și serie de muchii drepte între ele în așa fel încât toate fețele
interioare sunt triunghiuri. Este relativ asemănătoare cu grafurile triangulate planar,
dar nu se cere ca și fețele exterioare să fie triunghiuri. ( În mod special, triangularea
trebuie să fie 3-conex). Ne vom referi câteodată la aceste grafuri ca grafuri triangulate
interne planare. Iar o triangulare are în mod general o figură asociată cu ea, în timp
ce un graf triangulat planar este definit doar prin includere planară.
Figura 16.3 Un graf cordal care nu este un graf triangulat planar;un graf triangulat
planar care nu este cordal; și o triangulare

16.2 Realizarea grafurilor triangulate


Pentru unele utilizări ( ex. limitele arboricității (numărul minim de păduri în care
muchiile pot fi partiționate într-un graf neorientat) și desenarea unui graf - vezi mai târziu), ar
fi util să știm cum să triangulăm un graf planar. Sunt numeroase operații cu grafuri prin care
aceștia să devină un graf triangulat:

 Adăugându-se doar muchii,


 Adăugându-se atât muchii cât și vârfuri, sau
 Adăugându-se vârfuri și muchii incidente cel puțin unui vârf nou.
Aici am trasat un contur al unei prime metode, ceea ce desigur implică că există și o a doua
metodă. A treia este lăsata ca exercițiu.
Vom proceda în pași. Primul pas este acela de a face un graf conex adăugându-i
muchii; este evident cum trebuie făcut asta pentru a nu-i strica planaritatea (se adaugă muchii
între vârfuri pe fețele exterioare ale componentelor conexe).În al doilea pas vom face graful
biconex adăugând muchii, iar într- un final îl vom triangula (și deci triconex). Toate operațiile
acestea mențin simplitatea, adică nu vom adăuga bucle sau muchii multiple.

Teorema 16.4 Fie un graf planar conex simplu cu . Atunci putem găsi un set de
muchii în așa fel încât este un graf planar simplu biconex.

Demonstrație: Vom proceda în funcție de numărul componentelor biconexe al lui ; dacă


are doar o componentă biconexă atunci este biconex și am terminat.
Așa că vom presupune că are un punct de articulație . Să face o incluziune
arbitrară planară a lui . În timp ce urmărim muchiile în jurul lui , trebuie la un moment
dat să avem muchii în componenta biconexă , iar apoi alte muchii în altă componentă
biconexă .Fie ca ultima muchie ( în sens anti-orar) în , iar următoare
muchie în sens anti-orar; atunci aparține . Adăugând muchia nu strică
planaritatea, din moment ce și sunt vecini consecutivi ai lui . De asemenea, muchia nu
putea să preexiste, din moment ce și aparțineau unor componente biconexe diferite de
. În final, adăugând această muchie cele 2 componente biconexe se unesc într-o singură
componentă și astfel graful are acum mai puține componente biconexe și am terminat
inducția.
Figura 16.4 Unirea a două componente biconexe prin adăugarea unei muchii
Algortimul folosit în demonstrația acestei teoreme poate fi implementat în timp.
Înainte să mai facem o metodă de triangulare a grafurilor (dar mai complicată), avem nevoie
de o simplă observație.
Lema 16.5 Fie un graf biconex. Atunci fiecare circuit al unei fețe este un ciclu, adică pe o
față nu va apărea mai mult de un vârf.

Demonstrație: ( Schematic) Nu este greu să verificăm că dacă apare pe un circuit al unei fețe

de două ori, atunci este un punct de articulație. Vedeți Figura 16.5

Teorema 16.6 Fie un graf planar biconex simplu cu . Atunci putem găsi un set de
muchii în așa fel încât este un graf simplu, triangulat și planar.

Figura 16.5: Dacă un vârf apare mai mult de o dată pe o față, atunci este un punct de
articulație

Demonstrație: Fie o față cu gradul și cu vârfurile (vezi Figura 16.6 (a). Cel
mai simplu mod de a face fața triangulată este acela de a adăuga muchii
(liniile punctate din Figura 16.6(b)). Dar această metodă nu
funcționează întotdeauna, pentru că ar putea fi deja o muchie pentru , iar
astfel s-ar adăuga muchii multiple (vezi linia punctată din Figura 16.6(b)).
Figura 16.6: Crearea unui graf triangulat planar

Să presupunem că avem o muchie pentru în graf. Asta implică că


nu este o muchie, pentru că nu putem face un drum fără să încălcăm planaritatea sau fața .
(O mai precisă argumentație ar fi următoarea : să presupunem că este o față, iar și
sunt ambele muchii. Se adaugă un vârf nou în cadrul feței și o face conexă către
; acesta nu va distruge planaritatea din moment ce este o față. Acum drumul
feței, împreună cu vârful și cu muchiile și vor forma o subdiviziune a lui
care este o contradicție într-un graf planar. Știm cu siguranță că este , deoarece știm că nici
unul din vârfurile nu pot fi același vârf din moment ce graful este biconex.)

În mod similar putem arăta că nici una din muchiile și


nu pot exista. Adăugăm toate aceste muchii feței (liniile
punctate din Figura 16.6 (c)). Acestea împart fața în triunghiuri

Luăm altă față cu gradul și vom urma aceași procedură. În acest fel, prin inducție, tot
graful devine triangulat.

Algoritmul 1 Triangulați un Graf Planar

1: fixați un includere a unui graf oarecare


2: for toate fețele în această includere do
3: if deg then
4: Let să fie un vârf cu un grad minim în
5: Let să fie vârfurile rămase ale în sens orar
6: Marcați toți vecinii lui în graf
7: if niciunul din este marcat then
8: Add muchii
9: else
10: {(say este marcat)}
11: Add muchii
12: Add muchii
13: end if
14: Unmark toți vecinii lui
15: end if
16: end for

Mai sus am dat un pseudo-cod pentru un algoritm care va triangula grafuri planare. Diferă
puțin de metoda din demonstrația Teoremei 16.6. Anterior, am lăsat (Linia 4) să fie un vârf
aleatoriu pe o față, dar în această metodă alegem un vârf cu un grad minim nu unul aleator.
Acesta este necesar pentru a reduce timpul și complexitatea codului

Obiectivul nostru este acela de a arăta că algoritmului îi ia timp, ceea ce nu era evident
deloc. Găsirea tuturor fețelor poate fi făcut în timp. De asemenea, pentru fiecare față
trebuie să găsim vârful de minim grad, care poate fi făcut în timp. Acum pentru
fiecare față , trebuie să marcăm și demarcăm vecinii vârfului de grad minim. Asta durează
timp, unde este vârful de grad minim din . Este posibil ca , așa că
vom fi nevoiți să arătăm că peste toate fețele timpul să nu fie prea mare. Restul de operații pe
fiecare față ia timp, așa că timpul total de rulare este proporțional cu

din moment ce , nu trebuie decât să ne

uităm la al doilea termen din acest timp de rulare, în mod special să găsim o limită pentru

Asta se face în mod repetat aplicând limitele superioare. Ca prim pas, observați că

Din moment ce fiecărei muchie îi aparține exact 2 fețe putem spune că:

Acum avem o expresie care nu mai depinde de planaritate. Pentru grafuri generale, această
expresie poate fi foarte bine cubică (ex. pentru un graf complet), dar nu pentru grafurile
planare, în acest caz putem arăta că este cel mul liniar. Pentru a face asta, avem nevoie de
noțiunea de arboricitate.

Definiția 16.7 Fie un graf. Spunem că are arboricitate dacă și dacă există
păduri pe vârfurilelui în așa fel încât

Figura 16.7: Un graf cu o arboricitate de cel mult 3. Cele 3 păduri sunt marcate cu linii
punctate, întrerupte și continue
Arboricitatea poate fi folosită ca limită a timpului de rulare pentru triangularea grafului din
cauza următorului rezultat:

Lema 16.8 Pentru oricare graf ,

Demonstrație: Fie muchia-disjunctă pădurilor cum ar fi .


Putem orienta muchiile fiecărei în așa fel încât orice vârf are cel puțin o muchie incidentă
pe , adică . (În cele ce urmează, desemnează gradul vârfului în
graful .) Acum vom analiza suma pentru fiecare muchie dintr-o pădure . Înlocuim gradul
minim în expresie cu nodul destinație a muchiei orientate și avem
.

Cât de des apare în această sumă? Ori de câte ori există muchii incidente în . Dar
are cel mult o muchie incidentă! Așa că,

Din moment ce fiecare muchie aparține unei singure păduri, putem acum face suma tuturor
muchiilor prin însumarea pădurilor și obținem

după cum am vrut.

Acum ne întoarcem la algoritmul de triangulare

Teorema 16.9 Oricare graf planar simplu poate fi triangulat prin adăugarea de muchii. Un
asemnea set de muchii poate fi găsit în timp.

Demonstrație: Am scris mai devreme algoritmul și am analizat timpul de rulare al lui ca fiind
proporțional cu ,și după cum știm din Lema 16.8 că este cel

mult .Dar nici aceasta nu este liniară în general (de exemplu, graful complet
are o arboricitate n/2), dar după cum vom vedea în curând, grafurile planare au o arboricitate
de cel mult 3, și prin urmare rezultă .

16.3 Ordonarea canonică

Acum vom introduce noțiunea de ordonare canonică, ceea ce este o noțiune utilă pentru
crearea unui graf cât și pentru alte aplicații. În cele ce urmează, atunci când ne vom referi la
un graf triangulat planar, vom presupune că includerea planară este fixă (adică este doar una
din moment ce graful este triconex), iar o față exterioară este aleasă.

Definiția 16.10 O ordonare canonică este o ordonare a vârfurilor a unui graf


triangulat planar în așa fel încât sunt pe fețele exterioare, iar pentru toate cu
, graful indus de către este 2-conex și este pe fața exterioară
a lui .

Figura 16.8 ne arată un exemplu de ordonare canonică și ilustrează cum este adăugat
grafului .

Definiția originală a ordonărilor canonice (vezi [FPP90]) menționează mai multe condiții în
privința ordonării, dar toate respectă cele listate în cele ce urmează:

Lema 16.11 Fie un graf triangulat planar cu ordonarea canonică . Atunci pentru
oricare , următoarele condiții se mențin:

1. Fețele exterioare a lui conțin muchiile .

2. are cel puțin 2 predecesori.

3.Fiecare este o față exterioară a lui .

4.Fiecare față interioră a lui este o față a lui . este triangulat în interior.

Figura 16.8: Un exemplu de ordonare canonică și modul în care este adăugat lui

5. Vecinii lui formează un interval (adică drum) pe fața exterioară a lui .

6. ar cel puțin un succesor.


Demonstrație: (1) se respectă deoarece fețe exterioare sunt . Și condiția (2) este
respectată din cauză că este 2-conex și are vârfuri, deci are cel puțin 2 vecini în
graful , iar aceștia sunt predecesorii lui .

Numărul (3) este dovedit prin inducție. este pe fața exterioară al lui , care face parte
din fața exterioară a lui din moment ce este pe fața exterioară a lui . Folosind
inducția matematică, fața exterioară a lui este parte a lui și implicit și . Condiția (4)
este și ea simplu de demonstrat plecând de la (3). Din moment ce toate vârfurile în
aparțin feței exterioare a lui , toate fețe interioare a lui sunt neschimbate în . Iar
fiind triangulat, toate fețele interne ale lui sunt și ele triangulate.

(5) asemenea condiției (4). Din moment ce este pe fața exterioară a lui și deci toți
vecinii din trebuie să fie pe fața exterioară a lui .Când adăugăm muchii din către
vecinii lui în , creăm fețe interioare lui . Conform lui (4) acestea trebuie să fie
triunghiuri și deci fiecare vecin consecutiv lui trebuie să îi fie adiacent și formează un
drum pe fața exterioară a lui .

(6) asemenea lui (5). Întrucât , vârful nu aparține unei feței exterioare
a lui , dar aparține feței exterioare a lui . Astfel la un moment dat vârful
trebuie să dispară de pe fața exterioară, de exemplu când adăugăm vârful . Conform
(5), vârful este adiacent lui și deci succesor lui .

Observăm că ordonarea canonică este un tip de sortare-st, deoarece fiecare vârf are un
predecesor și un succesor și este muchie. Dar ordonarea canonică are și ceva în plus,
pentru că fiecare vârf (cu excepție primelor 2) au doi predecesori. Sunt multe generalizări ale
acestei idei (pentru grafurile triangulate 4-conex), dar nu vom aprofunda asta ; vezi [KH97].

În primul rând trebuie stabilit dacă o ordonare canonică există. Ea există, indiferent
cum este aleasă fața exterioară.

Teorema 16.12 Fie un graf triangulat planar și fața exterioară a lui . Atunci o
ordonare canonică a lui va exista în așa fel încât și

Demonstrație: Vom arată folosind inducție inversă, adică vom arată cum să îi alegem lui
un vârf care să satisfacă condițiile.

Avem egalitatea , atunci . Dat fiind că este pe fața exterioară a


lui , este și pe fața exterioară a lui . De asemenea, este biconex din cauză faptului
că este triangulat și prin urmare 3-conex. Așa că se respectă condițiile. Să facem observația
că este pe fața exterioară a lui ; vom menține aceasta pentru toate grafurile pe
care le vom construi.

Să presupunem și am ales încât este 2-conex și


are pe fața exterioară. Alegem și în așa fel încât ele sunt pe fața exterioară a
lui , ceea ce implică că este triangulat intern conform Lemei 16.11.

Acum dorim să alegem pe fața exterioară a lui încât și este 2-conex.

Nu orice vârf poate fi ales pe fața exterioară al lui ; vezi Figura 16.9

Figura 16.9: Alegerea lui ar determina ca nu ar fi 2-conex

Pentru a ne asigura că este 2-conex, suntem nevoiți să alegem ca vârf pe o față


exterioară care nu e sau și nu este incident pe o coardă. Am menținut că întotdeauna
există un asemnea vârf. Este evident acest lucru dacă nu ar fi coarde pentru . Dacă există
corzi, fie ca fața exterioară . Fie ca să fie coarda care reduce la
minim (În Figura 16.9, avem un și .) Acum să considerăm vârful . Din
moment ce sunt o coardă care reduce la minim știm că nu există oricare altă
coardă între vârfurile . Din moment ce graful este planar nu poate exista o
coardă între și un vârf în afară intervalului .Dat fiind că și
, poate fi ales ca vârf ,.

În acest mod, pute găsi toate vârfurile . În final, rămânem cu 2 vârfuri ( care sunt și
) și le fixăm ca și .

S-ar putea să vă placă și