Algoritmi metaeuristici: I - introduzione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi metaeuristici: I - introduzione"

Transcript

1 Algoritmi metaeuristici: I - introduzione Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev Aprile 200 Tecniche Meta-euristiche Algoritmi Local Search che usano speciali tecniche per uscire dai minimi locali incontrati devono evitare il verificarsi di cicli nell evoluzione dell algoritmo mossa peggiorante ottimo locale ciclo!!! 2 ottimo locale Metaeur.2

2 Tecniche Meta-euristiche A partire dagli anni 80 sono stati proposti numerosi paradigmi metaeuristici: Simulated Annealing Tabu search Genetic Algorithms Neural Networks Ant Systems Molti sono basati su analogie con sistemi naturali In generale molto efficaci e di facile implementazione ma richiedono tempi molto più elevati degli euristici tradizionali (costruttivi) Metaeur.3 Tabu Search (Glover, 986) Generalizzazione di LOCAL SEARCH consentendo l accettazione di mosse peggiorative. Uso di memoria di breve termine (TABU LIST) per evitare di ritornare nelle ultime t soluzioni visitate T tabu list := memorizza le ultime t soluzioni visitate T = {x k-, x k-2,, x k-t } Metaeur.4 2

3 Tabu Search: algoritmo base /* per problema di minimo */ genera una soluzione iniziale s di valore z(s) s* = s ; k := ; T = {s} ; while not STOP CRITERION do genera il neighborhood N(s)\T /* non tabu */ trova la migliore soluzione s N(s)\T rispetto a z( ) if z(s ) < z (s) then s* := s ; k best := k s := s k := k+ inserisci s in T al posto della più vecchia endwhile Metaeur. Tabu Search: criteri di terminazione Criteri di arresto possibili (STOP CRITERIA): N(s) \ T = Ø k > k max time limit raggiunto k k best > k non improving s* ottima (ad esempio = ad un lower bound) Metaeur.6 3

4 Tabu Search: lista tabu T impedisce il verificarsi di cicli di lunghezza T memorizzare in T soluzioni complete può essere oneroso es. TSP ogni soluzione è un vettore di n elementi ; confrontare due soluzioni costa O(n) ; verificare se una soluzione è tabu costa O(n T ) Metaeur.7 Tabu Search: lista tabu (2) si memorizzano attributi delle soluzioni e non soluzioni intere (ad esempio le mosse) mossa m : insieme delle operazioni elementari per ottenere una soluzione s' dalla soluzione corrente s s = s m (es. scambi di archi). N(s) := {s : m tale che s = s m } Metaeur.8 4

5 Tabu Search: mosse inverse T I memorizza le mosse inverse delle ultime mosse eseguite. TSP : se l ultima mossa aveva spostato il vertice i dalla dalla alla 7 posizione del circuito si proibisce di riportare i in posizione 2. TSP 2: se l ultima mossa ha scambiato gli archi (i, σ(i)) e (j, σ(j)) con (i, j), (σ(i), σ(j)) si proibiscono le mosse che coinvolgono i vertici i e/o j 3. KP-0: se l ultima mossa ha inserito nel KP l oggetto i si proibisce di rimuoverlo dal KP Metaeur.9 Limitazione delle mosse inverse T I molto più restrittiva di T R:= {x : m T I tale che x = x m} N(x)\R N(x)\T (spesso <<) Es. si considerino tutte le possibili terne di elementi distinti dell insieme {a,b,c,d,e} Soluz. Corrente abc abd acd acb = abc Trasformazione c d b c d b Tabu List d c d c c b d c c b b d Metaeur.0

6 Limitazione delle mosse inverse (2) T I non garantisce che non si abbiano cicli di periodo T I Es. TSP: T I memorizzagliultimiverticispostati T I > T I = {3} ciclo di periodo! Metaeur. Tabu Search: criteri aspirazione Tecnica utilizzata per sopperire alle condizioni troppo restrittive imposte dalle mosse inverse Una mossa, anche se tabu, può essere comunque effettuata se questa conduce ad una buona soluzione La bontà della soluzione si valuta con un opportuno contributo alla funzione obiettivo Metaeur.2 6

