Sunteți pe pagina 1din 20

Ministerul Educatiei al Republicii Moldova

Universitatea de Stat din Moldova


Facultatea de Matematica si Informatica

Lucrare de laborator [ nr.I ]

Disciplina: Algoritmica Grafurilor


Tema: Mulimi stabile interior
Algoritmul lui Bednarek i Taulbee

Realizat : Sandu Cristian,


Studentul anului-II [Grupa I21]
Verificat : Turcanu Calin

Chisinau 2015

Cuprins
Disciplina: Algoritmica Grafurilor.......................................................................................0

Notiuni introductive............................................................................................................2

Descrierea algoritmul recursiv al lui Bednarek si Taulbee.................................................3

Conditii generale.................................................................................................................4

I.

Programul Algoritmului elaborat in limbajul C++.......................................................5

II. Notarea vrfurilor cu (x) si a muchiilor cu (u) a grafului G......................................11


2.1

Descrierea matricelor de adiacen, inciden i Kirchhgoff.....................................12

2.1.1

Matricea de adiacenta.........................................................................................12

2.1.2

Matricea de incidenta..........................................................................................12

2.1.3

Matricea Kirchhgoff............................................................................................13

2.2

Determinarea numerelor (G ) i (G ) .....................................................................13

2.3

Construirea graful complementar lui G......................................................................14

2.4

Descrierea unui subgraf complet cu numrul maxim de vrfuri a lui G....................14

2.5

Indicarea un lan elementar de lungime maxim si un ciclu elementar (dac exist) 15

2.6

Descrierea tuturor mulimilor.....................................................................................15

2.6.1

a) stabile interior maximale................................................................................15

2.6.2

b) mulimile stabile exterior minimale................................................................16

2.6.3

c) clicele maximale.............................................................................................16

2.6.4

d) acoperirile de vrfuri minimale......................................................................16

2.6.5

e) acoperirile de muchii minimale......................................................................16

2.6.6

f) cuplajele maximale..........................................................................................17

0 , 0 , 1 , 1 , . ...............................................................17

2.7

Determinarea numerelor

2.8

Descrierea pe pai a aplicarii algoritmului din primul punct la graful G..................17

III. Rezolvarea problemelor indicate n variant...............................................................18


3.2

Graful 4......................................................................................................................18

3.3

Probleme teoretice.....................................................................................................18

3.3.1

Problema 7..........................................................................................................18

3.3.2

Problema 18........................................................................................................19

IV. Concluzie..........................................................................................................................20

Notiuni introductive

Perechea X ,U , unde X este o mulime nevid de elemente distincte, iar U este o mulime format
din perechi neordonate de elemente din X , se numete graf neorientat.
Vom nota graful neorientat, determinat de perechea de mulimi X ,U , prin G X ;U . Elementele
lui X i U le numim respectiv vrfuri i muchii ale grafului G. Dac
graful este de ordin n .

X n

, atunci se spune c

u
Fie X {x1 , x2 ,..., x n } i U {u1 , u2 ,..., um } . Dac o muchie j este determinat de perechea de

u x k , xl
vrfuri x k , xl , atunci vom scrie j
. n acest caz, x k i xl sunt considerate extremiti ale

muchiei

uj

i se numesc vrfuri adiacente. Se mai spune c fiecare dintre vrfurile xk i xl este

u
incident muchiei j i reciproc. Adiacena dintre x k , xl se noteaz prin x k ~ xl . Dou muchii se
numesc adiacente, dac sunt incidente unui vrf comun.

O matrice binar

A aij

de dimensiune

nn

mulimea de vrfuri X G x1 , x2 ,..., xn , dac:

se numete matrice de adiacen a grafului G cu

1, n cazul cnd xi x j ,

aij

0, n caz contrar.

Matricea de adiacen a grafului este o matrice simetric cu elementele de pe diagonala principal


