Sunteți pe pagina 1din 11

Cursul 1

Elemente de teoria grafurilor


În multe probleme de natură teoretică sau practică apare necesară introducerea unor
scheme, ce pot fi reprezentate prin intermediul unor puncte și segmente, eventual arce, săgeți ce
unesc punctele respective. De altfel rețelele electrice, diagramele de organizare din economie,
rețelele de transport dar si fluxurile de materiale pot fi numai câteve dintre exemplele ce
utilizează astfel de scheme.
În cele ce vor urma se va dori familiarizarea cititorului cu noţiunea de graf şi aplicaţiile
acesteia în domeniul economiei si cel al ingineriei. Este bine să precizăm încă de la început că
termenul de ”graf” nu poate fi confundat cu cel de grafic acesti termeni avand semnificatie
diferita. Prima lucrare dedicată teoriei grafurilor a fost scrisă de renumitul matematician
elveţian Euler, în 1736, în scopul rezolvării unor jocuri şi amuzamente matematice.
Ulterior, matematica și aplicațiile ei în diverse domenii ștințifice și nu numai, au dus la
impulsionarea dezvoltării teoriei grafurilor. Utilizarea teoriei grafurilor în domenii variate,
teoretice sau practice, de la probleme economice la fundamentarea deciziilor politice, de la
studiul reţelelor electrice la critica textelor, etc., îi conferă în zilele noastre o importanţă
aparte.
Utilizarea grafurilor în conceperea și realizarea programelor de producţie, investiţii,
transport, desfacere etc. ale unităţilor economice a devenit o necesitate de prim ordin.
În acest prim curs dedicat teoriei grafurilor se vor prezenta câteva dintre conceptele
fundamentale ale teoriei grafurilor, si se va prezenta un prim algoritm pentru rezolvarea
problemelor relative la grafuri.

1.1 Noţiuni fundamentale


Fie X o mulţime nevidă şi cel puţin numărabilă de elemente numite noduri sau vârfuri.

Definiţia 1.1.1 Se numeste graf perechea (X , Γ) , unde Γ ⊆ X × X , adică o mulţime de


perechi ordonate sau neordonate de elemente din X.
Vom spune că elementele mulțimii X se numesc noduri sau vârfuri iar elementele mulțimii
Γ se numesc arce.
Dacă X este o mulţime finită, atunci graful (X , Γ) se numeşte graf finit, În caz contrar
vom spune că avem un graf infinit.

Se poate da pentru graf şi următoarea definiţie echivalentă:

Definiţia 1.1.2 Se numeste graf perechea (X , f) , unde f este o funcţie definită pe X cu valori
în mulţimea P(X) a părţilor (submulţimilor) lui X.

1
Definiţia 1.1.3 Dacă toate perechile distincte din Γ sunt ordonate, graful se numeşte orien-
tat. În cazul contrar, graful se numeşte neorientat.

Pentru un graf orientat (X , Γ) perechea ordonată (x, y) ∈ Γ, x, y ∈X, se numeşte arc, x


fiind extremitatea iniţială, iar y extremitatea finală a arcului. În cazul unui graf neorientat
o pereche neordonată (x, y) ∈ Γ, x, y ∈ X se numeşte muchie. Două vârfuri legate pri intermediul
unui (muchie) se numesc adiacente.
În cele ce vor urma vom lucre numai cu grafuri orientate şi finite, fără a mai specifica
acest lucru, menţionând totuşi în câteva locuri şi denumirea noţiunilor corespunzătoare de
la grafurile neorientate.
Un graf orientat şi finit va fi notat prin (X, Γ), unde X = {x1, x2, . . . , xn} va reprezenta
mulţimea vârfurilor, Γ mulţimea arcelor iar numărul elementelor lui X va reprezenta ordinul
grafului.
Un graf (X , Γ) se reprezintă geometric în modul următor: a) fiecare vârf este
reprezentat printr-un punct din plan; b) fiecare arc (xi, xj) ∈ Γ se reprezintă printr-o linie
(dreaptă sau curbă) care uneşte cele două extremităţi şi pe care se află o săgeată cu sensul
de la xi la xj (vezi fig.1). Dacă xi coincide cu xj, spunem că avem o buclă.

