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

Documente similare
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

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Microsoft Word - _arbori.docx

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

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

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

Slide 1

E_d_Informatica_sp_MI_2015_bar_02_LRO

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

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

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

Introducere

Analiză de flux de date 29 octombrie 2012

Retele Petri si Aplicatii

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

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

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.

Microsoft Word - cap1p4.doc

ExamView Pro - Untitled.tst

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

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-

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

I

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

Slide 1

G.I.S. Curs 3

Microsoft Word - V_4_Inmultirea_nr_nat.doc

Algebra si Geometri pentru Computer Science

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

SECURITATE ȘI CRIPTOGRAFIE

Slide 1

Slide 1

Slide 1

Subiectul 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

Matematica VI

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

Logică și structuri discrete Mulțimi Casandra Holotescu

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

Analiză statică Analiza fluxului de date 23 octombrie 2014

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

FILTRE DE REALIZARE CU CIRCUITE DE INTEGRARE

Slide 1

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),

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

Microsoft Word - a5+s1-5.doc

Microsoft Word - Probleme-PS.doc

OPERATII DE PRELUCRAREA IMAGINILOR 1

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

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

FIŞA DISCIPLINEI

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

DETERMINAREA CONSTANTEI RYDBERG

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

CRIPTOSISTEME SIMETRICE I

Curs 10 Aplicaţii ale calculului diferenţial. Puncte de extrem 10.1 Diferenţiale de ordin superior S¼a trecem acum la de nirea diferenţialelor de ordi

Instrucţiuni de asamblare USCĂTOARELE DE CEREALE ANTTI M06 3W CAPETELE CANALELOR DE AER 0,5 M (ro) ANTTI-TEOLLISUUS OY Koskentie 89 FI Ka

Slide 1

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

2

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

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

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

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.

Modelarea si Simularea Sistemelor de Calcul

Microsoft Word - CarteC.doc

06. Modelarea continua si discreta a sistemelor - MAGS 1

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

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

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

Slide 1

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

CL2009R0976RO bi_cp 1..1

Proiectarea Algoritmilor

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

Laborator 3

Limbaje Formale, Automate si Compilatoare

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Microsoft Word - Tsakiris Cristian - MECANICA FLUIDELOR

Electricitate II

Performanta in matematica de gimnaziu si liceu-program de pregatire al elevilor olimpici MULTIMI. OPERATII CU MULTIMI Partea I+II Cls. a V-a

Secţiunea 7-8 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA 1 ID 100 puncte Calculatoarele trebuie să se recunoască în rețeau

Concurs online de informatică Categoria PROGRAMARE Secţiunea 5-6 avansaţi PROBLEMA puncte DANS De 1 Iunie - Ziua Copilului se organizează un spe

MergedFile

OLM_2009_barem.pdf

gaussx.dvi

A.E.F. - suport laborator nr.3 sem.ii Aplicațe privind utilizarea rețelelor 1D În acest laborator sunt atinse următoarele aspecte: realizarea schițelo

Slide 1

Elemente de aritmetica

Microsoft Word - Curs_08.doc

MD.09. Teoria stabilităţii 1

Pachete de lecţii disponibile pentru platforma AeL

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Mihaela Stet 1.PDF

Tablouri (continuare)

PPSD

Transcriere:

Concepte de bază. Tipuri de grafuri. Modalităţi de reprezentare Mircea Marin Departamentul of Informatică Universitatea de Vest din Timişoara mircea.marin@e-uvt.ro 9 noiembrie 2018

Introducere Ce este un graf? Graf: structură de date discretă formată din noduri şi muchii de legătură între noduri.

Introducere Ce este un graf? Graf: structură de date discretă formată din noduri şi muchii de legătură între noduri. Utilă pentru modelarea unui număr mare de probleme: legături rutiere sau feroviare între localităţi relaţii de subordonare în o organizaţie rezultatul final al unui turneu...

Introducere Ce este un graf? Graf: structură de date discretă formată din noduri şi muchii de legătură între noduri. Utilă pentru modelarea unui număr mare de probleme: legături rutiere sau feroviare între localităţi relaţii de subordonare în o organizaţie rezultatul final al unui turneu... Notaţie matematică G = (V, E) unde: V : mulţime finită de noduri E : mulţime finită de muchii

Introducere Ce este un graf? Graf: structură de date discretă formată din noduri şi muchii de legătură între noduri. Utilă pentru modelarea unui număr mare de probleme: legături rutiere sau feroviare între localităţi relaţii de subordonare în o organizaţie rezultatul final al unui turneu... Notaţie matematică G = (V, E) unde: V : mulţime finită de noduri E : mulţime finită de muchii Probleme diferite pot fi modelate cu tipuri de grafuri diferite: grafuri simple, multigrafuri, pseudografuri, grafuri orientate, etc.