egale cu zero. Liniile i coloanele acestei matrici corespund vrfurilor grafului. Numrul de uniti
dintr-o linie (coloan) este egal cu gradul vrfului corespunztor acestei linii (coloane).
Definiia 2. Submulimea de vrfuri A X a unui graf G se numete stabil interior, dac nu
conine dou vrfuri adiacente.
n conformitate cu definiia dat, orice graf G conine mulimi stabile interior.
Definiia 3. Mulimea de vrfuri stabil interior A se numete maximal, dac n graf nu exist o
alt mulime stabil interior H astfel, nct A H .
Mulimea stabil interior maximal A poate fi reprezentat prin relaia:
A (H )

, pentru H X , astfel nct A H .

Descrierea algoritmul recursiv al lui Bednarek si Taulbee


Pentru graful G ( X ;U ) cu n vrfuri, vom nota prin X k mulimea primelor k vrfuri, adic

X k x1 , x 2 ,..., x k

. Prin Lk vom nota familia mulimilor stabile interior maximale n subgraful generat

de mulimea de vrfuri X k , iar prin Yk mulimea tuturor vrfurilor din X k , neadiacente vrfului x k
.
( Yk y k : y nu este adiacent v rfului xk .

Folosind notaiile menionate, toate mulimile stabile interior maximale pot fi gsite cu ajutorul
urmtorului algoritm:
Pasul l. Fixm

1 x1 , L1 x1 , Y1 x1 .

Considerm k 1 .

Pasul 2. Fixm mulimea

x2 , dac x1 ~ x2 ,
x1 , x2 , dac x1 , x2 nu sunt adiacente .

Y2

Pasul 3. Construim familia de mulimi


I k* S M Yk 1 : M

este un element al familiei Lk .

*
Pasul 4. Determinm I k - familia tuturor mulimilor maximale din I k .

*
Pasul 5. Construim familia de mulimi Lk 1 prin examinarea fiecrui element M din Lk :

*
a) dac M Yk 1 , atunci M x k 1 Lk 1 ;
*
b) dac M Yk 1 , atunci M Lk 1 i dac n acest caz se respect i condiia M Yk 1 I k , atunci

*
se mai consider c x k 1 ( M Yk 1 ) Lk 1 .

*
Pasul 6. Determinm Lk 1 - familia tuturor mulimilor maximale din Lk 1 .

Pasul 7. Dac k n 1 , atunci considerm k k 1 i ne ntoarcem la executarea pasului 3. n caz


contrar, Ln conine toate mulimile maximale stabile interior n graful G. STOP.
Opinie proprie:Consider ca e un algoritm foarte eficient, rapid in cautarea multimilor de
virfuri stabile interior maximale in graful neorientat.

Conditii generale

I. Elaborai un program pentru gsirea mulii stabile interior maxime cu algoritmul indicat.

II. Pentru graful G (notai vrfurile grafului cu (x1, x2, ) i muchiile cu (u1, u2, )):
2.1. Descriei matricea de adiacen, matricea de inciden i matricea Kirchhgoff;
3

2.2. Determinai numerele (G ) i (G ) ;


2.3. Construii graful complementar lui G;
2.4. Descriei un subgraf complet cu numrul maxim de vrfuri a lui G;
2.5. Indicai un lan elementar de lungime maxim si un ciclu elementar (dac exist);
2.6. Descriei toate mulimile:
a) stabile interior maximale,
b) mulimile stabile exterior minimale,
c) clicele maximale,
d) acoperirile de vrfuri minimale,
e) acoperirile de muchii minimale.
f) cuplajele maximale.
2.7. Determinai numerele

0 , 0 ,1 , 1 , .

2.8. Descriei pe pai aplicarea algoritmului din primul punct la graful G.

III. Rezolvai problemele indicate n variant


Varianta 9.

1. ] Algoritmul lui Bednarek i Taulbee. 2.] G4;

3.] 7, 18

Elaborai un program pentru gsirea mulii stabile interior maxime cu algoritmul indicat.

