Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica...

57
Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘ a și Informatic˘ a (UBB) Departamentul de Informatic˘ a Februarie, 28, 2018 Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 1 / 48

Transcript of Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica...

Page 1: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Algoritmica grafurilorI. Introducere

Mihai SuciuFacultatea de Matematica și Informatica (UBB)

Departamentul de Informatica

Februarie, 28, 2018

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 1 / 48

Page 2: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Continut

1 OrganizarePrezentarea cursului

2 Introducere3 Definitii

Multigraf neorientatGraf simpluMultigraf orientatMultigraf ponderatDrumuriGraf conex

4 Reprezentari ale grafurilor5 Matricea distantelor

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 2 / 48

Page 3: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

De ce?

Obiective:Obţinerea unei imagini de ansamblu, cunoașterea și inţelegereanoţiunilor, modelelor generale de probleme și algoritmilor de rezolvarea acestoraCunoașterea conceptelor teoretice ale algoritmicii grafurilor șiaplicarea acestora în modelarea și rezolvarea problemelorAnalizarea unui gaf și a problemelor ce ţin de grafuri: conectivitate,cel mai scurt drum, drum minim, flux de date, problemacomis-voiajorului, etc.Cunoașterea implementarii algoritmilor într-un limbaj de programare

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 3 / 48

Page 4: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Conţinut curs

1 Noţiuni de baza2 Studiu aprofundat al reprezentarii grafurilor. Drumuri

în grafuri.3 Algoritmul lui Bellman-Kalaba, algoritmul lui Ford,

algoritmi matriceali, drum ciclic, drumuri Euleriene,drumuri Hamiltoniene.

4 Conectivitate și probleme de lanţ minim. Parcurgeride graf în laţime și adâncime.

5 Numere fundamentale în teoria grafurilor.6 Arbori și paduri

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 4 / 48

Page 5: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Conţinut curs (II)

7 Cuplaje în grafuri8 Probleme extremale9 Probleme grele: ciclu Hamiltonian, problema

comis-voiajorului. Probleme de numarare și enumerare.10 Probleme grele: clique, vertex cover, colorare11 Ciclu elementar Eulerian. Grafuri planare.12 Reţele de transport.13 Fluxuri în reţele de transport.14 Probleme de cuplaj.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 5 / 48

Page 6: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Bibliografie

Berge C., Graphes et hypergraphes, Dunod, Paris 1970.Berge C., Teoria grafurilor și aplicaţiile ei, Ed. Tehnica, 1972T. Toadere, Grafe. Teorie, algoritmi și aplicaţii, Ed. Albastra, Cluj-N (ed. I, II, III),2002 și 2009KÁSA ZOLTÁN, Combinatorica cu aplicaţii, Presa Universitara Clujeana, 2003.Cormen, Leiserson, Rivest, Introducere în algoritmi, Editura Computer LibrisAgora, 2000.Rosu A., Teoria grafelor, algoritmi, aplicaţii. Ed. Militara, 1974.Ciurea E., Ciupala L., Algoritmi - algoritmii fluxurilor în reţele, Ed. Matrix Rom,2006.CATARANCIUC S., IACOB M.E., TOADERE T., Probleme de teoria grafelor,Lito. Univ. Cluj-Napoca, 1994.

KÁSA Z., TARTIA C., TAMBULEA L.: Culegere de probleme de teoria grafelor,Lito. Univ. Cluj-Napoca 1979.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 6 / 48

Page 7: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Bibliografie (II)

TOMESCU I., Probleme de combinatorica si teoria grafurilor. Ed. Did. si Pedag.Bucuresti 1981.Easley David and Kleinberg Jon. 2010. Networks, Crowds, and Markets:Reasoning about a Highly Connected World. Cambridge University Press, NewYork, NY, USA.Mark Newman. 2010. Networks: An Introduction. Oxford University Press, Inc.,New York, NY, USAMatthew O. Jackson. 2008. Social and Economic Networks. Princeton UniversityPress, Princeton, NJ, USA.Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.2009. Introduction to Algorithms, Third Edition (3rd ed.). The MIT Press.

Geir Agnarsson and Raymond Greenlaw. 2006. Graph Theory: Modeling,Applications, and Algorithms. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 7 / 48

Page 8: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Organizare

curs, seminar, laborator: Mihai Suciu (mihai-suciu [at] cs.ubbcluj.ro)(www.cs.ubbcluj.ro/˜mihai-suciu)laborator:

Asist. drd. COROIU Adriana(http://www.cs.ubbcluj.ro/˜adrianac/)C.d.asociat dr. APATEAN Anca

Pagina web a cursuluiwww.cs.ubbcluj.ro/˜mihai-suciu/graf/

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 8 / 48

Page 9: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Structura

Curs: 2 ore / saptamâna

Seminar: 1 ora / saptamâna

Laborator: 1 ora / saptamâna

Orar:http://www.cs.ubbcluj.ro/files/orar/2017-2/disc/MLR5025.html

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 9 / 48

Page 10: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Evaluare şi cerinţe

Colocviu (C) - examen scris

Activitate Laborator (L) - activitate la laborator (3 teste susţinute peparcursul semestrului)Puncte bonus la laborator (B) 1p (0.25p / laborator)

nota finala:

0.67 ∗ C + 0.33 ∗ L + B = 11p

colocviu - nota trebuie sa fie minim 5!!laborator - media testelor trebuie sa fie minim 5!!

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 10 / 48

Page 11: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Organizare Prezentarea cursului

Evaluare şi cerinţe (II)

Activitatea de seminar este OBLIGATORIE în proporţie de minim75% −→ maxim 2 absenţeActivitatea de laborator este OBLIGATORIE în proporţie de minim90% −→ maxim 1 absenţe.problemele primite la laborator trebuie rezolvate în C/C++ (ca șiIDE se recomanda Qt - https://www.qt.io/download)Este necesara participarea studenţilor la ambele ore de seminar /laborator pentru a fi luata în considerare prezenţa.Studenţii cu mai mult de 2 absente nemotivate la seminar saulaborator nu vor fi primiţi la examenul din sesiunea normala și nici laexamenul din sesiunea de restanţe (acești studenţi vor trebui sa repeteacest curs în anul universitar urmator). Sunt exceptaţi de la aceastacerinţa cei scutiţi medical care pot dovedi cu acte fiecare absenţa înparte.Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 11 / 48

Page 12: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Partea II

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 12 / 48

Page 13: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Inceputuri

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 13 / 48

Page 14: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Soluţie

Leonhard Euler (1707-1783)

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 14 / 48

Page 15: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Podurile din Königsberg

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 15 / 48

Page 16: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Podurile din Königsberg (II)

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 16 / 48

Page 17: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Unde suntem acum?

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 17 / 48

Page 18: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Unde suntem acum? (II)

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 18 / 48

Page 19: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Unde suntem acum? (III)

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 19 / 48

Page 20: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Introducere

Unde suntem acum? (IV)

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 20 / 48

Page 21: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf neorientat

Definiţii

Multigraf neorientatse numește multigraf orice sistem de forma G = (V ,E , g) undeV - mulţimea vârfurilor, V 6= ∅E - mulţimea muchiilor, V ∩ E = ∅g : E → V

⊗V

Se mai poate scrieG = (V (G),E (G), g(G))

Observaţii:1 daca mulţimile V și E sunt finite ⇒ multigraful G este finit2 AxB = {(a, b)|a ∈ A, b ∈ B} - pereche ordonata de elemente3 A

⊗B = {(a, b)|a ∈ A, b ∈ B sau a ∈ B, b ∈ A} - pereche neordonata

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 21 / 48

Page 22: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf neorientat

Multigraf (n,m)

n = |V | - ordinul multigrafului G

m = |E | - dimensiunea multigrafului G

daca extremitaţile unei muchii coincid, muchia se numește bucla

g(e) = {a, a}

dacag(e1) = g(e2)

atunci muchiile e1 și e2 sunt paralele

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 22 / 48

Page 23: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf neorientat

Muchii adiacente

setul muchiilor ce leaga vârfurile a și b este

g−1(a, b) = {e ∈ E (G)|g(e) = {a, b}}

Muchii adiacentefie x un vârf din G . NG(x) sau N(X ) este setul muchiilor adiacente lui x:

NG(x) = {y ∈ V (G),∃e ∈ E (G), g(e) = {x , y}}

sauNG(X ) = {y ∈ V (G), g−1(x , y) 6= ∅}

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 23 / 48

Page 24: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf neorientat

Muchii incidente

Muchii incidenteintr-un multigraf G, setul muchiilor incidente lui x (care nu sunt bucle)este:

IG(x) = {e ∈ E (G),∃y ∈ V (G), y 6= x , g(e) = {x , y}}

Bucle incidentesetul buclelor incidente nodului x este:

LG(x) = {e ∈ E (G), g(e) = {x , x}}

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 24 / 48

Page 25: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf neorientat

Gradul unui vârf

Gradul unui vârfgradul unui vârf, notat d(x), este numarul muchiilor incidente lui x :

d(x) = card(IG(x)) + 2 ∗ card(LG(x)).

Daca:d(x) = 0, x este un vârf izolatd(x) = 1, x este vârful unei muchii

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 25 / 48

Page 26: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

Graf simplu

Graf simpluun multigraf fara bucle și muchii paralele se numește graf simplu. În acestcaz

|g−1(a, b)| ≤ 1,∀a, b ∈ V .

Se poate scrie {a, b} în loc de g(e) = {a, b}.Graful se noteaza G = (V ,E ).

Observaţii:pentru un graf simplu gradul unui nod este:

d(x) = |NG(x)|

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 26 / 48

Page 27: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

Definiţii

graf regulargraf în care toate vârfurile au același grad.Graf k-regular, toate vârfurile au gradul k

d(x) = k, ∀x ∈ V (G).

Graf completun graf pentru care toate perechile de vârfuri sunt adiacente se numeștegraf complet. Un graf complet de ordinul n se noteaza Kn.

Exemple

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 27 / 48

Page 28: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

Definiţii (II)

graful G ′ = (V ′,E ′) este complementul grafului G = (V ,E ), daca V ′ = Vși E ′ = {{a, b}, {a, b} 6∈ E}.

daca G este un graf de ordinul n atunci E (G) ∪ E (G ′) = E (Kn).

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 28 / 48

Page 29: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

Izomorfism

Izomorfism multigrafmultigrafurile G1 și G2 sunt izomorfe daca exista bijecţiile f : V1 → V2 șig : N→ N astfel ca:

(i , j , k) ∈ E1 ⇔ (f (i), f (j), g(k)) ∈ E2.

Izomorfism graf simpludoua grafuri G1 și G2 sunt izomorfe daca exista funcţia bijectivaf : V1 → V2 astfel ca:

(a, b) ∈ E1 ⇔ (f (a), f (b)) ∈ E2.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 29 / 48

Page 30: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

Izomorfism (II)

Exemplu izomorfism

Teoremărelaţia de izomorfism în mulţimea grafurilor este o relaţie de echivalenţa.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 30 / 48

Page 31: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

Exemple de grafuri

graf nulgraf liniegraf ciclugraf completgraf bipartit complet

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 31 / 48

Page 32: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

hand-shakingpentru un graf G avem ∑

u∈V (G)dG(u) = 2|E (G)|.

corolarîntr-un graf exista întotdeauna un numar par de vârfuri ce au grad impar

corolarfiecare graf k-regular pe n vârfuri are kn

2 muchii, în particular Kn aren(n−1)

2 muchii.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 32 / 48

Page 33: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf simplu

Subgraf

Definiţiepentru multigraful G1 = (V1,E1, g1) și G = (V ,E , g) spunem ca G1 estesubgraf al lui G dacaV1 ⊆ VE1 ⊆ Eg1(e) = g(e)∀e ∈ E1se noteaza G1 ⊆ G

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 33 / 48

Page 34: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf orientat

Multigraf, graf orientat

Multigraf orientat

se numește multigraf orientat orice sistem de forma ~G = (V ,E , η) undeV este mulţimea vârfurilor, V 6= ∅E este mulţimea arcelor, V ∩ E = ∅η : E → VxV

η(e) = {u, v} arcul este incident spre exterior vârfului u, arcul esteincident spre interior vârfului vη(e) = {u, u} - arc buclaη(e1) = η(e2) - arce paraleleun graf orientat simplu se definește în mod similar unui grafneorientat

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 34 / 48

Page 35: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf orientat

Subgrad interior, exterior

Definiţiefie multigraful G = (V ,E , η) și vârful x ∈ V

se numește subgradul interior, se noteaza d−(x), numarul arcelorincidente spre interior vârfului x :

d−(x) = |{e ∈ E |η(e) = {y , x},∀y ∈ V }| = |N in~G (x)|

se numește subgradul exterior, notat d+, numarul arcelor incidentespre exterir nodului x :

d+(x) = |{e ∈ E |η(e) = {x , y},∀y ∈ V }| = |Nout~G (x)|

d(x) = d−(x) + d+(x)

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 35 / 48

Page 36: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf orientat

Subgrad interior, exterior (II)

Teoremăpentru un multigraf orientat avem:∑

x∈V (~G)

d−(x) =∑

x∈V (~G)

d+(x) = |E (~G)|

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 36 / 48

Page 37: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Multigraf ponderat

Multigraf ponderat

Multigraf ponderatse numește multigraf ponderat orice sistem de forma G = (V ,E , g ,W )V - mulţimea vârfurilor, V 6= ∅E - mulţimea muchiilor, V ∩ E = ∅g : E → V

⊗V

W : E → R - ponderea muchiilor

Multigraf ponderat orientatse numește multigraf ponderat orientat orice sistem de forma~G = (V ,E , η,W ) undeV este mulţimea vârfurilor, V 6= ∅E este mulţimea arcelor, V ∩ E = ∅η : E → V x VW : E → R - ponderea arcelor

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 37 / 48

Page 38: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Drumuri în grafuri

Drumfiind dat un graf orientat G = (V ,E ), prin drum în graful G înţelegem osuccesiune de arce cu proprietatea ca extremitatea terminala a unui arc aldrumului coincide cu extremitatea iniţiala a arcului urmator din drum.

drum = o succesiune de vârfuri care sunt extremitaţi ale arcelor cecompun drumulun drum µ este {e1, e2, ..., eq} fie {i0, i1, ..., iq} cu proprietatea caej = (ij−1, ij) ∈ E pentru j = 1, 2, ..., q

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 38 / 48

Page 39: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Drumuri în grafuri (II)

Lungimea unui drumlungimea unui drum este numarul arcelor care compun drumul respectiv.

Un drum într-un graf este:simplu daca nu folosește de doua ori un același arccompus daca nu este simpluelementar daca nu contine (trece) de doua ori un același vârfcircuit daca extremitatea iniţiala a drumului coincide cu cea finalaeulerian daca este simplu și trece prin toate arcele grafuluihamiltonian daca este elementar și trece prin toate vârfurile grafului

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 39 / 48

Page 40: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Drumuri în grafuri neorientate

corespunzator noţiunilor de drum si circuit în grafurile neorientatesunt noţiunile de lanţ și ciclu

Lanţun lanţ este o succesiune de muchii cu proprietatea ca oricare muchie areo extremitate comuna cu muchia precedenta și cealalta extremitate estecomuna cu muchia urmatoare.

Cicludaca extremitaţile lanţului coincid, atunci lanţul se numește ciclu.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 40 / 48

Page 41: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ:

1a2c4d3b2c4Lanţ simplu: 2b3d4c2Lanţ elementar: 1a2b3Ciclu simplu: 2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 42: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ: 1a2c4d3b2c4

Lanţ simplu: 2b3d4c2Lanţ elementar: 1a2b3Ciclu simplu: 2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 43: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ: 1a2c4d3b2c4Lanţ simplu:

2b3d4c2Lanţ elementar: 1a2b3Ciclu simplu: 2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 44: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ: 1a2c4d3b2c4Lanţ simplu: 2b3d4c2

Lanţ elementar: 1a2b3Ciclu simplu: 2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 45: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ: 1a2c4d3b2c4Lanţ simplu: 2b3d4c2Lanţ elementar:

1a2b3Ciclu simplu: 2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 46: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ: 1a2c4d3b2c4Lanţ simplu: 2b3d4c2Lanţ elementar: 1a2b3

Ciclu simplu: 2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 47: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ: 1a2c4d3b2c4Lanţ simplu: 2b3d4c2Lanţ elementar: 1a2b3Ciclu simplu:

2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 48: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Drumuri

Exemplu

Lanţ: 1a2c4d3b2c4Lanţ simplu: 2b3d4c2Lanţ elementar: 1a2b3Ciclu simplu: 2b3d4c2

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 41 / 48

Page 49: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Definitii Graf conex

Graf tare conex, conex

Graf tare conexun graf orientat este tare conex daca între oricare doua vârfuri ale grafuluiexista un drum.

graf tare conex - prin oricare doua vârfuri trece ce puţin un circuit

Graf conexun graf neorientat este conex daca între oricare doua vârfuri ale grafuluiexista un lanţ.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 42 / 48

Page 50: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Reprezentari ale grafurilor

Reprezentarea matriceală

Pentru exemplele date grafurile au fost reprezentate grafic, pentru un programscris aceasta reprezentare nu este suficienta.Un graf poate fi reprezentat folosind:

matricea de adiacenţaA = (aij), i , j = 1, 2, ..., n unde

aij ={

1, (i , j) ∈ E0, (i , j) /∈ E

matricea de incidenţa - se atașeaza grafurilor simple a caror mulţime dearce s-a ordonat, linia i corespunde vârfului i iar coloana j corespunde arcului e,matricea este de tipul nxm. Elementele matricii:

bij =

{ 1, ∃j ∈ V |e = (i , j),−1, ∃j ∈ V |e = (j, i), i ∈ V , e ∈ E0, altfel

lista

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 43 / 48

Page 51: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Reprezentari ale grafurilor

Reprezentarea matriceală

Pentru exemplele date grafurile au fost reprezentate grafic, pentru un programscris aceasta reprezentare nu este suficienta.Un graf poate fi reprezentat folosind:

matricea de adiacenţaA = (aij), i , j = 1, 2, ..., n unde

aij ={

1, (i , j) ∈ E0, (i , j) /∈ E

matricea de incidenţa - se atașeaza grafurilor simple a caror mulţime dearce s-a ordonat, linia i corespunde vârfului i iar coloana j corespunde arcului e,matricea este de tipul nxm. Elementele matricii:

bij =

{ 1, ∃j ∈ V |e = (i , j),−1, ∃j ∈ V |e = (j, i), i ∈ V , e ∈ E0, altfel

lista

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 43 / 48

Page 52: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Reprezentari ale grafurilor

Reprezentarea matriceală

Pentru exemplele date grafurile au fost reprezentate grafic, pentru un programscris aceasta reprezentare nu este suficienta.Un graf poate fi reprezentat folosind:

matricea de adiacenţaA = (aij), i , j = 1, 2, ..., n unde

aij ={

1, (i , j) ∈ E0, (i , j) /∈ E

matricea de incidenţa - se atașeaza grafurilor simple a caror mulţime dearce s-a ordonat, linia i corespunde vârfului i iar coloana j corespunde arcului e,matricea este de tipul nxm. Elementele matricii:

bij =

{ 1, ∃j ∈ V |e = (i , j),−1, ∃j ∈ V |e = (j, i), i ∈ V , e ∈ E0, altfel

listaMihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 43 / 48

Page 53: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Matricea distantelor

Determinarea matricei distanţelor

algoritmul Warshall

Warshall(D0)1. D := D02. for k := 1 to n do3. for i := 1 to n do4. for j := 1 to n do5. dij := min(dij , dik + dkj)6. return D

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 44 / 48

Page 54: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Matricea distantelor

Exemplu

Fie graful ponderat

x1

x2 x3

x4

x5

4

3

2 1

2

1

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 45 / 48

Page 55: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Matricea distantelor

Matricea distanţelor

D0 =

0 2 ∞ ∞ 12 0 4 ∞ 3∞ 4 0 1 ∞∞ ∞ 1 0 21 3 ∞ 2 0

D =

0 2 4 3 12 0 4 5 34 4 0 1 33 5 1 0 21 3 3 2 0

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 46 / 48

Page 56: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Matricea distantelor

Problema puncte bonus

primele cinci rezolvari corecte (CU EXPLICAŢII) primesc punctebonusrezolvarile trebuie trimise la adresa [email protected]

Problema: Într-o zi Hercule Poirot primește vizita bunului sau prieten capitanulHastings care a fost rugat sa investigheze un furt care a ramas nerezolvat de zeceani.Acum zece ani contesei Vera Rossakoff i-a fost furat faimosul diamant ”diamantulCullinan” din propriul castel. Contesa a dat o petrecere la castel cu câteva zileînainte de furt.Capitanul Hastings a intervievat persoanele care au participat la petrecere (Abe,Oliver, Li Chang, Darrell, Betsy, colonelul Appleby și Sonia), dar dupa zece ani nuși-au adus aminte foarte multe detalii.Detaliile cazului, locaţia diamantului arata ca faptașul cunoștea castelul. Hastingsa întrebat suspecţii de câte ori au fost la castel dar dupa zece ani nu și-au adusaminte.

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 47 / 48

Page 57: Algoritmica grafurilor I. Introduceremihai-suciu/graf/curs01.pdf ·  · 2018-03-06Algoritmica grafurilor I. Introducere Mihai Suciu Facultatea de Matematic˘a și Informatic˘a (UBB)

Matricea distantelor

Suspecţi:Abe, Oliver, Li Chang, Darrell, Betsy, colonelul Appleby și Sonia

Hastings i-a mai întrebat cu cine s-au întâlnit la castel:Abe: Oliver, Li Chang, Betsy și colonelul Appleby.Oliver: Abe, Li Chang, Darrell, Betsy și Sonia.Li Chang; Abe, Oliver și Darrell.Darrell: Oliver, Li Chang și Betsy.Betsy: Abe, Oliver, Darrell și Sonia.colonelul Appleby: Abe și Sonia.Sonia: Oliver, Betsy și colonelul Appleby.

Poirot a desenat ceva pe hârtie și dupa câteva minute a știut cine a furatdiamantul. Cine este hoţul?

Mihai Suciu (UBB) Algoritmica grafurilor Februarie, 28, 2018 48 / 48