Graf simplu Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Noduri V : locaţiile geografice ale calculatoarelor: San Francisco (SF), Los Angeles (LA), Denver (Dn), Chicago (C), Detroit (Dt), New York (NY), Washington (W) Muchii E: legăturile dintre calculatoare; presupunem că 1 Nu există legături de la un nod la el însuşi. 2 Există cel mult o legătură între calculatoare diferite. C Dt W NY SF Dn LA

Graf simplu Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Noduri V : locaţiile geografice ale calculatoarelor: San Francisco (SF), Los Angeles (LA), Denver (Dn), Chicago (C), Detroit (Dt), New York (NY), Washington (W) Muchii E: legăturile dintre calculatoare; presupunem că 1 Nu există legături de la un nod la el însuşi. 2 Există cel mult o legătură între calculatoare diferite. SF LA Dn C Dt W NY V={SF,LA,Dn,C,Dt,NY,W} E = {{SF, LA}, {SF, Dn}, {LA, Dn}, {Dn, C}, {C, Dt}, {Dt, NY}, {C, NY}, {C, W}, {W, NY}}

Graf simplu Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Noduri V : locaţiile geografice ale calculatoarelor: San Francisco (SF), Los Angeles (LA), Denver (Dn), Chicago (C), Detroit (Dt), New York (NY), Washington (W) Muchii E: legăturile dintre calculatoare; presupunem că 1 Nu există legături de la un nod la el însuşi. 2 Există cel mult o legătură între calculatoare diferite. SF LA Dn C Dt W NY V={SF,LA,Dn,C,Dt,NY,W} E = {{SF, LA}, {SF, Dn}, {LA, Dn}, {Dn, C}, {C, Dt}, {Dt, NY}, {C, NY}, {C, W}, {W, NY}} Remarcă: Muchiile unui graf simplu sunt specificate ca o submulţime a mulţimii {{x, y} x, y V, x y}. muchiile sunt neorientate (ordinea nodurilor este irelevantă). De exemplu: {C, NY} = {NY, C}

Multigraf Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Pentru evitarea supraîncărcării legăturilor telefonice, calculatoare diferite pot fi conectate cu mai multe linii telefonice: e 5 e 6 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 SF e 2 LA e 1 e 3 e 4 Dn e 7

Multigraf Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Pentru evitarea supraîncărcării legăturilor telefonice, calculatoare diferite pot fi conectate cu mai multe linii telefonice: SF e 2 LA e 1 e 3 e 4 Dn e 5 e 6 e 7 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 V={SF,LA,Dn,C,Dt,NY,W} E = {e 1, e 2, e 3,..., e 11, e 12, e 13 } f : E {{x, y} x, y V, x y}, f returnează capetele fiecărei muchii: f (e 1 ) = {SF, Dn}, f (e 2 ) = {SF, LA}, f (e 3 ) = f (e 4 ) = {LA, Dn}, f (e 5 ) = f (e 6 ) = f (e 7 ) = {Dn, C}, f (e 8 ) = {C, Dt}, f (e 9 ) = {Dt, NY},...

Multigraf Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Pentru evitarea supraîncărcării legăturilor telefonice, calculatoare diferite pot fi conectate cu mai multe linii telefonice: SF e 2 LA e 1 e 3 e 4 Dn e 5 e 6 e 7 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 V={SF,LA,Dn,C,Dt,NY,W} E = {e 1, e 2, e 3,..., e 11, e 12, e 13 } f : E {{x, y} x, y V, x y}, f returnează capetele fiecărei muchii: f (e 1 ) = {SF, Dn}, f (e 2 ) = {SF, LA}, f (e 3 ) = f (e 4 ) = {LA, Dn}, f (e 5 ) = f (e 6 ) = f (e 7 ) = {Dn, C}, f (e 8 ) = {C, Dt}, f (e 9 ) = {Dt, NY},... Remarcă: Un multigraf G este specificat de către mulţimile V, E şi o funcţie f : E {{x, y} x, y V, x y}. e, e E sunt paralele dacă f (e) = f (e ).

Pseudograf Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Putem considera şi legături telefonice de la un calculator la el însuşi (de exemplu, pentru diagnosticare): e 14 e 5 e 6 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 e 16 SF e 2 LA e 1 e 3 e 4 Dn e 7 e 15