I.

Programul Algoritmului elaborat in limbajul C++

#include<iostream>
using namespace std;
int a[7][7], n, Y[20], Intermediar[20], k;
int L[20][20], nL;
int Ls[20][20], nLs=0;
int I[20][20], nI=0;
int Is[20][20], nIs=0;
void afisare(int q[7][7])
{ int i, j;
cout<<"Afisarea matricii:";
for(i=0; i<n; i++)
{ cout<<endl;
for (j=0; j<n; j++)
{
cout<<" "<<q[i][j]; }}}
void intersectia(int *m, int *y, int *Intermediar)
{ int i, j;
Intermediar[0]=0;
for (i=1; i<=m[0]; i++)
{ for (j=1; j<=y[0]; j++)

{ if (m[i]==y[j])
Intermediar[0]++;
Intermediar[Intermediar[0]]=m[i]; }}}
if (Intermediar[0]==0) //daca intersectia este vida
{ Intermediar[0]=1;
Intermediar[1]=0; //vom considera multimea vida=0}}
int include(int *m, int *y)
{ int i, j, t=0, rezultat;
for (i=1; i<=m[0]; i++)}
for (j=1; j<=y[0]; j++)
{ if (m[i]==y[j])
t++; }
if (m[0]==t && m[0]!=0)
rezultat=1;
else
rezultat=0;
return rezultat;}
void construire(int *m, int *oricare)
{ int i;
for (i=0; i<=m[0]; i++)
oricare[i]=m[i];}
void Pasul2()
{ int i;
Y[0]=0;
for (i=0; i<k+1; i++)
{ if (a[k][i]==0)
{ Y[0]++;
Y[Y[0]]=i+1;}}
cout<<endl<<"Vectorul Y "<<k+1;
cout<<endl<<" { ";
for (i=1; i<=Y[0]; i++)
cout<<" x"<<Y[i];
cout<<" }"<<endl;}
void Pasul3()
{
nIs=0;
int i, j;
for (i=0; i<nL; i++)
{
intersectia(L[i], Y, Intermediar);
if (Intermediar[0]>=1 && Intermediar[1]!=0)
{
construire(Intermediar, Is[nIs]);
nIs++;
}
if (Intermediar[0]==1 && Intermediar[1]==0)
{
Is[nIs][0]=1;
Is[nIs][1]=0;
nIs++;
}
}
cout<<"Matricea Is "<<k;
for (i=0; i<nIs; i++)
{
cout<<endl<<" {";
for (j=1; j<=Is[i][0]; j++)
cout<<" x"<<Is[i][j];
cout<<" }";
}
cout<<endl;
}
void Pasul4()
{
nI=0;
int i, j, q, s[20], contor[20], c=0;
for (i=0; i<=20; i++)

s[i]=1;
for (i=0; i<20; i++)
contor[i]=0;
for (i=0; i<nIs; i++)
{
for (j=0; j<nIs; j++)
{
if (i!=j && include(Is[i], Is[j])==1)
s[i]=0;
if (i!=j && include(Is[j], Is[i])==1)
s[j]=0;
if (i!=j && include(Is[j], Is[i])==1 && include(Is[i], Is[j])==1)
{
contor[i]++;
}
}
}
for (i=0; i<nIs; i++)
{
if (s[i]==1)
{
construire(Is[i], I[nI]);
nI++;}}
for (i=0; i<nIs; i++)
{
if (contor[i]>0)
{
for (j=0; j<nIs; j++)
{
if (i!=j && contor[i]==contor[j] && include(Is[i], Is[j])==1 && include(Is[j], Is[i])==1)
{
for (q=0; q<nI; q++)
{
if (i!=q && include(Is[i], I[q])==1)
c++;
}
if (c==0)
{
construire(Is[i], I[nI]);
nI++;
}
c=0; }}}}
if (nI==0)
{
I[0][0]=1;
I[0][1]=0;
nI++;
}
cout<<"Matricea I:"<<k;
for (i=0; i<nI; i++)
{
cout<<endl<<"{";
for (j=1; j<=I[i][0]; j++)
cout<<" x"<<I[i][j];
cout<<" }";
}
cout<<endl;
}
void Pasul5()
{
int i, j, cond1, cond2;
nLs=0;
for (i=0; i<nL; i++)
{
if (include(L[i], Y))
{
construire(L[i], Ls[nLs]);

Ls[nLs][0]++;
Ls[nLs][Ls[nLs][0]]=k+1;
nLs++;
}
else
{
construire(L[i], Ls[nLs]);
nLs++;
intersectia(L[i], Y, Intermediar);
if (Intermediar[0]==1 && Intermediar[1]==0)
{
for (j=0; j<nI; j++)
{
if (I[j][0]==1 && I[j][1]==0)
{
Ls[nLs][0]=1;
Ls[nLs][1]=k+1;
nLs++;}}}
else
{
for (j=0; j<nI; j++)
{
if (include(Intermediar, I[j])==1 && include(I[j], Intermediar)==1 && Intermediar[1]!=0)
{
construire(Intermediar, Ls[nLs]);
Ls[nLs][0]++;
Ls[nLs][Ls[nLs][0]]=k+1;
nLs++;}}}}}
cout<<"Matricea Ls "<<k+1;
for (i=0; i<nLs; i++)
{
cout<<endl<<" {";
for (j=1; j<=Ls[i][0]; j++)
cout<<" x"<<Ls[i][j];
cout<<" }";
}
cout<<endl;
}
void Pasul6()
{
nL=0;
int i, j, q, s[20], contor[20], c=0;
for (i=0; i<20; i++)
s[i]=1;
for (i=0; i<20; i++)
contor[i]=0;
for (i=0; i<nLs; i++)
{
for (j=0; j<nLs; j++)
{
if (i!=j && include(Ls[i], Ls[j])==1)
s[i]=0;
if (i!=j && include(Ls[j], Ls[i])==1)
s[j]=0;
if (i!=j && include(Ls[j], Ls[i])==1 && include(Ls[j], Ls[i])==1)
contor[i]++;
}
}
for(i=0; i<nLs; i++)
{
if (s[i]==1)
{
construire(Ls[i], L[nL]);
nL++;}}
for (i=0; i<nLs; i++)
{

if (contor[i]>0)
{
for (j=0; j<nLs; j++)
{
if (i!=j && contor[i]==contor[j] && include(Ls[i], Ls[j])==1 && include(Ls[j], Ls[i])==1)
{
for (q=0; q<nL; q++)
{
if (i!=q && include(Ls[i], L[q])==1)
c++;
}
if (c==0)
{
construire(Ls[i], L[nL]);
nL++;}}}}}
cout<<"Matricea L "<<k+1;
for (i=0; i<nL; i++)
{
cout<<endl<<" {";
for (j=0; j<=L[i][0]; j++)
cout<<" x"<<L[i][j];
cout<<" }";
}
cout<<endl;
}
main()
{
int i, j;
cout<<"Matricea de adiacenta definita implicit, ( cu nr.de virfuri=7 ) este == > "<<endl;
n=7; // numarul de virfuri al grafului G4 este prestabilt 7
/*int a[7][7] =
{
{0, 1, 0, 0, 0, 1, 1},
{1, 0, 1, 0, 0, 1, 1},
{0, 1, 0, 1, 1, 0, 0},
{0, 0, 1, 0, 1, 1, 0},
{0, 0, 1, 1, 0, 1, 0},
{1, 1, 0, 1, 1, 0, 1},
{1, 1, 0, 0, 0, 1, 0},
};
*/
a[0][0]=0;
a[0][1]=1;
a[0][2]=0;
a[0][3]=0;
a[0][4]=0;
a[0][5]=1;
a[0][6]=1;
a[1][0]=1;
a[1][1]=0;
a[1][2]=1;
a[1][3]=0;
a[1][4]=0;
a[1][5]=1;
a[1][6]=1;
a[2][0]=0;
a[2][1]=1;
a[2][2]=0;
a[2][3]=1;
a[2][4]=1;
a[2][5]=0;
a[2][6]=0;
a[3][0]=0;
a[3][1]=0;
a[3][2]=1;
a[3][3]=0;

a[3][4]=1;
a[3][5]=1;
a[3][6]=0;
a[4][0]=0;
a[4][1]=0;
a[4][2]=1;
a[4][3]=1;
a[4][4]=0;
a[4][5]=1;
a[4][6]=0;
a[5][0]=1;
a[5][1]=1;
a[5][2]=0;
a[5][3]=1;
a[5][4]=1;
a[5][5]=0;
a[5][6]=1;
a[6][0]=1;
a[6][1]=1;
a[6][2]=0;
a[6][3]=0;
a[6][4]=0;
a[6][5]=1;
a[6][6]=0;
afisare(a);
L[0][0]=1;
L[0][1]=1;
nL=1;
for (k=1; k<=n-1; k++)
{
Pasul2();
Pasul3();
Pasul4();
Pasul5();
Pasul6();
}
cout<<endl<<endl<<"Multimile intern stabile maximale sunt:";
for (i=0; i<nL; i++)
{
cout<<endl<<" {";
for (j=1; j<=L[i][0]; j++)
cout<<" x"<<L[i][j];
cout<<" }";
}
cout<<endl<<endl<<"Multimile intern stabile maxime sunt:";
int maximum;
maximum=L[0][0];
for(i=0; i<nL; i++)
{
if (L[i][0]>maximum)
maximum=L[i][0];
}
for (i=0; i<nL; i++)
{
if (L[i][0]==maximum)
{
cout<<endl<<" {";
for (j=1; j<=L[i][0]; j++)
cout<<" x"<<L[i][j];
cout<<" }";
}
}
cout<<endl;
}