7 Intensificazione e diversificazione T I costituisce la memoria di breve periodo (short term) una ricerca efficace necessita anche di memoria di medio/lungo periodo che consenta : intensificazione della ricerca: non è consentito spostarsi troppo dalla parte di regione che si sta visitando preferire mosse con caratteristiche in comune con una buona soluzione recentemente incontrata penalità da aggiungere a z( ) per le mosse che alterano tale caratteristica diversificazione della ricerca: per spostarsi verso altre zone (inesplorate) dello spazio delle soluzioni penalità da aggiungere a z( ) per le soluzioni troppo vicine alla corrente Metaeur.3 Tabu search: vincoli A volte se il problema è fortemente vincolato la cardinalità di N(s) può essere molto piccola (è facile che N(x)\T = Ø ) si rilassano alcuni vincoli aggiungendo ad f(x) una penalità proporzionale alla violazione dei vincoli in x la ricerca si muove anche attraverso soluzioni non ammissibili Aggiustamento adattativo della penalità: La penalità può crescere se da molte iterazioni non si incontrano soluzioni ammissibili La penalità può decrescere se da molte iterazioni si incontrano soluzioni tutte ammissibili Metaeur.4 7

8 Gestione della lista tabu Tabu tenure t: lunghezza della lista tabu costante =... aggiornata dinamicamente (es. ogni h iterazioni) se s* è stata migliorata t := max {t max, t-} (INTENSIFICAZIONE) se s* rimane immutata t := min {t min, t+} (DIVERSIFICAZIONE) scelta casualmente in [t min, t max ] t che valori dare a t, t min, t max, h??? Memorizzazione della lista tabu: occupazione di memoria vs. tempo di verifica stato Metaeur. Tabu list per TSP E tabu muovere il vertice i per t iterazioni. Salva la lista dei vertici tabu T = {i, j,...} spazio O(t), tempo O(t) 2. Salva l iterazione in cui ho mosso un vertice vertice i T(i) := iterazione in cui ho mosso i k = iterazione corrente if T(i) + t k then mossa tabu else mossa ammissibile spazio O(n) ma tempo O() Metaeur.6 8

9 Tabu search di base per TSP Glover 986, Knox e Glover 989, Knox Neighborhood 2-opt exchange completo O(n 2 ) Tabu list : G 86 : T contiene il lato più corto rimosso in uno scambio non si può reinserire Asiration level si accettano mosse tabu miglioranti K 94 : T contiene le coppie di archi rimossi più costose (meno restrittiva) non si possono reinserire Aspiration level si accetta una mossa tabù che riduce il costo rispetto a quando c erano gli archi rimossi Metaeur.7 Tabu search di base per TSP Implementazione efficiente di 2/3-opt t 3 c t 4 d t 3 c t 4 d a t b t 2 ogni scambio è rappresentabile mediante la quadrupla < t, t2, t3, t4 > rimuovo (t, t2), (t4, t3 ) inserisco (t2, t3), (t, t4 ) a t b t 2 Metaeur.8 9

10 Tabu search di base per TSP (2) ogni scambio corrisponde a 2 quadruple t = a t2 = b < a, b, c, d > t = d t2 = c < d, c, b, a > (a,b,c,d) = c tt2 + c t4t3 -c t2t3 -c tt4 perchè lo scambio sia migliorante > 0 (a) c tt2 > c t2t3 o (b) c t4t3 > c tt4 o entrambi ma se è migliorante (a) è verificato per almeno una delle due rappresentazioni Metaeur.9 Tabu search di base per TSP (3) non si perdono scambi miglioranti se ci si limita alle quadruple t,..., t4 per cui c tt2 > c t2t3 dati t e t2 è sufficiente considerare t3 e t4 tali che : t3 : c tt2 > c t2t3 t4 segua t3 nel tabu corrente come implementare l algoritmo in modo efficiente? i L i = {v i, v i2,...} lista dei vertici in ordine di distanza da i tempo O(n 2 log n), spazio O(n 2 ) Metaeur.20 0

11 Simulated Annealing (SA) Algoritmo di ricerca basato su neighborhood randomizzato (Kirkpatrick et al., 983) Simula il comportamento del processo termodinamico di annichilazione dei metalli (raffreddamento dallo stato fuso) data s soluzione corrente se s N(s) migliorante la si esegue altrimenti si eseguono mosse peggiorante s N(s) con una probabiltà via via decrescente La probabilità dipende da un parametro T ( temperatura ) che decresce nel tempo Metaeur.2 Algoritmo base SA genera una soluzione iniziale s di valore z(s) s* := s determina la temperatura iniziale T=T 0 e la temperatura finale T min while T > T min do scegli casualmente una mossa che trasforma s in s = z(s ) z(s) if 0 then /* downhill */ s := s if z(s) < z(s*) then z(s*) < z(s) else /* uphill */ genera un valore casuale r in [0,] if r < e - /T then s := s diminuisci T (schema di raffreddamento, cooling schedule) endwhile Metaeur.22

