Documente Academic
Documente Profesional
Documente Cultură
CUPRINS
1. Grafuri neorientate
2. Lanturi, cicluri
3. Grafuri orientate
4. Drumuri, circuite
5. Exemple și imagini
7. Graful eulerian
8. Graful hamiltonian
1. Grafuri neorientate
Vom nota în continuare vârfurile cu valori între 1 și n – unde n este numărul de vârfuri
din graf, iar muchiile cu [x,y] sau (x,y), unde x și y sunt vârfuri și se numesc extremitățile
muchiei.
Un vecin al unui vârf x este orice vârf y cu proprietatea că există muchia [x,y].
Două muchii sunt incidente dacă au o o extremitate comună. Un vârf este incident cu o muchie
dacă vârful este extremitate a acelei muchii.
Mulțimea muchiilor are proprietatea de simetrie: dacă [x,y] este muchie, atunci și [y,x] este
muchie.
Conform definiției:
Exemplu:
X = {1, 2, 3, 4, 5, 6}
U = {[1, 2], [2, 4], [2, 3], [4, 5], [5, 6], [1, 6]}
Într-un graf neorientat se numește grad al unui vârf numărul de vârful adiacente cu acesta
(sau numărul de muchii incidente cu acesta). Gradul unui vărf x se notează d(x) (degree).
Observații:
un vârf cu gradul 0 se numește izolat. În graful de mai sus, vârful 6 este izolat.
un vârf cu gradul 1 se numește terminal. În graful de mai sus, vârful 9 este vârf terminal.
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:
Întrebare: Este posibil ca într-un grup de 5 persoane, fiecare persoană să aibă exact 3 prieteni?
Se numește componentă conexă a unui graf G=(X,U) un subgraf H=(Y, V), conex, al lui G care
are proprietatea că nu există nici un lanț în G care să lege un vârf din Y cu un vârf din X – Y.
Subgraful H este conex și maximal cu această proprietate (dacă s-ar mai adăuga un vârf nu ar
mai fi conex.)
Un graf este biconex dacă este conex şi pentru orice vârf eliminat subgraful generat îşi păstrează
proprietatea de conexitate.
Exemple:
G=(X,U), unde:
U={1, 2, 3, 4, 5, 6, 7}
X={[1,4], [1,5], [1,3], [2,3], [2,4], [5,7], [5,6], [6,7]}
Observăm că nodul 5 are gradul cel mai mare, respectiv 4.
Analiza despre aceste imagini
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.
Fie G=(X, U) un graf neorientat. Un graf parțial al grafului G se obține păstrând vârfurile
şi eliminând eventual nişte muchii (se pot elimina şi toate muchiile sau chiar nici una).
Exemplu:
Se numește lanț o succesiune de vârfuri L=[x1, x2,⋯ xk] cu proprietatea că oricare două
vârfuri consecutive sunt adiacente.
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.
Exemplu:
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.
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.
Exemplu:
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)}
Noțiuni:
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.
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).
Exemplu:
d+(2)=2
d-(2)=3
Fie G=(V, U) un graf orientat. Se numeşte graf parțial al grafului G, graful orientat G1=(V, U1),
unde U1 ⊆ U.
Un graf parțial al unui graf orientat G=(V,U), are aceeaşi mulțime de vârfuri ca şi G, iar
mulțimea arcelor este o submulțime a lui U sau chiar U.
Fie G=(V, U) un graf orientat. Un graf parțial al grafului G, se obține păstrând vârfurile şi
eliminând eventual nişte arce (se pot elimina şi toate arcele sau chiar nici unul).
Fie G=(V, U) un graf orientat. Se numeşte subgraf al grafului G graful orientat G1=(V1,U1)
unde V1 ⊆ V iar U1 conține toate arcele din U care au extremitățile în V1.
Exemplu:
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 adăuga un nod, n-ar mai fi tare conex.
Graful de mai sus nu este tare conex. El conține trei componente tare conexe:
134
2
5678
Observaț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.
4. 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.
Lungimea unui circuit este reprezentată de numărul de arce din care acesta este alcătuit.
elementar.
5. Exemple și imagini
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).
7. Graful eulerian
Se numește graf eulerian un graf care conține un ciclu eulerian.
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.
Un graf neorientat poate fi descompus în cicluri cu muchii disjuncte, dacă și numai dacă toate
nodurile sale au grad par. Deci, un graf are un ciclu eulerian dacă și numai dacă el poate fi
descompus în cicluri cu muchii disjuncte și nodurile sale de grad nenul aparțin unei singure
componente conexe.
Un graf neorientat are un drum eulerian dacă și numai dacă exact zero sau două noduri au
grad impar, și toate nodurile cu grad nenul aparțin unei singure componente conexe.
Exemplu: Graful următor este eulerian. Un ciclu eulerian este: [1,4,2,1,3,2,7,3,5,7,6,5,1]
Un graf orientat are un ciclu eulerian dacă și numai dacă fiecare nod are gradul interior și
gradul exterior egale, și toate nodurile cu grad nenul aparțin unei singure componente tare
conexe. Echivalent, un graf orientat are un ciclu eulerian dacă și numai dacă el poate fi
descompus în cicluri orientate cu muchii disjuncte și toate nodurile cu grad nenul aparțin unei
singure componente tare conexe.
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ă.
Exemplu: Graful orientat de mai jos 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.
În C++, codul pentru verificarea unui graf eulerian ar arăta ca în exemplul de mai jos.
8. Graful 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.
Exemplu: Graful neorientat următor este hamiltonian. Un ciclu hamiltonian este: [1,4,2,3,7,6,5,1]
Exemplu: Graful orientat desenat mai jos este hamiltonian, deoarece conține circuitul
hamiltonian (2, 1, 5 , 6, 4, 3, 2).
‚
În C++, codul pentru verificarea unui graf hamiltonian ar arăta ca în exemplul de mai jos.
Bibliografie: https://www.pbinfo.ro/articole/810/grafuri-neorientate
https://www.pbinfo.ro/articole/509/grafuri-orientate