10

Dupa executare :

II.

Notarea vrfurilor cu (x) si a muchiilor cu (u) a grafului G

Graful 4.
x1

x2

u1

x3

u2

u5
u10
u11

x7

u3

u8
u12

u9

II.1

u6

x5
u7

x6

u4

x4

Descrierea matricelor de adiacen, inciden i Kirchhgoff

11

II.1.1 Matricea de adiacenta

O matrice binar
de vrfuri

X1

X2

X3

X4

X5

X6

X7

X1

X2

X3

X4

X5

X6

X7

A aij

X G x1 , x2 ,..., xn

de dimensiune n n se numete matrice de adiacen a grafului G cu mulimea

, dac:
1, n cazul cnd xi x j ,

aij

0, n caz contrar.

Matricea de adiacen a grafului este o matrice simetric cu elementele de pe diagonala principal egale cu
zero. Liniile i coloanele acestei matrici corespund vrfurilor grafului. Numrul de uniti dintr-o linie (coloan) este
egal cu gradul vrfului corespunztor acestei linii (coloane).

II.1.2 Matricea de incidenta

U1

U2

U3

U4

U5

U6

U7

U8

U9

U10

U11

U12

X1

X2

X3
X4

0
0

1
0

1
1

0
1

1
0

0
0

0
1

