Sunteți pe pagina 1din 43

Cursul 12

Cuplaje. Sisteme de reprezentanti distincti. Arbori de acoperire.


Enumerarea tuturor arborilor cu numar fixat de noduri

Decembrie 2014

Cursul 12

Cuprinsul acestui curs

Cuplaje
Cuplaj perfect, maxim, maximal
Cale M-alternanta, M-cale de crestere
Teorema lui Berge. Teorema lui Hall.

Sisteme de reprezentanti distincti (SDR)


Arbori de acoperire
Algoritmul lui Kruskal

Enumerarea tuturor arborilor cu n noduri


Secvente Pr
ufer

Cursul 12

Cuplaje
Definitii (1)

Se consider
a dat un graf simplu neorientat G = (V , E ).
Un cuplaj n G este o multime de muchii M n care nici o
pereche de muchii nu are un nod comun. Nodurile adiacente
la muchiile din M se numesc noduri saturate de M (sau
M-saturate). Celelalte noduri se numesc M-nesaturate.
Exemplu
a

a
c

b
d

b
f

g
M1 = {(a,b),(c,e),(d,f)}
Noduri M1 -saturate: a,b,c,e,d,f

M2 = {(a,b),(c,d)}
Noduri M2 -saturate: a,b,c,d
Cursul 12

Definitii (2)
Un cuplaj perfect al lui G este un cuplaj care satureaza toate
nodurile lui G .
Un cuplaj maxim al lui G este un cuplaj care are cel mai mare
numar posibil de muchii.
Un cuplaj maximal al lui G este un cuplaj care nu poate fi
largit prin adaugarea unei muchii.
Exemplu (Cuplaje maxime si maximale)
a
c
e

Cuplaje maxime?

d
g

h
i
j

Cursul 12

Definitii (2)
Un cuplaj perfect al lui G este un cuplaj care satureaza toate
nodurile lui G .
Un cuplaj maxim al lui G este un cuplaj care are cel mai mare
numar posibil de muchii.
Un cuplaj maximal al lui G este un cuplaj care nu poate fi
largit prin adaugarea unei muchii.
Exemplu (Cuplaje maxime si maximale)
a
c
e

Cuplaje maxime?

d
g

M1 = {(a,e),(b,f),(c,d),(g,h)}

i
j

Cursul 12

Definitii (2)
Un cuplaj perfect al lui G este un cuplaj care satureaza toate
nodurile lui G .
Un cuplaj maxim al lui G este un cuplaj care are cel mai mare
numar posibil de muchii.
Un cuplaj maximal al lui G este un cuplaj care nu poate fi
largit prin adaugarea unei muchii.
Exemplu (Cuplaje maxime si maximale)
a

b
c

d
g

h
i

Cuplaje maximale?

Cursul 12

Definitii (2)
Un cuplaj perfect al lui G este un cuplaj care satureaza toate
nodurile lui G .
Un cuplaj maxim al lui G este un cuplaj care are cel mai mare
numar posibil de muchii.
Un cuplaj maximal al lui G este un cuplaj care nu poate fi
largit prin adaugarea unei muchii.
Exemplu (Cuplaje maxime si maximale)
a

b
c

d
g

h
i

Cuplaje maximale?

M2 = {(d,g),(a,f),(b,c)}

Cursul 12

Definitii (3)

Definitie (Cale M-alternanta, cale M-cale de crestere)


Daca se da un graf G si un cuplaj M, o cale M-alternanta este o
cale n G n care toate muchiile alterneaza ntre M-muchii si
non-M-muchii. O M-cale de crestere este o cale M-alternanta care
are ambele capete M-nesaturate.

Cursul 12

Definitii (3)

Definitie (Cale M-alternanta, cale M-cale de crestere)


Daca se da un graf G si un cuplaj M, o cale M-alternanta este o
cale n G n care toate muchiile alterneaza ntre M-muchii si
non-M-muchii. O M-cale de crestere este o cale M-alternanta care
are ambele capete M-nesaturate.
Exemplu
b

M-cale alternanta: (c,a,d,e,i)


M-cale de crestere: (j,g,f,a,c,b)

Cursul 12

Teorema lui Berge


Teorema
Un cuplaj M al unui graf G este maxim dac
a si numai dac
a G nu
contine M-cai de crestere.
Demonstrat
ia lui . Presupunem ca M este un cuplaj maxim.
Demonstram prin contradictie ca G nu are M-cai de crestere. Daca
P : (v1 , v2 , . . . , vk ) ar fi o M-cale de crestere atunci, conform definitiei, k
ar trebui sa fie par astfel ncat (v2 , v3 ), (v4 , v5 ), . . . , (vk2 , vk1 ) sunt
muchii din M, iar (v1 , v2 ), (v3 , v4 ), . . . , (vk1 , vk ) nu sunt muchii din M.
v1