Pseudograf Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Putem considera şi legături telefonice de la un calculator la el însuşi (de exemplu, pentru diagnosticare): e 14 SF e 2 LA e 15 e 1 e 3 e 4 Dn e 5 e 6 e 7 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 e 16 V={SF,LA,Dn,C,Dt,NY,W} E = {e 1, e 2, e 3,..., e 11, e 12, e 13, e 14, e 15, e 16 } f : E {{x, y} x, y V, x y}, f returnează capetele fiecărei muchii: f (e 1 ) = {SF, Dn}, f (e 2 ) = {SF, LA}, f (e 3 ) = f (e 4 ) = {LA, Dn}, f (e 5 ) = f (e 6 ) = f (e 7 ) = {Dn, C}, f (e 8 ) = {C, Dt}, f (e 9 ) = {Dt, NY},..., f (e 16 ) = {NY}

Pseudograf Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Putem considera şi legături telefonice de la un calculator la el însuşi (de exemplu, pentru diagnosticare): e 14 SF e 2 LA e 15 e 1 e 3 e 4 Dn e 5 e 6 e 7 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 e 16 V={SF,LA,Dn,C,Dt,NY,W} E = {e 1, e 2, e 3,..., e 11, e 12, e 13, e 14, e 15, e 16 } f : E {{x, y} x, y V, x y}, f returnează capetele fiecărei muchii: f (e 1 ) = {SF, Dn}, f (e 2 ) = {SF, LA}, f (e 3 ) = f (e 4 ) = {LA, Dn}, f (e 5 ) = f (e 6 ) = f (e 7 ) = {Dn, C}, f (e 8 ) = {C, Dt}, f (e 9 ) = {Dt, NY},..., f (e 16 ) = {NY} Remarcă: Un pseudograf G este specificat de către mulţimile V, E şi o funcţie f : E {{x, y} x, y V }. e E este o buclă dacă f (e) = {x}, x V. Exemple: e 14, e 15, e 16 sunt bucle.

Graf orientat (digraf) Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Muchiile sunt orientate de la un nod sursă la un nod destinaţie Există cel mult o legătură de la un calculator la altul. C Dt W NY SF Dn LA

Graf orientat (digraf) Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Muchiile sunt orientate de la un nod sursă la un nod destinaţie Există cel mult o legătură de la un calculator la altul. SF LA Dn C Dt W NY V={SF,LA,Dn,C,Dt,NY,W} E = {(SF, SF), (Dn, SF), (Dn, LA), (LA, Dn), (LA, SF), (Dn, C), (C, Dn), (C, Dt), (Dt, NY), (C, NY), (C, W), (W, NY), (NY, W), (NY, NY)}

Graf orientat (digraf) Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Muchiile sunt orientate de la un nod sursă la un nod destinaţie Există cel mult o legătură de la un calculator la altul. SF LA Dn C Dt W NY V={SF,LA,Dn,C,Dt,NY,W} E = {(SF, SF), (Dn, SF), (Dn, LA), (LA, Dn), (LA, SF), (Dn, C), (C, Dn), (C, Dt), (Dt, NY), (C, NY), (C, W), (W, NY), (NY, W), (NY, NY)} Observaţii: Muchiile unui digraf G = (V, E) sunt o submulţime E (V V ).

Graf orientat (digraf) Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Muchiile sunt orientate de la un nod sursă la un nod destinaţie Există cel mult o legătură de la un calculator la altul. SF LA Dn C Dt W NY V={SF,LA,Dn,C,Dt,NY,W} E = {(SF, SF), (Dn, SF), (Dn, LA), (LA, Dn), (LA, SF), (Dn, C), (C, Dn), (C, Dt), (Dt, NY), (C, NY), (C, W), (W, NY), (NY, W), (NY, NY)} Observaţii: Muchiile unui digraf G = (V, E) sunt o submulţime E (V V ). Dacă u v atunci (u, v) (v, u).

Multigraf orientat Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Muchiile sunt orientate de la un nod sursă la un nod destinaţie Putem avea muchii multiple (paralele) de la o sursă la o destinaţie. e 14 e 5 e 6 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 e 16 SF e 2 LA e 1 e 3 e 4 Dn e 7 e 15