12 Considerazioni su SA Versione non omogenea: la temperatura diminuisce ad ogni mossa Versione omogenea: si mantiene la stessa temperatura fino a quando non si e raggiunto uno stato di equilibrio e solo allora la si diminuisce Temperatura finale: teoricamente T min in pratica ci si ferma quando da P iterazioni non si migliora la soluzione ottima da Q iterazioni non si accetta una mossa Convergenza teorica all ottimo globale Metaeur.23 Simulated Anealing: varianti Reannealing prima esecuzione: si memorizza la temperatura T alla quale si e trovata la soluzione migliore seconda esecuzione: ricerca locale più accurata con T=T Restricted neighborhood non si considerano mosse che difficilmente possono produrre buone soluzioni Es. TSP si considerano solo mosse che collegano vertici vicini Metaeur.24 2

13 Simulated Annealing Vs. Tabu Search Similarità principali ci si muove da una soluzione ad un altra del suo intorno sono consentite mosse peggiorative (uphills) Differenze principali Tabu search mosse peggioranti solo quando si è in un ottimo locale poco o per nulla basato sulla randomizzazione Simulated annealing mosse peggioranti in qualunque momento fortemente basato sulla randomizzazione si esaminano le soluzioni dell intorno in ordine casuale spostandosi alla prima che risulta migliore di quella corrente o supera un particolare test randomizzato Metaeur.2 Algoritmi Genetici (Holland 97; Goldbuy 987) Basati sull analogia con l evoluzione di una popolazione di organismi elementari individuo soluzione fitness individuo costo soluzione Gli individui si combinano per generare nuovi individui in generazioni successive operatori di mutazione operatori di ricombinazione Il processo evolutivo tende a selezionare solo gli individui più idonei (fitness migliore) Metaeur.26 3

14 Algoritmi Genetici: versione base INIZIALIZZAZIONE: costruisci una popolazione iniziale di n individui S={S,...,S n } repeat /* generazioni */. MUTAZIONE: scegli m individui in S ed applica una mutazione randomizzata per ottenere m nuovi individui 2. RICOMBINAZIONE (CROSSOVER): scegli r coppie di individui e combinali in modo randomizzato per generare r nuovi individui che riflettano gli aspetti di entrambi i genitori 3. SELEZIONE: usa un criterio di selezione per ridurre la popolazione ad n individui selezionandoli tra gli n + m + r individui di S until STOP CRITERION Metaeur.27 Inconvenienti di GA base Lo schema non è efficace per la risoluzione di problemi vincolati Data una popolazione iniziale di soluzioni ammissibili gli operatori di mutazione e crossover producono nuove soluzioni spesso non ammissibili: Impiego di operatori specializzati che mantengano l ammissibilità Impiego di un passo di ricerca locale per cercare l ammissibilità e portare le soluzioni generate ad ottimi locali ( mandiamo gli individui a scuola prima di farli riprodurre ) Metaeur.28 4

15 Genetic Local Search INIZIALIZZAZIONE: costruisci una popolazione iniziale di n individui S={S,...,S n } MIGLIORAMENTO: determina gli ottimi locali associati agli n individui con un algoritmo Local Search repeat /* generazioni */. MUTAZIONE: scegli m individui in S ed applica una mutazione randomizzata per ottenere m nuovi individui 2. CROSSOVER: scegli r coppie di individui e combinali in modo randomizzato per generare r nuovi individui 3. MIGLIORAMENTO: applica un algoritmo di Local Search ad ognuno dei nuovi m+r individui per ottenere un nuovo insieme di soluzioni S 4. SELEZIONE: usa un criterio di selezione per ridurre la popolazione ad n individui selezionandoli tra gli n + m + r individui di S S until STOP CRITERION Metaeur.29 Operatori per GA In un GA la soluzione è rappresentata da una stringa i cui valori sono i geni Es. in KP-0 stringa delle variabili binarie associate agli oggetti MUTAZIONE scegli uno o più geni in modo casuale (di solito con probabilità uniforme P = /n) cambia il valore dei geni selezionati Metaeur.30

16 Operatori per GA (2) CROSSOVER. scegli 2 individui ( genitori, parents ) x = {x,..., x n } ed y = {y,..., y n } 2. combinali in modo da creare uno o più nuovi individui ( figli, offspring ) z = {z,..., z n } (e w = {w,..., w n }) i cui geni siano una combinazione dei geni dei genitori Metaeur.3 Operatori di CROSSOVER ONE POINT CROSSOVER (genera o 2 figli) Scegli un punto di taglio t uniforme in [,n] xi i < t yi i < t zi = wi = yi i t xi i t x y z w t Metaeur.32 6

