Grafuri. Liviu P. Dinu University of Bucharest Faculty of Mathematics and Computer Science

Σχετικά έγγραφα
Examen AG. Student:... Grupa:... ianuarie 2011

Examen AG. Student:... Grupa: ianuarie 2016

Metode iterative pentru probleme neliniare - contractii

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Criptosisteme cu cheie publică III

Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey

Curs 1 Şiruri de numere reale

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

Integrala nedefinită (primitive)

Cursul 11. Cuplaje. Sisteme de reprezentanti distincţi. Arbori de acoperire. Enumerarea tuturor arborilor cu număr fixat de noduri.

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

7.2 Problema săptămânii Seminar Seminar Seminar Seminar Conexitate Teorie...

Geometrie computationala 2. Preliminarii geometrice

ELEMENTE DE TEORIA GRAFURILOR

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

Sisteme diferenţiale liniare de ordinul 1

Matrice. Determinanti. Sisteme liniare

Metode de interpolare bazate pe diferenţe divizate

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

decembrie 2016 Grafuri. Noţiuni fundamentale. Grafuri euleriene şi grafuri hamilto

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Arbori și structuri decizionale

Laborator 11. Mulţimi Julia. Temă

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Capitolul IC.07. Grafuri

Esalonul Redus pe Linii (ERL). Subspatii.

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Subiecte Clasa a VIII-a

riptografie şi Securitate

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

GRAFURI ORIENTATE ASPECTE TEORETICE. 1. NoŃiunea de graf orientat

Subiecte Clasa a VII-a

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

IX. GRAFURI. e 1. e 2

ALGORITMICA GRAFURILOR. C. Croitoru

GRAFURI NEORIENTATE. 1. NoŃiunea de graf neorientat


Descompunerea unui graf in componente triconexe Algoritmul - J.E. Hopcroft si R.E. Tarjan

Curs 4. I.4 Grafuri. Grafuri orientate

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Să se arate că n este număr par. Dan Nedeianu

Conice - Câteva proprietǎţi elementare

MARCAREA REZISTOARELOR

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

Curs 4 Serii de numere reale

2 Transformări liniare între spaţii finit dimensionale

Curs 2 Şiruri de numere reale

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Profesor Blaga Mirela-Gabriela DREAPTA

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

CURS 5 Spaţii liniare. Spaţiul liniar R n

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1)

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

Seminar 5 Analiza stabilității sistemelor liniare

4/29/2011. Arbori minimi de acoperire

FLUXURI MAXIME ÎN REŢELE DE TRANSPORT. x 4

Dumitru Fanache TEORIA ALGORITMICĂ A GRAFURILOR NOŢIUNI FUNDAMENTALE. Volumul I EDITURA PARALELA 45

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

Asist. Dr. Oana Captarencu. otto/pn.html.

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt.

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

Functii Breviar teoretic 8 ianuarie ianuarie 2011

5.4. MULTIPLEXOARE A 0 A 1 A 2

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

CONCURSUL INTERJUDEȚEAN DE MATEMATICĂ TRAIAN LALESCU, 1998 Clasa a V-a

Grafuri planare Colorarea grafurilor. Curs 12. Grafuri planare. Colorarea grafurilor. Polinoame cromatice. 23 decembrie 2016.

5.1. Noţiuni introductive

Cercetari operationale. O.M. Gurzău

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

z a + c 0 + c 1 (z a)

a. 11 % b. 12 % c. 13 % d. 14 %

GEOMETRIE PLANĂ TEOREME IMPORTANTE ARII. bh lh 2. abc. abc. formula înălţimii

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare

Asupra unei inegalităţi date la barajul OBMJ 2006

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

III. Reprezentarea informaţiei în sistemele de calcul

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

COMBINATORICĂ. Mulţimile ordonate care se formează cu n elemente din n elemente date se numesc permutări. Pn Proprietăţi

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

Olimpiada Naţională de Matematică Etapa locală Clasa a IX-a M 1

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Proiectarea filtrelor prin metoda pierderilor de inserţie

1.3 Baza a unui spaţiu vectorial. Dimensiune

Transcript:

Grafuri Liviu P. Dinu University of Bucharest Faculty of Mathematics and Computer Science

Sumar Definiții Reprezentări Parcurgere în lățime Parcurgere în adîncime Drumuri în grafuri. Conexitate Matricea existenței drumurilor. Algoritmul Roy-Warshall Componente conexe Drumuri de cost minim. Algoritmul Dijkstra. Algoritmul Roy-Floyd

Definitii Se numeşte graf sau graf neorientat o structură G=(V,E), unde V este o mulțime nevidă iar E este o submulțime posibil vidă a mulțimii perechilor neordonate cu componente distincte din V. Vîrfurile u, v sunt adiacente în G dacă uv E. Graful G=(V,E) este graf finit, dacă V este o mulțime finită. Fie G i =(V i,e i ), i=,2 grafuri. G 2 este un subgraf al grafului G dacă V 2 e inclus în V şi E 2 e inclus în E. G2 este este un graf parțial al lui G dacă V2=V şi G2 este subgraf al lui G.