Multigraf orientat Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Muchiile sunt orientate de la un nod sursă la un nod destinaţie Putem avea muchii multiple (paralele) de la o sursă la o destinaţie. e 14 SF e 2 LA e 15 e 1 e 3 e 4 Dn e 5 e 6 e 7 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 e 16 V={SF,LA,Dn,C,Dt,NY,W} E = {e 1, e 2, e 3,..., e 11, e 12, e 13, e 14, e 15, e 16 } f : E V V, f returnează sursa şi destinaţia fiecărei muchii: f (e 1 ) = (Dn, SF), f (e 2 ) = (LA, SF), f (e 3 ) = (LA, Dn), f (e 4 ) = (Dn, LA), f (e 5 ) = f (e 6 ) = (Dn, C), f (e 7 ) = (C, Dn), f (e 8 ) = (C, Dt),..., f (e 16 ) = (NY, NY)

Multigraf orientat Exemplu: calculatoare din oraşe diferite conectate prin legături telefonice Muchiile sunt orientate de la un nod sursă la un nod destinaţie Putem avea muchii multiple (paralele) de la o sursă la o destinaţie. e 14 SF e 2 LA e 15 e 1 e 3 e 4 Dn e 5 e 6 e 7 C e 8 e 11 Dt e 10 W e 9 e 12 NY e 13 e 16 V={SF,LA,Dn,C,Dt,NY,W} E = {e 1, e 2, e 3,..., e 11, e 12, e 13, e 14, e 15, e 16 } f : E V V, f returnează sursa şi destinaţia fiecărei muchii: f (e 1 ) = (Dn, SF), f (e 2 ) = (LA, SF), f (e 3 ) = (LA, Dn), f (e 4 ) = (Dn, LA), f (e 5 ) = f (e 6 ) = (Dn, C), f (e 7 ) = (C, Dn), f (e 8 ) = (C, Dt),..., f (e 16 ) = (NY, NY) Remarcă: Un multigraf orientat G este specificat de către mulţimile V, E şi o funcţie f : E V V.

Graf ponderat Exemplu: reţea de legături feroviare între nişte oraşe Un graf G = (V, E) împreună cu o funcţie w : E Y care asociază o greutate (sau pondere) w(e) fiecărei muchii e E. De obicei, ponderile sunt numere reale (A R) În acest exemplu, ponderile sunt distanţele în kilometri dintre oraşe.

Tipuri de grafuri Terminologie Tip muchii muchii multiple? Bucle? Graf simplu neorientate nu nu Multigraf neorientate da nu Pseudograf neorientate da da Graf orientat orientate nu da Multigraf orientat orientate da da

Modele bazate pe grafuri 1. Graf de suprapunere de nişă: Graf simplu ce modelează interacţiunea dintre specii diferite de animale: fiecare specie este reprezentată de un nod muchiile sunt între specii îm competiţie pentru resurse comune de mâncare raton şoim bufniţă oposum veveriţă cioară napârcă şoarece ciocănitoare

Modele bazate pe grafuri 2. Graf de turneu Graf orientat (V, E) care modelează un campionat în care fiecare echipă joacă o singură dată cu fiecare din celelalte echipe: Fiecare echipa este reprezentată ca nod în graf (a, b) E indică faptul că echipa a a învins echipa b. Exemplu: turneu de 6 echipe Echipa 1 Echipa 2 Echipa 6 Echipa 3 Echipa 5 Echipa 4

Modele bazate pe grafuri 3. Graf de precedenţă Graf orientat G = (V, E) care descrie relaţiile de dependenţă dintre instrucţiunile unui program P: Nodurile corespund instrucţiunilor din programul P (s, s ) E dacă instrucţiunea s nu poate fi executată înaintea instrucţiunii s. Exemplu:

Alte modele bazate pe grafuri 4. Arbore de familie al unei persoane X : graf orientat care reprezintă toţi strămoşii cunoscuţi ai lui X : Noduri: X şi toţi strămoşii cunoscuţi ai lui X Muchii: (a, b) reprezintă faptul că b este copilul lui a. Exemplu: arbore de familie al lui JFK: John F. Kennedy Joseph P. Kennedy Rose F. Kennedy Patrick J. Kennedy Mary A. Hickey John F. Fitzgerald Mary J. Hannon 5. Graful web: WWW poate fi modelat ca un graf orientat nodurile sunt paginile web o muchie de la A la B indică existenţa unui hyperlink din pagina A la pagina B.

Noţiuni de bază Terminologie pentru grafuri neorientate G = (V, E) (1) Nodurile u, v sunt incidente dacă e = {u, v} E. Muchia e este incidentă cu nodul u şi cu nodul v. Nodurile u, v sunt capetele muchiei e. u este vecinul lui v, şi v este vecinul lui u. Gradul deg(u) unui nod u este numărul de muchii incidente cu u; buclele contribuie de 2 ori la gradul unui nod. u este izolat dacă deg(u) = 0, şi pendant dacă deg(u) = 1.