Xi=xj
xi
xj
xj

xi xi bucla

xj
Fig.1

În cazul unui graf neorientat, muchia se reprezintă printr-un arc fără săgeată asa cum
apare cel de-al patrulea arc din figura 1.
Pentru un arc (xi, xj) vârful xi se numeşte predecesorul lui xj, iar xj succesorul lui xi.

Exemplul 1.1.1. Graful (X, Γ) dat prin X = {x1, x2, x3, x4, x5} ,
Γ = {(x1, x2), (x1, x3), (x1, x4), (x2, x3),(x3, x2), (x2, x4), (x3, x4), (x3, x5), (x4, x5)} este
reprezentat în figura 2. În aceeaşi figură este reprezentat şi graful neorientat corespunzător lui.

2
X2
X5
X2 X5

X1 X4 X1

X4
X3
X3

Fig.2

Definiţia 1.1.4 Două arce ale grafului (X , Γ) se numesc adiacente dacă au cel puţin o ex-
tremitate comună.

Definiţia 1.1.5 Într-un graf (X , Γ) mulţimea arcelor cu extremitatea iniţială xi se numeşte


mulţimea arcelor incidente spre exterior şi se notează cu Γ+ 𝑥𝑖 . Mulţimea arcelor incidente
spre interior vârfului xi se va nota cu Γ𝑥𝑖 . Atunci Γxi = Γ𝑥𝑖 .  Γ−
− +
𝑥𝑖 . este mulţimea arcelor
incidente vârfului xi.

Definiţia 1.1.6 Un graf (X , Γ) se numeşte simetric dacă oricare ar fi arcul (xi, xj) ∈ Γ avem
şi (xj, xi) ∈ Γ. Graful (X , Γ) se numeşte antisimetric, dacă există un arc (xi, xj) ∈ Γ astfel încât
arcul (xj, xi) ∉ Γ.

Definiţia 1.1.7 Un graf (X, Γ) se numeşte complet dacă pentru orice xi, xj ∈ X din (xi, xj) ∉ Γ
rezultă (xj, xi) ∈ Γ.

Exemplul 1.1.2. Graful din figura 3 este simetric, cel din figura 4 este antisimetric, iar cel
din figura 5 este complet. X3
X2
X2
x1 x2

X3
X1

x3 x4 X4
X4
X1
X5

Fig.3 Fig.4 Fig.5

3
Definiţia 1.1.8 Fie (X, Γ) un graf. Numim graf parţial al grafului dat, un graf (X, Γ1) , unde
Γ1 ⊂ Γ, adică el se obţine din graful (X, Γ) prin suprimarea unor arce.

Definiţia 1.1.9 Fie (X, Γ) un graf dat. Numim subgraf al grafului dat, un graf (X1, Γ1), unde
X ⊂ X1 şi Γ1 ⊂ Γ.Subgraful ( X1, Γ1) se obţine din graful (X, Γ) prin suprimare a unuia sau a
mai multor vârfuri şi a arcelor aferente lor.

Exemplul 1.1.3. Graful din figura 7 este un graf parţial al celui din figura 6, iar graful din
figura 7’ este un subgraf al celui din figura 6.
x2 x2 x2
x1

x1 x4 x1 x4 x4

x3 x5 x3 x5 x3

Fig.6 Fig.7 Fig.7’

Definiţia 1.1.10 Numim drum într-un graf o succesiune de arce, adiacente două câte două,
la fel orientate, la care extremitatea finală a unui arc coincide cu extremitatea iniţială a
arcului succesor.
Un drum în care extremitatea finală a ultimului arc coincide cu extremitatea iniţială
a primului arc se numeşte circuit.
Un drum se dă prin scrierea între acolade (sau alte tipuri de paranteze) a succesiunii
vârfurilor prin care trec arcele care constituie drumul sau menţionând arcele din care se
compune.

