Sunteți pe pagina 1din 7

Subiectul I

Exercitiul 1
Grafuri neorientate

Definiție: Se numește graf neorientat o pereche ordonată de mulțimi G=(X,U), unde:

 X este o mulțime finită și nevidă de elemente numite vârfuri sau noduri;


 U este o mulțime finită de submulțimi cu două elemente din X, numite muchii.
 Nod/vârf=element al mulțimii X ce poate fi reprezentat în plan printr-un punct
 Muchie=pereche numerotata de noduri ce pot fi reprezentate în plan printr-un
segment de dreaptă
 Adiacență=proprietatea a două noduri de a fi unite prin muchie
 Incidență =proprietatea unei muchii de a uni două noduri
 într-un graf neorientat nu există muchie de la un vârf la el însuși;
 intre două vârfuri distincte există cel mult o muchie.

Gradul unui vârf

Gradul nodului x= numărul de muchii incidente cu nodul x, notat d(x) .

 nod izolat = nod cu gradul 0 ,d(x)=0;


 Nod terminal = nod cu gradul 1 ,d(x)=1;
 gradul maxim al unui vârf într-un graf cu n vârfuri este n-1.

Teoremă: Într-un graf neorientat, suma gradelor tuturor vârfurilor este dublul numărului de muchii.

Consecințe:

 Suma gradelor tuturor vârfurilor este număr par.


 Într-un graf neorientat, numărul de vârfuri de grad impar este întotdeauna par.

Lanț, ciclu
Lanț=succesiune de noduri cu proprietatea că oricare două noduri consecutive din lanț sunt adiacente

 Lanț compus = lanț în care muchiile se pot repeta


 Lanț simplu= lanț în care fiecare muchie apare o singură dată, iar nodurile se pot repeta
 Lanț elementar= lanț în care nodurile sunt distincte
 Ciclu=lanț simplu în care primul nod coincide cu ultimul
 Ciclu elementar= ciclu în care nodurile sunt distincte, cu excepția primului și a ultimului nod
 Lungimea unui lanț/ciclu=numărul de muchii din care este format.
 Un ciclu se numește par dacă lungimea sa este pară, respectiv impar în caz contrar.

Tipuri particulare de grafuri:


 Un graf neorientat care nu conține niciun ciclu se numește aciclic.

 Graf parțial=graf care se obține prin eliminarea unor muchii, nu și a unor noduri. (se pot
elimina şi toate muchiile sau chiar nici una).
 Un graf parțial al unui graf neorientat G=(V,U), are aceeaşi mulțime de vârfuri ca şi G, iar
mulțimea muchiilor este o submulțime a lui U sau chiar U.
 Subgraf = graf care se obține prin eliminarea unor noduri și a tuturor muchiilor incidente cu
acestea. Nu pot fi eliminate decât cele incidente cu nodurile eliminate. (nu se pot şterge toate
vârfurile deoarece s-ar obține un graf cu mulțimea vârfurilor vidă).
 Graf regulat=graf în care toate nodurile au grade egale
 Graf complet=graf în care orice două noduri distincte sunt adiacente
 Graf bipartit= graf în care mulţimea de noduri X poate fi partiționată în două mulțimi
nevide A și B astfel încât X=A ∪ B, A ∩ B = ∅ şi orice muchie a grafului unește un nod din
A cu un nod din B.
 Graf bipartit complet=graf bipartit în care orice nod din A este adiacent cu orice nod din B
 Un graf neorientat se numește graf nul dacă mulțimea muchiilor este vidă. Într-un graf nul
toate vârfurile sunt izolate.

Observații

 Un graf bipartit nu poate conține un ciclu de lungime impară.


 Numărul de muchii într-un graf neorientat complet=
 Numărul grafurilor neorientate cu n vârfuri este=
 Numărul grafurilor parțiale este=
 Numărul muchiilor într-un graf bipartit este=p*q

Graf conex = oricare ar fi două noduri distincte,exisă cel puțin un lanț între ele

Componentă conexă = un subgraf conex și maximal cu această proprietate(nu există lanț


între un nod din subgraf și un nod care nu aparține grafului)

Un graf cu un singur nod este, prin definiție, conex.

Un graf este conex dacă admite o singură componentă conexă.

Un graf este biconex dacă este conex şi pentru orice vârf eliminat subgraful generat îşi
păstrează proprietatea de conexitate.

Într-un graf neorientat cu n noduri, p componente conexe, numărul minim de muchii de


adăugat astfel încât să devină conex este p-1

 Ciclu hamiltonian = ciclu elementar care trece prin toate vârfurile grafului
 Graf hamiltonian = graf care conține cel puțin un ciclu hamiltonian

