Lezioni di Ricerca Operativa Corso di Laurea in Informatica

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

Algoritmi e Strutture Dati
Introduzione ai grafi Grafo diretto e non diretto
Il problema del minimo albero ricoprente in un grafo non cooperativo
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
CONOSCERE CONOSCERSI COMUNICARE Joseph Ceres
Algoritmi e Strutture Dati
Cammini minimi con una sorgente
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Università degli Studi di Roma Tor Vergata
Il problema del minimo albero ricoprente in un grafo con archi privati.
Algoritmi e Strutture Dati
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 28/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 15/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Il problema del minimo albero ricoprente in un grafo con archi privati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Cammini minimi Algoritmo SPT.Acyclic
Algoritmi e Strutture Dati (Mod. B)
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
Algoritmo di Kruskal Parte con tutti i vertici e nessun lato (sottografo aciclico, o foresta, ricoprente) Ordina i lati per costo non decrescente.
Algoritmi greedy Gli algoritmi greedy in genere non sono esatti, cioè determinano soluzioni non necessariamente ottime Per il problema dell’albero ricoprente.
Alberi ricoprenti minimi Alcune applicazioni Lunedì 17 novembre 2003.
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Esempio di esecuzione dellalgoritmo di Prim 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v 1 } X =Ø 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v.
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
2. Grafi.
Algoritmi e Strutture Dati
Componenti fortemente connesse
Prof. Cerulli – Dott.ssa Gentili
Lezione n° 18: Maggio Problema del trasporto: formulazione matematica Anno accademico 2008/2009 Prof. Cerulli – Dott.ssa Gentili Lezioni di.
Alberi di copertura minimi. Dato un grafo pesato G = (V,E), si richiede di trovare un albero T = (V,E’), E’  E, tale che la somma dei pesi associati.
AlgoLab - MST code binomiali Algoritmi per il calcolo di MST: uso di code unificabili Laboratorio di Algoritmi 02/03 Prof. Ugo de’ Liguoro.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Olimpiadi di Informatica 2010 Giornate preparatorie
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal (*) Algoritmi e Strutture Dati.
Università degli Studi di Roma Tor Vergata
Capitolo 12 Minimo albero ricoprente Algoritmi e Strutture Dati.
Flusso Massimo Applicazione di algoritmi
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Componenti fortemente connesse
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Prof. Cerulli – Dott. Carrabs
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: algoritmo di Dijkstra Algoritmi e Strutture Dati.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Prim Algoritmi e Strutture.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Prim Algoritmi e Strutture.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
OTTIMIZZAZIONE DI UN PERCORSO GRAFO CAMMINO MINIMO.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a. 2011/12 Lezione del 02/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Capitolo 13 Cammini minimi: algoritmo di Dijkstra Algoritmi e Strutture Dati.
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi Albero Ricoprente Lezione n°9.
Transcript della presentazione:

Lezioni di Ricerca Operativa Corso di Laurea in Informatica Università di Salerno Lezione n° 23 Algoritmo di Kruskal Algoritmo di Prim Prof. Cerulli – Dott. Carrabs

Alberi Esempio grafo non aciclico albero grafo aciclico (foresta) Sia G=(V,E) un grafo non orientato e connesso. G è aciclico se i suoi archi non formano cicli; Un albero è un grafo connesso ed aciclico; Ogni grafo aciclico è in generale l’unione di uno o più alberi e viene detto foresta; Esempio grafo non aciclico albero grafo aciclico (foresta)

Proprietà degli alberi Dato un grafo G=(V,E), le seguenti affermazioni sono equivalenti: G è un albero ogni coppia di nodi di G è connessa da un unico cammino G è aciclico e |E| = |V| - 1 G è connesso e |E| = |V| - 1

Alberi Ricoprenti Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente (spanning tree) di G è un sottografo T di G tale che: T è un albero e contiene tutti i nodi di G. G=(V,E) un albero ricoprente un albero ricoprente Un grafo può avere più alberi ricoprenti.

