Sunteți pe pagina 1din 23

Tema 4

Grafuri Conexe
1.Grafuri conexe
2.Grafuri tare conexe.
3.Descompunerea in componente conexe si tare conexe
Grafuri conexe
Definiție. Graful neorientat G = ( X,U ) se numeste conex dacă si numai
dacă oricare ar fi două noduri x, y∈ X , x ≠ y , există cel puțin un lanț în
G , L =(x,x0, x1 ,..., xr, y) de extremități x si y .

Definiție. Fie G = ( X,U ) un graf neorientat. Numim componenta


conexă a lui G , un subgraf conex C = (Y,V ) al său, si pentru orice x∈Y ,
subgraful obținut, luând mulțimea de vârfuri Y \{x} , nu este conex
(subgraful C este maximal în raport cu proprietatea de conexitate).
Observatie. La adugarea unui varf și a muchiilor adiacente, graful nu va
mai fi conex.
Exemplul. Considerăm graful neorientat G = ( X,U ) , unde
X = {1,2,3, 4,5,6,7} si U = {{1,2},{1,3},{2,3},{4,5},{5,1},{6,7}}
Se poate observa că mulțimea de varfuri se poate partaja in două
submulțimi intre care nu există nicio muchie si anume X1={1,2,3, 4,5 } si
X2 = {6,7} . In urma acestei partiții se produce si o partiție a mulțimii de
muchii in U1 = {{1, 2 },{1,3 }, {2,3}, {4,5}, {5,1}} si U2={{6,7}}
Deoarece nu există muchii intre elementele lui X1 si X2 , inseamnă că nu
pot exista lanțuri intre x∈ X1 si y∈ X2 si de aici rezultă că G nu este un
graf conex. Subgrafurile G1 = (X1 ,U1 ) si G2 = (X2 ,U2) sunt grafuri conexe
si astfel reprezintă componentele conexe ale grafului G .
Observație:
1) Orice graf ne conex conține cel puțin doua
componente conexe.
2) Componentele conexe ale unui graf sunt disjuncte
3) Componentele conexe ale unui graf constituie o
partitie a mulțimii vârfurilor grafului.

Partiție –mulțime formată din submulțimi ale unei mulțimi date,


disjuncte două câte două și a căror reuniune este mulțimea dată
Propoziție Fie G = ( X,U ) un graf în care |X| = n , |U| = m si n ≥ 2
. Dacă G este conex, atunci m ≥ n −1.
Grafuri tare conexe

Definiție. Graful orientat G = ( X,U ) se numeste conex dacă si numai


dacă oricare ar fi două noduri x, y∈ X , x ≠ y , există cel puțin un lanț în
G , L =(x0, x1,..., xr ) de extremități x si y .

Definiție. Graful orientat G = ( X,U ) se numeste tare conex dacă si


numai dacă oricare ar fi două noduri x, y∈ X , x ≠ y , există cel puțin un
drum în G , d=(x =x0, x1,..., xr = y) de extremități x si y .
Exemplul. Considerăm un graf orientat G = ( X,U ) , unde X = {1, 2,3,4,5}
si U = {(1, 2),(1,3),(2,3),(2, 4), (2,5), (3, 4), (4,1),(5,1),(5,3), (5,4)} Putem
vedea că există un lanț: L = {(1, 2), (2,3), (3, 4),(5,4)} = [1, 2,3,4,5] care
conține toate varfurile si astfel se poate ajunge intre oricare două
varfuri prin lanțuri. Astfel, rezultă că graful orientat G este conex.
Exemplul. Sa verificam dacă este tare conex.
Să considerăm varful 1. Putem forma următoarele drumuri cu
extremitatea inițială 1: D1,1 = (1, 2, 4,1 ), D1,2 = (1,2 ) , D1,3 = (1, 2,3), D
1,4= (1,2,4 ) si D1,5 = (1, 2,5 ).
Exemplul. Pentru varful 2, : D2,1 = (2, 4,1), D2,2 =(2, 4,1, 2), D2,3 =(2,3),
D2,4 =(2, 4), D2,5 = (2,5).
Similar, pentru varful 3 avem: D3,1= (3,4,1) , D3,2 =(3, 4,1, 2 ),
D3,3 = (3,4,1,2,3) , D3,4 =(3,4) , D3,5 = (3,4,1,2,5) .
Exemplul. Pentru varful 4 putem construi: D4,1 = (4,1 ), D4,2 =(4,1, 2 ),
D4,3 =(4,1,3 ) , D4,4 = (4,1, 2, 4 ), D4,5 =(4,1,2,5) .
Pentru varful 5 construim drumurile: D5,1= (5,1) , D5,2 = (5,1,2) , D5,3 =
(5,3), D5,4 =(5,4 ) , D5,5 =(5,1,2,5) .
Am arătat astfel că din orice x∈ X se poate ajunge printr-un drum la
orice y∈ X si astfel, graful G este tare conex.
Propoziția. Fie G = ( X,U ) un graf orientat. G este tare conex dacă si
numai dacă există un circuit C care conține toate vârfurile grafului.