0
0

0
0

0
0

0
0

0
0

X5

X6

X7

B bij
O matrice binar
, de dimensiune n m se numete matrice de inciden a grafului G X ;U ,
X {x1 , x 2 ,..., x n } U {u1 , u2 ,..., u m }
,
, dac :
1, n cazul cnd vrful xi i muchia u j sunt incidente ,

bij

0, n caz contrar.

12

II.1.3 Matricea Kirchhgoff

X1
X1
X2
X3
X4
X5
X6
X7
O matrice binar

A aij

3
-1
0
0
0
-1
-1

X2
-1

4
-1
0
0
-1
-1

X3
0
-1

X4
0
0
-1

3
-1
-1
0
0

3
-1
-1
0

X5
0
0
-1
-1

3
-1
0

X6
-1
-1
0
-1
-1

X7
-1
-1
0
0
0
-1

-1

patratica de dimensiune n n , n=|X| se numete

matricea lui Kirchhoff a grafului G cu elementele :


1, n cazul cnd x i x j (adiacente).

a ij 0, n caz ca nu sint adiacente.


deg xi, cand xi xj .

In matricea lui Kirchhoff suma elementelor oricarei linii si a oricare coloane este = cu zero.

II.2

Determinarea numerelor (G ) i (G )

(G ) - max{deg x}, xX grad maxim.