Exemplul 1.1.4. În graful din figura 6 putem considera drumurile:

d1 = {x1, x2, x4, x3}, d2 = {x1, x2, x4, x2, x4, x5}

d3 = {x2, x4, x2}, care este un circuit.

Definiţia 1.1.11 Numărul de arce dintr-un drum se numeşte lungimea lui.

Definiţia 1.1.12 Un drum al unui graf se numeşte elementar dacă fiecare vârf al său este
utilizat o singură dată. În caz contrar, drumul este numit neelementar.
Un drum elementar care trece prin toate vârfurile grafului se numeşte hamiltonian,
iar unul neelementar care are aceeaşi proprietate se numeşte drum nehamiltonian (pre-
hamiltonian).

4
Definiţia 1.1.13 Un drum al unui graf se numeşte simplu dacă utilizează fiecare arc al său
o singură dată. În caz contrar, drumul se numeşte compus.
Un drum simplu care foloseşte toate arcele grafului se numeşte eulerian, iar unul
compus care are aceeaşi proprietate se numeşte drum neeulerian (preeulerian).

Exemplul 1.1.5. În graful din figura 6 drumul d1 = {x1, x2, x4, x3, x5} este hamiltonian, dar
nu este eulerian. Drumul d2 = {x1, x2, x4, x2, x4, x3, x5} este nehamiltonian. Drumul d3 =
{x1, x2, x4, x5} este simplu, iar d4 = {x1, x2, x4, x2, x4, x5} este compus.

Observaţia 1.1.1 Într-un graf neorientat noţiunea de drum este înlocuită cu cea de lanţ ,
iar cea de circuit cu cea de ciclu.

Definiţia 1.1.14 Un graf (X , Γ) se numeşte conex dacă între oricare două vârfuri ale sale
există un lanţ. Dacă între oricare două vârfuri ale grafului există un drum, atunci el se
numeşte tare conex.

Definiţia 1.1.15 Un subgraf conex al unui graf conex se numeşte componentă conexă a
grafului, iar un subgraf tare conex al unui graf tare conex se numeşte componentă tare
conexă.

Se observă că un graf este conex, respectiv tare conex, dacă şi numai dacă el are o
singură componentă conexă, respectiv tare conexă.

Exemplul 1.1.6. În figurile 8 şi respectiv 9 avem reprezentate un graf conex şi respectiv


unul tare conex. În figurile 10 şi 11 avem reprezentate un graf neconex şi respectiv unul
care nu este tare conex. x2 x2
x2
X3
x3 x4 x8

x1 x5 x1 x6 x1 x5

x4 x5 x3 x7
x4
Fig.8 Fig.9 x6 Fig.10
x2

x1 x3

x5

x4 Fig.11 x7

5
Graful din figura 10 are două componente conexe, iar cel din figura 11 are două
componente tare conexe.

Definiţia 1.1.16 Numim arbore un graf conex şi fără cicluri. Numim pădure un graf
neconex şi fără cicluri.

Exemplul 1.1.7. În figura 12 avem un arbore, iar în figura 13 o pădure cu 3 arbori:


x3
x4 x11 x6
x2 x9
x1 x4 x5 x8
x1 x2 x3 x10 x12

x5 x11 x14 x7 x10

x6 x7 x8 x9 x13

Fig.12 Fig.13

Definiţia 1.1.17 Numim arborescenţă un graf fără circuite, în care: a) un vârf şi numai
unul (numit rădăcină) nu este precedat de nici un altul; b) orice alt vârf este precedat de
un singur vârf. Vârfurile care nu au succesori se numesc frunze sau vărfuri suspendate
(terminale).

Cel mai cunoscut exemplu de arborescenţă este ”arborele genealogic”.