v2

v3

v4

v5

v6

vk2

vk1

vk

In acest caz putem defini urmatorul cuplaj M1 al lui G :


M1 = (M \ {(v2 , v3 ), . . . , (vk2 , vk1 )}) {(v1 , v2 ), . . . , (vk1 , vk )}.
Dar M1 contine o muchie mai mult decat M, ceea ce contrazice ipoteza
ca M este maxim.
Cursul 12

Teorema lui Berge


Demonstratia lui

: Daca M nu este maxim, exista un cuplaj M 0 al lui G cu


|M 0 | > |M|. Fie H subgraful lui G definit astfel:
V (H) = V (G )
E (H) =multimea muchiilor ce apar exact o data n M si M 0 .
|M 0 | > |M| H are mai multe muchii n M 0 decat n M.
Orice nod v al lui H apartine la cel mult o muchie din M si la cel mult o
muchie din M 0 degH (v ) 2 pentru toti v V (H)
componentele conexe ael lui H cu mai multe M 0 -muchii decat
M-muchii sunt cai sau cicluri. Daca este ciclu, trebuie sa fie ciclu
par fiindca muchiile alterneaza ntre M-muchii si M 0 -muchii
singurele componente conexe ale lui H care pot contine mai
multe M 0 -muchii decat M-muchii sunt caile.
|M 0 | > |M| exista o cale P n H care ncepe si se termina cu o muchie
din M 0 P este M-cale de crestere, contradictie cu ipoteza.
Cursul 12

Cuplaj n
Daca G este graf bipartit cu multimile partite X si Y , spunem
ca X poate fi cuplat n Y daca exista un cuplaj al lui G care
satureaza nodurile din X .
Vecinatatea N(S) a unei multimi de noduri S este reuniunea
multimilor de noduri adiacente la nodurile din S.
Exemplu

(a) Un graf bipartit unde X poate fi cuplat n Y .


(b) Un graf bipartit unde X nu poate fi cuplat n Y .
De ce se ntampla acest lucru?
Cursul 12

Teorema lui Hall


Teorema
Fie G un graf bipartit cu multimile partite X si Y . X poate fi
cuplat n Y dac
a si numai dac
a |N(S)| |S| pentru toate
submultimile S ale lui X .
Demonstrat
ie. : fie S X . X poate fi cuplat n Y S poate fi cuplat n Y ,
deci |N(S)| |S|.
: Presupunem c
a ar exista un cuplaj maxim M care nu acoper
a un nod u X .

Fie A multimea nodurilor din G ce pot fi conectate la u cu o cale M-alternant


a,
S = A X , si T = A Y .

Cursul 12

Teorema lui Hall


Teorema
Fie G un graf bipartit cu multimile partite X si Y . X poate fi
cuplat n Y dac
a si numai dac
a |N(S)| |S| pentru toate
submultimile S ale lui X .
Demonstrat
ie. : fie S X . X poate fi cuplat n Y S poate fi cuplat n Y ,
deci |N(S)| |S|.
: Presupunem c
a ar exista un cuplaj maxim M care nu acoper
a un nod u X .

Fie A multimea nodurilor din G ce pot fi conectate la u cu o cale M-alternant


a,
S = A X , si T = A Y .

Cursul 12

Teorema lui Hall


Teorema
Fie G un graf bipartit cu multimile partite X si Y . X poate fi
cuplat n Y dac
a si numai dac
a |N(S)| |S| pentru toate
submultimile S ale lui X .
Demonstrat
ie. : fie S X . X poate fi cuplat n Y S poate fi cuplat n Y ,
deci |N(S)| |S|.
: Presupunem c
a ar exista un cuplaj maxim M care nu acoper
a un nod u X .

Fie A multimea nodurilor din G ce pot fi conectate la u cu o cale M-alternant


a,
S = A X , si T = A Y .
Conform Teoremei lui Berge, toate nodurile din T sunt saturate de M, iar u este
singurul nod nesaturat al lui S |T | = |S| 1. Din Teorema lui Berge si definitia lui
T rezult
a c
a N(S) = T . Dar n acest caz avem |N(S)| = |S| 1 < |S|, contradictie.
Cursul 12

Sistem de reprezentanti distincti (SRD)