(G ) - min{deg x}, xX grad minim.

Se numete grad al unui vrf

x numrul de muchii incidente cu vrful respectiv.

(G ) - 5 grad maxim [ x6 -> {u , u , u , u , u } ]


9
12
8
6
7

(G ) - 3 grad minim [ x1-> {u , u , u } ]


1
12
10

II.3
X
1

Construirea graful complementar lui G


X
2

X
3

X
7

X
4

X
6
13

X
5

Graf complementar al grafului G ;U este graful, cu aceeai mulime de vrfui X, n care dou
vrfuri sunt adiacente, dac i numai dac ele nu sunt adiacente n G.
Graful complementar se noteaz prin G .
II.4
Descrierea unui subgraf complet cu numrul maxim de vrfuri a lui G

Subgraf = Dac dintr-un graf G=(X,U) se suprim cel puin un nod mpreun cu muchiile incidente lui, atunci noul
graf G=(X,U), U U si X X se numete subgraf al lui G.
Lexemul complet ne sugereaza faptul ca exist o muchie ntre oricare dou noduri.
Subgraful complet cu numarul maxim de virfuri este: S (X, U):
Unde X={x1, x2, x6, x7} U={u1, u8, u9, u10, u11, u12}.
Concluzie intre oricare 2 noduri exista o muchie si am folosit numarul maxim de virfuri din graful G4.

II.5

Indicarea un lan elementar de lungime maxim si un ciclu elementar (dac


exist)

Fie graful neorientat G=(X, U).

14

Lant al grafului G o succesiune de noduri L=[x1, x2, ..., xk], unde x1,..., xk X, cu proprietatea c [xk-1, xk]
U. ( adic exist muchiile [x1, x2],..., [xk-1, xk] n graful G ).
Ciclu un lan n care primul nod coincide cu ultimul.
Lanul, toate vrfurile cruia sunt distincte dou cte dou, se numete lan elementar.

Ciclul toate vrfurile cruia sunt distincte dou cte dou excepie fcnd primul i ultimul, se numete ciclu
elementar.
Lantul elementar de lungime maxima:

L={ x7, x1, x2, x6, x4, x5, x3 }


Un ciclu elementar in acest graf este:

C={ x1, x7, x6, x5, x3, x2, x1 }


II.6

Descrierea tuturor mulimilor

II.6.1 a) stabile interior maximale


Submulimea de vrfuri A X a unui graf G se numete stabil interior, dac nu conine dou vrfuri
adiacente.
Mulimea de vrfuri stabil interior A se numete maximal, dac n graf nu exist o alt mulime stabil interior
H astfel, nct A H .

A={x1, x3},{ x3, x6 },{ x3, x7 },{ x1, x4 },{ x4, x7 },{ x1, x5 },{ x5, x7 },{ x2, x4 },{x2,x5 }
II.6.2 b) mulimile stabile exterior minimale
Submulimea de vrfuri A X a unui graf G se numete stabil exterior, dac pentru oricare vrf y X \ A
exist un vrf x A astfel nct y ~ x .
Submulimea de vrfuri stabil exterior a unui graf G se numete minimal , dac n G nu exist o alt mulime
stabil exterior B astfel nct A B .
Cu alte cuvinte, mulimea stabil exterior este minimal, dac orice submulime proprie a acesteia nu este la rndul
su stabil exterior.

