ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
TSP Traveling Salesman’s Problem Università di Camerino
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Alberi binari di ricerca
Algoritmo di MiniMax Questa presentazione è un chiaro esempio di come aggiungere i tagli Alfa-Beta per migliorare l’efficienza dell’algoritmo MiniMax.
Teoria e Implementazione
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Scenario Archi di un grafo controllati da agenti egoistici
Esercizi su alberi binari
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/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
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati (Mod. A)
Ricerca della Legge di Controllo
Seminario su clustering dei dati – Parte II
Grafi.
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Fondamenti di Informatica
grafi e reti Ottimizzazione su Reti - Network Optimization Testi :
Elementi di Informatica di base
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Euristiche: algoritmi costruttivi e di ricerca locale
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Grafi CORDA – Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Olimpiadi di Informatica 2010 Giornate preparatorie
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Risolvere vincoli soft Francesca Rossi Giugno 2004.
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 13 Cammini minimi: Bellman e Ford Algoritmi e Strutture Dati.
Complessità Computazionale
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Dynamic Programming Testi di riferimento per approfondimenti: Dimitri Bertsekas, Dynamic Programming, deterministic and stochastic models, Prentice-Hall.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
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°9.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi Albero Ricoprente Lezione n°9.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Prof.ssa Rossella Petreschi Lezione del 5/12/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 11 del testo Anany Levitin “The design.
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Lezione n°17 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi
Backtracking Lezione n°13 Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Transcript della presentazione:

ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12

ASD a.a.2010/2011- Lezione 12 Le Tecniche BT e BB BT e BB sono evoluzioni della tecnica di ricerca esaustiva della soluzione. Costruiscono la ipotetica soluzione una componente alla volta e, ad ogni passo, valutano la componente parziale costruita. Se si riconosce che non esiste alcuna possibile espansione della soluzione parziale che possa portare ad una soluzione accettabile si interrompe la ricerca esaustiva. Con questo approccio si possono praticamente affrontare diversi problemi combinatorici di grandi dimensione. Va sottolineato che, comunque, nel caso peggiore, si raggiungono, come nella ricerca esaustiva, complessità esponenziali.