17 Operatori di CROSSOVER TWO POINT CROSSOVER (genera o 2 figli) Scegli due punti di taglio s e t uniformi in [,n] x y z w s t Metaeur.33 Es. Algoritmo genetico per KP-0 MUTAZIONE: si cambia in maniera casuale (secondo un determinata funzione di probabilità) il valore di uno o piu elementi x j (geni) della soluzione ONE-POINT CROSSOVER: E necessario verificare l ammissibilità delle nuove soluzioni: Metaeur.34 7

18 Algoritmi Genetici per TSP Rappresentazione della soluzione: sequenza di visita dei vertici (permutazione) mutazione e crossover possono produrre soluzioni inammissibili Es. MUTAZIONE, cambio casuale di un gene Metaeur.3 Variante Mutazione per TSP Nuovo operatore di mutazione che genera una nuova soluzione ammissibile Scegli due punti di taglio ed inverti la sottosequenza compresa tra questi Metaeur.36 8

19 Crossover per TSP Se si utilizza un TWO-POINT CROSSOVER s t s t x x y y x ed y non sono tour! Soluzione: ORDER CROSSOVER Metaeur.37 Order Crossover per TSP. Si scelgono s e t ed in y si rimpiazzano le gli elementi nella sottostringa di x con dei buchi s t x y Si spostano i buchi verso destra o sinistra fino a farli arrivare nella posizione centrale introducendo la minor perturbazione possibile nella sequenza originale Si sostituiscono i buchi con la sottostringa di x Metaeur.38 9

20 Considerazioni sui Metaeuristici Schemi (paradigmi) algoritmici generali che devono essere particolarizzati per i singoli problemi. Spesso non competitivi rispetto ad algoritmi sviluppati ad hoc (soluzioni paragonabili in tempi molto più elevati). Tempi di sviluppo di un metaeuristico di base molto inferiori rispetto una tecnica ad hoc (ed anche di modifica per variazione del problema). Normalmente (molto) migliori di tecniche local search tradizionali ma con tempi (molto) superiori. Spesso diventano molto complessi e dipendenti da numerosi parametri di difficile taratura. Metaeur.39 Riferimenti bibliografici VJ RaywardSmith, IH Osman, CR Reaves, GD Smith eds Modern Heuristics Search Methods Wiley Chichester IH Osman, JP Kelly eds MetaHeuristics Theory and Applications Kluwer Academic Publishers Boston MA F Glover, M Laguna eds Tabu Search Kluwer Academic Publishers Boston MA E Aarts, JK Lenstra eds Local Search in Combinatorial Optimization Wiley Chichester S Voss, S Martello, I Osman, C Roucairol eds MetaHeuristics Advances and Trends in Local Search Algorithms for Optimization Kluwer Academic Publishers Boston MA CC Ribeiro, P Hansen eds Essays and Surveys in Metaheuristics Kluwer Academic Publishers Boston MA Metaeur.40 20

Tabu search. Tabu. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 2

Tabu search. Tabu. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 2 Tabu search 1 Tabu La parola tabu(taboo) viene dall isola di Tonga, Polinesia, dove era usata dagli aborigeni per indicare cose che non dovevano essere toccate perché erano sacre. In usi figurati indica

Dettagli

Algoritmi euristici. Parte I: metodi classici

Algoritmi euristici. Parte I: metodi classici Algoritmi euristici. Parte I: metodi classici Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev. 1.0 - febbraio 2003 Algoritmi Euristici Algoritmi Euristici, Approssimati, Approssimanti

Dettagli

Introduzione. Algoritmi Genetici. Evoluzione naturale. Modello per un GA. Evoluzione attraverso riproduzione. Algoritmi Genetici. Popolazione iniziale

Introduzione. Algoritmi Genetici. Evoluzione naturale. Modello per un GA. Evoluzione attraverso riproduzione. Algoritmi Genetici. Popolazione iniziale Introduzione Fulvio Corno, Maurizio Rebaudengo Dip. Automatica e Informatica Politecnico di Torino Gli (GA) sono algoritmi di ricerca e ottimizzazione basati sui Charles Darwin meccanismi dell evoluzione

Dettagli

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano Algoritmi Euristici Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Mercoledì 08.30-10.30 Venerdì 08.30-10.30 Ricevimento:

Dettagli

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano Algoritmi Euristici Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 13.30-15.30 in Aula G30 Giovedì 13.30-15.30 in Aula

Dettagli

Iteration 2. Iteration 7. Iteration 1. Iteration 6

Iteration 2. Iteration 7. Iteration 1. Iteration 6 Iteration 2 Iteration Iteration 7 area Low quality area Iteration 4 Iteration 3 Iteration 5 Iteration 6 del Random restart Start Start ling Tabu search ALGORITMI METAEURISTICI Classificazione Euristici

Dettagli

Algoritmi di ricerca locale