Propoziție Fie G = ( X,U ) un graf neorientat fără vârfuri izolate. Atunci G


este eulerian dacă si numai dacă G este conex si pentru orice x∈ X , d(x)
este număr par.
Descompunerea în componente conexe.
• A descompune un graf in componente conexe inseamna a determina
toate componentele conexe ale grafului.

• A determina componenta conexa a unui varf x presupune a determina


toate varfurile accesibile din varful x; deci este suficient sa realizam o
parcurgere a grafului cu varful de start.

• Pentru a descompune graful in componente conexe, se va realiza cate


o parcurgere pentru fiecare componenta conexa (selectand ca varf de
start varful nevizitat avand numar minim).
Verificarea tare conexității unui graf orientat poate fi privită ca
un caz particular al determinării componentelor tare conexe,
deoarece, dacă graful are o singură componentă tare conexă
atunci el este tare conex.

Definiție: Fie G=(X,U) un graf orientat. Se numește graf


transpus al lui G graful orientat GT=(X,UT), cu aceleași
mulțimea a nodurilor și pentru orice pereche de noduri are
loc: (x,y) este arc în G dacă și numai dacă (y,x) este arc în GT.
Algoritmul Plus-Minus
• Pentru fiecare nod x al grafului care încă nu a
fost plasat într-o componentă tare conexă:
• determinăm toate nodurile în care se poate ajunge din x,
folosind graful G și le marcăm într-un tablou cu plus;
• determinăm toate nodurile din care se poate ajunge în x,
folosind graful GT și le marcăm într-un tablou cu minus;
• nodurile marcate atât cu plus, cât și cu minus, împreună
cu x formează o componentă tare conexă;
Exemplu. Incepem parcurgerea in G si in GT din varful 6.

S-au marcat cu plus nodurile: 5 7 8 S-au marcat cu minus nodurile: 1 2 3 4 5 7 8

Nodurile marcate de două ori, 5 7 8, împreună cu nodul inițial, 6, formează o


componentă tare conexă. Prima componentă conexăȘ: {6,5,7,8}
Exemplu. Incepem parcurgerea in G si in GT din varful 4.

+ + -

+
-

S-au marcat cu plus nodurile: 1, 2,3 S-au marcat cu minus nodurile: 1 3

Nodurile marcate de două ori, 1,3 împreună cu nodul inițial, 4, formează o


componentă tare conexă.
A doua componentă conexă: {1,3, 4}
Componentele tare conexe determinate:
{1,3,4}, {2}, {5,6,7,8},
Algoritmul lui Kosaraju
În timpul parcurgerii în adâncime a unui graf se pot atașa
fiecărui vârf două marcaje de timp:
Timpii de descoperire a vârfurilor d[x] – momentul când
vârful x este descoperit

Timpii de finalizare a vârfurilor f[x] – momentul când se


termină de vizitat vecinii lui x (si toți descendenții lor), iar
vârful x este vizitat final
k 1 2 3 4 5 6 7 8 9
d[k] 3 2 9 4 1 5 12 13 14
f[k] 8 11 10 7 18 6 17 16 15
Algoritmul lui Kosaraju
Graful orientat inițial

k 1 2 3 4 5 6 7 8
d[k] 9 10 12 13 2 1 3 4
f[k] 16 11 15 14 8 5 7 6
Algoritmul lui Kosaraju
Graful orientat inițial
În urma parcurgerii în adâncime
a grafului inițial G nodurile în
ordinea finalizării sunt:

k 1 2 3 4 5 6 7 8
d[k] 9 10 12 13 2 1 3 4
f[k] 16 11 15 14 8 5 7 6
Algoritmul lui Kosaraju
Graful orientat inițial Graful orientat transpus

Parcurgem graful transpus GT analizând nodurile în ordinea inversă a timpilor


de finalizare:
• nodul 1; se vizitează nodurile 3 4; ------- componenta tare conexă {1,3,4};
• continuăm cu nodul 2 (nodurile 1, 3 și 4 au fost vizitate mai devreme); nu pot
fi vizitate alte noduri; ----------- componenta tare conexă {2};
• continuăm cu nodul 5; se vizitează nodurile 6 8 7; -----componenta tare
conexă {5, 6, 7, 8}.

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