Definitii Un digraf este o structură D=(V,E), unde V este o mulțime nevidă de vîrfuri, iar E este o mulțime posibil vidă de perechi ordonate cu componente elemente distincte din V. Elementele mulțimii E sînt numite arce sau muchii ordonate.

Definitii Se numeşte graf ponderat o structură (V,E,W), unde G=(V,E) este graf şi W este o funcție numită pondere care asociază fiecărei muchii a grafului un cost/cîştig al parcurgerii ei. Fie G=(V,E) un graf, u,v V. Secvența de vîrfuri u, u,.., u n este un u-v drum dacă u =u, u n =v, u i u i+ E pentru toți i. Fie G=(V,E) un graf. Elementul v V se numeşte vîrf izolat dacă, pentru orice e E, v nu este incident cu e.

Reprezentari Intuitivă, grafică G=(V,E) graf cu V={,2,3,4,5,6}, E={(,2),(,3),(2,5),(3,5),(5,6)}. D=(V,E) digraf, V={,,5}, E={(,2), (,3), (,5), (2,5), (3,5), (4,), (5,4)}. G=(V,E,W) graf ponderat, V={,2,3,4}, E={(,2), (,3), (,4), (2,3), (2,4)}, W((,2))=5, W((,3))=, W((,4))=7, W((2,3))=4, W((2,4))=2 2 3 5 4 6 2 3 4 5

Reprezentari Matricea de adiacență ( ) = altfel E v v dacă a j i ij,,, 2 4 6 = A 4 3 5 = A 2 3 5 4 2 3 4 5 = A