Algoritmi di ricerca locale Algoritmi di ricerca locale Utilizzati in problemi di ottimizzazione Tengono traccia solo dello stato corrente e si spostano su stati adiacenti Necessario il concetto di vicinato di uno stato Non si tiene

Dettagli

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano Algoritmi Euristici Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Martedì 14.30-16.30 in Aula Omega Venerdì 14.30-16.30 in

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Consideriamo un generico problema di ottimizzazione min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando

Dettagli

Ingegneria della Conoscenza e Sistemi Esperti Lezione 9: Evolutionary Computation

Ingegneria della Conoscenza e Sistemi Esperti Lezione 9: Evolutionary Computation Ingegneria della Conoscenza e Sistemi Esperti Lezione 9: Evolutionary Computation Dipartimento di Elettronica e Informazione Politecnico di Milano Evolutionary Computation Raggruppa modelli di calcolo

Dettagli

Tecniche euristiche Ricerca Locale

Tecniche euristiche Ricerca Locale Tecniche euristiche Ricerca Locale PRTLC - Ricerca Locale Schema delle esercitazioni Come ricavare la soluzione ottima Modelli Solver commerciali Come ricavare una stima dell ottimo: rilassamenti Rilassamento

Dettagli

Ricerca Operativa A.A. 2007/2008

Ricerca Operativa A.A. 2007/2008 Ricerca Operativa A.A. 2007/2008 9. Cenni su euristiche e metaeuristiche per ottimizzazione combinatoria Motivazioni L applicazione di metodi esatti non è sempre possibile a causa della complessità del

Dettagli

Intelligenza Artificiale. Introduzione al Genetic Programmimg

Intelligenza Artificiale. Introduzione al Genetic Programmimg Intelligenza Artificiale Introduzione al Genetic Programmimg Marco Piastra Genetic Programming - 1 Classificazione del GP In base alle dimensioni dei sistemi di calcolo evolutivo Rappresentazione Ricombinazione

Dettagli

Intelligenza Artificiale II - AA 2008/2009. Intelligenza Artificiale II. Genetic Programming Introduzione. Marco Piastra. Genetic Programming - 1

Intelligenza Artificiale II - AA 2008/2009. Intelligenza Artificiale II. Genetic Programming Introduzione. Marco Piastra. Genetic Programming - 1 Intelligenza Artificiale II Genetic Programming Introduzione Marco Piastra Genetic Programming - 1 Strutture sintattiche e alberi Qualsiasi cosa abbia una sintassi formale (una grammatica) può essere rappresentata

Dettagli

Evolutionary computing, machine learning et alia.

Evolutionary computing, machine learning et alia. Evolutionary computing, machine learning et alia antonino.polimeno@unipd 1 Motivazioni Ingegneria chimica e chimica industriale Ottimizzazione di reattori condizioni di reazione Sintesi Chimica combinatoriale,

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non

Dettagli

Programmazione Matematica: I - Introduzione

Programmazione Matematica: I - Introduzione Programmazione Matematica: I - Introduzione Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 3.0 ottobre 2002 Problemi di Ottimizzazione x = (x,, x n ) R n : vettore di variabili decisionali

Dettagli

Parte V: Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Si consideri il problema min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva)

Dettagli

Algoritmi Euristici. Molti problemi reali richiedono soluzioni algoritmiche

Algoritmi Euristici. Molti problemi reali richiedono soluzioni algoritmiche 9 Algoritmi Euristici introduzione Vittorio Maniezzo Università di Bologna 1 Molti problemi reali richiedono soluzioni algoritmiche I camion devono essere instradati VRP, NP-hard I depositi o i punti di

Dettagli

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev..0 Maggio 2004 Scomposizione di problemi Accade spesso che un problema

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un

Dettagli

Quick Sort. PARTITION(A,p,r) risistema il sottoarray A[p...r] e riporta l indice q:

Quick Sort. PARTITION(A,p,r) risistema il sottoarray A[p...r] e riporta l indice q: Quick Sort - Ordinamento in loco - Tempo di esecuzione nel caso peggiore: Θ(n 2 ) - Tempo di esecuzione nel caso medio: Θ(n lg n) - I fattori costanti nascosti nella notazione Θ sono abbastanza piccoli

Dettagli

Algoritmi generali per PLI

Algoritmi generali per PLI Programmazione Lineare Intera: Parte II: Algoritmo Cutting Planes Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 3.1 ottobre 23 Algoritmi generali per PLI Metodi esatti tradizionali

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di

Dettagli

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Dettagli

Algoritmo di ordinamento sul posto che ha tempo di esecuzione :

