Prof. Cerulli – Dott.ssa Gentili Lezioni di Ricerca Operativa Corso di Laurea in Informatica ed Informatica Applicata Università di Salerno Lezione n° 17: 11-12 Maggio 2009 Algoritmo di Kruskal Algoritmo di Prim Problema del Flusso a Costo Minimo: Formulazione Anno accademico 2008/2009 Prof. Cerulli – Dott.ssa Gentili
Si considera un grafo G=(V,E) Il Problema del Minimo Albero Ricoprente (Minimum Spanning Tree Problem) Si considera un grafo G=(V,E) Ad ogni arco ei, i=1,...,n di G è associato un costo ci, i=1,...,m Il problema: determinare l’albero ricoprente di G con il minimo costo associato. 7 14 4 10 9 17 8 1 3 2 11 12 6 13 16 15 5 Esempio
Esempi di applicazioni: determinare la rete di comunicazione più affidabile determinare la connessione tra n centri a costo minimo (e.g., distribuzione del gas) Due algoritmi: l’algoritmo di Kruskal (Greedy Algorithm) l’algoritmo di Prim
Algoritmo di Kruskal (Minimum Spanning Tree) (1) E’ dato il grafo G=(V,E) con n nodi ed m archi. Si ordinano gli archi e1, e2,..., em in modo che i costi associati non siano decrescenti (c1£c2£... £cm ). Si pone E0=Æ, k=1 ed il grafo ST0=(V, Æ) (2) Se (V, Ek-1È{ek}) è un grafo aciclico allora STk=(V,Ek) con Ek=Ek-1È{ek}, altrimenti Ek=Ek-1 e STk= STk-1 (3) Se úEkú=n-1 l’algoritmo si ferma ed STk è l’albero ricoprente cercato, altrimenti k=k+1 e continuare col passo (2).
Esempio: n=9 m=17 7 14 4 10 9 17 8 1 3 2 11 12 6 13 16 15 5
Algoritmo di Prim (Minimum Spanning Tree) (1) E’ dato il grafo G=(V,E) con n nodi ed m archi. Si sceglie un vertice arbitrario di G, V0={vs}, si pone E0=Æ e k=1 (2) Si connette un nodo viÎVk-1 con un nodo vhÎV- Vk-1 tale che il costo dell’arco (vi,vh) sia e si pone Vk=Vk-1È {vh} e Ek=Ek-1È {(vi,vh)} (3) Se úEkú=n-1 l’algoritmo si ferma e ST=(Vk,Ek) è l’albero ricoprente cercato, altrimenti k=k+1 e continuare col passo (2).
Esempio: n=6 m=12 7 17 10 10.5 9 7.5 11 8 12 16 9.5 19 L’algoritmo di Prim O(úV|2) è più efficiente di quello di Kruskal (O(úEúlogúEú)).
Matrici di Incidenza dei Grafi Dato G=(V,E) grafo non orientato, AG=[aij], con i=1,...,n e j=1,...,m è la matrice di incidenza di G, dove n=úVú ed m=úEú, e tale che
matrice di incidenza di un grafo non orientato Esempio v4 v1 v2 v3 e1 e2 e3 e4 e5 matrice di incidenza di un grafo non orientato
Dato G=(V,E) grafo orientato, AG=[aij], con i=1,. ,n e j=1, Dato G=(V,E) grafo orientato, AG=[aij], con i=1,...,n e j=1,...,m è la matrice di incidenza di G, dove n=úVú ed m=úEú, e tale che
matrice di incidenza di un grafo orientato Esempio v3 v1 v2 v4 e1 e2 e3 e4 e5 matrice di incidenza di un grafo orientato
Problema del Flusso a costo Minimo FORMULAZIONE
Problema del Flusso a costo Minimo FORMULAZIONE In forma matriciale: NOTA: 1. La matrice A(m,n) è la matrice di incidenza nodo-arco, ogni colonna è associata ad un arco, il singolo elemento della matrice è dato da: (ei vettore colonna con tutti 0 eccetto un 1 in posizione i-ma.) 2. Il rango di questa matrice è: r(A)=m-1