Sunteți pe pagina 1din 24

Grafuri euleriene și

hamiltoniene
COJOCARIU CIPRIAN
Cuprins:

 Grafuri neorientate
 Lanțuri, cicluri
 Grafuri orientate
 Drumuri, circuite
 Tipuri particulare de lanțuri și cicluri
 Grafuri euleriene
 Grafuri hamiltoniene
Grafuri neorientate

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.

Fie G=(X, U), unde:

• X = {1, 2, 3, 4, 5, 6}
• U = {[1, 2], [2, 4], [2, 3], [4, 5], [5, 6], [1, 6]}
Lanțuri, cicluri

Se numește lanț o succesiune de vârfuri L=[x1, x2,⋯ xk] cu proprietatea că oricare două vârfuri consecutive sunt adiacente.

Vârfurile x1 şi xk se numesc extremitățile lanțului. Numărul k-1 se numește lungimea lanțului și este numărul de muchii din care este
format.

Lanțul care conține numai vârfuri distincte, două câte două, este lanț elementar.

Lanțul care conține numai muchii distincte este lanț simplu. Dacă muchiile unui lanț nu sunt distincte se numește lanț compus.

 [2,4,1,3,5,7] este un lanț elementar


 [3,5,7,6,5,1] este un lanț neelementar, dar simplu
 [2,3,5,7,6,5,3,1] este un lanț compus
Lanțuri, cicluri
 Se numește ciclu un lanț simplu în care primul vârf este identic cu ultimul. Dacă toate vârfurile sunt
distincte, mai puțin primul și ultimul, se numește ciclu elementar.
Lungimea unui ciclu este egală cu numărul de muchii din ciclu. Lungimea minimă a unui ciclu este 3.

Un ciclu se numește par dacă lungimea sa este pară, respectiv impar în caz contrar.

 [1,5,3,2,4,1] este un ciclu elementar


 [1,3,5,7,6,5,1] este un ciclu neelementar
Grafuri orientate

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.

V = {1,2,3,4,5,6}

U = {(1,6),(2,1),(2,4),(3,2),(4,2),(5,4),(6,1),(6,2),(6,4)}

Observăm că arcele (1,6) și (6,1) sunt distincte.


Drumuri, circuite

 Fie G=(V, U) un graf orientat. Se numește drum în graful G o succesiune de noduri, notată

D = (x1 , x2 ,..., xk), cu proprietatea că pentru orice 1≤i<k, (xi,xi+1) este arc în G.
 Exemple în graful alăturat:
L=(5,4,2,6,1) este un lanț elementar, dar nu este drum.

D=(3,2,1,6,4) este drum elementar.

D=(3,2,1,6,2,4) este drum neelementar, dar simplu.


Drumuri, circuite

 Se numește circuit un drum simplu în care extremitatea inițială și finală sunt egale. Se

 numește circuit elementar un circuit în care, cu excepția extremităților, nu se repetă noduri.

 Lungimea unui circuit este reprezentată de numărul de arce din care acesta este alcătuit.
 Exemple în graful alăturat:
(1,6,2,1) și (1,6,4,2,1) sunt circuite elementare.
Exemple și imagini
Vom analiza 4 lanțuri
• L1 = {1, 2, 3, 7, 4} este elementar,
simplu, de lungime 4.
• L2 = {6, 5, 3, 5} este neelementar și de
lungime 3.
• L3 = {3, 4, 7, 3, 2} este neelementar,
simplu și de lungime 4.
• L4 = {8, 7, 3, 5, 6} este elementar,
simplu, de lungime 4.
Analizam 3 cicluri:

• C1 = {1, 2, 3, 5, 6, 1} este un ciclu


elementar.
• C2 = {3, 4, 7, 8, 5, 3, 2, 1, 6, 5, 3} este un
ciclu neelementar.
• C3 = {3, 4, 7, 8, 5, 3} este un ciclu
elementar.
Observăm drumurile:
 (2,3,1,7) – drum elementar
 (4,2,3,1,7) – drum elementar
 (7,3,1,7,3,4) – drum neelementar
 Observăm circuitul elementar:
(1,2,3,4,6,5,1).
Tipuri particulare de lanțuri și cicluri

Un ciclu elementar care trece prin toate


vârfurile grafului se numește ciclu
hamiltonian, ca în exemplul alăturat.
 Un ciclu eulerian, sau „circuit
eulerian” într-un graf
neorientat este un ciclu care
parcurge fiecare muchie exact
o dată. Dacă un astfel de ciclu
există, graficul este numit
eulerian sau unicursal.
Grafuri euleriene
 Se numește graf eulerian un graf care conține un ciclu eulerian. Se numește ciclu eulerian un ciclu care
conține toate muchiile grafului.

Graful următor este eulerian. Un ciclu eulerian este:


[1,4,2,1,3,2,7,3,5,7,6,5,1]
Un graf neorientat are un ciclu eulerian dacă și numai dacă fiecare nod are grad par,
și toate nodurile cu grad nenul aparțin unei singure componente conexe, ca în
exemplele de mai jos.
Graful alăturat este eulerian, însă dacă îi adăugăm muchia 3-5
nu va mai fi eulerian, ci doar un graf neorientat.
Un graf orientat are un drum eulerian dacă și numai dacă cel mult un nod are (gradul exterior) −
(gradul interior) = 1, cel mult un nod are (gradul interior) − (gradul exterior) = 1, iar celelalte noduri
au toate gradul exterior și gradul interior egale, iar toate nodurile cu grad nenul aparțin unei singure
componente conexe a grafului neorientat de bază.

Graful orientat din stânga este eulerian. Un


ciclu eulerian este (1,4,3,2,4,5,6,1).
Observăm că singurul nod cu diferența
dintre gradul interior și cel exterior egală cu
1 este nodul 2, iar celelalte au gradele egale.
Verificare graf eulerian – C++
Grafuri hamiltoniene
 Se numește graf hamiltonian un graf care conține un ciclu hamiltonian. Se numește ciclu hamiltonian un
ciclu elementar care conține toate vârfurile grafului.

Graful următor este hamiltonian. Un ciclu


hamiltonian este: [1,4,2,3,7,6,5,1]
Regula de verificare a unui graf hamiltonian este
aceeași și pentru grafuri orientate, și pentru cele
neorientate.
Din acest graf hamiltonian Dacă tăiem muchia 3-1 Dacă tăiem muchia
vom obține: 2-3 vom obține:

Graf hamiltonian Graf eulerian si hamiltonian Graf neorientat


Verificare graf hamiltonian – C++
Bibliografie

 https://www.pbinfo.ro/articole/810/grafuri-neorientate

 https://www.pbinfo.ro/articole/509/grafuri-orientate

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