Noţiuni de bază Terminologie pentru grafuri neorientate G = (V, E) (1) Exemplu Nodurile u, v sunt incidente dacă e = {u, v} E. Muchia e este incidentă cu nodul u şi cu nodul v. Nodurile u, v sunt capetele muchiei e. u este vecinul lui v, şi v este vecinul lui u. Gradul deg(u) unui nod u este numărul de muchii incidente cu u; buclele contribuie de 2 ori la gradul unui nod. u este izolat dacă deg(u) = 0, şi pendant dacă deg(u) = 1. b c d a b c a f e g e d G H În G: deg(a) = 2, deg(b) = deg(c) = deg(f ) = 4, deg(d) = 1, deg(e) = 3, deg(g) = 0. În H: deg(a) = 4, deg(b) = deg(e) = 6, deg(c) = 1, deg(d) = 5.

Noţiuni de bază pentru grafuri neorientate Terminologie pentru G = (V, E) (2) Ordinul lui G este V, numărul de noduri. Mărimea lui G este E, numărul de muchii. Vecinătatea lui x V este N(x) := {y y este vecin al lui x} Vecinătatea închisă a lui x este N[x] := N(x) {x} Gradul minim al lui G este δ(g) = min{deg(x) x V } Gradul maxim al lui G este (G) = max{deg(x) x V }

Noţiuni de bază pentru grafuri neorientate Terminologie pentru G = (V, E) (2) Exemplu Ordinul lui G este V, numărul de noduri. Mărimea lui G este E, numărul de muchii. Vecinătatea lui x V este N(x) := {y y este vecin al lui x} Vecinătatea închisă a lui x este N[x] := N(x) {x} Gradul minim al lui G este δ(g) = min{deg(x) x V } Gradul maxim al lui G este (G) = max{deg(x) x V } a b c d e f g h G = (V, E) unde V = {a, b, c, d, e, f }, E = {{a, d}, {a, e}, {b, c}, {b, e}, {b, g}, {c, f }, {d, f }, {d, g}, {g, h}} N(d) = {a, f, g}, N[d] = {a, d, f, g}, (G) = deg(b) = 3, δ(g) = deg(h) = 1.

Noţiuni de bază pentru grafuri neorientate Conectivitate (3) Fie G = (V, E) un graf neorientat. Un lanţ (sau cale) de la v 1 la v n este o secvenţă de noduri d = (v 1, v 2,..., v n ) astfel încât v i+1 este vecinul lui v i pentru orice 1 i < n. Lungimea lanţului d este n 1. d este elementar dacă nodurile v 1,..., v n sunt distincte. d este simplu dacă nu conţine de mai multe ori aceeaşi muchie. d este ciclu dacă este lanţ simplu de lungime 3 şi, v 1 = v n. Un ciclu d = (v 1,..., v n, v 1 ) este elementar dacă nodurile v 1,..., v n sunt distincte. v şi v sunt conectate dacă există un lanţ de la v la v. G este conex dacă orice 2 noduri sunt conectate.

Noţiuni de bază pentru grafuri neorientate Terminologie pentru G = (V, E) (4) Exemplu c f a (f ) este lanţ de lungime 0. (a, c, f, c, b, d) este lanţ de lungime 5. b Acest lanţ nu este nici simplu nici elementar. d e (b, a, c, b, d, b) este ciclu de lungime 4. Acest ciclu este simplu şi ne-elementar. g (d, g, b, a, c, f, e) este lanţ simplu şi elementar de lungime 6. (g, d, b, c, a, b, g) este ciclu simplu dar ne-elementar. (e, d, b, a, c, f, e) este ciclu elementar.

Noţiuni de bază pentru grafuri neorientate Terminologie pentru G = (V, E) (4) Exemplu c f a (f ) este lanţ de lungime 0. (a, c, f, c, b, d) este lanţ de lungime 5. b Acest lanţ nu este nici simplu nici elementar. d e (b, a, c, b, d, b) este ciclu de lungime 4. Acest ciclu este simplu şi ne-elementar. g (d, g, b, a, c, f, e) este lanţ simplu şi elementar de lungime 6. (g, d, b, c, a, b, g) este ciclu simplu dar ne-elementar. (e, d, b, a, c, f, e) este ciclu elementar. Observaţii:

