Cursul 8. Teoria Grafurilor. Introducere. noiembrie Cursul 8

Documente similare
Grafuri - Concepte de baza. Tipuri de grafuri. Modalitati de reprezentare

Grafuri neorinetate Aplicatii 1 Care este numărul maxim de componente conexe pe care le poate avea un graf neorientat cu 20 noduri şi 12 muchii? a. 6

2.1.Tipul tablou unidimensional

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Slide 1

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft Word - _arbori.docx

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Ministerul Educatiei, Cercetarii si Tineretului Grup Scolar Gh. Asachi Galati Proiect pentru obtinerea certificatului de competente profesionale Speci

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Nr. 932 din Avizat ISJ Vâlcea, Inspector școlar informatică, Ciochină Luisa EXAMEN DE ATESTARE A COMPETENȚELOR PROFESIONALE A ABSOLVENȚILOR

Introducere

Analiză de flux de date 29 octombrie 2012

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

I

Slide 1

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Slide 1

Analiză statică Analiza fluxului de date 23 octombrie 2014

Retele Petri si Aplicatii

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Teoria Grafurilor şi Combinatorică recapitulare Principii de numărare Reţineţi că: P (n, r) este numărul de şiruri (sau r-permutări) de forma A 1,...,

E_d_Informatica_sp_MI_2015_bar_02_LRO

Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivi

Slide 1

Slide 1

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

