Dark Mode

Vai al contenuto

Grafo

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Grafi)
Disambiguazione - Se stai cercando la rappresentazione cartesiana di una funzione, vedi Grafico di una funzione.
Disambiguazione - Se stai cercando la realizzazione concreta di un grafema in un sistema di scrittura, vedi Allografo.
Disambiguazione - Se stai cercando il tipo di dato astratto dell'ambito informatico, vedi Grafo (tipo di dato astratto).
Questa voce o sezione sull'argomento informatica non cita le fonti necessarie o quelle presenti sono insufficienti.

Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento.
Grafo non orientato con sei nodi e cinque archi

I grafi sono strutture matematiche discrete che rivestono interesse sia per la matematica che per un'ampia gamma di campi applicativi. In ambito matematico il loro studio, la teoria dei grafi, costituisce un'importante parte della combinatoria; i grafi inoltre sono utilizzati in aree come topologia, teoria degli automi, funzioni speciali, geometria dei poliedri, algebre di Lie. I grafi si incontrano in vari capitoli dell'informatica (ad esempio per schematizzare programmi, circuiti, reti di computer, mappe di siti). Essi inoltre sono alla base di modelli di sistemi e processi studiati nell'ingegneria, nella chimica, nella biologia molecolare, nella ricerca operativa, nella organizzazione aziendale, nella geografia (sistemi fluviali, reti stradali, trasporti), nella linguistica strutturale, nella storia (alberi genealogici, filologia dei testi).

Definizioni fondamentali

[modifica | modifica wikitesto]
Un grafo

Un grafo e un insieme di elementi detti nodi o vertici che possono essere collegati fra loro da linee chiamate archi o lati o spigoli. Piu formalmente, si dice grafo una coppia ordinata G = ( V , E ) {\displaystyle G=(V,E)} di insiemi, con V {\displaystyle V} insieme dei nodi ed E {\displaystyle E} insieme degli archi, tali che gli elementi di E {\displaystyle E} siano coppie di elementi di V {\displaystyle V} (da E V x V {\displaystyle E\subseteq V\times V} segue in particolare che | E | <= | V | 2 {\displaystyle |E|\leq |V|^{2}} ). Ancora piu formalmente, un grafo e una tripla ( V , E , f ) {\displaystyle (V,E,f)} , dove V {\displaystyle V} e detto insieme dei nodi, E {\displaystyle E} e detto insieme degli archi e f {\displaystyle f} e una funzione che associa ad ogni arco e {\displaystyle e} in E {\displaystyle E} due vertici u , v {\displaystyle u,v} in V {\displaystyle V} (in tal caso il grafo verra detto ben specificato). Se invece E {\displaystyle E} e un multiinsieme, allora si parla di multigrafo.

Due vertici u , v {\displaystyle u,v} connessi da un arco e {\displaystyle e} prendono il nome di estremi dell'arco; l'arco e {\displaystyle e} viene anche identificato con la coppia formata dai suoi estremi ( u , v ) {\displaystyle (u,v)} . Se E {\displaystyle E} e una relazione simmetrica, allora si dice che il grafo e non orientato (o indiretto), altrimenti si dice che e orientato (o diretto).

Un arco che ha due estremi coincidenti si dice cappio. Un grafo non orientato, sprovvisto di cappi si dice grafo semplice. Lo scheletro s k ( G ) {\displaystyle \mathrm {sk} (G)} di G {\displaystyle G} e il grafo che si ottiene da G {\displaystyle G} eliminandone tutti i cappi e sostituendone ogni multiarco con un solo arco avente gli stessi estremi.

I vertici appartenenti a un arco o spigolo sono chiamati estremi, punti estremi o vertici estremi dell'arco. Un vertice puo esistere in un grafo e non appartenere a un arco.

Il codice sorgente della pagina principale di Wikipedia, visualizzato sotto forma di albero, un caso particolare di grafo

Gli insiemi V {\displaystyle V} ed E {\displaystyle E} sono di solito assunti come finiti, e molti dei risultati piu noti non sono veri (o sono piuttosto diversi) per i grafi infiniti perche molti degli argomenti vengono meno nel caso infinito. L'ordine di un grafo e | V | {\displaystyle |V|} (il numero dei vertici). La dimensione di un grafo e | E | {\displaystyle |E|} . Il numero di archi incidenti in un vertice v V {\displaystyle v\in V} (cioe il numero di archi che si connettono ad esso) prende il nome di grado del vertice v {\displaystyle v} , dove un arco che si connette al vertice ad entrambe le estremita (un cappio) e contato due volte.