Noţiuni de bază pentru grafuri neorientate Terminologie pentru G = (V, E) (4) Exemplu c f a (f ) este lanţ de lungime 0. (a, c, f, c, b, d) este lanţ de lungime 5. b Acest lanţ nu este nici simplu nici elementar. d e (b, a, c, b, d, b) este ciclu de lungime 4. Acest ciclu este simplu şi ne-elementar. g (d, g, b, a, c, f, e) este lanţ simplu şi elementar de lungime 6. (g, d, b, c, a, b, g) este ciclu simplu dar ne-elementar. (e, d, b, a, c, f, e) este ciclu elementar. Observaţii: 1 Un lanţ sau ciclu elementar este simplu.

Noţiuni de bază pentru grafuri neorientate Terminologie pentru G = (V, E) (4) Exemplu c f a (f ) este lanţ de lungime 0. (a, c, f, c, b, d) este lanţ de lungime 5. b Acest lanţ nu este nici simplu nici elementar. d e (b, a, c, b, d, b) este ciclu de lungime 4. Acest ciclu este simplu şi ne-elementar. g (d, g, b, a, c, f, e) este lanţ simplu şi elementar de lungime 6. (g, d, b, c, a, b, g) este ciclu simplu dar ne-elementar. (e, d, b, a, c, f, e) este ciclu elementar. Observaţii: 1 Un lanţ sau ciclu elementar este simplu. 2 Teorema Fundamentală 1: v V deg(v) = 2 E.

Noţiuni de bază pentru grafuri neorientate Terminologie pentru G = (V, E) (4) Exemplu c f a (f ) este lanţ de lungime 0. (a, c, f, c, b, d) este lanţ de lungime 5. b Acest lanţ nu este nici simplu nici elementar. d e (b, a, c, b, d, b) este ciclu de lungime 4. Acest ciclu este simplu şi ne-elementar. g (d, g, b, a, c, f, e) este lanţ simplu şi elementar de lungime 6. (g, d, b, c, a, b, g) este ciclu simplu dar ne-elementar. (e, d, b, a, c, f, e) este ciclu elementar. Observaţii: 1 Un lanţ sau ciclu elementar este simplu. 2 Teorema Fundamentală 1: v V deg(v) = 2 E. 3 Teorema Fundamentală 2: Dacă v şi v sunt conectate atunci există un lanţ elementar de la v la v.

Tipuri speciale de grafuri simple (1) K n, C n, E n le complete K n K 1 K 2 K 3 K 4 K 5 K 6 le cale P n sunt lanţurile elementare de n noduri v 1 v 2 v 3 v n le vide E n au n noduri, şi nu au nici o muchie. v 1 v 2 v 3... v n le ciclice C n constau din cicluri de lungime n C 3 C 4

Tipuri speciale de grafuri simple (2) bipartite G = (V, E) este bipartit dacă V = X Y unde X Y şi X Y = Toate muchiile au un capăt în X şi celălalt în Y. Exemplu de graf bipartit : X Y

Tipuri speciale de grafuri simple (2) bipartite G = (V, E) este bipartit dacă V = X Y unde X Y şi X Y = Toate muchiile au un capăt în X şi celălalt în Y. Exemplu de graf bipartit : X Y Un graf bipartit complet K m,n este un graf bipartit între X şi Y cu X = m, Y = n, astfel încât există o muchie între orice pereche de noduri (x, y) X Y.

Tipuri speciale de grafuri simple (2) bipartite G = (V, E) este bipartit dacă V = X Y unde X Y şi X Y = Toate muchiile au un capăt în X şi celălalt în Y. Exemplu de graf bipartit : X Y Un graf bipartit complet K m,n este un graf bipartit între X şi Y cu X = m, Y = n, astfel încât există o muchie între orice pereche de noduri (x, y) X Y. Exemple de grafuri bipartite complete K 1,4 K 3,4 K 3,2

Noţiuni de bază pentru grafuri orientate Terminologie pentru G = (V, E) (1) Exemplu Muchiile lui G se numesc arce. Scriem (u, v) E dacă E conţine un arc cu sursa u şi destinaţia v. u, v sunt adiacente dacă (u, v) E. Gradul interior al unui nod v este deg (v) = {e E e are destinaţia v}. Gradul exterior al unui nod v este deg + (v) = {e E e are sursa v}. a b e c d f Nod x deg (x) deg + (x) a 0 2 b 3 1 c 1 3 d 1 1 e 2 2 f 2 0

Noţiuni de bază pentru grafuri orientate Terminologie pentru G = (V, E) (1) Exemplu Muchiile lui G se numesc arce. Scriem (u, v) E dacă E conţine un arc cu sursa u şi destinaţia v. u, v sunt adiacente dacă (u, v) E. Gradul interior al unui nod v este deg (v) = {e E e are destinaţia v}. Gradul exterior al unui nod v este deg + (v) = {e E e are sursa v}. a b e c d f Nod x deg (x) deg + (x) a 0 2 b 3 1 c 1 3 d 1 1 e 2 2 f 2 0 Observaţie: v V deg (v) = v V deg + (v).