Algoritmo di ordinamento sul posto che ha tempo di esecuzione : QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione Combinatoria e Reti (a.a. 2007/08) o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso

Dettagli

Algoritmi generali per PLI

Algoritmi generali per PLI Programmazione Lineare Intera: II Algoritmo Cutting Planes Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev.. ottobre Algoritmi generali per PLI Metodi esatti tradizionali (anni 6 oggi):

Dettagli

Tecnologie informatiche multimediali

Tecnologie informatiche multimediali Università degli Studi di Ferrara Facoltà di Lettere e Filosofia Corso di Laurea in «Scienze e Tecnologie della Comunicazione» aa 2011-2012 Tecnologie informatiche multimediali Prof. Giorgio Poletti giorgio.poletti@unife.it

Dettagli

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro

Dettagli

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate. min f(x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate. min f(x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n 5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate Consideriamo il generico problema di PNL min f(x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n dove f e le c i sono di classe

Dettagli

Oltre la ricerca classica

Oltre la ricerca classica Oltre la ricerca classica Cap 4 Ricerca locale, ricerca online Alessio Micheli a.a. 2015/2016 Credits: Maria Simi Russell-Norvig Risolutori classici Gli agenti risolutori di problemi classici assumono:

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

Proprietà di un euristica

Proprietà di un euristica p. 1/3 Euristiche Cosa fare se non ci possiamo aspettare di determinare in tempi ragionevoli una soluzione ottima o approssimata di un problema? Dobbiamo rinunciare a trattare il problema? No, possiamo

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) diffusione di messaggi segreti memorizzazione

Dettagli

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Prof. Venturino Taggi accattatis@ing.uniroma2.it taggi@ing.uniroma2.it 2 Fondamenti di Informatica 2015/16 V.Taggi taggi@ing.uniroma2.it Algoritmi di

Dettagli

Intelligenza Artificiale. Ricerca euristica L algoritmo A*

Intelligenza Artificiale. Ricerca euristica L algoritmo A* Intelligenza Artificiale Ricerca euristica L algoritmo A* Marco Piastra Ricerca euristica - Ricerca non informata Ricerca nello spazio degli stati Definizione di un grafo come spazio degli stati I nodi

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Analogia con il processo di solidificazione di un metallo fuso

Analogia con il processo di solidificazione di un metallo fuso Simulated Annealing Annichilimento Analogia con il processo di solidificazione di un metallo fuso A partire dal metallo fuso, la temperatura viene abbassata lentamente e il sistema transita da uno stato

Dettagli

3.4 Metodo di Branch and Bound

3.4 Metodo di Branch and Bound 3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Tecniche Algoritmiche /2 Paradigma selettivo: la tecnica enumerativa e la tecnica di backtracking

Tecniche Algoritmiche /2 Paradigma selettivo: la tecnica enumerativa e la tecnica di backtracking Tecniche Algoritmiche /2 Paradigma selettivo: la tecnica enumerativa e la tecnica di backtracking Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola

Dettagli

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano Algoritmi Euristici Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Mercoledì 08.30-10.30 Venerdì 08.30-10.30 Ricevimento:

Dettagli

Politecnico di Milano. Reti Wireless. Seminari didattici. Dalla teoria alla soluzione. Ilario Filippini

Politecnico di Milano. Reti Wireless. Seminari didattici. Dalla teoria alla soluzione. Ilario Filippini Politecnico di Milano Reti Wireless Seminari didattici Dalla teoria alla soluzione Ilario Filippini 2 Approccio euristico 3 Obiettivo dell approccio euristico 4 Tipi di euristiche Dalla teoria alla soluzione

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

Problemi di ordinamento

Problemi di ordinamento Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata

Dettagli

Parte III: Algoritmo di Branch-and-Bound

Parte III: Algoritmo di Branch-and-Bound Parte III: Algoritmo di Branch-and-Bound Sia Divide et Impera z* = max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)

Dettagli

Algoritmo Branch and Cut (B&C)

Algoritmo Branch and Cut (B&C) Programmazione Lineare Intera: III Algoritmo Branch and Cut Daniele Vigo DEIS Università di Bologna dvigo@deisuniboit rev.0 aprile 2005 Algoritmo Branch and Cut (B&C) Sviluppato negli anni 90, nasce come

Dettagli

Tecniche di Ordinamento dei Vettori

Tecniche di Ordinamento dei Vettori Tecniche di Ordinamento dei Vettori Corso di Laurea Ingegneria Corso B A.A. 2010-2011 1 Contenuto 1) Generalità 2) Metodi a Minimo Ingombro di Memoria 2.1) Ordinamento per selezione ( Selection Sort )