Matricea de adiacență pentru graf ponderat ( ) ( ) = E,v v ),dacă,v W(v w j i j i =,altfel w j, i α 3 2 4 5 2 7 4 = 2 7 4 2 4 5 7 5 W

Parcurgeri. În lățime Fie G=(V,E) un graf. A - matricea de adiacență a grafului; C - o structură de tip coadă, în care sînt introduse vîrfurile ce urmează a fi vizitate şi procesate V - un vector cu n componente (inițializate cu ), undec i = Algoritm coada C este inițializată cu vîrful v ; cît timp C Ø, Se extrage şi vizitează un vîrf i din coadă, Se introduc în coadă vecinii lui i care nu au fost deja introduşi (acele vîrfuri k cu proprietatea că c[k]= şi a[i][k]=). Vîrfurile i ce au fost introduse în coadă sînt marcate prin v[i]=.,,

Parcurgere in latime 8 2 3 4 6 9 5 7 Rezultatul parcurgerii, pornind de la, este:, 2, 3, 4, 6, 5, 7

Parcurgere in latime void BF(int vi,int a[][],int n,int rez[],int* nr) { TNOD* cap=null; int v[], i, r, k; for(i=; i<n; v[i++]=); push(&cap,vi); v[vi]=; *nr=; while(cap) { r=pop(&cap, &i); rez[(*nr)++]=i+; for(k=; k<n; k++) if((a[i][k]==)&&(v[k]==)) { push(&cap,k); v[k]=; } } }

Parcurgere in adancime 2. În adîncime Fie G=(V,E) un graf. A - matricea de adiacență a grafului; S - o structură de tip stivă, în care sînt introduse vîrfurile ce urmează a fi vizitate şi procesate, V - un vector cu n componente (inițializate cu ), undec i =, Algoritm stiva S este inițializată cu vîrful v ; cît timp S Ø, Se extrage şi vizitează un vîrf i din stivă, Se introduc în stivă vecinii lui i care nu au fost deja introduşi (acele vîrfuri k cu proprietatea că c[k]= şi a[i][k]=). Vîrfurile i ce au fost introduse în stivă sînt marcate prin v[i]=.

Parcurgere in adancime 8 2 3 4 6 9 5 7 Rezultatul parcurgerii, pornind de la, este:, 3, 6, 7, 4, 5, 2

Parcurgere in adancime void DF(int vi,int a[][],int n,int rez[],int* nr) { TNOD* cap=null; int v[], i, r, k; for(i=; i<n; v[i++]=); push(&cap,vi); v[vi]=; *nr=; while(cap) { r=pop(&cap, &i); rez[(*nr)++]=i+; for(k=; k<n; k++) if((a[i][k]==)&&(v[k]==)) { push(&cap,k); v[k]=; } } }

Drumuri in grafuri Fie G=(V,E) un graf, u,v V. Secvența de vîrfuri Γ: u, u,..., u n este un u-v drum dacă u =u, u n =v, u i u i+ E, i n. Lungimea drumului, notată l(γ) este egală cu n. Convențional se numeşte drum trivial un drum Γ cu l(γ)=. Fie Γ: u, u,..., u n un drum în graful G=(V,E). Γ este un drum închis dacă u =u n ; în caz contrar Γ se numeşte drum deschis. Drumul Γ este elementar dacă oricare două vîrfuri din Γ sînt distincte, cu excepția, eventual, a extremităților.

Matricea existenței drumurilor Fie G=(V,E) un graf, A matricea de adiacență. A p indică numărul de drumuri distincte între oricare 2 vîrfuri. Fie operațiile binare de adunare şi înmulțire pentru matrice binare. Notînd A=(a ij ), B=(b ij ), atunci A+B=(c ij ), AxB=(d ij ), unde pentru i, j n c ij =max{a ij, b ij } d ij =max{min{a ik, b kj }, k n} Matricea obținută adunînd puterile de la la n- ale matricei de adiacență constituie matricea existenței drumurilor în graf.

Algoritmul Roy-Warshall void Roy_Warshall (unsigned char a[][], unsigned n, unsigned char m[][]) { int i,j,k; for( i=; i<n; i++ ) for( j=; j<n; j++ ) m[i][j] = a[i][j]; for( j=; j<n; j++ ) for( i=; i<n; i++ ) if( m[i][j] ) for( k=; k<n; k++ ) if( m[i][k] < m[k][j] ) m[i][k]=m[k][j]; }

Componente conexe ale unui graf Fie G=(V,E) graf netrivial. Vîrfurile u,v sînt conectate dacă există un u-v drum în G. Dacă G este un graf, atunci o componentă conexă a lui G este un subgraf conex al lui G, maximal în raport cu proprietatea de conexitate. Un graf este conex dacă şi numai dacă numărul componentelor sale conexe este. Mulțimile de vîrfuri corespunzătoare oricăror două componente conexe distincte sînt disjuncte.

Conexitate Algoritm pentru determinarea unei componente conexe (subgraf, mulțimi de vîrfuri şi muchii). Se inițializează componenta vidă Se adaugă la mulțimea de vîrfuri vîrful inițial Repetă Se caută toți vecinii noi ai vîrfurilor selectate şi se adaugă la mulțimea de vîrfuri Se caută toate muchiile noi dintre vîrfurile selectate şi se adaugă la mulțimea de muchii Pînă cînd nu se mai găsesc vorfuri noi

Fie G=(V,E,w) un graf ponderat. Costul drumului Γ: u, u,..., u n, notat L(Γ), este definit prin: n ( ) = wu (, ) L Γ i= i u i + Pentru orice u şi v vîrfuri conectate în G, u v, w- distanța între u şi v, notată D(u,v), este definită prin ( ) { ( ) } Du,v = minl Γ, Γ D uv unde D uv desemnează mulțimea tuturor u-v drumurilor elementare din G. Drumul pentru care D(u,v)=L(Γ), se numeşte drum de cost minim.

Roy-Floyd Se considera un graf orientat cu n noduri, pentru care se da matricea costurilor. Se cere ca, pentru fiecare pereche de noduri (i, j), sa se tipareasca costul drumului minim de la i la j. Plecam de la urmatoarea idee: daca drumul minim intre doua noduri oarecare i si j trece printr-un nod k, atunci drumurile de la i la k si de la k la j sunt la randul lor minime. Pentru fiecare pereche de noduri (i, j ), cu i, j in {,2,,n}, procedam astfel:

Roy-Floyd Dam lui k pe rand valorile,2,,n, pentru ca nodul k despre care vorbeam mai sus poate fi, cel putin teoretic, orice nod al grafului. Pentru fiecare k: daca suma dintre costul drumului de la i la j si costul drumului de la k la j este mai mica decat costul drumului de la i la j {a[i, k]+a[k, j]<a[i, j]}, atunci drumul initial de la i la j este inlocuit cu drumul indirect i->k->j. aceasta inlocuire se va reflecta in matricea costurilor: {a[i, j]:=a[i, k]+a[k, j]}.

Drumuri de cost minim Algoritmul Roy-Floyd void Roy_Floyd (float w[][], unsigned n float d[][], float MAX) { int i,j,k; for (i=;i<n;i++) for (j=;j<n;j++) d[i][j] = w[i][j]; for (j=;j<n;j++) for (i=;i<n;i++) if(d[i][j]<max) for (k=;k<n;k++) if (d[i][k] > d[i][j] + d[j][k]) d[i][k] = d[i][j] + d[j][k]; }

Dijkstra Algoritmul descris aici presupune o etichetare dinamica a varfurilor; Fiecare varf v va fi etichetat cu o eticheta (L(v), u), unde u este predecesorul lui v pe cel mai ieftin vo-v drum determinat pana la acel moment, iar L(v) lungimea acelui drum Notatie: pentru o submultime S a lui V, notam S complementara acelei multimi.

Dijskstra Intrare: (V,E,W), graf conex ponderat de ordin p; v varf initial. i=; So={vo};L(vo)=; L(v)=max pt. toti v din V-{vo};Daca p=, STOP 2. Pt. toti v din Si, daca L(v) >L(vi)+w(viv), then L(v):=L(vi)+w(viv) si etichetam v cu (L(v), vi) 3. Determina d=min{l(v), v in Si}si aleg vi+ a.i. L(vi+)=d 4. Si+:=SiU{vi+} 5. i:=i+; daca i=p-, STOP, altfel reia Pasul 2 Iesire: etichetele atasate varfurilor v din V.