Noţiuni de bază pentru grafuri orientate Conectivitate: Drumuri şi circuite (2) Un drum de la v 1 la v n este o secvenţă de noduri d = (v 1, v 2,..., v n ) astfel încât (v i, v i 1 ) E pentru orice 1 i < n. Lungimea drumului d este n 1. d este simplu dacă arcele (v 1, v 2 ),..., (v n 1, v n ) sunt distincte două câte două. d este elementar dacă nodurile v 1,..., v n sunt distincte. Observaţie: orice drum elementar este simplu. Un circuit este un drum simplu d = (v 1, v 2,..., v n ) cu v 1 = v n. Circuitul d = (v 1,..., v n, v 1 ) este elementar dacă nodurile v 1,..., v n sunt distincte.

izomorfe a c d b 8 1 2 3 g e f h 7 6 5 4 Dacă putem redenumi şi repoziţiona nodurile primului graf, cele 2 grafuri devin identice.

izomorfe a c d b 8 1 2 3 g e f h 7 6 5 4 Dacă putem redenumi şi repoziţiona nodurile primului graf, cele 2 grafuri devin identice.

izomorfe a c d b 8 1 2 3 g e f h 7 6 5 4 Dacă putem redenumi şi repoziţiona nodurile primului graf, cele 2 grafuri devin identice. izomorfe G = (V 1, E 1 ) şi H = (V 2, E 2 ) sunt izomorfe dacă există o funcţie bijectivă f : V 1 V 2 astfel încât {x, y} E 1 dacă şi numai dacă {f (x), f (y)} E 2, sau (x, y) E 1 dacă şi numai dacă (f (x), f (y)) E 2.

izomorfe a c d b 8 1 2 3 g e f h 7 6 5 4 Dacă putem redenumi şi repoziţiona nodurile primului graf, cele 2 grafuri devin identice. izomorfe G = (V 1, E 1 ) şi H = (V 2, E 2 ) sunt izomorfe dacă există o funcţie bijectivă f : V 1 V 2 astfel încât {x, y} E 1 dacă şi numai dacă {f (x), f (y)} E 2, sau (x, y) E 1 dacă şi numai dacă (f (x), f (y)) E 2. Remarcă: Când 2 grafuri G şi H sunt izomorfe, se obişnuieşte să se spună că G este H şi să se scrie G = H.

Modalităţi de reprezentare a grafurilor 1 Listă de noduri + listă de muchii 2 Liste de adiacenţă 3 Matrice de adiacenţă 4 Matrice de incidenţă 5 Matrice de ponderi

simple Reprezentarea 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. muchie mulţimea de noduri adiacente la muchie 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. muchie pereche (start,end) Remarcă Dacă nu există noduri izolate (cu 0 vecini), nu este necesar să fie reţinută lista de noduri V : V se poate calcula din E

simple Reprezentarea cu liste de adiacenţă Pentru fiecare nod u V se reţine lista de noduri adiacente la u Dacă G este neorientat, v este adiacent la u dacă există o muchie cu capetele u şi v. În grafuri neorientate, relaţia de adiacenţă este simetrică. Dacă G este orientat, v este adiacent la u dacă există un arc e E de la u la v, adică start(e) = u şi end(e) = v. Exemplu b a c d e a [b, c, d] b [a, c] c [a, b, e] d [a, e] e [c, d] b a c d e a [b] b [] c [a, b] d [a] e [c, d]