Il Problema del Minimo Albero Ricoprente (Minimum Spanning Tree Problem) Sia G=(V,E) un grafo non orientato e connesso dove ad ogni arco ei∈E è associato un costo ci. Il costo di un albero ricoprente T di G è dato dalla somma dei costi degli archi che lo compongono. Il problema: determinare l’albero ricoprente di G di costo minimo 7 14 4 10 9 17 8 1 3 2 11 12 6 13 16 15 5 Esempio

Applicazioni determinare la rete di comunicazione più affidabile; determinare la connessione tra n centri a costo minimo (e.g., distribuzione del gas); progettare i circuiti elettronici per collegare fra loro le diverse componenti minimizzando la quantità di filo da utilizzare;

Modello Matematico 1: Subtour Elimination

Modello Matematico 1: Cut Formulation

Algoritmi Risolutivi algoritmo di Kruskal (Greedy Algorithm) algoritmo di Prim

Algoritmo di Kruskal (Minimum Spanning Tree) Sia G=(V,E) un grafo non orientato con n nodi ed m archi. Ordinare gli archi e1,e2,..., em in modo non decrescente (c1£c2£... £cm ). Siano E0=Æ, ST0=(V, Æ) e k=1. Se (V, Ek-1È{ek}) è un grafo aciclico allora STk=(V,Ek) con Ek=Ek-1È{ek}, altrimenti ek viene scartato, Ek=Ek-1 e STk= STk-1. Se úEkú=n-1 l’algoritmo si arresta ed STk è l’albero ricoprente cercato, altrimenti k=k+1 e si ritorna al passo (2).

Esempio: n=9 m=17 14 2 3 7 4 10 1 9 8 4 17 11 12 5 3 6 1 16 7 2 6 8 5 15 13 9 (5,8) (7,8) (5,7) (2,4) (7,9) (6,7) (1,2) (1,4) (3,5) (3,4) (1,6) (4,6) (6,9) (2,3) (8,9) (3,9) (4,5) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esempio: n=9 m=17 14 2 3 7 4 10 1 9 8 4 17 11 12 5 3 6 1 16 7 2 6 8 5 15 13 9 (5,8) (7,8) (5,7) (2,4) (7,9) (6,7) (1,2) (1,4) (3,5) (3,4) (1,6) (4,6) (6,9) (2,3) (8,9) (3,9) (4,5) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esempio: n=9 m=17 11 Sia 4+k il nuovo peso dell’arco (2,4) nel grafo. Per quali valori di k l’albero di copertura minimo non cambia? Sia 8+k il nuovo peso dell’arco (1,4) in G. Per quali valori di k l’arco (1,4) verrà inserito nella soluzione ottima? (5,8) (7,8) (5,7) (2,4) (7,9) (6,7) (1,2) (1,4) (3,5) (3,4) (1,6) (4,6) (6,9) (2,3) (8,9) (3,9) (4,5) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Algoritmo di Prim (Minimum Spanning Tree) Sia G=(V,E) un grafo non orientato con n nodi ed m archi. Selezionare un qualsiasi vertice vs∈V e porre V0={vs}, E0=Æ, k=1. Dato il taglio [Vk-1,V\Vk-1], selezionare l’arco diretto del taglio (vi,vh) avente costo minimo e porre Vk=Vk-1È {vh} e Ek=Ek-1È {(vi,vh)} Se úEkú=n-1 l’algoritmo si arresta ed ST=(Vk,Ek) è l’albero ricoprente cercato, altrimenti k=k+1 e si ritorna al passo (2).

Esempio: n=6 m=12 10 9 8 17 7 11 12 10.5 7.5 19 16 9.5 L’algoritmo di Prim O(|E|log|V|) è più efficiente di quello di Kruskal O(|E|log|E|).

SPT=24 2 4 1 3 Albero dei Cammini minimi  albero di copertura minimo 5 2 5 10 15 4 6 1 11 9 3 9

Albero dei Cammini minimi  albero di copertura minimo SPT=24 MST=21 1 2 3 5 9 6 4 10 11 15 2 5 10 4 6 1 11 9 3