Definitie
Daca se da o familie de multimi X = {S1 , . . . , Sn }, un sistem de
reprezentanti distincti (sau SRD) pentru multimile din X este o
multime de elemente distincte {x1 , . . . , xn } cu xi Si pentru
1 i n.
Exemplu
Fie S1 = {2, 8}, S2 = {8}, S3 = {5, 7}, S4 = {2, 4, 8}, S5 = {2, 4}.
X1 = {S1 , S2 , S3 , S4 } are SRD {2, 8, 7, 4}
S1 = {2, 8}, S2 = {8}, S3 = {5, 7}, S4 = {2, 4, 8}
X2 = {S1 , S2 , S4 , S5 } nu are un SRD.
Intrebare. In ce conditii are o familie finit
a de multimi un
SRD?
Cursul 12

SRD-uri de familii finite de multimi

Teorema
Fie S1 , S2 , . . . , Sk o colectie de multimi nevide finite. Colectia are
un SRD dac
a si numai dac
a pentru orice t {1, . . . , k},
reuniunea a t astfel de multimi contine cel putin t elemente.
Demonstrat
ie. Fie Y = S1 S2 . . . Sk . Presupunem ca
Y = {a1 , . . . , an } si consideram graful bipartit cu multimile partite
X = {S1 , . . . , Sk } si Y n care exista o muchie de la Si la aj daca si
numai daca aj Si .
Conform teoremei lui Hall, X poate fi cuplat n Y daca si numai daca
t = |A| |N(A)| pentru toate submultimile A = {Si1 , . . . , Sit } ale lui X .

Cursul 12

Arbori de acoperire
Problem
a motivant
a
Departamentul de Transporturi din Carolina de Nord (NCDOT) a decis s
a realizeze o
retea feroviar rapid
a ntre 8 orase din vestul statului. Unele orase sunt deja conectate
cu drumuri, si se doreste plasarea de linii ferate de-a lungul drumurilor existente.
Formele diferite de teren impun costuri diferite de amplasare a c
aii ferate. NCDOT a
angajat un consultant s
a calculeze costurile de construire a unei c
ai ferate de-a lungul
fiec
arui drum de leg
atur
a ntre 2 orase. Consultantul a produs graful ilustrat mai jos,
n care sunt marcate costurile de realizare a fiec
arei conexiuni. Se doreste ca reteaua
feroviar
a s
a fie realizat
a cu cost minim si s
a asigure leg
atur
a ntre orice 2 orase.

Cursul 12

Arbori de acoperire
Problem
a motivant
a

Cursul 12

Arbori de acoperire
Problem
a motivant
a

. Un arbore de acoperire al unui graf G este un arbore care


contine toate nodurile lui G .

Cursul 12

Arbori de acoperire
Problem
a motivant
a

. Un arbore de acoperire al unui graf G este un arbore care


contine toate nodurile lui G .
. Vrem sa gasim un arbore de acoperire T al carui cost total sa
fie minim, adica un arbore minim de acoperire:
Suma costurilor muchiilor lui T suma costurilor muchiilor
oricarui alt arbore de acoperire al lui G .

Cursul 12

Arbori de acoperire
Problem
a motivant
a (continuare)

Cursul 12

Gasirea unui arbore minim de acoperire


Algoritmul lui Kruskal

Se da un graf ponderat si conectat G


(1) Se gaseste o muchie cu pondere minima si se marcheaza.
(2) Se iau n considerate muchiile nemarcate care nu formeaza un
ciclu cu cele marcate:
B se alege o muchie nemarcata care are pondere minima, si
B se marcheaza.

(3) Pasul (2) se repeta pana cand muchiile marcate formeaza un


arbore de acoperire al lui G .

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
45
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
45
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
45
20
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
45
20
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
30
45
20
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
30
45
20
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
30
45
20
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

95

40
20

30
30
45
20
20

10

Cursul 12

Algoritmul lui Kruskal


Pasii algoritmului pentru graful ilustrat

35

25

50
60

30
30

95

40
20

45
20
20

10

35

25
30

50

Greutate totala: 210


40
20
10
Cursul 12

Enumerarea arborilor
Vrem sa enumeram toti arborii cu n noduri.
Consideram ca pozitiile nodurilor sunt fixate si consideram
toate variantele de trasat un arbore ntre nodurile respective.
De exemplu, pentru n = 4 avem 16 arbori etichetati diferiti:

Cursul 12

Enumerarea arborilor
Vrem sa enumeram toti arborii cu n noduri.
Consideram ca pozitiile nodurilor sunt fixate si consideram
toate variantele de trasat un arbore ntre nodurile respective.
De exemplu, pentru n = 4 avem 16 arbori etichetati diferiti:

Cursul 12

Enumerarea arborilor
Teorema lui Cayley. Metoda de enumerare a lui Pr
ufer

Teorema (Teorema lui Cayley)