Matrice de adiacenţă Presupunem că G = (V, E) este un graf cu V = n noduri. Matricea de adiacenţă a lui G este A G = (m ij ) de dimensiune n n şi m ij := numărul de muchii de la al i-lea nod la al j-lea nod. Observaţii 1 Înainte de a construi A G din G, trebuie să fixăm o enumerare a tuturor nodurilor: [v 1, v 2,..., v 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

Matrici de adiacenţă pentru grafuri neorientate Vizualizarea unui graf neorientat reprezentat de A G Dacă A este o matrice simetrică n n cu a ij N pentru toţi i, j, un graf neorientat G care are matricea de adiacenţă A se construieşte astfel: 1 Se desenează n noduri v 1,..., v n în plan 2 Pentru orice i, j {1,..., n}, se trasează a ij muchii distincte între v i şi v j Exemplu 0 1 0 2 v 2 v 3 A = 1 0 1 0 0 1 0 1 2 0 1 0 v 1 v 4

Matrici de adiacenţă pentru grafuri orientate b Graful G : a c e are matricea de adiacenţă d 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 pentru enumerarea nodurilor [a, b, c, d, e].

Reprezentarea digrafurilor ponderate Matrici de ponderi Matricea de ponderi W G = (w ij ) a unui graf simplu ponderat, sau digraf ponderat G cu n noduri [v 1,..., v n ] are dimensiunea n n şi w ii = 0 pentru toţi 1 i n. w ij = w({v i, v j }) pentru orice muchie {v i, v j } E, dacă G este neorientat. w ij = w((v i, v j )) pentru orice arc (v i, v j ) E, dacă G este orientat. w ij = în toate celelalte cazuri.

Reprezentarea digrafurilor ponderate Matrici de ponderi Matricea de ponderi W G = (w ij ) a unui graf simplu ponderat, sau digraf ponderat G cu n noduri [v 1,..., v n ] are dimensiunea n n şi w ii = 0 pentru toţi 1 i n. w ij = w({v i, v j }) pentru orice muchie {v i, v j } E, dacă G este neorientat. w ij = w((v i, v j )) pentru orice arc (v i, v j ) E, dacă G este orientat. w ij = în toate celelalte cazuri. 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

Modalităţi de reprezentare a grafurilor Studiu comparativ Reprezentarea cu listă de muchii Adecvată pentru reprezentarea grafurilor simple fără noduri izolate, cu E V Complexitate spaţială (memorie ocupată): O( E ) Reprezentarea cu liste de adiacenţă Permite enumerarea rapidă a vecinilor unui nod Complexitate spaţială (memorie ocupată): O( V + E ) 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( V 2 ) - reprezentare neadecvată când E V 2 Reprezentare cu matrice de incidenţă M G Complexitate temporală: O( V E )

Operaţii pe grafuri Presupunem că G = (V, E) este un graf neorientat, v V, S V, e E, T E Ştergere de noduri: G v este graful care se obţine eliminând din G nodul v şi toate muchiile incidente la v. G S este graful care se obţine eliminând din G nodurile din S şi toate muchiile incidente la un nod din S. Un subgraf al lui G este orice graf G S. Ştergere de muchii G e este graful care se obţine eliminând din G muchia e. Capetele lui e nu se elimină. G T este graful care se obţine eliminând din G toate muchiile din T.

parţiale şi subgrafuri Fie G = (V, E ) şi G = (V, E ). G este un graf parţial al lui G dacă V V şi G se obţine din G prin ştergeri succesive de noduri si muchii. G este un subgraf al lui G dacă V V şi G se obţine ştergând din G nodurile din V V. G este o componentă a lui G dacă este un subgraf maximal care este conex. G este o clică a lui G dacă (1) G este subgraf al lui G şi (2) G este (izomorf cu) un graf complet K n, n 2. v este un nod de tăiere al lui G dacă G v are mai multe componente decât G. e este o punte a lui G dacă G e are mai multe componente decât G. S este o mulţime de tăiere a unui graf conex G dacă S V, şi G S nu este conex.

neorientate Componente conexe Exemple 1 2 G 1 : G 2 : c a d b e c f g a d b e este conex. nu este conex. G 2 are 3 componente: G 2 {e, f, g}, G 2 {a, b, c, d, e}, şi G 3 = G 2 {a, b, c, d, f, g}. c b 3 G 3 : d a nu este conex. G 3 are 2 componente: e f G 3 {b, d, f } şi G 3 {a, c, e}.

Operaţii pe grafuri Exemplu: ştergere de noduri şi muchii a b c e f g G d a b c d e f g G a b c d e f g G {{c, d}} a b c d e f g G {{e, g}, {f, g}}

Operaţii pe grafuri Exemplu: ştergere de noduri şi muchii b e a g c f b e a d g c f b e a d g c f G d G G {{c, d}} d este nod de tăiere în G. a b c d e f g G {{e, g}, {f, g}}

Operaţii pe grafuri Exemplu: ştergere de noduri şi muchii b e a g c f b e a d g c f b e a d g c f G d G G {{c, d}} d este nod de tăiere în G. {a, b} este punte în G. a b c d e f g G {{e, g}, {f, g}}

parţiale şi subgrafuri Fie G, G două grafuri. Quiz Spunem că G este liber de G, sau G -liber, dacă G nu este subgraf al lui G. Se consideră grafurile K 1,3 Z 1 N Care din grafurile următoare sunt K 1,3 -libere? Care sunt Z 1 -libere? Care sunt N-libere?