Gli alberi e le reti sono particolari grafi.
Dal momento che gli alberi, le reti ed i grafi sono strutture dati fondamentali per lo studio della maggior parte dei problemi di ottimizzazione combinatoria, in quanto segue saranno brevemente richiamate alcune definizioni dalla teoria dei grafi ed alcune proprietà dei grafi che risulteranno utili ai fini della comprensione delle prossime lezioni.
Un grafo non orientato è una coppia G=(V,E), in cui
Dal momento che G non è orientato, E è un insieme di coppie non ordinate, per cui [i,j]=[j,i], i,j=1,…,n.
Se [i,j] e [j,i] sono entrambi elementi di E, si parla di arco multiplo o parallelo e grafi senza archi multipli sono detti grafi semplici.
Archi del tipo [i,i], i=1,…,n, sono detti self-loops o cappi e generalmente nei problemi di ottimizzazione che studieremo la loro presenza non sarà consentita.
Si definisce grado di un nodo i=1,…,n e si indica con deg(i) il numero di archi incidenti in i.
Se deg(i)=0, allora il nodo i si dice isolato; se, invece, deg(i)=1, allora i è detto pendente.
E’ banale osservare che
per cui DEG è sempre un numero pari.
Per ogni nodo i=1,…,n definiamo il seguente insieme
e risulta che .
In quanto segue, si considereranno già note le definizioni di grafo non orientato completo, grafo non orientato connesso, cammino e ciclo in un grafo non orientato.
Dato un sottoinsieme S di V, si definisce taglio di G rispetto ad S il seguente sottoinsieme di E:
Un grafo G=(V,E) si dice bipartito, se esiste una partizione (V1,V2) di V tale che ogni arco [i,j] in E collega i in V1 a j in V2.
Un grafo senza cicli è detto aciclico.
Un grafo aciclico e connesso è detto albero ed è di solito indicato con T=(V,E).
I nodi di un albero T che hanno grado uguale ad 1 sono detti foglie di T.
Un grafo aciclico e non connesso è detto foresta.
Alcune proprietà degli alberi:
→ ogni albero con più di un nodo ha almeno una foglia;
→ un grafo non orientato G=(V,E) è un albero sse G è connesso ed ha |V|-1 archi;
→ per ogni coppia di nodi i e j di un albero, esiste un unico cammino che li collega;
→ se si aggiunge un arco ad un albero, il grafo risultante contiene esattamente un ciclo.
Dato un grafo non orientato e connesso G=(V,E), sia E’ un sottoinsieme non proprio di E tale che T=(V,E’) sia un albero, allora T è detto albero ricoprente G o spanning tree di G.
Un grafo orientato è una coppia G=(V,A), in cui
V è un insieme finito di n elementi detti nodi o vertici del grafo. Tipicamente, l’insieme dei nodi V viene rappresentato come V={1,…,n};
A è una famiglia di m coppie ordinate di elementi di V (dunque, anche E è un insieme finito). Gli elementi di A sono chiamati archi del grafo e tipicamente sono rappresentati come (i,j), i,j=1,…,n.
Dal momento che G è orientato, A è un insieme di coppie ordinate, per cui (i,j) è diverso da (j,i), i,j=1,…,n.
Molte definizioni date per i grafi non orientati si estendono anche ai grafi orientati. Si parla, dunque, di grafi orientati semplici, di self-loops, di cammini orientati, di cicli orientati Euleriani ed Hamiltoniani, eccetera.
La presenza di self-loops o cappi generalmente nei problemi di ottimizzazione che studieremo non sarà consentita.
Per ogni nodo i in V definiamo i seguenti insiemi:
, detto stella uscente di i;
, detto stella entrante di i.
Si definisce grado entrante del nodo i e si indica con indeg(i) il numero di archi entranti in i (i.e. |BS(i)|).
Si definisce grado uscente del nodo i e si indica con outdeg(i) il numero di archi uscenti da i (i.e. |FS(i)|).
Si definisce grado del nodo i, la quantità deg(i)=indeg(i)+ outdeg(i).
1. Presentazione del Corso ed Introduzione alla Programmazione Mat...
2. Introduzione ai Problemi di PL
6. Algoritmo del Simplesso Revisionato
7. Algoritmo del Simplesso Tabellare
10. Soluzione di Problemi di PL tramite Algoritmo del Simplesso
11. Problemi di Programmazione Lineare Intera
12. PLI con matrice dei vincoli unimodulare
13. Problemi di PLI: Branch & Bound
14. Il Problema dello Zaino 0/1 e il Problema dello Zaino Frazionar...
15. Il Problema dello Zaino 0/1: un algoritmo B&B
16. Il Problema dello Zaino 0/1: un algoritmo di Programmazione Din...
17. Richiami di Teoria dei Grafi: definizioni e notazioni
18. Il Problema del Vertex Cover Minimo di un Grafo
19. Il Problema dell'Albero di Copertura Minimo (MST)
20. Il Problema dell'Albero di Copertura Minimo (MST): esempio
D. Bertsimas e J.N. Tsitsiklis, Introduction to Linear Optimization, Belmont - Massachusetts (USA), Dynamic Ideas and Athena Scientific, 2008.
M. Fischetti, Lezioni di Ricerca Operativa, Padova, Edizioni Libreria Progetto Padova, 1999.
S. Martello, Fondamenti di Ricerca Operativa L-A, Bologna, Società Editrice Esculapio, 2004.
S. Martello, Ricerca Operativa LS, Bologna, Società Editrice Esculapio, 2004.
Dispense del Corso di Ricerca Operativa presso l'Università degli Studi di Pisa.
Dispense ed Appunti del Corso prodotte da Paola Festa.