A={x1, x3},{ x3, x6 },{ x3, x7 },{ x1, x4 },{ x4, x7 },{ x1, x5 },{ x5, x7 },{ x2, x4 },{x2,x5 }
II.6.3 c) clicele maximale
Submulimea de vrfuri A X a grafului G se numete clic, dac oricare dou vrfuri din A sunt adiacente.
Clica A se numete maximal, dac n graf nu exist o alt clic B astfel, nct A B .

A= {x2,x3}, { x4, x5,x6 }, { x3, x4,x5 }, { x1, x2, x6,x7 }

15

II.6.4 d) acoperirile de vrfuri minimale

Submulimea de vrfuri A X a unui graf G se numete acoperire de vrfuri, dac orice muchie din G este
incident cel puin unui vrf din A.

O acoperire de vrfuri se numete minimal, dac orice submulime proprie a sa nu formeaz la rndul su
acoperire de vrfuri.

A={ x2, x4, x5, x7 }, { x1, x3, x4, x6}


II.6.5 e) acoperirile de muchii minimale

Submulimea de muchii E ' U a unui graf G ( X ;U ) se numete acoperire de muchii, dac orice vrf din
G este incident cel puin unei muchii din E'.

Acoperirea de muchii E' se numete minimal, dac n graf nu exist o alt acoperire de muchii T ' astfel
nct T ' E ' (adic orice submulime proprie din E' nu formeaz acoperire de muchii).

E' = { u4, u5, u11, u12 }, { u2, u6, u7, u11, u12 }, { u1, u2, u5, u7, u9 },{ u3, u4, u10, u8 },
{ u1, u3, u6, u11 }, { u1, u5, u7, u10 }

{ u3, u6, u8, u10 },

II.6.6 f) cuplajele maximale


Submulimea de muchii E U a grafului G se numete cuplaj, dac oricare dou muchii din E nu sunt
adiacente.

Altfel spus cuplajurile reprezinta multimile de muchii stabile interior.

Cuplajul E se numete maximal, dac n graf nu exist un alt cuplaj T astfel nct E T

E={ u2, u7 }, { u5, u10 }, { u7, u10 }, { u1, u5,u7 }, { u1, u4, u9 }, { u2, u4, u10 },
{ u3, u8, u10 }, { u5, u11, u12 }
II.7

Determinarea numerelor 0 , 0 , 1 , 1 , .

Cardinalul mulimii intern stabile maxime

0 = 2

Cardinalul acoperirii minime de varfuri( nr. de vrfuri )


Cardinalul cuplajului maxim ( nr. de muchii ) 1 = 3

0 = 4

Cardinalul acoperirii minime de muchii ( nr. de muchii ) 1 = 4


Cardinalul mulimii clica maxim = 4

II.8

Descrierea pe pai a aplicarii algoritmului din primul punct la graful G


K = pasul fiecarei iteratii a algoritmului

Yk 1

1. Y2 x 2

I k*

I 1*

Ik

L*k 1

I 1

L*2 x1 , x 2
16

Lk 1

L2 x1 , x 2

2. Y3 x1 , x3

I 2* , x 1

3. Y4 x1 , x 2 , x 4

I 3* x1 , x 2

4. Y5 x1 , x2 , x5

I x1 , x2 }

5. Y6 x3 , x6

I x3

*
4

I 2 , x 1
I 3 x1 , x 2

I 4 x1 , x 2 }

I 5 x3

*
5

L*3 x 2 , x3 , x1 , x3

L3 x 2 , x1 , x3