Exemplul 1.1.8. În figura 14 avem o arborescenţă cu rădăcina x1 şi cu 6 frunze.

X4 X5

X2 X8 X6

X1 X7

X3 X10 X9

X11

Fig.14

Dacă numărul de vârfuri ale unui graf este mare, atunci reprezentarea geometrică
devine greoaie. De aceea, s-au căutat alte modalităţi de reprezentare. Cea mai convenabilă
6
s-a dovedit a fi cea cu ajutorul matricelor.
Fie (X , Γ) un graf orientat cu X = {x1, x2, . . . , xn}.

Definiţia 1.1.18 Matricea pătratică B = (bij), i, 𝑗 = ̅̅̅̅̅


1, 𝑛, definită astfel

1, 𝑑𝑎𝑐ă (𝑥𝑖 , 𝑥𝑗 ) ∈ Γ
bij = {
0, 𝑑𝑎𝑐ă (𝑥𝑖 , 𝑥𝑗 ) ∉ Γ

se numeşte matricea booleană (asociată) ataşată grafului (X , Γ)

Exemplul 1.1.9. Fie (X , Γ) graful din figura 15.

X2 X4

X1

X3 X5

Fig. 15
Matricea booleană ataşată grafului este

x1 x2 x3 x4 x5
x1 0 1 1 0 0
x2 0 0 0 1 0
B= x3 0 1 0 0 1
x4
0 1 0 0 1
x5
0 0 0 0 0

Definiţia 1.1.19 Matricea pătratică D = (dij), i, 𝑗 = ̅̅̅̅̅


1, 𝑛, definită astfel

1 , 𝑒𝑥𝑖𝑠𝑡ă 𝑑𝑟𝑢𝑚 𝑑𝑒 𝑙𝑎 𝑥𝑖 𝑙𝑎 𝑥𝑗
dij = {
0 , 𝑛𝑢 𝑒𝑥𝑖𝑠𝑡ă 𝑑𝑟𝑢𝑚 𝑑𝑒 𝑙𝑎 𝑥𝑖 𝑙𝑎 𝑥𝑗 ,

se numeşte matricea drumurilor ataşată grafului (X , Γ).

Exemplul 1.1.10. Pentru graful din figura 15 matricea drumurilor este


x1 x2 x3 x4 x5
x1 0 1 1 1 1
D= x2 0 1 0 1 1
x3
x4 0 1 0 1 1
x5 0 1 0 1 1
0 0 0 0 0

7
Definiţia 1.1.20 Matricea pătratică L = (lij), i, 𝑗 = ̅̅̅̅̅
1, 𝑛, definită astfel

𝑥𝑖 𝑥𝑗, 𝑑𝑎𝑐ă (𝑥𝑖 , 𝑥𝑗 ) ∈ Γ


lij ={
0 , 𝑑𝑎𝑐ă (𝑥𝑖 , 𝑥𝑗 ) ∈ Γ

se numeşte matricea latină ataşată grafului (X , Γ).

Exemplul 1.1.11. Pentru graful din figura 15 matricea latină este

x1 x2 x3 x4 x5
x1 0 x1x2 x1x3 0 0
L=
x2 0 0 0 x2x4 0

x3 0 x3x2 0 0 x3x5

x4 0 x4x2 0 0 x4x5

x5 0 0 0 0 0

În rezolvarea unor probleme teoretice sau practice se introduc şi alte tipuri de matrice
ataşate unui graf, care se difinesc în cadrul respectiv.

1.2 Algoritmi pentru rezolvarea unor probleme relative la gra-


furi

În acest paragraf vom prezenta câţiva algoritmi pentru rezolvarea unor probleme
relative la grafuri.

1.2.1 Algoritmul lui Yu Chen pentru aflarea matricei drumurilor


În asigurarea unor algoritmi relativi la probleme de teoria grafurilor avem nevoie de
operaţiile de adunare booleană ( +)̇ şi înmulţire booleană (×̇), definite după cum urmează

+̇ 0 1 ×̇ 0 1

0 0 1 0 0 0

1 1 1 1 0 1

unde 𝑎 +̇ b = max{a,b} , a × ̇ 𝑏 = min{𝑎, 𝑏}.

8
Algoritmul lui Yu Chen are următorii paşi:
Pasul 1. Se scrie matricea booleană B a grafului (X , Γ);
Pasul 2. Se adună boolean la prima linie toate liniile corespunzătoare la vârfurile care au
cifra 1 pe prima linie. Noile cifre de 1 care apar se marchează cu o ∗.
Pasul 3. Se adună boolean la linia întâi toate liniile corespunzătoare vârfurilor care au cifra
1* pe prima linie. Noile cifre de 1 care apar se marchează cu ∗ ∗. Acest pas se continuă până
când nu mai apar cifre noi de 1 pe linia întâi.
Pasul 4. Se aplică paşii 2 şi 3 la fiecare din liniile matricei booleene.
În final, obţine matricea D a drumurilor.
Justificarea algoritmilor este imediată.

Exemplul 1.2.1. Pentru graful din figura 15 să aflăm matricea drumurilor, folosind algorit-
mul lui Yu Chen.
Scriem matricea booleană ataşată grafului

x1 x2 x3 x4 x5
x1 0 1 1 0 0
B= x2 0 0 0 1 0
x3 0 1 0 0 1
x4 0 1 0 0 1
x5 0 0 0 0 0

Aplicând paşii algoritmului obţinem

x1 x2 x3 x4 x5
D= x1 0 1 1 1* 1*
x2 0 1* 0 1 1*
x3 0 1 0 1* 1
x4 0 1 0 1* 1
x5 0 0 0 0 0

care este tocmai matricea găsită la Exemplul 1.1.10.

Exemplul 1.2.2. Pentru graful din figura 9, să determinăm pe rând matricea booleană atașată
grafului, matricea drumurilor, matricea latină și în final aplicând algoritmul lui Yu Chen să
regăsim matricea drumurilor .

9
X1 X2 X3 X4 X5 X6
X1 0 1 1 0 0 0
B= X2 0 0 1 0 0 0
X3 0 0 0 1 1 0
X4 1 0 0 0 1 0
X5 0 0 0 0 0 1
X6 0 0 1 0 0 0

X1 X2 X3 X4 X5 X6
X1 1 1 1 1 1 1
X2 1 1 1 1 1 1
D= X3 1 1 1 1 1 1
X4 1 1 1 1 1 1
X5 1 1 1 1 1 1
X6 1 1 1 1 1 1

X1 X2 X3 X4 X5 X6

X1 0 X1 X1 0 0 0
X2 X3
X2 0 0 X2 0 0 0
X3
X3 0 0 0 X3 X4 X3 X5 0
L=
X4 X4 X1 0 0 0 X4 X5 0

X5 0 0 0 0 0 X5 X6

X6 0 0 X6 X3 0 0 0

Aplicând algoritmul lui Yu Chen regăsim matricea drumurilor .

10
X1 X2 X3 X4 X5 X6

X1 1** 1 1 1* 1* 1**

X2 1** 1*** 1 1* 1* 1**

X3 1* 1** 1* 1 1 1*
D=
X4 1 1* 1* 1* 1 1*

X5 1** 1** 1* 1** 1** 1

X6 1* 1* 1 1* 1* 1*

Bibliografia aferentă cursului: Elemente de teoria grafurilor


[0] Acu, A.M., Acu D., Acu M., Dicu P., Matematici aplicate în economie – Note de curs pentru
învățămîntul la distanță,
http://depmath.ulbsibiu.ro/chair/acu_mugur/manexe/MatematiciAplicateInEconomiePentruIDD.
pdf
[1] Acu, A.M., Acu D., Acu M., Dicu P., Matematici aplicate în economie - Volumul I,
Editura ULB, Sibiu, 2001.

11

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