Teoremă: Un G un graf neorientat. Dacă are n≥3 vârfuri şi gradul oricărui vârf verifică
inegalitatea d(x)≥n/2 atunci G este hamiltonian.

 graf eulerian = un graf care conține un ciclu eulerian.


 ciclu eulerian = un ciclu care conține toate muchiile grafului.

Teoremă: Un graf G = (X,U), fără vârfuri izolate, este eulerian dacă şi numai dacă este
conex şi gradele tuturor vârfurilor sale sunt numere pare.

 Un graf neorientat complet, cu N varfuri(N:=3,impar) este hamiltonian și eulerian


 Un graf neorientat complet, cu N varfuri(N:=3, par) este hamiltonian și nu eulerian(ar
avea gradele toate impare) num arul minim de muchii de eliminat pentru a deveni
eulerian este N/2.

Reprezentarea grafurilor neorientate


Matricea de adiacență
Pentru un graf neorientat G=(X,U) cu n vârfuri, matricea de adiacență este o matrice cu n linii
și n coloane și elemente din {0,1}, cu: Ai,j={1dacă [i,j]∈U, 0 dacă [i,j]∉U
Observații:

 matricea de adiacență este simetrică față de diagonala principală;


 elementele de pe diagonala principală sunt 0;
 gradul unui vârf x este egal cu numărul de elemente 1 de pe linia (sau coloana) x;
 suma tuturor elementelor din matricea de adiacență a unui graf neorientat este egală
cu dublul numărului de muchii din graf.

Lista de muchii
Lista de muchii a unui graf neorientat reprezintă o mulțime ce conține toate muchiile din graf.

Pentru reprezentarea în memorie putem folosi:

 un tablou unidimensional cu elemente de tip struct {int I,J;}


 două tablouri unidimensionale cu elemente de tip int
 o listă alocată dinamic

Liste de adiacențe (de vecini)


Pentru un graf neorientat cu G=(X,U) se va memora numărul de vârfuri n și apoi, pentru
fiecare vârf x, lista vârfurilor adiacente cu x, adică a vârfurilor y cu proprietatea că există
muchia [x,y].

La reprezentarea în memorie trebui avut în vedere că dimensiunile listelor de vecini sunt


variabile. De aceea, este neeficientă utilizarea unor tablouri alocate static. Astfel, putem
folosi:

 un șir de n tablouri unidimensionale alocate dinamic;


 un șir de n vectori din STL;
 un șir de n liste simplu (dublu) înlănțuite alocate dinamic.

Graf complementar
Definiție. Fie G=(X, U) un graf neorientat. Se numeşte graf complementar al grafului G,
graful neorientat G1=(X, U1), cu proprietatea că două vârfuri x și y sunt adiacente în G1 dacă
și numai dacă nu sunt adiacente în G.

Teoremă: Fie G un graf neorientat cu n vârfuri și m muchii. Atunci:

 graful G admite grafuri parțiale;


 graful G admite subgrafuri;
 graful G admite un unic graf complementar.
Grafuri orientate

Definiție. Se numeşte graf orientat sau digraf o pereche ordonată de mulțimi notată G=(V,
U), unde:

 V este o mulțime finită şi nevidă ale cărei elemente se numesc noduri sau vârfuri;
 U este o mulțime de perechi ordonate de elemente distincte din V ale cărei elemente
se numesc arce.

 extremități ale unui arc: pentru arcul u=(x,y), se numesc extremități ale sale
nodurile x şi y;
o x se numeşte extremitate inițială;
o y se numeşte extremitate finală;
o y se numește succesor al lui x;
o x se numește predecesor al lui y.

 vârfuri adiacente: dacă într-un graf există arcul u=(x,y) (sau u=(y,x), sau amândouă),
se spune despre nodurile x şi y că sunt adiacente;
 incidență:
o dacă u1 şi u2 sunt două arce ale aceluiaşi graf, se numesc incidente dacă au o
extremitate comună. Exemplu: u1=(x,y) şi u2=(y,z) sunt incidente;
o dacă u1=(x,y) este un arc într-un graf, se spune despre el şi nodul x, sau
nodul y, că sunt incidente.

Definiție. Se numeşte graf orientat o pereche ordonată de mulțimi notată G=(V, U), unde:

 V este o mulțime, finită şi nevidă, ale cărei elemente se numesc noduri sau vârfuri;
 U este o mulțime, de perechi ordonate de elemente din V, ale cărei elemente se
numesc arce.``

Grade
Definiție. Fie G=(V, U) un graf orientat și x un nod al său.

 Se numeşte grad exterior al nodului x, numărul arcelor de forma (x,y) (adică


numărul arcelor care ies din x), notat d (x).
 Se numeşte grad interior al nodului x, numărul arcelor de forma (y,x) (adică numărul
arcelor care intră în x), notat d (x).

Teoremă: Într-un graf orientat, suma gradelor exterioare a tuturor nodurilor este egală cu
suma gradelor interioare a tuturor nodurilor și cu numărul de arce.

Un nod x se numește izolat dacă d (x)=d (x)=0 (are gradul interior și gradul exterior egal
cu 0).

 Drum = succesiunea de noduri cu proprietatea că oricare doua noduri consecutive


sunt adiacente(arcele păstrează ordinea)
 Drum elementar = drum în care nodurile sunt distincte
 Circuit = drum în care primul nod coincide cu ultimul
 Circuit elementar = circuit în care nodurile sunt distincte, cu excepția primului și a
ultimului
 Lungimea unui drum/circuit = numărul de arce din care este format
 Graf parțial = graf care se obține din eliominarea unor arce, nu și a nodurilor
 Subgraf = graf care se obține din eliominarea unor noduri și a tuturor arcelor care au
o extremitate în nodurile eliminate. Nu pot fi eliminate alte arce decât cu extremități
în nodurile eliminate

Definiție: Se numește lanț o succesiune de arce, cu proprietatea ca oricare două arce


consecutive au o extremitate comună (nu are importanță orientarea arcelor)..

Definiție. Fie G=(V, U) un graf orientat. Graful G se numește graf complet dacă oricare
două vârfuri distincte ale sale sunt adiacente.

Teoremă: Numărul de grafuri orientate complete cu n noduri este 3n*(n-1)/2.

Definiție: Un graf orientat este turneu, dacă oricare ar fi două vârfuri i şi j, i≠j, între ele
există un singur arc: arcul (i,j) sau arcul (j,i).

Proprietăți:

1. Orice graf turneu este graf complet.


2. Avem 2n*(n-1)/2 grafuri turneu cu n noduri.
3. În orice graf turneu există un drum elementar care trece prin toate vârfurile grafului.
4. Numărul de arce m=

 Graf plin=există arc dus-întors


 Numărul de arce n(n-1)
 Numărul de grafuri orientate

Graful se numește tare conex dacă între oricare două noduri distincte există cel puțin
un drum.

Se numește componentă tare conexă un subgraf tare conex și maximal cu această calitate –
dacă am mai adauga un nod, n-ar mai fi tare conex.

Oservație: Un nod al grafului face parte dintr-o singură componentă tare conexă. Dacă ar
face parte din două compoennte tare conexe, ele s-ar “reuni” prin intermediul acelui nod.

 Un drum elementar care conține toate nodurile grafului se numește drum


hamiltonian.
 Un circuit elementar care conține toate nodurile grafului se numește circuit
hamiltonian.
 Un graf care conține un circuit hamiltonian se numește graf hamiltonian.
 Un drum care conține toate arcele grafului se numește drum eulerian.
 Un circuit care conține toate arcele grafului se numește circuit eulerian.
 Un graf care conține un circuit eulerian se numește graf eulerian.

Teoremă: Un graf fără noduri izolate este eulerian dacă și numai dacă este conex și pentru
fiecare nod, gradul interior este egal cu cel exterior.
Reprezentarea grafurilor orientate

Matricea de adiacență
Fie G=(V,U) un graf orientat cu n noduri, în care nu există mai multe arce de la un nod la
altul. Matricea de adiacență a grafului este o matrice cu n linii și n coloane și
elemente 0 sau 1, astfel:

 Ai,j=1 dacă există arcul (i,j)


 Ai,j=0 dacă există nu arcul (i,j)Pentru graful alăturat, matricea de adiacență este:

Observăm că matricea de adiacență:

 are zerouri pe diagonală (dacă în graf nu avem bucle)


 nu trebuie să fie simetrică față de diagonala principală

Lista de arce
Lista de arce a unui graf orientat reprezintă o mulțime (familie, dacă arcele se pot repeta) ce
conține toate arcele din graf.

Pentru reprezentarea în memorie putem folosi:

 un tablou unidimensional cu elemente de tip struct {int I,J;}


 două tablouri unidimensionale cu elemente de tip int
 o listă alocată dinamic
 etc.

Listele de adiacență (succesori)


Pentru un graf orientat cu G=(V,U) se va memora numărul de noduri n și apoi, pentru fiecare
nod x, lista succesorilor lui x, adică nodurilor y cu proprietatea că există arcul (x,y).

La reprezentarea în memorie trebui avut în vedere că dimensiunile listelor de succesori sunt


variabile. De aceea, este neeficientă utilizarea unor tablouri alocate static. Astfel, putem
folosi:

 un șir de n tablouri unidimensionale alocate dinamic;


 un șir de n vectori din STL;
 un șir de n liste simplu (dublu) înlănțuite alocate dinamic.

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