ExamView Pro - Untitled.tst

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Structuri de date pentru partiţii de mulţimi O partiţie finită a unei mulţimi nevide S este o mulţime finită de submulţimi ale lui S: {S 1, S 2,..., S

Microsoft Word - cap1p4.doc

Laboratorul 2 Problema tăieturii minime Considerăm un graf (neorientat) G = (V, E) (V e mulţimea vârfurilor, E e mulţimea muchiilor) care este conex (

SECURITATE ȘI CRIPTOGRAFIE

Subiectul 1

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

Slide 1

Cursul 6 Cadru topologic pentru R n În continuarea precedentei părţi, din cursul 5, dedicată, în întregime, unor aspecte de ordin algebric (relative l

G.I.S. Curs 3

Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k,

Slide 1

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Proiectarea Algoritmilor

Diapositive 1

Elemente de aritmetica

Teoreme cu nume 1. Problema (Năstăsescu IX, p 147, propoziţia 5) Formula lui Chasles Pentru orice puncte M, N şi P avem MN + NP = MP.

Slide 1

Slide 1

PPSD

gaussx.dvi

Universitatea Politehnica din Bucureşti 2019 Disciplina: Geometrie şi Trigonometrie G1 * Varianta A 1. Ştiind cos x = 3 2, atunci sin2 x

Algoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Ob

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

{ 3x + 3, x < 1 Exemple. 1) Fie f : R R, f(x) = 2x + 4, x 1. Funcţia f este derivabilă pe R\{1} (compunere de funcţii elementare), deci rămâne să stud

carteInvataturaEd_2.0_lectia5.pdf

Cursul 7 Formula integrală a lui Cauchy Am demonstrat în cursul precedent că, dacă D C un domeniu simplu conex şi f : D C o funcţie olomorfă cu f cont

FIŞA DISCIPLINEI

PowerPoint Presentation

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

UNIVERSITATEA DE VEST DIN TIMIȘOARA FACULTATEA DE FIZICA CONCURSUL NAȚIONAL DE FIZICĂ CONSTANTIN SĂLCEANU 30 MARTIE 2019 Sunt obligatorii toate subiec

09. Informatica 2 - MM 1

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

Electricitate II

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

BAC 2007 Pro Didactica Programa M1 2 Rezolvarea variantei 61 versiune finală Redactia Pro Didactica Suportul pe net:

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

Teoria grafurilor

20 SUBIECTE DE EXAMEN - De fapt, în pofida acestor probleme, până la urmă tot vom logaritma, căci aceasta este tehnica naturală în context. Trebuie do

Microsoft Word - Programa_Evaluare_Nationala_2011_Matematica.doc

Logică și structuri discrete Mulțimi Casandra Holotescu

Laborator 3

Cursul 8 Funcţii analitice Vom studia acum comportarea şirurilor şi seriilor de funcţii olomorfe, cu scopul de a dezvălui o proprietate esenţială a ac

Geometrie afină Conf. Univ. Dr. Cornel Pintea cpintea math.ubbcluj.ro Cuprins 1 Săptămâna Endomorfismele unui spaţiu afin Transla

Laborator 4 Modele sistemice liniare. Reprezentare numerică. Conversii. Conexiuni 4.1 Tema Formarea deprinderilor de utilizare a convenţiilor MATLAB d

Microsoft Word - Lucrarea_10_t.doc

CRIPTOSISTEME SIMETRICE I

Algebra si Geometri pentru Computer Science

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Nr

BARAJ NR. 1 JUNIORI FRANŢA ianuarie Fie x şi y două numere întregi astfel încât 5x + 6y şi 6x + 5y să fie pătrate perfecte. Arătaţi că

OLM_2009_barem.pdf

Mihaela Stet 1.PDF

Slide 1

客厅电脑 酷影Q1000

Microsoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx

Microsoft Word - CarteC.doc

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Noțiuni matematice de bază

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Microsoft Word - D_ MT1_II_001.doc

A.E.F. - suport laborator nr.5 sem.ii Analiza suprafețelor prin utilizarea elementelor 2D În acest laborator sunt atinse următoarele aspecte: realizar

1

Coordonate baricentrice Considerăm în plan un triunghi ABC şi un punct Q în interiorul său, fixat arbitrar. Notăm σ c = aria ( QAB) σ a = aria ( QBC),

Pachete de lecţii disponibile pentru platforma AeL

CONCURSUL NAŢIONAL DE MATEMATICA PANAITOPOL EDIŢIA a X-a, TULCEA, 21 aprilie 2018 Clasa a VII - a 1. Se consideră numerele reale x, y şi z, cel puţin

PowerPoint Presentation

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

Transcriere:

Teoria Grafurilor. Introducere noiembrie 2020

Teoria Grafurilor Cuprins Graf = structură de date pentru modelarea relaţiilor binare dintre componentele unui sistem. G = (V, E) unde V : mulţime de noduri = componentele sistemului E : listă de muchii = legături/relaţii dintre noduri Tipuri de grafuri: Neorientate: b a c d e V = {a, b, c, d, e} E = [a b, b c, b c, e c, e e, d e, d a, c a] b c V = {a, b, c, d, e} e Orientate: E = [a b, b c, c b, e c, a d e e, e d, d a, c a] Muchiile orientate se numesc si arce (singular: arc). Observaţie: Dacă a b atunci: În grafuri neorientate: a b = b a (orientarea nu contează) În grafuri orientate: a b b a (orientarea contează!)

Vocabularul teoriei grafurilor Terminologie Orice muchie este incidentă la 2 noduri (capetele muchiei). Un arc a b are sursa a şi destinaţia b. Muchiile de forma a a sau a a se numesc bucle. Apariţiile multiple ale unei muchii în E se numesc muchii paralele. Exemplu: b c în E = [a b, b c, b c, e c, e e, d e, d a, c a] Un graf orientat se numeşte şi digraf (engl. directed graph). Un pseudograf este un graf cu bucle şi muchii paralele. Un multigraf este un graf fără bucle şi cu muchii paralele. Un graf simplu este un graf fără bucle şi fără muchii paralele. dacă G = (V, E) este graf simplu atunci E V V şi scriem a b în loc de a, b E. cel mai adesea, vom studia grafuri simple.

Grafuri ponderate Graf ponderat (G, w) unde G = (V, E) este un graf w : E R unde w(e) este ponderea sau greutatea muchiei e E. Dacă G este graf simplu iar e = x y sau e = x y, atunci scriem w(x, y) în loc de w(e). Exemplu b a 3 4 e 5 1 2 9 1 c d 7 12 f w(a, b) = 3, w(a, e) = 4, w(b, c) = 2 w(c, b) = 9, w(c, f ) = 12, w(c, e) = 1 w(e, b) = 5, w(e, d) = 1, w(d, f ) = 7

Vocabularul teoriei grafurilor Ordinul unui graf = numărul de noduri Mărimea unui graf = numărul de muchii Mulţimea de vecini a unui nod x V : V (x) = {y x y E} dacă graful este neorientat V (x) = {y x y E} dacă graful este orientat Dacă S V atunci V (S) = x S V (x). V [x] = V (x) {x} x este nod terminal dacă are un singur vecin: V (x) = 1 x este nod izolat dacă nu are vecini: V (x) = 0 Dacă G este graf neorientat: gradul lui x este deg(x) = {y x y E} + {y y x E} secvenţa de grade a lui G este lista gradelor nodurilor din G, în ordine descrescătoare. Dacă G este digraf: gradul interior al lui x este deg (x) = {y y x E} gradul exterior al lui x este deg + (x) = {y x y E}

Vocabularul teoriei grafurilor Exemplu 1 5 6 3 Mărimea: 6 2 4 Ordinul: 6 v V (v) V [v] deg(v) 1 {1, 2, 5} {1, 2, 5} 4 2 {1, 3, 4} {1, 2, 3, 4} 3 3 {2, 4} {2, 3, 4} 2 4 {2, 3} {2, 3, 4} 2 5 {1} {1, 5} 1 6 {6} 0 Secvenţa de grade este [4, 3, 2, 2, 1, 0]. Nodul 5 este terminal. Nodul 6 este izolat.

Vocabularul teoriei grafurilor Exemplu 1 5 6 3 Mărimea: 6 2 4 Ordinul: 7 v V (v) V [v] deg (v) deg + (v) deg(v) 1 {1, 2, 5} {1, 2, 5} 2 2 4 2 {1, 3, 4, 5} {1, 2, 3, 4, 5} 3 2 5 3 {2, 4} {2, 3, 4} 1 1 2 4 {2, 3} {2, 3, 4} 0 1 1 5 {1, 3} {1, 3, 5} 1 1 2 6 {6} 0 0 0 Secvenţa de grade este lista [5, 4, 2, 2, 1, 0].

Grafuri izomorfe Grafurile simple G = (V, E) şi H = (V, E ) sunt izomorfe, şi scriem G H, dacă există o funcţie bijectivă f : V V astfel încât x y E dacă şi numai dacă f (x) f (y) E x y E dacă şi numai dacă f (x) f (y) E Remarcă. Două grafuri sunt izomorfe dacă putem redenumi nodurile primului graf cu numele nodurilor celui de-al doilea graf în aşa fel încât muchiile dintre noduri să rămână aceleaşi. De exemplu G H unde G: 1 6 8 5 2 4 H: a g c b n h 3 7 i d

Vocabularul teoriei grafurilor Conectivitate (1) Dacă G = (V, E) este graf neorientat atunci Un drum sau cale de la x la y în G este o listă de noduri π = [x 1, x 2,..., x n ] astfel încât n 2, x 1 = x, x n = y şi x i x i+1 E pentru 1 i < n. Lungimea drumului este n 1. Dacă G = (V, E) este graf orientat atunci Un drum sau cale de la x la y în G este o listă de noduri π = [x 1, x 2,..., x n ] astfel încât n 2, x 1 = x, x n = y şi x i x i+1 E pentru 1 i < n. Lungimea drumului este n 1.

Vocabularul teoriei grafurilor Conectivitate (2) Scriem x y dacă există drum de la x la y, şi x π y dacă π este un drum de la x la y. Un drum este elementar dacă nu conţine de mai multe ori acelaşi nod, hamiltonian dacă este elementar şi conţine toate nodurile grafului. simplu dacă nu conţine de mai multe ori aceeaşi muchie, eulerian dacă este simplu şi conţine toate muchiile grafului. Un ciclu este un drum simplu de la un nod x la x. Un ciclu [x 1,..., x n, x 1 ] este hamiltonian dacă [x 1,..., x n ] este drum eulerian. eulerian dacă este drum eulerian.

Vocabularul teoriei grafurilor Conectivitate 1 3 5 2 4 [5, 1, 2, 3, 4, 2] este un drum simplu dar neelementar de lungime 5. [5, 1, 2, 4] şi [5, 1, 2, 3] sunt drumuri elementare de lungime 3. [2, 1, 5, 2, 3, 4, 2] este un ciclu neelementar de lungime 6. [2, 3, 4, 2] este un ciclu elementar de lungime 3. [1, 2, 5, 1, 4, 3, 2, 4] este un drum eulerian. [2, 5, 1, 4, 3, 2] este un ciclu hamiltonian.

Vocabularul teoriei grafurilor Conectivitate 1 3 5 2 4 [5, 1, 2, 3, 4, 2] este un drum simplu dar neelementar de lungime 5. [5, 1, 2, 4] şi [5, 1, 2, 3] sunt drumuri elementare de lungime 3. [2, 1, 5, 2, 3, 4, 2] este un ciclu neelementar de lungime 6. [2, 3, 4, 2] este un ciclu elementar de lungime 3. [1, 2, 5, 1, 4, 3, 2, 4] este un drum eulerian. [2, 5, 1, 4, 3, 2] este un ciclu hamiltonian. 3 1 2 4 5 are drumul hamiltonian [3, 1, 2, 5, 4] şi ciclul eulerian [5, 4, 5, 1, 3, 1, 2, 5].

Vocabularul teoriei grafurilor Componente conexe Componentele conexe sunt definite pentru grafuri neorientate G = (V, E). Relaţia de conectivitate este o relaţie de echivalenţă clasele de echivalenţă ale lui se numesc componente conexe ale lui G. Exemplu. 1 7 2 3 4 9 5 6 8 are 3 componente conexe: {1, 2, 3, 4, 5}, {6, 8, 9} şi {7}.

Vocabularul teoriei grafurilor Componente tare conexe Componentele tare conexe, sau tari, sunt definite pentru grafuri neorientate G = (V, E). Conectivitatea tare x ct y : x y şi y x este o relaţie de echivalenţă. Clasele de echivalenţă ale lui ct se numesc componente tari ale lui G. G este tare conex dacă are o singură componentă tare, adică dacă oricare două noduri din V sunt conectate tare. Exemplu. 1 7 2 3 4 9 5 6 8 are 3 componente tari: {1, 2, 3, 4, 5}, {6, 8, 9} şi {7}.

Teoreme fundamentale ale Teoriei Grafurilor Teorema 1. Într-un graf, suma gradelor nodurilor este egală cu dublul numărului de muchii. deg(x) = 2 E(G). x V (G) Teorema 2. Orice drum de la x la y conţine un drum elementar de la x la y. Schiţă de demonstraţie:

Clase de grafuri Grafuri complete (K n), grafuri nule (E n) Graful complet K n (n 1) are V = {1, 2,..., n} şi E = {i j 1 i < j n}. K 1 K 2 K 3 K 4 K 5 Graful nul E n (n 1) are V = {1, 2,..., n} şi E =. E 1 E 2 E 3 E 4 E 5

Clase de grafuri Grafuri ciclice (C n), grafuri bipartite complete (K m,n) Graful ciclic C n (n 1) are V = {1, 2,..., n} şi E = {i j 1 i n, j = 1 + (i mod n)}. C 1 C 2 C 3 C 4 C 5 C 6 Pentru m, n > 0, graful bipartit complet K m,n are V = {x i 1 i m} {y j 1 j n} şi E = {x i y j 1 i m, 1 j n}

Clase de grafuri Căi şi arbori Calea P n este graful cu V = {1, 2,..., n} şi E = {i j 1 i < n, j = i + 1}. 1 2 n 1 n Un arbore de ordinul n este un graf simplu conex cu n noduri şi fără cicluri. Mulţimea acestor arbori se notează cu T n. Remarcă. Toţi arborii din T n au n noduri şi n 1 muchii. Exemplu. Arbori din clasa T 5 : G 1 : G 2 : G 3 :

Subgraf, subgraf parţial Fie G = (V, E) un graf şi S V. Subgraful indus de S în G este graful G = (S, E ) unde E = {e E capetele lui e sunt în S}. G este subgraf al lui G dacă G = G[S] pentru un S V. În acest caz, mai spunem şi că G este conţinut în G. G = (V, E ) este subgraf parţial al lui G dacă V V şi E E.

Subgraf, subgraf parţial Fie G = (V, E) un graf şi S V. Subgraful indus de S în G este graful G = (S, E ) unde E = {e E capetele lui e sunt în S}. G este subgraf al lui G dacă G = G[S] pentru un S V. În acest caz, mai spunem şi că G este conţinut în G. G = (V, E ) este subgraf parţial al lui G dacă V V şi E E. Exemplu. Fie G graful Subgraf: u t s Subgraf parţial: v u t u t x y s w v s v z x y x y

Vocabularul teoriei grafurilor Clică, subdiviziune O n-clică (sau doar clică) a unui graf neorientat G este un subgraf al lui G izomorf cu K n. De exemplu: G 2 G 3 G 4 O subdiviziune a unui graf neorientat G este un graf obţinut prin una sau mai multe inserări succesive de noduri noi pe muchiile lui G. De exemplu: este subdiviziune a lui K 2,2. nu este subdiviziune a lui K 2,2.

Operaţii cu grafuri Fie G = (V, E) un graf, x V, S V şi T E. G S este subgraful indus G[V S] G T este subgraful parţial (V, E T ) G \ S este graful (V, E ) obţinut din contracţia nodurilor din S în un singur nod nou x S : V = (V S) {x S } Dacă G este neorientat atunci E ={x y x, y V S şi x y E} {x x S există x y E cu x V S şi y S}. Dacă G este digraf atunci E ={x y x, y V (G) S şi x y E} {x x S există x y E cu x V S şi y S} {x S y există x y E cu x S şi y V S}. G \ e este graful G \ S unde S sunt capetele muchiei e.

Operaţii cu grafuri Exemple G 1 : 3 3 1 2 4 5 4 G 1 {1, 5} 1 7 4 3 9 2 1 7 G 2 : 2 3 4 3 1 7 2 3 4 9 5 6 8 1 2 4 5 G 1 (1 5) 9 3 x {1,2,3,4,5} x {1,5} 2 4 G 1 \ {1, 5} = G 1 (1 5) 7 9 5 6 8 G 2 {2} 5 6 8 G 2 {2 3, 6 3} 6 8 G 2 \{1, 2, 3, 4, 5}

Vocabularul teoriei grafurilor δ(g), (G), α(g), ω(g) Fie G = (V, E) un graf neorientat şi S V. Gradul minim al lui G este δ(g) = min{deg(x) x V } Gradul maxim al lui G este (G) = max{deg(x) x V } Mulţimea de noduri S este stabilă sau independentă dacă nu există nici o muchie între noduri din S. Numărul de independenţă al lui G este α(g) = max{ S S este mulţime independentă în G}. Numărul de clică ω(g) al lui G este ordinul maxim al unei clici din G, adică ω(g) = max{n H este n-clică a lui G}.

Vocabularul teoriei grafurilor Exemple b c y z G 1 : x a G 2 : s d t e 1 5 2 4 3 7 6 δ(g 1 ) = (G 1 ) = 3, α(g 1 ) = 4, ω(g 1 ) = 2. δ(g 2 ) = 2, (G 2 ) = 6, α(g 2 ) = 3, ω(g 2 ) = 4.

Vocabularul teoriei grafurilor Articulaţii şi punţi Fie G = (V, E) un graf neorientat conex. x V (G) este nod de articulaţie (engl. cut vertex) dacă G {x} nu este conex. Altfel spus, ştergerea lui x distruge conectivitatea lui G. e E(G) este o punte (engl. bridge) dacă G e nu este conex. Altfel spus, ştergerea muchiei e distruge conectivitatea lui G. S V (G) este o mulţime de articulaţie (engl. vertex cut set) a lui G dacă graful G S nu este conex. Altfel spus, ştergerea nodurilor din S distruge conectivitatea lui G.

Vocabularul teoriei grafurilor grad de conectivitate, distanţă, excentricitate, centru, periferie, rază, diametru Gradul de conectivitate κ(g) al unui graf incomplet G este numărul minim de noduri ce trebuie eliminate din G pentru a-l deconecta, adică κ(g) = min{ S S este mulţime de articulaţie a lui G}. Dacă k este un întreg strict pozitiv, spunem că G este k-conex dacă k κ(g). Distanţa d(x, y) de la x la y este cea mai mică lungime a unui drum de la x la y. Excentricitatea e(x) a nodului x este distanţa cea mai mare de la x la un nod în G, adică e(x) = max{d(x, y) y V }. Centrul lui G este mulţimea nodurilor cu excentricitate minimă. Periferia lui G este mulţimea nodurilor cu excentricitate maximă. Raza lui G este excentricitatea unui nod din centrul lui G, adică radius(g) = min{e(x) x V }. Diametrul lui G este excentricitatea unui nod de la periferia lui G, adică diam(g) = max{e(x) x V }.

Vocabularul teoriei grafurilor Exemple 1 2 G 1 : a b c d e g f h are 3 puncte de articulaţie (cele încercuite) şi 2 punţi (cele îngroşate). a b c G 2 : d e g f h nu are puncte de articulaţie şi nici punţi, dar are mulţimi de articulaţie cu 2 noduri, de exemplu {c, e}, {f, g} sau {b, e}. Deci κ(g 2 ) = 2.

Vocabularul teoriei grafurilor Exemple G: r a x v s c u z e d(x, c) = 2, d(r, z) = 4, e(x) = e(e) = 2, e(z) = e(z) = 4, radius(g) = 2, diam(g) = 4, G are centrul {x, e}, G are periferia {r, z}.

Reprezentarea grafurilor pe calculator 1 Listă de noduri + listă de muchii 2 Liste de adiacenţă 3 Matrice de adiacenţă 4 Matrice de incidenţă 5 Matrice de ponderi

Reprezentarea grafurilor 1. Cu listă de noduri + listă de muchii Exemplu b a c d e Listă de noduri V = [a, b, c, d, e] Listă de muchii E = [a b, a c, a d, b c, c e, d e] Observaţii: a b = b a, a c = c a, etc. muchia a b mulţimea {a, b} b a c d e Listă de noduri V = [a, b, c, d, e] Listă de arce E = [a b, c a, c b, d a, e c, e d] Observaţii: a b b a, a c c a, etc. arcul a b perechea a, b Remarcă Dacă nu există noduri izolate, nu este necesar să fie reţinută lista de noduri V : V se poate calcula din E

Reprezentarea grafurilor 2. Cu liste de adiacenţă Pentru fiecare nod u V se reţine lista de vecini a lui u. Exemplu b a c d e adj[a] = [b, c, d] adj[b] = [a, c] adj[c] = [a, b, e] adj[d] = [a, e] adj[e] = [c, d] b a c d e adj[a] = [b] adj[b] = [] adj[c] = [a, b] adj[d] = [a] adj[e] = [c, d]

Reprezentarea grafurilor 3. Cu matrice de adiacenţă Presupunem că G = (V, E) este un graf cu n noduri. 1 Fixăm o enumerare [x 1, x 2,..., x n ] a nodurilor din V. 2 Matricea de adiacenţă este A G = (a ij ) de dimensiune n n cu a ij := numărul de muchii de la nodul x i la nodul x j. Observaţii 1 Înainte de a construi A G din G, trebuie fixată o enumerare a tuturor nodurilor: [x 1, x 2,..., x n ] 2 Dacă G este neorientat, A G este matrice simetrică 3 Dacă G este graf simplu, A G conţine doar 0 şi 1

Reprezentarea grafurilor cu matrice de adiacenţă Exemple b G: a b G: a c d c d e e Enumerarea nodurilor: [a, b, c, d, e] 0 1 1 1 0 1 0 1 0 0 A G = 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 Enumerarea nodurilor: [a, b, c, d, e] 0 1 0 0 0 0 0 0 0 0 A G = 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0

Reprezentarea digrafurilor 4. Cu matrice de incidenţă Presupunem că G = (V, E) este digraf. 1 Fixăm o enumerare V = [v 1,..., v n ] a nodurilor din V 2 Fixăm o enumerare E = [e 1,..., e p ] a muchiilor din E Matricea de incidenţă M G = (m ij ) are dimensiunea n p şi 1 dacă e j are sursa v i m ij = 1 dacă e j are destinaţia v i 0 în toate celelalte cazuri. Exemplu Dacă V = [a, b, c, d, e], E = [e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 ] şi M G = 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 a e 1 e 6 e e8 b e 4 e 5 e 7 e 2 e 3 d c

Reprezentarea grafurilor simple ponderate 5. Cu matrice de ponderi Presupunem că G = ((V, E), w) este un graf simplu ponderat. Fixăm o enumerare [x 1, x 2,..., x n ] a nodurilor din V. Matricea de ponderi W G = (w ij ) a lui (G, w) este matricea de dimensiune n n cu w ij = 0 dacă i = j, w(x i, x j ) dacă x i x j E sau x i x j E, + în celelalte cazuri. Exemplu (Digraf ponderat cu enumerare de noduri [a, b, c, d, e, f ]) G : a 3 4 b e 5 1 2 9 1 c d 7 12 f W G = 0 3 4 0 2 9 0 1 12 0 7 5 1 0 0

Reprezentarea grafurilor Studiu comparativ pentru un graf cu n noduri şi m muchii Reprezentarea cu listă de muchii Adecvată pentru reprezentarea grafurilor simple fără noduri izolate, cu m n 2 Complexitate spaţială (memorie ocupată): O(m) Reprezentarea cu liste de adiacenţă Permite enumerarea rapidă a vecinilor unui nod Complexitate spaţială (memorie ocupată): O(n + m) Reprezentarea cu matrice de adiacenţă A G = (a ij ) sau cu matrice de ponderi W G = (w ij ) Test rapid de conectivitate directă între 2 noduri: O(1) (v i, v j ) E dacă a ij = 0 sau dacă w ij = Complexitate spaţială (memorie ocupată): O(n 2 ) - reprezentare neadecvată când m n 2 Reprezentarea cu matrice de incidenţă M G Complexitate temporală: O(n m)

Un Java API pentru lucrul cu grafuri Pentru familiarizarea cu algoritmii fundamentali de lucru cu grafuri, vom folosi biblioteca de clase java algs4.jar. Detalii despre ce oferă această bibliotecă găsiţi aici. Sugestii de instalare şi utilizare pe laptop-ul personal: Instalaţi/actualizaţi Eclipse IDE for Java Developers de aici Descărcaţi algs4.jar de aici. Creaţi un proiect Java EduGraph. Creaţi package-ul ro.uvt.cs.graphs în cadrul proiectului EduGraph. Adăugati biblioteca externă algs4.jar: Properties Java Build Path Libraries Add External JARs