Ottimizzazione euristica
|
|
- Agnello Mazza
- 6 anni fa
- Visualizzazioni
Transcript
1 Ottimizzazione euristica 1
2 Il problema della ottimizzazione Componenti: Un insieme di variabili indipendenti Un insieme di condizioni sulle variabili (vincoli) Una funzione obiettivo Soluzione: I valori delle variabili che, rispettando i vincoli, portano la funzione obiettivo ad un valore ottimo In forma generale: Con i vincoli
3 Lo spazio di ricerca della soluzione Descritto da: Numero di dimensioni Dominio di ciascuna dimensione Discreto Limitato Reale Natura della relazione tra vettori di ingresso e funzione obiettivo Continua Discontinua Ricerca locale nello spazio di ricrca: non tiene conto delle soluzioni precedenti Considera solo la soluzione corrente Usa un metodo per generare soluzioni alternative.
4 Una tassonomia approssimata delle tecniche di ottimizzazione ottimizzazione Tecniche euristiche Tecniche enumerative DFS Programmazione dinamica BFS Tabu Search Hill Climbing Simulated Annealing Algoritmi evoluzionistici Programmazione genetica Algoritmi genetici
5 Tecniche euristiche Tecniche per la soluzione di problemi mediante algoritmi iterativi che selezionano via via la soluzione più appropriata tra quelle ottenute a ciascun passo. Tra queste: Tabu search. Definisce come muoversi localmente da una soluzione all altra usando una tabella delle soluzioni visitate recentemente Hill Climbing: parte da un punto e cerca punti con migliore funzione obiettivo Ant colony optimization: risolve problemi che possono essere ridotti alla ricerca di cammini ottimi in un grafo. Idea: le formiche in cerca di cibo esplorano a caso l ambiente e quando lo trovano ritornano alla colonia lasciando tracce chimiche, eventualmente rinforzate da altre formiche Simulated annealing: ricerca la soluzione generando soluzioni vicine alla corrente. Soluzioni che portano a un valore superiore sono sempre accettate. Soluzioni che portano a un valore inferiore sono accettate probabilisticamente Genetic algorithms: mantiene un insieme di soluzioni che evolvono usando i principi della evoluzione Darwiniana
6 Hill Climbing varianti: stochastic hill climbing Non sceglie sempre il migliore first-choice hill climbing Prende il primo buon successore (utile se il numero di successori è grande) random restart Cerca il punto migliore da diversi punti di partenza Ovviamente la probabilità di trovare il massimo aumeta con l aumentare del numero di tentativi
7 Algoritmi di ottimizzazione mediante Simulated Annealing Simulated Annealing: (~ tempera simulata) Idea: imitare quello che succede nel processo di tempera la tempera è il processo nel quale il metallo viene riscaldato e poi raffreddato lentamente Il materiale temperato arriva ad uno stato a minore energia nel quale le molecle si assestano su una posizione più stabile
8 Riassunto dell algoritmo di minimizzazione selezione dei parametri iniziali perturba i parametri Valutazione Se v < v accetta la perturbazione Altrimenti accetta la perturbazione con Prob(E,T) Test di Metropolis Ripeti con stato e temperatura aggiornati
9 Test di Metropolis Si approssima l allineamento delle molecole in natura consentendo le transizioni verso l alto con qualche probabilità Prob (nello stato ad energia E) ~ Funzione di distribuzione di probabilità di Boltzmann (Z normalizz., k cost.boltzmann) Anche quando T è piccola, c è una possibilità di accettazione Prob (accettazione) = Metropolis if E 2 < E 1, prob () > 1 if E 2 > E 1, possiamo trasferirci ad uno stato ad energia maggiore La velocità alla quale si decrementa T e la quantità di decremento è stabilito da una sequenza di tempera prestabilita (annealing schedule)
10 Pseudocodice del Simulated annealing Fissa un valore iniziale del parametro T sufficientemente alto: T0 Fissa la configurazione iniziale: i0 Ripeti Ripeti Perturba la configurazione attuale: ij Calcola Δc=c(i)-c(j); Se Δc 0 Allora Accetta la configurazione j; Altrimenti Se (exp(-δc/t) Random(0,1)) Allora Accetta la configurazione j; FineSe FinoAQuando(l equilibro termico è bene approssimato); Decrementa T; FinoAQuando(il criterio di stop è verificato);
11 Proprietà L algoritmo può essere considerato come una successione di catene di Markov omogenee Si può realizzare delle catene non omogenee diminuendo la temperatura ad ogni iterazione Si può dimostrare che se T scende abbastanza lentamente, il processo converge all ottimo globale con probabilità 1 presentato in: Kirkpatrick, Gelatt and Vecchi, Optimization by Simulated Annealing, Science, 220(4598): , May 1983 per problemi di routing VLSI semplice da utilizzare per l ottimizzazine vincolata
12 Sequenze di raffreddamento La temperatura iniziale, la temperatura finale e la sequenza di raffreddamento sono determinate sperimentalmente Alcuni schemi: t = αt, dove α è tipicamente intorno a 0.95 t = e - βt t, dove β è tipicamente intorno a
13 Parametri di SA Valore iniziale di temperatura determina l efficienza dell algoritmo un valore troppo basso fà convergere l algoritmo ad un minimo locale un valore troppo alto fà si che le prime catene siano superflue possibile modo di determinare T0: 1. Si fissa un valore arbitrario 2. si esegue un certo numero di iterazioni 3. si calcola il rapporto tra il numero di transizioni accettate e il numero di transizioni proposte 4. se il rapporto è superiore a un numero prefissato (tipicamente 0.8), allora il valore di T0 proposto viene accettato, altrimenti si raddoppia tale valore e si ripete da 2.
14 Algoritmi Genetici (GA) Tecnica di ottimizzazione euristica; prende come modello il processo di evoluzione biologica NB: IL PROCESSO DI EVOLUZIONE BIOLOGICO E GROSSOLANAMENTE APPROSSIMATO!!! Proposta da John Holland nel 1975 Uno sguardo sul suo modo di operare: mantiene una popolazione di possibili soluzioni al problema Gestisce la loro evoluzione applicando concetti di evoluzione naturale e ereditarietà genetica Questi concetti sono applicati mediante Operatori Stocastici: Selezione Ricombinazione Mutazione
15 Operatori stocastici Selezione: preferisce le soluzioni migliori nella popolazione definizione della qualità di una soluzione Ricombinazione: prende due soluzioni distinte e genera nuove soluzioni ricombinandole a caso Mutazione: perturba a caso una soluzione
16 Il processo preso a modello Evoluzione naturale Problema: adattarsi all ambiente Attori: gli individui viventi in quell ambiente Il metro di giudizio: la capacità degli individui di adattarsi all ambiente Modalità di evoluzione: selezione, ricombinazione e mutazione genetica delle specie viventi Algoritmi genetici Problema: trovare l ottimo globale di una funzione Attori: le possibili soluzioni Il metro di giudizio: valore della funzione da ottimizzare, chiamata fitness Modalità di evoluzione: applicazione iterativa degli Operatori Stocastici Risultato: le specie viventi si adattano all ambiente Risultato: la popolazione di soluzioni cambia cercando di massimizzare la funzione
17 Ottimizzazione Genetica: pseudocodice Genera la popolazione iniziale di soluzioni; Valuta la fitness di ogni soluzione; while (condizione di termine non raggiunta) do done seleziona le soluzioni per la riproduzione; ricombina le soluzioni selezionate; mutazione delle soluzioni; valuta la fitness delle soluzioni modificate; genera una nuova popolazione rimpiazzando la popolazione iniziale con le soluzioni modificate;
18 GA for(gen=0; gen<maxgen; gen++) fprintf(outfp,"\nrun %d of %d: GENERATION %d->%d\n",run,maxruns,gen,maxgen); application(); /*application dependent routines*/ generation(); /* create a new generation */ statistics(newpop); /* compute fitness statistics on new populations */ report(); /* report results for new generation */ } temp = oldpop; /* advance the generation */ oldpop = newpop; newpop = temp;
19 Evoluzione selezione riproduzione Genera la popolazione valutazione
20 Esempio massimizzare la funzione f(x)=x 2 con x tra 0 e 31 struttura dati:... individuo i individuo i+1 unsigned *chrom double fitness int xsite int *parent int *utility unsigned *chrom double fitness int xsite int *parent int *utility cromosoma genitori eventuali variabili utili...
21 Esempio inzializzazione a caso di una popolazione di 4 individui con cromosoma lungo ) v ) v ) v ) v
22 Codice: inizializzazione initpop() int j, j1, k, stop; unsigned mask = 1; for(j = 0; j < popsize; j++) for(k = 0; k < chromsize; k++) oldpop[j].chrom[k] = 0; if(k == (chromsize-1)) stop = lchrom - (k*uintsize); else stop = UINTSIZE; for(j1 = 1; j1 <= stop; j1++) oldpop[j].chrom[k] = oldpop[j].chrom[k]<<1; if(flip(0.5)) oldpop[j].chrom[k] = oldpop[j].chrom[k] mask; } } oldpop[j].parent[0] = 0; /* Initialize parent info. */ oldpop[j].parent[1] = 0; oldpop[j].xsite = 0; objfunc(&(oldpop[j])); /* Evaluate initial fitness */ } } 22
23 Codice: inizializzazione Inizializzazione della popolazione: initpop() int j, j1, k, stop; unsigned mask = 1; for(j = 0; j < popsize; j++) for(k = 0; k < chromsize; k++) oldpop[j].chrom[k] = 0; if(k == (chromsize-1)) stop = lchrom - (k*uintsize); else stop = UINTSIZE; for(j1 = 1; j1 <= stop; j1++) oldpop[j].chrom[k] = oldpop[j].chrom[k]<<1; if(flip(0.5)) oldpop[j].chrom[k] = oldpop[j].chrom[k] mask; } } oldpop[j].parent[0] = 0; /* Initialize parent info. */ oldpop[j].parent[1] = 0; oldpop[j].xsite = 0; objfunc(&(oldpop[j])); /* Evaluate initial fitness */ } } 22
24 Selezione Metodo della ruota della roulette: L individuo i ha una probabilità pari a di essere scelto n 1 4 Si ripete la selezione tante volte quanti sono gli individui che devono avere gli stessi genitori 2 3 quest area è proporzionale al valore della fitness
25 Selezione: int rws(struct individual *pop) float rand, partsum; int j,k; float randomperc(); Codice: selezione sumfitness=0; for(j = 0; j < popsize; j++) } sumfitness = sumfitness + pop[j].fitness; //trova la fitness totale rand = randomperc() * sumfitness; partsum=0.; j=0; do partsum += pop[j].fitness; j++; } while(!((partsum>=rand) (j==popsize))); return(j-1); }
26 Esempio Crossover. Prima: s 1` = s 2` = s 5` = s 6` = Dopo: s 1`` = s 2`` = s 5`` = s 6`` =
27 Codice: crossover int crossover (unsigned *parent1, *parent2, *child1, *child2) int j, jcross, k; unsigned mask, temp; if(flip(pcross)) jcross = rnd(1,(lchrom - 1));/* Cross tra 1 and l-1 */ ncross++; for(k = 1; k <= chromsize; k++) if(jcross >= (k*uintsize)) child1[k-1] = parent1[k-1]; child2[k-1] = parent2[k-1];} else if((jcross < (k*uintsize)) && (jcross > ((k-1)*uintsize))) mask = 1; for(j = 1; j <= (jcross-1-((k-1)*uintsize)); j++) temp = 1; mask = mask<<1; mask = mask temp; } child1[k-1] = (parent1[k-1]&mask) (parent2[k-1]&(~mask)); child2[k-1] = (parent1[k-1]&(~mask)) (parent2[k-1]&mask); } else child1[k-1] = parent2[k-1]; child2[k-1] = parent1[k-1]; } } } else for(k = 0; k < chromsize; k++) child1[k] = parent1[k]; child2[k] = parent2[k]; } jcross = 0; } return(jcross);
28 Esempio Mutazione:ogni bit è sottoposto ad una piccola probabilità d errore (per esempio 0.1) Prima: s 1`` = Dopo: s 1``` = f (s 1``` ) = 6 s 2`` = s 3`` = s 4`` = s 5`` = s 6`` = s 2``` = f (s 2``` ) = 7 s 3``` = f (s 3``` ) = 8 s 4``` = f (s 4``` ) = 5 s 5``` = f (s 5``` ) = 5 s 6``` = f (s 6``` ) = 6
29 Codice: mutazione mutation(child) unsigned *child; /* Mutate an allele w/ pmutation, count # of mutations */ int j, k, stop; unsigned mask, temp = 1; for(k = 0; k < chromsize; k++) mask = 0; if(k == (chromsize-1)) stop = lchrom - (k*uintsize); else stop = UINTSIZE; for(j = 0; j < stop; j++) if(flip(pmutation)) mask = mask (temp<<j); nmutation++; } } child[k] = child[k]^mask; }
30 Generation 0 Generation 1 num string value fitness parents xsite string value fitness ) v ( 4, 3) v ) v ( 4, 3) v ) v ( 2, 4) v ) v ( 2, 4) v Generation 1 Generation 2 num string value fitness parents xsite string value fitness ) v ( 2, 1) v ) v ( 2, 1) v ) v ( 4, 3) v ) v ( 4, 3) v Generation 2 Generation 3 num string value fitness parents xsite string value fitness ) v ( 3, 4) v ) v ( 3, 4) v ) v ( 1, 2) v ) v ( 1, 2) v Generation 3 Generation 4
31 Operatori Alternativi per il Crossover Crossover a n punti Scegliere a caso n punti per il crossover Dividere i cromosomi in questi punti incrociarli, alternano i genitori Generalizzazione del crossover a 1 punto
32 Crossover Uniforme Assegnare la testa a un genitore, la coda all altro Lanciare una moneta per ogni gene del primo figlio Realizza una copia inversa per il gene del secondo figlio L ereditarietà è indipendente dalla posizione
33 Crossover o mutazione? Lungo dibattito: qual è migliore o necessario Risposta: dipende dal problema in generale, è meglio avere entrambi entrambi hanno il loro ruolo generalmente, usare solo mutazione è possibile, usare solo crossover non funziona bene
34 Rappresentazioni Possibili codifiche degli individui Bit strings ( ) Real numbers ( ) Permutations of element (E11 E3 E7... E1 E15) Lists of rules (R1 R2 R3... R22 R23) Elementi di programmi (genetic programming)... strutture dati...
35 Rappresentazioni Alcuni problemi hanno varabili intere, per. esempio segnali campionati Altri problemi hanno valori da un insieme prefissato Molti problemi sono intrinsicamente reali, tipicamente l ottimizzazione f : R n R Esempio: la funzione di Ackley s
36 Crossover tra valori reali Discrete: each allele value in offspring z comes from one of its parents (x,y) with equal probability: z i = x i or y i Could use n-point or uniform Intermediate exploits idea of creating children between parents (hence a.k.a. arithmetic recombination) z i = α x i + (1 - α) y i where α : 0 α 1. The parameter α can be: constant: uniform arithmetical crossover variable (e.g. depend on the age of the population) picked at random every time
37 Crossover aritmetico singolo Genitori: x 1,,x n e y 1,,y n Scegliere a caso un gene (k) il figlio è: ugualmente per l altro figlio. Esempio (α = 0.5) estensione al caso multiplo
38 GA: ottimizzazione vincolata I GA sono adatti per l ottimizzazione non vincolata attività in corso i metodi proposti sono basati sulla penalizzazione basati sulla ricerca di soluzioni fattibili basati sulla preservazione della fattibilità metodi ibridi
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
DettagliIngegneria 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
DettagliIntroduzione. 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
DettagliOltre 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:
DettagliIntelligenza Artificiale Ing. Tiziano Papini
Intelligenza Artificiale Ing. Tiziano Papini Email: papinit@dii.unisi.it Web: http://www.dii.unisi.it/~papinit Constraint Satisfaction metodi riparativi Intelligenza Artificiale - CSP Tiziano Papini -
DettagliMarkov Chains and Markov Chain Monte Carlo (MCMC)
Markov Chains and Markov Chain Monte Carlo (MCMC) Alberto Garfagnini Università degli studi di Padova December 11, 2013 Catene di Markov Discrete dato un valore x t del sistema ad un istante di tempo fissato,
DettagliCalcolo 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
DettagliCercare il percorso minimo Ant Colony Optimization
Cercare il percorso minimo Ant Colony Optimization Author: Luca Albergante 1 Dipartimento di Matematica, Università degli Studi di Milano 4 Aprile 2011 L. Albergante (Univ. of Milan) PSO 4 Aprile 2011
DettagliAlgoritmi Genetici. Alessandro Bollini
Alessandro Bollini bollini@vision.unipv.it Dipartimento di Informatica e Sistemistica Università di Pavia Via Ferrata, 1 27100 Pavia Algoritmi Genetici Algoritmo genetico Algoritmo evolutivo. Modello evolutivo
DettagliIntroduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini
Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca
DettagliRicerca 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
DettagliCapitolo2. 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
DettagliAnalogia 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
DettagliIntroduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini
Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca
DettagliPROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
DettagliComputazione Naturale AA. 2011-2012
Computazione Naturale AA. 2011-2012 Prof. Mario Pavone CdL Magistrale in Informatica Dip. Matematica ed Informatica mpavone@dmi.unict.it http://www.dmi.unict.it/mpavone/ INDICE Obiettivi formativi Cos
DettagliCercare il minimo di una funzione: Particle swam optimization
di una funzione: Particle swam optimization Author: Luca Albergante 1 Dipartimento di Matematica, Università degli Studi di Milano 28 Marzo 2011 L. Albergante (Univ. of Milan) PSO 28 Marzo 2011 1 / 14
DettagliLEZIONE ICO
LEZIONE ICO 9-10-2009 Argomento. Rassegna dei metodi numerici utilizzabili per la soluzione di problemi di ottimizzazione statica. Metodi del gradiente e di Newton e loro derivati. Metodi di penalita e
Dettagli3.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
DettagliUniversita degli Studi di Siena
Universita degli Studi di Siena Facolta di Ingegneria Dispense del corso di Sistemi di Supporto alle Decisioni I La Programmazione Dinamica Chiara Mocenni Corso di Laurea triennale in Ingegneria Gestionale
DettagliIntelligenza collettiva Swarm intelligence
Intelligenza collettiva Swarm intelligence Andrea Roli andrea.roli@unibo.it DEIS Alma Mater Studiorum Università di Bologna Intelligenza collettiva p. 1 Swarm Intelligence Intelligenza collettiva p. 2
DettagliAgenti basati su Ricerca: Introduzione
Agenti basati su Ricerca: Introduzione Intelligenza Artificiale Prof. Alfonso E. Gerevini Dipartimento Ingegneria dell Informazione Università degli Studi di Brescia Un Agente Risolutore di Problemi Segue
DettagliAlgoritmi metaeuristici: I - introduzione
Algoritmi metaeuristici: I - introduzione Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev. 2.0 - Aprile 200 Tecniche Meta-euristiche Algoritmi Local Search che usano speciali tecniche
DettagliRappresentazione 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
DettagliTipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:
Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere
DettagliSimulated Annealing Ing. Valerio Lacagnina
Introduzione Il Simulated Annealing (SA) è divenuto negli ultimi anni una euristica ampiamente discussa. Autori come Johnson et al. forniscono eccellenti descrizioni del SA con analogie e paragoni rispetto
Dettagli2.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
DettagliIntelligenza Artificiale. Lezione 15. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 0
Intelligenza Artificiale Lezione 15 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 0 Sommario CSP RN 3.8, 4.3, 4.5 Giochi RN 5.1, 5.2, 5.3, 5.4 Algoritmi genetici RN 20.8 Intelligenza Artificiale
DettagliRicerca informata. Scelta dell euristica
Ricerca informata Scelta dell euristica SMA* (Simplified Memory-Bounded A*) SMA* espande sempre la foglia migliore finché la memoria è piena A questo punto deve cancellare un nodo in memoria SMA* cancella
DettagliProblemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come
Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo
DettagliCorso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
DettagliCapitolo 3: Ottimizzazione non vincolata parte III. E. Amaldi DEI, Politecnico di Milano
Capitolo 3: Ottimizzazione non vincolata parte III E. Amaldi DEI, Politecnico di Milano 3.4 Metodi di ricerca unidimensionale In genere si cerca una soluzione approssimata α k di min g(α) = f(x k +αd k
DettagliApplication of Harmony Search to Vehicle Routing. American Journal of Applied Sciences (2005)
Application of Harmony Search to Vehicle Routing Z.W. Geem, K.S. Lee and Y. Park American Journal of Applied Sciences (2005) Percorso Problema dello scuolabus Nuova tecnica di soft computing Applicazione
DettagliMETODI 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)
DettagliEsercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
DettagliTecniche 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
DettagliEspansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.
CERCARE SOLUZIONI Generare sequenze di azioni. Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. Strategia di ricerca: ad ogni passo scegliere
DettagliINFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
DettagliProblemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)
Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come
DettagliProcessi di Markov. Processi di Markov
Processi Stocastici Processi Stocastici Processi Stocastici Catene o Catene o Catene di M Processi Stocastici Processi Stocastici Processi Stocastici Catene o Catene o Catene di M Processi Stocastici Un
DettagliPolitecnico 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
DettagliOttimizzazione numerica
Funzioni univariate 28 Ottobre 2010 Funzioni univariate Outline 1 Funzioni univariate 2 optim Funzioni univariate I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliCorso di Perfezionamento
Programmazione Dinamica 1 1 Dipartimento di Matematica e Informatica Università di Camerino 15 febbraio 2009 Tecniche di Programmazione Tecniche di progettazione di algoritmi: 1 Divide et Impera 2 Programmazione
DettagliTeoria dei giochi. migliorare il proprio obiettivo il sistema ha raggiunto l equilibrio.
iii migliorare il proprio obiettivo il sistema ha raggiunto l equilibrio. Per introdurre la nozione di equilibrio di Nash consideriamo due giocatori. Siano f A (x, y) :AxB = R e f B (x, y) :AxB = R entrambe
Dettagli2.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
DettagliEvoluzione dei mezzi di calcolo rende possibile modello più accurato, da analizzare attraverso uno studio di simulazione
Probabilità e computer Modello probabilistico è spesso un compromesso tra esigenza di aderenza a fenomeno reale e trattabilità matematica modello troppo semplificato ma che può essere analizzato matematicamente
DettagliTECNICHE DI CALIBRAZIONE DEI MODELLI
TECICHE DI CALIBRAZIOE DEI MODELLI Calibrare un modello significa semplicemente sistemare un modello matematico o altro in maniera tale da ottenere un risultato simile a quello da noi desiderato. Qualsiasi
DettagliIl metodo Monte Carlo. Esempio di transizione al caos. Numeri (pseudo)casuali. λ 1. Analisi dati in Fisica Subnucleare
Analisi dati in Fisica Subnucleare Introduzione al metodo Monte Carlo (N.B. parte di queste trasparenze sono riciclate da un seminario di L. Lista) Il metodo Monte Carlo È una tecnica numerica che si basa
DettagliCorso di Modelli Matematici in Biologia Esame del 6 Luglio 2016
Corso di Modelli Matematici in Biologia Esame del 6 Luglio 206 Scrivere chiaramente in testa all elaborato: Nome, Cognome, numero di matricola. Risolvere tutti gli esercizi. Tempo a disposizione: DUE ORE.
DettagliLaboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.
DettagliIL TEOREMA DI BOEHM-JACOPINI
IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio
DettagliI Tipi di Dato Astratto
I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati
DettagliProblema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
DettagliAlgoritmi 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
DettagliMinimizzazione di Reti Logiche Combinatorie Multi-livello
Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione I circuiti logici combinatori sono molto spesso realizzati come reti multi-livello di porte logiche
DettagliIntelligenza Artificiale. Risoluzione dei Problemi
Intelligenza Artificiale Risoluzione dei Problemi Strategie non-informate: principali 1. breadth-first; 2. depth-first; 3. depth-first a profondità limitata; 4. ad approfondimento iterativo. Ricerca in
DettagliLunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27
Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza vale sse D l i = p i.. p.1/27 Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza
DettagliLa matematica di Google
1/13 La matematica di Google Federica Galluzzi 30 marzo 2016 Torino, Dipartimento di Matematica 2/13 Motori di ricerca navigano nel web e individuano tutte le pagine ad accesso pubblico indicizzano i dati
DettagliIntroduzione 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
DettagliCaratteristiche di un linguaggio ad alto livello
Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliNUMERI CASUALI E SIMULAZIONE
NUMERI CASUALI E SIMULAZIONE NUMERI CASUALI Usati in: statistica programmi di simulazione... Strumenti: - tabelle di numeri casuali - generatori hardware - generatori software DESCRIZIONE DEL PROBLEMA
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliPrincipi e Metodologie della Progettazione Meccanica
Principi e Metodologie della Progettazione Meccanica ing. F. Campana a.a. 06-07 Lezione 11: CAE e Ottimizzazione Strutturale Il ruolo dell ottimizzazione nell ambito della progettazione meccanica Durante
DettagliPuntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a
Puntatori in C Puntatori Variabili tradizionali indirizzo int a = 5; A00E... Proprietà della variabile a: nome: a A010 A012 5 tipo: int A014 valore: 5 indirizzo: A010 Finora abbiamo usato solo le prime
DettagliDiagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
DettagliAlgoritmi e Strutture Dati
Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli
DettagliLaboratorio di informatica Ingegneria meccanica
Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,
DettagliC espressioni condizionali
C espressioni condizionali Esiste un particolare operatore, detto operatore condizionale, che rappresenta un istruzione if else. estremamente compattata?: Supponiamo di voler inserire nella variabile intera
DettagliIntroduzione all uso delle funzioni in C++
Introduzione all uso delle funzioni in C++ Roberto Basili University of Rome Tor Vergata, Department of Computer Science, Systems and Production, 00133 Roma (Italy), basili@info.uniroma2.it January 24,
DettagliMatlab. Istruzioni condizionali, cicli for e cicli while.
Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il
DettagliLaboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE
Laboratorio di Architettura lezione 5 Massimo Marchiori W3C/MIT/UNIVE Da Alto a Basso livello: compilazione Come si passa da un linguaggio di alto livello a uno di basso livello? Cioe a dire, come lavora
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
Dettagli5.5 Metodi dei piani di taglio
5.5 Metodi dei piani di taglio Problema generale di Programmazione Lineare Intera (PLI) max{c t x : x X} dove X = {x Z n + : Ax b}, con A matrice m n e b vettore n 1 razionali Proposizione: conv(x) = {x
DettagliAlgoritmi 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:
DettagliIntelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.
Sommario Intelligenza Artificiale CSP RN 3.8, 4.3, 4.5 Giochi RN 5 Lezione 6bis Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 0 Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 1 Problemi
DettagliIntelligenza Artificiale. Introduzione al calcolo evolutivo
Intelligenza Artificiale Introduzione al calcolo evolutivo Marco Piastra Calcolo evolutivo - 1 Calcolo evolutivo ed IA Universe Borg Vogons Earth etc Biotop Society Stones & Seas etc Art Science Politics
DettagliLa "macchina" da calcolo
La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliStrutture di iterazione
Strutture di iterazione 1. Leggi i programmi qui sotto e disegna le tabelle di traccia nelle situazioni seguenti: a. Nel primo e nel secondo programma viene inserito da tastiera il valore 2; b. Nel primo
DettagliIntelligenza Artificiale
Intelligenza Artificiale 17 Marzo 2005 Nome e Cognome: Matricola: ESERCIZIO N 1 Ricerca Cieca 5 punti 1.A) Elencare in modo ordinato i nodi (dell'albero sotto) che vengono scelti per l'espansione dalle
DettagliIl potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliLezioni di Ricerca Operativa
Lezioni di Ricerca Operativa Massimo Paolucci Dipartimento di Informatica, Sistemistica e Telematica (DIST) Università di Genova paolucci@dist.unige.it Anno accademico 2000/2001 La Ricerca Operativa (Operation
DettagliOrdinamento per inserzione e per fusione
Ordinamento per inserzione e per fusione Alessio Orlandi 15 marzo 2010 Fusione: problema Problema Siano A e B due array di n A e n B interi rispettivamente. Si supponga che A e B siano ordinati in modo
DettagliLa codifica. dell informazione
00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111
DettagliMetodi Computazionali. Generazione di numeri pseudocasuali
Metodi Computazionali Generazione di numeri pseudocasuali A.A. 2009/2010 Pseudo random numbers I più comuni generatori di numeri random determinano il prossimo numero random di una serie come una funzione
DettagliIntroduzione alla ricerca operativa Problemi e modelli
Problemi e modelli TFA Anno Accademico 2012-13 La metodologia della matematica applicata Problema reale Denizione del modello matematico Algoritmo risolutivo Analisi dei risultati Il problema reale Reperimento
DettagliCapitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
1 Capitolo 6 - Array Array Array Gruppo di locazioni di memoria consecutive Stesso nome e tipo Per riferirsi a un elemento, specificare Nome dell array Posizione Formato: arrayname[ position number ] Primo
DettagliEfficienza: 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
DettagliAlgoritmi Genetici. e programmazione genetica
Algoritmi Genetici e programmazione genetica Algoritmi Genetici Algoritmi motivati dall analogia con l evoluzione biologica Lamarck: le specie trasmutano nel tempo Darwin e Wallace: variazioni consistenti
DettagliRETI DI TELECOMUNICAZIONE
RETI DI TELECOMUNICAZIONE CATENE DI MARKOV TEMPO CONTINUE Definizioni Sia dato un processo stocastico x(t) che può assumere valori discreti appartenenti ad un insieme se accade che il processo è una catena
DettagliAlgoritmi e Strutture di Dati (3 a Ed.) String matching. Alan Bertossi, Alberto Montresor
Algoritmi e Strutture di Dati (3 a Ed.) String matching Alan Bertossi, Alberto Montresor STRING MATCHING. Date una stringa P di m caratteri (pattern) e una stringa T di n caratteri, con m n, trovare un
DettagliLINGUAGGI DI PROGRAMMAZIONE!
LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni
Dettagli3.6 Metodi basati sui piani di taglio
3.6 Metodi basati sui piani di taglio Problema generale di Programmazione Lineare Intera (PLI) con A matrice m n e b vettore n 1 razionali min{ c t x : x X = {x Z n + : Ax b} } Sappiamo che esiste una
DettagliEsame di Sistemi ad Eventi Discreti
Esame di Sistemi ad Eventi Discreti - 16.12.2008 Esercizio 1 (esame completo/recupero prima parte) Un macchinario è programmato per task. Ciascun task è composto da subtask, che possono essere di tipo
Dettagli