ASD a.a.2010/2011- Lezione 11 BT vs BB BB: applicabie solo a problemi di ottimizzazione perché controlla la soluzione parziale rispetto alla funzione obiettivo. BT: non ha alcuna particolare limitazione, ma tipicamente non è adoperata per problemi di ottimizzazione. BT: genera l’ albero delle decisoni tramite visita in profondità. BB: genera l’ albero delle decisoni tramite scelta della migliore opportunità. Albero delle decisioni: albero che ad ogni nodo rappresenta tutte le possibili scelte effettuabili in quell’istante ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Il problema delle 8 regine Come disporre otto regine su una scacchiera (8×8) in modo tale che nessuna possa mangiarne un’altra? REGOLE: la regina si può muovere in orizzontale, in verticale e in diagonale di un qualunque numero di caselle, di conseguenza ogni regina deve avere la propria riga, la propria colonna e le proprie diagonali libere. Le dodici soluzioni base del problema delle 8 regine da cui, per riflessione e rotazione, si ottengono tutte le 92 soluzioni (1874, Gleisher e Gunther) ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Esempio (4x4) ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Esempio (4x4) ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 CIRCUITO HAMILTONIANO Circuito (cammino) hamiltoniano è un circuito (cammino) che passa per tutti i nodi del grafo esattamente una volta. Nel 1859 il matematico irlandese W.R. Hamilton mise in circolazione un rompicapo di legno a forma di dodecaedro regolare. Ad ognuno dei 20 nodi del dodecaedro era associato il nome di una citt à e il problema consisteva nel cercare un itinerario lungo gli archi del solido che visitasse una e una sola volta le varie citt à. Il percorso selezionato veniva memorizzato con uno spago che si arrotolava intorno a dei chiodi fissati ai nodi. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 CIRCUITO EULERIANO Circuito (cammino) euleriano è un circuito (cammino) che passa per tutti gli archi del grafo esattamente una volta. (Eulero1736) Nella citt à di Konisberg esiste un’isola A chiamata Kneiphof attorno a cui fluiscono due rami del fiume Pregel. Vi sono sette ponti a, b, c, d, e, f, g che attraversano i due rami. La questione è se una persona possa scegliere una passeggiata che la porti ad attraversare ognuno dei ponti una volta ma non pi ù di una volta, tornando alla fine al punto di partenza. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 CIRCUITO EULERIANO vs CIRCUITO HAMILTONIANO Esiste una proprietà strutturale del grafo che garantisce l’esistenza di un ciclo euleriano: Ogni grafo connesso che abbia tutti i nodi di grado pari ha un ciclo euleriano. Poiché è facile calcolare i gradi di un grafo, ne consegue che è facile determinare se un grafo ha un ciclo euleriano. Non si conosce, e non si sa se esista, una proprietà strutturale che garantisca l’esistenza di un ciclo hamiltoniano. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 IL PROBLEMA DEI SOTTOINSIEMI PESATI Dato un insieme S = (s 1,…s n ) di n interi positivi, trovare un sottoinsieme di S la somma dei cui elementi sia uguale ad un dato numero positivo d. E’ conveniente ordinare l’insieme degli elementi in ordine crescente. L’albero è binario. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Il metodo in generale Un algoritmo di backtracking è un metodo di analisi esaustiva, ma controllata, applicabile ad una classe di problemi di ricerca le cui soluzioni sono vettori (x 1 x 2 … x i …x f ), 1≤f≤n, soddisfacenti alcuni vincoli predefiniti. Ogni x i appartiene ad un insieme finito linearmente ordinato X i. Un algoritmo di backtracking genera, esplicitamente o implicitamente un albero i cui nodi rappresentano t-ple parzialmente costruite durante i vari passi dell’algoritmo.La radice contiene la t-pla vuota. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Dalla t-pla j-esima alla j+1-esima A partire dalla t-pla j-esima w = (x 1 x 2 … x j ), si genera la t-pla (j+1)-esima v = (x 1 x 2 … x j+1 ) con x j+1 primo elemento in X j+1 non ancora considerato. Si ha: 1.v è una soluzione finale del problema: la soluzione viene memorizzata (termina se una soluzione è sufficiente) 2.v è una soluzione parziale del problema: l’algoritmo passa dalla t-pla j+1- esima alla t-pla j+2-esima 3.v non è né soluzione finale né soluzione parziale: - se vi sono ancora elementi da scegliere in X j+1, si prende il primo disponibile come nuovo x j+1 e si torna al passo 1; - se non vi sono più elementi da scegliere in X j+1,,si torna alla t-pla j-esima, si sostituisce x j con il primo elemento elegibile in X j e si torna al passo 1. Se ancora non vi sono più elementi da scegliere, si torna alla t-pla (j-1)-esima e si sostituisce x j-1, se possibile.. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 ….per cercare di migliorare Il BT è un metodo di ricerca esaustiva “limitata”. Per cercare di diminuire il tempo di ricerca si possono aggiungere considerazioni ulteriori specifiche rispetto al singolo problema considerato. 1.Analizzare le simmetrie (8 regine) 2.Preassegnare il valore di alcune componenti della soluzione finale (circuito hamiltoniano) 3.Organizzare i dati in modo opportuno prima di iniziare a costruire l’albero (sottoinsiemi pesati). ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Il metodo BB Un algoritmo BB rafforza l’idea del BT di tagliare un ramo dell’albero delle decisioni non appena si vede che non può portare ad una soluzione. Infatti, poiché il BB è applicato solo a problemi di ottimizzazione, dove si deve arrivare ad una soluzione che minimizzi (o massimizzi) una certa funzione obiettivo, ad ogni nodo i si deve calcolare un limite relativo a qualunque soluzione generabile dal nodo stesso. Il ramo verrà potato quando Il limite calcolato nel nodo i non migliora il miglior limite già trovato nell’analisi dei nodi precedenti. Il nodo non rappresenta una soluzione ammissibile per il problema. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Il problema dell’assegnamento Si vogliono assegnare n persone ad n lavori in modo da pagare il minor costo totale possibile per l’intero lavoro. Costo ≥ 10 Lavoro 1Lavoro 2Lavoro 3Lavoro a 6437 b 5818 c 7694 d ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Il problema della bisaccia Il problema della bisaccia consiste nel trovare la soluzione economicamente più vantaggiosa per riempire una bisaccia di capacità W con un sottoinsieme di oggetti scelti fra un insieme X = (x 1,…, x i, …,x n ), dove ad ogni x i è assegnato un peso w i ed un valore v i. E’ opportuno: Ordinare le x i in ordine decrescente rispetto al rapporto valore/peso. Costruire un albero delle decisioni binario dove il figlio sx indica nodo x i presente mentre il figlio dx indica nodo x i assente. In ogni nodo saranno memorizzate le somme dei pesi e dei valori relativi ai nodi scelti nel cammino dalla radice al nodo stesso. Per scegliere la migliore opportunità, in ogni nodo si calcola un upper bound, ub, che misura una “previsione” di risultato a partire dal nodo considerato ub = v + (W - w) (v i+1 / w i+1 ) ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Il problema del commesso viaggiatore Data una rete di citt à, connesse tramite delle strade, trovare il percorso di minore lunghezza che un commesso viaggiatore deve seguire per visitare tutte le citt à una e una sola volta, ovvero, dato un grafo completo pesato, trovare il ciclo hamiltoniano di minor costo. E’ opportuno: Calcolare un lower bound, lb, per la lunghezza di ogni cammino. Partire da un nodo fissato. Dato che il grafo è non orientato, fissare l’ordine fra due adiacenti del nodo radice. ASD a.a.2010/2011- Lezione 12

ASD a.a.2010/2011- Lezione 11 Come trovare una buona limitazione? Trovare una buona limitazione per risolvere il BB tramite la scelta della migliore opportunità NON è un problema di facile soluzione. Si richiede di cercare una funzione: FACILE da calcolare, altrimenti peggioreremmo la complessità dell’algoritmo; NON SEMPLICISTICA, altrimenti fallisce lo scopo di tagliare rami dell’albero. Trovare il punto di incontro fra queste due richieste comporta un grosso lavoro di sperimentazione su numerose istanze del problema. ASD a.a.2010/2011- Lezione 12