Dettagli

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate 5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate Consideriamo il generico problema di PNL min f (x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n dove f e le c i sono di classe

Dettagli

Soluzione dei problemi di Programmazione Lineare Intera

Soluzione dei problemi di Programmazione Lineare Intera Fondamenti di Ricerca Operativa T-A a.a. 2014-2015 Soluzione dei problemi di Programmazione Lineare Intera Andrea Lodi, Enrico Malaguti, Daniele Vigo rev. 1.1.a ottobre 2014 Fondamenti di Ricerca Operativa

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento! Selection Sort! Quick Sort! Lower bound alla complessità degli algoritmi di ordinamento Ordinamento 1 Selection Sort SelectionSort(dati[]) { for (i=0; idati.length-1; i++) { min

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Algoritmi Evolutivi. Università di Pavia. Via Ferrata, 1. Dipartimento di Informatica e Sistemistica

Algoritmi Evolutivi. Università di Pavia. Via Ferrata, 1. Dipartimento di Informatica e Sistemistica Alessandro Bollini bollini@vision.unipv.it Dipartimento di Informatica e Sistemistica Università di Pavia Via Ferrata, 1 27100 Pavia Obiettivi + Introduzione al calcolo evolutivo. Motivazioni ed evoluzione

Dettagli

Algoritmi Genetici. Algoritmi genetici

Algoritmi Genetici. Algoritmi genetici 10 Algoritmi Genetici Vittorio Maniezzo Università di Bologna 1 Algoritmi genetici Un algoritmo genetico è una algoritmo euristico di ricerca che si ispira ai meccanismi della genetica delle popolazioni

Dettagli

Implementazione di dizionari

Implementazione di dizionari Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri campi in cui sono memorizzati i dati associati alla

Dettagli

QUICKSORT. Basato sul paradigma divide-et-impera (come MERGE-SORT)

QUICKSORT. Basato sul paradigma divide-et-impera (come MERGE-SORT) QUICKSORT Basato sul paradigma divide-et-impera (come MERGE-SORT) Divide: stabilisce un valore di q tale da dividere l array A[p.. r] in due sottoarray non vuoti A[p.. q] e A[q+1.. r], dove ogni elemento

Dettagli

Soluzione Progetto 3 ASD a.a. 2018/2019. Alpinocalypse Now. Alessio Guerrieri e Lorenzo Ghiro 30 maggio 2018

Soluzione Progetto 3 ASD a.a. 2018/2019. Alpinocalypse Now. Alessio Guerrieri e Lorenzo Ghiro 30 maggio 2018 Soluzione Progetto 3 ASD a.a. 2018/2019 Alpinocalypse Now Alessio Guerrieri e Lorenzo Ghiro 30 maggio 2018 Statistiche Numero sottoposizioni: 1285 400 180 350 160 300 140 120 250 Sottomissioni 200 Sottomissioni

Dettagli

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano Algoritmi Euristici Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Martedì 14.30-16.30 in Aula Omega Venerdì 14.30-16.30 in

Dettagli

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,

Dettagli

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI 3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI ESISTENZA DI UN PUNTO DI OTTIMO VINCOLATO Il problema di ottimizzazione vincolata introdotto nel paragrafo precedente può essere formulato nel modo seguente:

Dettagli

Linea di 4 macchine con buffer

Linea di 4 macchine con buffer La soluzione del 2JSP è la generalizzazione di quella data da Aker per 2 lavori J i di m operazioni in serie da eseguire su una linea con buffer intermedi: ciascuno di lunghezza temporale t i sulla macchina

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0 Soluzioni 4.-4. Fondamenti di Ricerca Operativa Prof. E. Amaldi Esercizi sulla Programmazione Lineare 4. Risoluzione grafica e forma standard. Si consideri il problema min x cx Ax b x dove x = (x, x )

Dettagli

Algoritmo basato su cancellazione di cicli

Algoritmo basato su cancellazione di cicli Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile

Dettagli

Calcolo evolutivo Elementi di teoria

Calcolo evolutivo Elementi di teoria Intelligenza Artificiale II Calcolo evolutivo Elementi di teoria Marco Piastra Calcolo evolutivo - 1 Varianti del calcolo evolutivo Rappresentazione degli individui Vettori di bit, di interi, di numeri

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile

Dettagli

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max Makespan con set-up dipendenti dalla sequenza 1/s jk /C max 1/s jk /C max Un tempo di riattrezzaggio (set-up) s jk è richiesto fra il processamento di j e quello di k. In questo caso, C max dipende dalla

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Problemi di Instradamento di Veicoli

Problemi di Instradamento di Veicoli Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Problemi di Instradamento di Veicoli Renato Bruni bruni@dis.uniroma1.it Il materiale presentato è derivato

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento Selection Sort Quick Sort Lower bound alla complessità degli algoritmi di ordinamento giu 03 ASD 1 Selection Sort SelectionSort(dati[]) { for (i=0; i

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Si definisca Interval Tree un albero binario di ricerca le

Dettagli

OTTIMIZZAZIONE NON LINEARE

OTTIMIZZAZIONE NON LINEARE OTTIMIZZAZIONE NON LINEARE In molti casi pratici non esistono algoritmi specifici per la soluzione del problema. Si utilizzano quindi algoritmi basati su approssimazioni locali della funzione o algoritmi

Dettagli

SAGA: sequence alignment by genetic algorithm. ALESSANDRO PIETRELLI Soft Computing

SAGA: sequence alignment by genetic algorithm. ALESSANDRO PIETRELLI Soft Computing SAGA: sequence alignment by genetic algorithm ALESSANDRO PIETRELLI Soft Computing Bologna, 25 Maggio 2007 Multi Allineamento di Sequenze (MSAs) Cosa sono? A cosa servono? Come vengono calcolati Multi Allineamento

Dettagli

Introduzione agli algoritmi genetici. Diego Nova

Introduzione agli algoritmi genetici. Diego Nova Introduzione agli algoritmi genetici Diego Nova Introduzione Gli Algoritmi Genetici (GA) sono procedure complesse, adattative, finalizzate alla risoluzione di problemi di ricerca e ottimizzazione e basate

Dettagli

Teoria della Complessità Computazionale

Teoria della Complessità Computazionale Teoria della Complessità Computazionale Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it Rev. 1.3, 11/00 rev. 1.3 - Novembre 2000 Teoria della Complessità Studia la difficoltà dei problemi

Dettagli

Problema del Job Shop

Problema del Job Shop Problema del Job Shop Job Shop n job, m macchine iascun job j è composto da una sequenza di task (t j (),,t j (r j )) ogni task t j (k) deve essere eseguito su una specifica macchina i = m j (k) (richiedendo

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

Alberi ed Alberi Binari di Ricerca

Alberi ed Alberi Binari di Ricerca Alberi ed Alberi Binari di Ricerca Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell

Dettagli

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo: PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola: Secondo appello //0 RICERCA OPERATIVA (a.a. 0/) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL max x x x x x + x x x per via algebrica, mediante l algoritmo del Simplesso Primale a partire

Dettagli

Capitolo2. Algoritmo Genetico.

Capitolo2. Algoritmo Genetico. Capitolo2. Algoritmo Genetico. 2.1 Caratteristiche generali. Gli Algoritmi Genetici (GA-Genetic Algorithm) sono metodi stocastici volti alla risoluzione di problemi che si concentrano sulla ricerca di

Dettagli

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente! Qualche problema computazionale " Trova min " Selection sort! Pseudocodice per descrivere algoritmi " Variabili

Dettagli

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:

Dettagli

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Quinto appello 27/6/ = 4. B b B = 2 b N = 4 Quinto appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il problema di PL dato applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B {, }. Per

Dettagli

3.2 Rilassamenti lineari/combinatori e bounds

3.2 Rilassamenti lineari/combinatori e bounds 3.2 Rilassamenti lineari/combinatori e bounds Consideriamo un problema di Ottimizzazione Discreta min{f(x) : x X} e sia z il valore di una soluzione ottima x X. Metodi di risoluzione spesso generano una

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

Dettagli

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL max x x x + x x x x x x applicando l algoritmo del Simplesso Primale per via algebrica a partire

Dettagli

Code con priorità. Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna.

Code con priorità. Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna. Code con priorità Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna marzolla@cs.unibo.it http://www.moreno.marzolla.name/ Copyright 2009 2012 Moreno Marzolla, Università di Bologna

Dettagli

Intelligenza Artificiale Compito - 12 Marzo 2007

Intelligenza Artificiale Compito - 12 Marzo 2007 Intelligenza Artificiale Compito - 1 Marzo 007 Nome e Cognome: Matricola: Nickname: ESERCIZIO N 1 Ricerca Informata A* 4 punti Stabilite se un euristica monotona permette ad A* di espandere sempre meno

Dettagli

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano Algoritmi Euristici Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 13.30-15.30 in Aula G30 Giovedì 13.30-15.30 in Aula

Dettagli

Corso di Perfezionamento

Corso di Perfezionamento Zaino frazionario e Algoritmi golosi 1 1 Dipartimento di Matematica e Informatica Università di Camerino 17 febbraio 2009 0-1 Un ladro entra in un magazzino e trova n oggetti L i-esimo oggetto vale v i

Dettagli