Si considerano il "grado massimo" e il "grado minimo" di G {\displaystyle G} come, rispettivamente, il grado del vertice di G {\displaystyle G} con il maggior numero di archi incidenti e il grado del vertice di G {\displaystyle G} che ha meno archi incidenti. Quando il grado massimo ed il grado minimo coincidono con un numero k {\displaystyle k} , si e in presenza di un grafo k {\displaystyle k} -regolare (o piu semplicemente grafo regolare).

Per un arco { u , v } {\displaystyle \{u,v\}} , i teorici dei grafi usano solitamente la notazione piu sintetica u v {\displaystyle uv} .

Un grafo G = ( V , ) {\displaystyle G=(V,\emptyset )} privo di archi e detto grafo nullo. Un caso estremo di grafo nullo e quello del grafo G = ( , ) {\displaystyle G=(\varnothing ,\varnothing )} , per il quale anche l'insieme dei nodi e vuoto.[1]

Grafo completo, densita di un grafo

[modifica | modifica wikitesto]

Un grafo e definito completo se due qualsiasi dei suoi vertici sono adiacenti (esiste un arco che li connette). La massima cardinalita di un sottografo completo del grafo si chiama densita del grafo.

Percorsi, cammini, circuiti e cicli

[modifica | modifica wikitesto]

Un "percorso" di lunghezza n in G e dato da una sequenza di vertici v0,v1,..., vn (non necessariamente tutti distinti) e da una sequenza di archi che li collegano (v0,v1),(v1,v2),...,(vn-1,vn). I vertici v0 e vn si dicono estremi del percorso.

Un percorso con i lati a due a due distinti tra loro prende il nome di cammino.

Un cammino chiuso (v0 = vn) senza archi ripetuti viene detto circuito.

Un cammino chiuso (v0 = vn) senza archi ne nodi ripetuti viene detto ciclo.

Il percorso da seguire per inviare pacchetti da un nodo ad un altro e un percorso minimo.

Esempi di grafo connesso (a sinistra) e non connesso (a destra).

Dato un grafo G = (V, E) due vertici v, u V si dicono "connessi" se esiste un cammino con estremi v e u. Se tale cammino non esiste, v e u sono detti "sconnessi". La relazione di connessione tra vertici e una relazione di equivalenza.

Per i = 1, ..., k (k classi di equivalenza) sono definibili i sottografi Gi = (Vi, Ei) come i sottografi massimali che contengono tutti gli elementi connessi tra loro, che prendono il nome di componenti connesse di G, la cui cardinalita spesso si indica con g(G).

Se g(G) = 1, G si dice "connesso".

Un "nodo isolato" e un vertice che non e connesso a nessun altro vertice. Un nodo isolato ha grado 0.

Un "ponte"' e uno "snodo" sono, rispettivamente, un arco ed un vertice che se soppressi sconnettono il grafo.

La "connettivita" di un grafo G = (V, E) e definita come la cardinalita dell'insieme non vuoto S V tale che G \ S (G dal quale sono stati eliminati tutti i nodi di S) risulta sconnesso o e un nodo isolato.

Allo stesso modo, l'"arcoconnettivita" viene definita come la cardinalita dell'insieme non vuoto A E tale che G \ A (G dal quale sono stati eliminati tutti gli archi di A) risulta sconnesso. I cappi risultano ininfluenti nel computo dell'arcoconnettivita, mentre i multiarchi vanno contati per il numero di archi che comprendono.

Siano la connettivita di G indicata da k(G), l'arcoconnettivita di G indicata da k'(G) e il grado minimo di G indicato da dmin(G).

Il "teorema di Whiteny" afferma che per ogni grafo G vale la relazione k(G) <= k'(G) <= dmin(G).

Accoppiamento e ricoprimenti

[modifica | modifica wikitesto]

Dato un grafo semplice G = (V, E), un insieme M = (S, A) composto da coppie di vertici presi due a due e dagli archi che connettono tali vertici e un accoppiamento (o abbinamento o matching) se ogni vertice di S ha grado 0 o 1.

In particolare, ogni nodo con grado 1 e detto "m-saturato" ed ogni nodo con grado 0 e detto "m-esposto".