L {{ x1 , x3 , {x1 , x 4 },

L4 {{ x1 , x3 },{x1 , x4 },

*
4

{x 2 , x 4 }}

{x 2 , x4 }}

L*5 x1 , x3 , x1 , x 4 ,

L5 x1 , x3 , x1 , x 4 ,

x1 , x3 , x1 , x4 ,

L*6 x3 , x6 , x1 , x5 ,
x , x x , x
2 4 2 5

x1 , x3 , x1 , x4 ,

L6 x3 , x6 , x1 , x5 ,
x , x x , x
2 4 2 5

x1 , x3 , x3 , x7 ,
x , x , x , x ,
1
5
3 6

x1 , x3 , x3 , x7 ,
x , x , x , x ,
1
5
3 6

x2 , x5 x2 , x4

x1, x5

x2 , x5 x2 , x4

x1, x5

6. Y7 x3 , x4 , x5 , x7 I 6* x3 , x4 , x5 I 6 x3, x4 , x5 L*7 x1 , x4 , x4 , x7 ,
x , x x , x ,
5
7
2
4

x2 , x5

L7 x1 , x4 , x4 , x7 ,
x , x x , x ,
5 7 2 4
x2 , x5

Rezolvarea problemelor indicate n variant

III.

Varianta 9. 1] Algoritmul lui Bednarek i Taulbee; 2] G4; 3] Ex 7, 18;

3.2
x1

Graful 4

x2

u1

x3

u2

u5
u10
u11

x7

u3

u8
u12

u9

u6
u7

x6

3.3

x5

Probleme teoretice
3.3.1 Problema 7

7. S se verifice care dintre urmtoarele afirmaii este adevrat i care este fals:
17

u4

x4

reuniunea a dou lanuri disjuncte ce leag vrfurile x i y ale unui graf G formeaza un ciclu elementar;
reuniunea a dou lanuri elementare disjuncte ce leag vrfurile x i y ale unui graf G formeaz un ciclu elementar.

Raspuns:
Ciclu elementar este fomat doar din noduri disjuncte,
primul si ultimul.
Lanturi disjuncte sint lanturi ce nu au varfuri
Lan elementar este lanul care conine numai noduri

exceptie facand
comune.
distincte.
1) Reuniunea
a 2 lanturi
disjuncte
formeaza
un ciclu
elementar

Deci daca facem reuniunea lor, aceste lanturi la sigur formeaza un ciclu elementar, in sens ca nu trec de 2 ori prin
acelasi varf si exceptie face primul si ultimul.
De exemplu: C = { x1,x2,x4,x7,x1 }
2) Reuniunea a 2 lanturi disjuncte elementare nu formeaza un ciclu elementar
Nu formeaza un ciclu elementar deoarece:
Lanturile sint si disjuncte si elementare.
Disjuncte nu au varfuri comune
Lant elementar disjunct lant ce nu trece de 2 ori prin acelasi punct
Deci ele practic din start nu formeaza un ciclu.

3.3.2 Problema 18
18. n cazul unui graf neorientat G ( X ;U ) , s se verifice inegalitatea:

0 (G ) 0 (G )

Raspuns:

Cardinalul mulimii intern stabile maxime ( nr. de stabilit.interna max.)


18

Cardinalul mul imii acoperire cu vrfuri minime (nr. varfuri din acoperirea minima)

Submulimea de vrfuri A X a unui graf G se numete acoperire de vrfuri, dac orice muchie din G este
incident cel puin unui vrf din A.

Subgraf complet

Prin urmare usor se observa ca in cazul dat,

0 (G ) 0 (G ) nu este corecta.

0 = 0, iar 0 = 3 ( x ,x ,x ), deci in rezultat, inegalitatea presupusa


1 2 6

IV.

Concluzie

Am realizat ca studierea algoritmului lui Bednarek si Taulbe este foarte utila, iti permite insusirea unor definitii utile
in Teoria Grafurilor si deasemenea iti demonstreaza eficienta si simplitatea unor algoritmi pentru stabilirea scopului
final, gasirea unor multimi stabile interior maxime de ex.
Laboratorul efectuat este la fel de util, impreuna cu definitiile, exemplele si demonstrarile pe care le face fiecare
student.

19