Estratto del documento

GRAFI - DEFINIZIONI

Grafo orientato o diretto

  • Un grafo orientato (o diretto o di-grafo) G è una coppia (V,E), dove
    • V è l'insieme (finito) dei vertici
    • E = {(vi, vj); vi, vj ∈ V} è l'insieme (finito) degli archi, che corrisponde ad una relazione binaria su V.
    (vi, vj) ≠ (vj, vi)
  • I grafi orientati si rappresentano spesso disegnando
    • I vertici sotto forma di cerchi
    • Gli archi sotto forma di frecce.

Grafo non orientato

  • Un grafo non orientato è ancora una coppia G=(V,E), ma l'insieme E è costituito in questo caso da coppie non ordinate di vertici.
  • Nei grafi non orientati gli archi sono usualmente rappresentati con linee.
    • (vi, vj)≡(vj, vi): Grafo semplice

Grado

  • In un grafo non orientato il grado di un vertice è il numero di archi incidenti.
  • In un grafo orientato:
    • Il grado entrante è il numero di archi entranti
    • Il grado uscente è il numero di archi uscenti
    • Il grado è la somma del grado entrante e del grado uscente.
  • Un vertice con grado 0 si dice isolato.

GRAFI - DEFINIZIONI

Grafo orientato o diretto

  • Un grafo orientato (o diretto o di-grafo) G è una coppia (V,E), dove
    • V è l'insieme (finito) dei vertici
    • E = {(vi, vj); vi, vj ɛ V} è l'insieme (finito) degli archi, che corrisponde ad una relazione binaria su V.
    • (vi, vj) ≠ (vj, vi)
  • I grafi orientati si rappresentano spesso disegnando
    • I vertici sotto forma di cerchi
    • Gli archi sotto forma di frecce.

Grafo non orientato

  • Un grafo non orientato è ancora una coppia G=(V,E), ma l'insieme E è costituito in questo caso da coppie non ordinate di vertici.
  • Nei grafi non orientati gli archi sono usualmente rappresentati con linee.
    • (vi, vj)=(vj, vi): Grafo semplice

Grado

  • In un grafo non orientato il grado di un vertice è il numero di archi incidenti.
  • In un grafo orientato:
    • Il grado entrante è il numero di archi entranti
    • Il grado uscente è il numero di archi uscenti
  • Il grado è la somma del grado entrante e del grado uscente.
  • Un vertice con grado 0 si dice isolato.

Foresta e albero

  • Un grafo non orientato aciclico si dice foresta.
  • Un grafo non orientato aciclico connesso si dice albero.
  • Multigrafo: E è un multinsieme (gli archi possono essere di "tipo" diverso, ad es. relazioni di parentela e di amicizia nello stesso grafo)
  • Pseudografo: E contiene anche coppie (vi, vi) → cappi
  • Circuito in un grafo: v1,v2,...,vk(vi, vi+1) ∈ E, v1= vk
  • Ciclo in un grafo: circuito con v1≠ v2 ≠ .... ≠ vk

Grafo pesato:

  • Ad ogni arco ek è associato un valore reale wk

RAPPRESENTAZIONE DEI GRAFI

Rappresentazioni

Esistono due modi principali per rappresentare un grafo G=(V,E):

  1. Tramite liste di adiacenza
    • ogni vertice è associato con la lista dei vertici adiacenti.
    • Lista di adiacenza può essere una tabella o una lista concatenata
  2. Tramite matrici di adiacenza.
    • Matrice di adiacenza:ah=1 se (vi, vj) ∈ E,ah=0 altrimenti
    • Matrice di incidenza:ah=1 se vi ∈ eh, cioè se l'arco eh incide sul nodo viah=0 altrimenti

Liste di adiacenza

  • Dato un grafo G=(V,E), esso può essere rappresentato tramite un vettore A, il cui elemento A[i] contiene il puntatore alla lista dei vertici adiacenti al vertice i.

Limiti

  • Il principale limite della rappresentazione tramite liste di adiacenza consiste nella difficoltà nel verificare se esiste un arco tra il vertice u ed il vertice u'.
  • In tal caso è infatti necessario scandire l'intera lista dei vertici adiacenti a u (o a u').

Matrice di adiacenza

  • Consiste in una matrice di dimensione |V| * |V|.
  • L'elemento aij vale 1 se (i,j)∈E, 0 altrimenti.
  • Nel caso di grafi non orientati la matrice è simmetrica.
  • Nel caso di grafi pesati l'elemento aij, qualora non sia nullo, assume il valore del peso dell'arco anziché essere “solo” 1.

Esempi

Confronto

  • Rispetto alla rappresentazione tramite liste di adiacenza, quella tramite matrice di adiacenza:
  • Richiede più memoria (a meno che il grafo non sia particolarmente denso)
  • Permette un accesso più efficiente alla topologia del grafo.

Vantaggi e Svantaggi

  • Lista di adiacenza: O(m)
    • Vantaggi: permette di scorrere i nodi adiacenti a v in O(grado(v))
    • Svantaggi: inserimenti e cancellazioni su liste concatenate in O(grado(v))
  • Matrice di adiacenza: O(n2)
    • Vantaggi: Inserimenti e cancellazioni in O(1)
    • Svantaggi: permette di scorrere i nodi adiacenti a v in O(n)

ALGORITMI DI VISITA

Visita di un Grafo

  • L'operazione corrispondente ad esplorare un grafo a partire da un vertice dato (denominato sorgente) toccando tutti i vertici da questo raggiungibili si definisce visita.
  • Esistono due principali algoritmi di visita:
    • Visita in ampiezza
    • Visita in profondità
  • Difficoltà:
    • Presenza di cicli
    • Presenza di nodi isolati

Visita in ampiezza

La visita in ampiezza (o breadth-first search, BFS) consiste nel visitare i vertici del grafo per livelli:

  1. l=0, SI={sorgente}
  2. Si visitano tutti i vertici SI+1 non ancora visitati e adiacenti ad almeno un vertice in SI
  3. l=l+1
  4. Si ripete da 2 sino a che SI è vuoto.

Visita in profondità

  • La visita in profondità (Depth-First Search, o DFS) segue un approccio opposto a BFS.
  • Ad ogni passo si visita un vertice adiacente all'ultimo vertice visitato.
  • Quando non ne esistono, si ritorna indietro all'ultimo vertice visitato che abbia vertici adiacenti non visitati, e li si visita.
  • La procedura di DFS è normalmente implementata attraverso una procedura ricorsiva.
  • La visita procede di tutti gli archi uscenti da un nodo.
  • Se tutti i nodi adiacenti sono stati visitati allora si torna al nodo “predecessore”.
  • Una volta tornati al nodo di partenza si prosegue da un nodo qualsiasi non visitato.
  • I nodi vengono rinumerati secondo l'ordine di visita.
Anteprima
Vedrai una selezione di 3 pagine su 6
Appunti di informatica sui Grafi Pag. 1 Appunti di informatica sui Grafi Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Appunti di informatica sui Grafi Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cb.rr95 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Catania o del prof Malgeri Michele.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community