Exista nn2 arbori distincti cu n noduri.
. Pr
ufer a gasit o metoda de enumerare a tuturor arborilor
etichetati cu 1,2,. . . , n prin intermediul unei corespondente
bijective ntre acesti arbori si multimea secventelor de numere
de n 2 numere ntre 1 si n:
v ,v ,...,v
|1 2 {z n2}

unde 1 vi n

n 2 numere

Observat
ie: Exista nn2 astfel de secvente.

Cursul 12

Enumerarea arborilor
Calculul secventei Pr
ufer pentru un arbore T cu nodurile 1,2,. . . ,n

Se da un arbore T cu nodurile 1, . . . , n
(1) Initial, secventa este vida. Fie i = 0 si T0 = T .
(2) Se cauta frunza lui Ti cu cea mai mica eticheta; fie aceasta v .
(3) Se adauga la secventa eticheta vecinului lui v .
(4) Se sterge nodul v din Ti un arbore mai micTi+1 .
(5) Daca Ti+1 este K2 , ne oprim. Altfel, incrementam i cu 1 si
revenim la pasul (2).

Cursul 12

Metoda lui Prufer


Calculul secventei Pr
ufer

Arbore curent
5
2
3 1
T = T0 4
7
6
5
3 1
T1 4
7
6
5
3 1

T2
7
6
3

T3
T4
T5

secventa curenta

4,3


7
6

3 1
7

1
7

4,3,1
4,3,1,3
4,3,1,3,1
Cursul 12

Enumerarea arborilor
Calculul arborelui T corespunz
ator unei secvente a1 , . . . , ak

Se da o secventa = a1 , a2 , . . . , ak de numere din multimea


{1, . . . , k + 2}
(1) Se deseneaza k + 2 noduri care se eticheteaza cu numerele
1, 2, . . . , k + 2. Fie S = {1, 2, . . . , k + 2}.
(2) Fie i = 0, 0 = si S0 = S.
(3) Fie j cel mai mic numar din Si care nu apare n secventa i .
(4) Se traseaza o muchie ntre nodul j si primul nod din i .
(5) Se elimina primul nod din secventa i secventa i+1 . Se
sterge j din Si si rezulta multimea Si+1 .
(6) Daca secventa i+1 este vida, se traseaza o muchie ntre
nodurile ramase n Si+1 iar algoritmul se termina. Altfel, se
incrementeaza i cu 1 si se revine la pasul (3).

Cursul 12

Metoda lui Prufer


Construirea unui arbore etichetat (1)

v4

= 0 = 4, 3, 1, 3, 1
S = S0 = {1, 2, 3, 4, 5, 6, 7}

1 = 3, 1, 3, 1
S1 = {1, 3, 4, 5, 6, 7}

2 = 1, 3, 1
S2 = {1, 3, 5, 6, 7}

v5

v6

v
7
v
2
v1

v5

v5

v
2
v1

v3

v4

v4

v3

v6

v
7

v3

v
2
v1

v6

Cursul 12

v
7

Metoda lui Prufer


Construirea unui arbore etichetat (2)

3 = 3, 1
S3 = {1, 3, 6, 7}

4 = 1
S4 = {1, 3, 7}

5 este secventa vid


a
S5 = {1, 7}

v3

v4

v1

v5

v4
v5

v
2

v6

v
7

v3

v
2
v1

v6

v4
v5
Cursul 12

v3

v
7
v
2
v1

v6

v
7

Exercitii (1)

1. Pentru toate grafurile de mai jos, cu cuplajele M marcate ngrosat,


gasiti
(a) o cale M-alternanta care nu este M-cale de crestere;
(b) o M-cale de crestere, daca exista,
si n acest caz folositi-o pentru a obtine un cuplaj mai mare.

Cursul 12

Exercitii (2)

(2) Pentru fiecare din familiile urmatoare de multimi sa se


determine daca are un sistem de reprezentanti distincti
(SRD). Daca nu, sa se indice care conditie a teoremei de
existenta a unui SRD este violata.
1
2
3
4

{1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {4, 5}, {1, 2, 5}


{1, 2, 4}, {2, 4}, {2, 3}, {1, 2, 3}
{1, 2}, {2, 3}, {1, 2, 3}, {2, 3, 4}, {1, 3}, {3, 4}
{1, 2, 5}, {1, 5}, {1, 2}, {2, 5}

Cursul 12

Exercitii (3)
1. Sa se foloseasca algoritmul lui Kruskal pentru a gasi arbori
minimi de acoperire ai urmatoarelor grafuri

2. Sa se determine secventa Pr
ufer a arborilor urmatori:

3. Sa se deseneze un arbore a carui secventa Pr


ufer este
3,4,5,5,4,8.
Cursul 12