Dato un matching M = (S, A) su G = (V, E), un cammino P E e "m-alternante" se P contiene alternativamente archi di E e archi di A.

Un cammino m-alternante e "m-aumentante" se il primo e l'ultimo vertice di tale cammino sono m-esposti.

Secondo il "teorema di Berge", un abbinamento M di G e massimo se e solo se G non contiene cammini m-aumentanti.

Un ricoprimento di un grafo G = (V, E) e un insieme non vuoto S V tale che ogni arco in E e incidente in almeno un vertice di S. Per ogni grafo la massima cardinalita di un ricoprimento e maggiore o uguale alla cardinalita del matching massimo.

Siano n(G) la cardinalita del matching massimo di G e t(G) la massima cardinalita dei ricoprimenti di G.

Konig dimostro che se G e un grafo bipartito allora n(G) = t(G).

Invece piu in generale, per qualunque grafo vale n(G) >= t(G).

Tipi di grafi

[modifica | modifica wikitesto]

Realizzazione dei grafi

[modifica | modifica wikitesto]

Ci sono due modi generali per rappresentare un grafo con una struttura di dati utilizzabile da un programma: la lista delle adiacenze e la matrice delle adiacenze. In una lista di adiacenze, una lista mantiene un elenco di nodi, e a ogni nodo e collegata una lista di puntatori ai nodi collegati da un arco. In una matrice di adiacenze, una matrice N x N {\displaystyle N\times N} , dove N {\displaystyle N} e il numero dei nodi, mantiene un valore "vero" in una cella ( a , b ) {\displaystyle (a,b)} se il nodo a {\displaystyle a} e collegato al nodo b {\displaystyle b} . La matrice e simmetrica solo se il grafo non e orientato.

Indicati con V la cardinalita dell'insieme dei vertici del grafo e con E la cardinalita dell'insieme degli archi del grafo, le due rappresentazioni, quella mediante liste e quella mediante matrice delle adiacenze, richiedono rispettivamente Th(V+E) e Th(V2) spazio di memoria.

Ognuna delle due rappresentazioni ha alcuni vantaggi: una lista di adiacenze risulta piu adatta a rappresentare grafi sparsi o con pochi archi, percio e facile trovare tutti i nodi adiacenti a un nodo dato e verificare l'esistenza di connessioni tra nodi; una matrice di adiacenze e invece piu indicata per descrivere grafi densi e con molti archi, inoltre rende piu facile invertire i grafi e individuarne sottografi.

Sintassi per la rappresentazione dei grafi

[modifica | modifica wikitesto]

Esistono svariate sintassi per la rappresentazione di grafi, alcune basate sul linguaggio XML, come DGML, DotML, GEXF, GraphML, GXL e XGMML, e altre testuali, come DOT, Graph Modelling Language (GML), LCF e Trivial Graph Format.

La teoria dei grafi trova numerose applicazioni per la modellazione di reti di telecomunicazioni, reti neurali, in biologia, nelle scienze economiche e sociali.

Dalle scienze economiche e sociali negli anni '80 ha preso a diffondersi fra i ricercatori e gli accademici l'adozione di un particolare tipo di rete (core-periphery network), formato da un blocco centrale, piu "denso" di collegamenti fra i nodi, e da un blocco periferico insieme di nodi con collegamenti sparsi. Contestualmente furono proposti diversi metodi di partizione (e vincoli sulle connessioni), e di misure della centralita dei nodi per testare l'applicabilita del modello alle singole reti[2].

Tale tipo di rete e nato per modellizzare e spiegare la diversa crescita economica tra Paesi, ossia la tendenza alla concentrazione della ricchezza economica e finanziaria rilevata in sistemi-Paese a partire dal secondo dopoguerra. Il modello fu poi esteso ad altri campi di ricerca.

Esiste una variante "a tre blocchi" della rete "centro-periferia": centro-semiperiferia-periferia.

  1. | Alcuni definiscono vuoto il grafo G = (V, ), con V , e nullo il grafo G = (, ).
  2. | (EN) Fabio Della Rossa, Fabio Dercole & Carlo Piccardi, Profiling core-periphery network structure by random walkers, su nature.com, 19 marzo 2013. URL consultato il 4 aprile 2018.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritaThesaurus BNCF 6138 * GND (DE) 4021842-9