Introduzione agli algoritmi genetici. Diego Nova
|
|
- Serena Serra
- 7 anni fa
- Visualizzazioni
Transcript
1 Introduzione agli algoritmi genetici Diego Nova
2 Introduzione Gli Algoritmi Genetici (GA) sono procedure complesse, adattative, finalizzate alla risoluzione di problemi di ricerca e ottimizzazione e basate concettualmente sui principi che regolano l'evoluzione naturale delle specie. L'idea che sta alla base degli AG è quindi quella di selezionare le soluzioni migliori e di ricombinarle in qualche modo fra loro in maniera tale che esse evolvano verso un punto di ottimo. Algoritmi genetici 2
3 Nomenclatura Nel linguaggio degli AG la funzione da massimizzare prende il nome di fitness (F). Si supponga che la funzione di fitness dipenda da n variabili: F = f (x 1, x 2,, x n ). Un set di n valori x 1, x 2,, x n appartenenti ad un certo intervallo viene detta individuo (o soluzione). Un insieme di individui forma una popolazione Una soluzione può essere codificata biunivocamente in codice binario (l idea fu introdotta originariamente da J.Holland, il padre degli AG). La specifica sequenza (stringa) di 0 e 1 che costituiscono un individuo (soluzione) è detta cromosoma. Algoritmi genetici 3
4 Nomenclatura (continua) Considerando che si è in presenza di una evoluzione temporale della popolazione, si parla generazione per indicare la popolazione in un dato istante di tempo. Algoritmi genetici 4
5 Principio di funzionamento In natura gli individui si riproducono mescolando in questo modo i propri patrimoni genetici, cioè i loro cromosomi: i nuovi individui generati avranno pertanto un patrimonio genetico derivato in parte dal padre e in parte dalla madre. La selezione naturale (cioè il riutilizzo di soluzioni buone) fa sì che riescano a sopravvivere e quindi a riprodursi solo gli individui più forti, "più adatti", cioè quelli con la fitness più elevata (più vicini all ottimo); la fitness media della popolazione tenderà quindi ad aumentare con le generazioni, portando così la specie ad evolversi nel tempo. Algoritmi genetici 5
6 Struttura di un GA 1. Definizione della generazione iniziale. Definire (anche a caso) un primo insieme di possibili soluzioni al problema in esame. 2. Valutazione di ogni soluzione e selezione selle migliori. Valutare ogni soluzione, associando a ciascuna un indicatore di qualità (o fitness) in modo da poterle ordinare. 3. Definizione di una nuova generazione. Definire un nuovo gruppo di soluzioni modificando opportunamente le soluzioni con qualità elevata, in modo da favorire lo sviluppo a scapito di quelle peggiori. Algoritmi genetici 6
7 Struttura di un GA (continua) 4. Conclusione dell elaborazione. Se il numero di iterazioni stabilite è stato raggiunto o la qualità della migliore soluzione disponibile è accettabile si può terminare l elaborazione, altrimenti si ritorna al passo 2 per definire un nuovo gruppo di soluzioni. Algoritmi genetici 7
8 Selezione La selezione di un individuo dipende dal suo valore di fitness (cioè quanto l individuo è buono a risolvere il problema): un valore più alto di fitness corrisponde ad una maggiore possibilità di essere scelto come genitore (parent) per creare la nuova generazione. Uno dei criteri più utilizzati è quello di Holland che attribuisce una probabilità di scelta proporzionale al fitness. Grazie al meccanismo della selezione, solo gli individui migliori hanno la possibilità di riprodursi e quindi di trasmettere il loro genoma alle generazioni successive. Algoritmi genetici 8
9 Crossover e Mutazione Per la creazione di nuovi individui ad ogni generazione si utilizzano due operazioni ispirate dall evoluzionismo biologico: il crossover e la mutazione. Una volta individuati una coppia di genitori con il meccanismo della selezione, i loro genomi possono andare incontro a ciascuna delle due operazioni con probabilità rispettivamente P cross (probabilità di crossover per coppia di individui, detta crossover rate) e P mut (probabilità di mutazione per gene, detta mutation rate). Algoritmi genetici 9
10 One Point Crossover È la tecnica più semplice, date due stringhe viene individuato un punto che separa ciascuna di esse in due parti, in seguito si ricombinano come mostrato in figura. La probabilità che si verifichi il cross over è in genere abbastanza alta (in caso contrario è possibile avere figli che sono uguali ai genitori). Punto di crossover Genitori Figli Algoritmi genetici 10
11 Standard Corssover Simile al precedente ma si selezionano due punti di taglio suddividendo la stringa in tre sottostringhe Algoritmi genetici 11
12 Order Corssover Come lo standard crossover lavora su coppie di cromosomi. I due punti di taglio sono scelti a caso. Ciascum figlio è costruito prendendo la crossing section (la parte centrale del taglio) di un genitore e riempiendo gli spazi rimanendi con i simboli mancanti presi nell ordine in cui compaiono nell altro genitore. CA BDHF EG DH CABE GF HF CABE GD AE BDHF GC Algoritmi genetici 12
13 Order Corssover (continua) Questa interpretazione del cromosoma ben si adatta a problemi di ordinamento quali il TSP dove, è possibile leggere il cromosoma cominciando da un punto qualsiasi, ma soprattutto, questo tipo di crossover mantenendo l ordinamento garantisce l ammissibilità delle nuove soluzioni. Algoritmi genetici 13
14 Mutazione Data la probabilità di mutazione, per ciascuna cifra di ogni individuo si estrae un numero casuale q: se q P mut, la cifra binaria viene scambiata (1 diventa 0 e 0 diventa 1); Algoritmi genetici 14
15 Il problema del commesso viaggiatore (TSP) Vediamo ora l applicazione di un algoritmo genetico al noto problema di ottimizzazione combinatoria. Siano date n città (nodi del grafo) collegate da strade (archi del grafo). Il valore di un arco è la lunghezza della strada (o costo di viaggio) che quell arco rappresenta. Un commesso viaggiatore si propone di visitare una ed una sola volta ciascuna città (partendo da una qualsiasi e ritornandovi), in modo da avere un percorso totale di lunghezza minima (o costo minimo). Algoritmi genetici 15
16 La matrice dei costi è la seguente: La scelta della rappresentazione degli individui costituisce un problema non banale. Per questo problema si può pensare di rappresentare un individuo con una permutazione delle sei città. Es. p 4 =(F,E,A,B,D,C) Mentre la funzione di fitness è ovvia: Dato un individuo il valore della fitness è inversamente proporzionale alla lunghezza del cammino descritto dall individuo. A B C D E F A B Algoritmi genetici C D E F
17 La popolazione iniziale (o prima generazione) P(t=0) è costituita dai seguenti individui (soluzioni ammissibili): p 1 =(A, B, C, D, E, F) p 2 =(B, C, A, F, D, E) p 3 =(C, B, F, A, D, E) p 4 =(F, E, A, B, D, C) p 5 =(B, F, E, A, C, D) p 6 =(A, C, F, B, D, E) p 7 =(A, B, C, D, F, E) Cioè P(0)=(p 1, p 2, p 3, p 4, p 5, p 6, p 7 ) a cui sono associati i rispettivi costi di percorso: c 1 =26 c 2 =24 c 3 =29 c 4 =31 c 5 =35 c 6 =43 c 7 =20 Si può osservare che p 1 e p 7 sono gli individui con la fitness maggiore. Algoritmi genetici 17
18 Definiamo l algoritmo che risolve il problema: 1. individuo GA(individuo popolazione[], float Pmut) { 2. individuo figlio[2], padre, madre; 3. while(condizione_di_terminazione==false) { 4. SelezionaGenitori(popolazione, padre, madre); 5. OrderCrossover(padre, madre, figlio); 6. if( random()<=pmut ) { 7. Muta(figlio); 8. } 9. Aggiorna(popolazione, figlio); 10. // modifica (se necessario la condizione di terminazione 11. } 12. return Best(popolazione); 13.} Algoritmi genetici 18
19 1. individuo GA(individuo popolazione[], float Pmut) { 2. individuo figlio[2], padre, madre; 3. while(condizione_di_terminazione==false) { 11. } 12. return Best(popolazione); 13.} La funzione riceve come parametri la popolazione iniziale e la probabilità di mutazione e ritorna il miglior individuo della popolazione finale (Best(popolazione)) nel momento in cui la condizione di terminazione è stata raggiunta (come già è stato detto questa può dipendere dal numero di iterazioni, del tempo trascorso ). Algoritmi genetici 19
20 SelezionaGenitori(popolazione, padre, madre); È una funzione che con qualche regola (anche casuale o euristica) seleziona due individui (padre e madre) adatti alla riproduzione dalla popolazione. Nel nostro la regola sarà la scelta dei due individui con la fitness più alta. OrderCrossover(padre, madre, figlio); Esegue l operatore genetico di Order Crossover per creare i due figli (figlio[0] e figlio[1]). Algoritmi genetici 20
21 if( random()<=pmut ) { Muta(figlio); } In una percentuale proporzionale alla probabilità di mutazione di un figlio applica l operatore genetico di mutazione agli individui appena generati. Anche in questo caso la mutazione può essere definita in svariati modi, per esempio: 1. Togliere un elemento a caso e reinserirlo in un altra posizione (C, A, F, B, E, D) (C, F, B, E, A, D) 2. Togliere a caso una sottostringa e reinserirla in un altra posizione (C, A, F, B, E, D) (C, E, D, A, F, B) Algoritmi genetici 21
22 3. Togliere a caso una sottostringa, invertirla e reinserirla nella stessa posizione (C, A, F, B, E, D) (C, B, F, A, E, D) 4. Aggiorna(popolazione, figlio); Questa funzione aggiorna la popolazione attuale trasformandola nella generazione successiva P(t) P(t+1). L aggiornamento può seguire le più svariate regole, nel nostro esempio specifico si sceglierà di eliminare ad ogni passo i due individui meno adatti (cioè quelli con la fitness più bassa). In realtà questa è una semplificazione in quanto, generalmente, l intera popolazione si riproduce (secondo la probabilità P cross ), aggiornandosi interamente ad ogni generazione. Algoritmi genetici 22
23 Ora che si ha la completa conoscenza del problema si può provare a far girare l algoritmo per vederne il comportamento genetico. Algoritmi genetici 23
24 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Iterazione (generazione) 1: Si entra nel ciclo 1. individuo GA(individuo popolazione[], float Pmut) { 2. individuo figlio[2], padre, madre; 3. while(condizione_di_terminazione==false) { 4. Algoritmi genetici 24
25 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Iterazione (generazione) 1: Si selezionano i genitori while(condizione_di_terminazione==false) { 4. SelezionaGenitori(popolazione, padre, madre); 5. Algoritmi genetici 25
26 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Iterazione (generazione) 1: Si generano i figli SelezionaGenitori(popolazione, padre, madre); 5. OrderCrossover(padre, madre, figlio); 6. Algoritmi genetici 26
27 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 OrderCrossover( ) { padre = (B C A F D E), madre =(A B C D F E) } figlio[0] = (A B C F D E), figlio[1]=(b C A D F E) Algoritmi genetici 27
28 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Iterazione (generazione) 1: Supponiamo per semplicità che non ci siano mutazioni (non entriamo nell if) if( random()<=pmut ) { 7. Muta(figlio); 8. Algoritmi genetici 28
29 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Iterazione (generazione) 1: Si aggiorna la popolazione Aggiorna(popolazione, figlio); 10. Algoritmi genetici 29
30 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Aggiorna( ) { Si calcola la funzione di costo per i figli figlio[0]: (A B C F D E) =24 figlio[1]: (B C A D F E) =20 } Algoritmi genetici 30
31 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(B, F, E, A, C, D) c 5 =35 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(A, C, F, B, D, E) c 6 =43 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Aggiorna( ) { Questo è un caso fortunato in cui entrambi i figli entrano a far parte della popolazione. Gli individui da eliminare pertanto risultano essere p 6 avendo un costo di 43 e p 5 avendo un costo di 35. } Algoritmi genetici 31
32 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(A, B, C, F, D, E) c 5 =24 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(B, C, A, D, F, E) c 6 =20 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Aggiorna( ) { A cui sostituiamo figlio[0] e figlio[1] } Algoritmi genetici 32
33 p 1 =(A, B, C, D, E, F) c 1 =26 p 5 =(A, B, C, F, D, E) c 5 =24 p 2 =(B, C, A, F, D, E) c 2 =24 p 6 =(B, C, A, D, F, E) c 6 =20 p 3 =(C, B, F, A, D, E) c 3 =29 p 7 =(A, B, C, D, F, E) c 7 =20 p 4 =(F, E, A, B, D, C) c 4 =31 Iterazione (generazione) 2: Siamo alla seconda generazione e già si può notare che gli individui si sono adattati ed iniziano ad avvicinarsi alla soluzione ottima del problema while(condizione_di_terminazione==false) { 4. SelezionaGenitori(popolazione, padre, madre); 5. Algoritmi genetici 33
34 Si reitera il procedimento finchè la condizione di terminazione non è verificata nel qual caso si ritorna l individuo migliore della generazione a cui si è giunti, il quale è anche la miglior soluzione trovata fin ora. Algoritmi genetici 34
35 Conclusioni Gli agloritmi genetici possiedono i seguenti pregi: Forniscono sempre una soluzione Sono facili da realizzare Possono essere applicati a diverse problematiche Permettono di scegliere un trade-off tra tempo di calcolo e precisione Ma presentano anche degli svantaggi come per esempio: Non garantiscono che la soluzione offerta dopo un certo numero di iterazioni sia quella ottima La numerosità della generazione, la frequenza di applicazione degli operatori genetici, e tutti gli altri paramenti possono essere determinati solo attraverso prove, valutando le performance e la qualità dei risultati offerti. Algoritmi genetici 35
36 Per saperne di più LIBRI J.H.Holland. Algoritmi genetici. Le Scienze, n.289, 1992 L.Davis. Handbook of Genetic Algorithms. Van Nostrand Reinhold, 1991 J. H. Holland. Adaptation in Natural and Artificial Systems. The University of Michigan Press, 1975 M. Mitchell. An Introduction to Genetic Algorithms. MIT Press, Algoritmi genetici 36
37 Per saperne di più SITI INTERNET Contieni riferimenti matematici e filosofici sugli AG e l'intelligenza Artificiale in genere Contiene una spiegazione teorica sugli AG in generale, e una loro applicazione al campo dell'analisi finanziaria Una raccolta di lucidi sull'apprendimento delle macchine tramite AG Contiene diverse applet in java con esempi di funzioni in 2D e 3D e TSP risolte con gli AG Sito di un ricercatore italiano che contiene numerosi link Contiene una ricca raccolta di codici sorgenti in C, C++, fortran,vb ecc. di programmi che implementano AG, nonchè una lista di link che sugli AG,contiene interessanti riferimenti sulla vita artificiale in genere Algoritmi genetici 37
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
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
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
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
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N
DettagliRicerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015
1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)
DettagliIn molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.
Definizione Oggetto del calcolo combinatorio è quello di determinare il numero dei modi mediante i quali possono essere associati, secondo prefissate regole, gli elementi di uno stesso insieme o di più
Dettagli1 Esercizio - caso particolare di ottimalità
Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 5 giugno 2006 Argomento: Compressione aritmetica e Tecniche di compressione basate su dizionario Scribes: Andrea Baldan, Michele Ruvoletto
DettagliIntroduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard
Introduzione al Metodo del Simplesso Giacomo Zambelli 1 Soluzioni di base e problemi in forma standard Consideriamo il seguente problema di programmazione lineare (PL), relativo all esempio di produzione
DettagliEsercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia
sercizi per il corso di Logistica I a.a. - aniela avaretto ipartimento di Matematica pplicata Università a oscari di Venezia sercizio Individuare un albero di supporto di lunghezza minima (SST) sul seguente
DettagliIl problema del commesso viaggiatore
Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università
DettagliIl metodo dei Piani di Taglio (Cutting Planes Method)
Il metodo dei Piani di Taglio (Cutting Planes Method) E un metodo di soluzione dei problemi (IP) di tipo generale. L idea di base: Se la soluzione di (RL) non è intera allora la soluzione ottima intera
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
DettagliCorso di elettrotecnica Materiale didattico: i grafi
Corso di elettrotecnica Materiale didattico: i grafi A. Laudani 12 ottobre 2005 I grafi costituiscono uno strumento matematico che permette di descrivere e schematizzare una grande varietà di problemi
DettagliAltrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
DettagliAlgoritmo di Branch & Bound
Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Algoritmo di Branch & Bound Docente: Renato Bruni bruni@dis.uniroma.it Corso di: Ottimizzazione Combinatoria
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
DettagliAlgoritmi in C++ (seconda parte)
Algoritmi in C++ (seconda parte) Introduzione Obiettivo: imparare a risolvere problemi analitici con semplici programmi in C++. Nella prima parte abbiamo imparato: generazione di sequenze di numeri casuali
DettagliPage 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo
Evoluzione In ogni popolazione si verificano delle mutazioni. Intelligenza Artificiale In un ambiente che varia, le mutazioni possono generare individui che meglio si adattano alle nuove condizioni. Questi
DettagliParte 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
DettagliNell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:
Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi
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
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
DettagliGrammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione
Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio
DettagliPossibile applicazione
p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile
DettagliCAPITOLO V. DATABASE: Il modello relazionale
CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono
DettagliEsecuzione concorrente di transazioni
Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Osservazione Per gestire con prestazione accettabili il carico di lavoro tipico
DettagliArgomenti trattati. Informazione Codifica Tipo di un dato Rappresentazione dei numeri Rappresentazione dei caratteri e di altre informazioni
Argomenti trattati Informazione Codifica Tipo di un dato Rappresentazione dei numeri Rappresentazione dei caratteri e di altre informazioni Informazione mi dai il numero di Andrea? 0817651831 Il numero
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
DettagliGrafi pesati Minimo albero ricoprente
Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene
DettagliAlgoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.
E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare
DettagliMacchine sequenziali. Automa a Stati Finiti (ASF)
Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso
DettagliTecniche 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 )
DettagliIL METODO DEL SIMPLESSO
IL METODO DEL SIMPLESSO Il metodo del Simplesso 1 si applica nella risoluzione di un problema di Programmazione Lineare 2 (funzione e vincoli lineari) quando le variabili di azione o iniziali sono almeno
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
DettagliIndici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2
INDICI MULTILIVELLO DINAMICI Indici multilivello dinamici (B-alberi e B + -alberi) Gli indici multilivello dinamici (B-alberi e B + -alberi) sono casi speciali di strutture ad albero. Un albero è formato
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
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
DettagliCome ragiona il computer. Problemi e algoritmi
Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema
DettagliAnalizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.
Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,
DettagliDiagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso
DettagliDescrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliAppendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19
14 18-12-07 19:04 Pagina 411 Le decisioni di breve termine fra alternative diverse 411 i minori costi differenziali, almeno nella misura in cui la dimensione di costo è la più importante. Sebbene i costi
DettagliDiagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
DettagliProgrammazione Lineare Intera. Programmazione Lineare Intera p. 1/4
Programmazione Lineare Intera Programmazione Lineare Intera p. 1/4 Programmazione Lineare Intera Problema di PLI in forma standard: max cx Ax = b x 0, x I n I insieme degli interi. Regione ammissibile:
DettagliA lezione sono stati presentati i seguenti passi per risolvere un problema:
Calcolo delle radici di un polinomio Problema: Dati i coefficienti a,b,c di un polinomio di 2 grado della forma: ax^2 + bx + c = 0, calcolare le radici. A lezione sono stati presentati i seguenti passi
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)
Dettagli2.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,
DettagliModelli e Metodi per la Simulazione (MMS)
Modelli e Metodi per la Simulazione (MMS) adacher@dia.uniroma3.it Programma La simulazione ad eventi discreti, è una metodologia fondamentale per la valutazione delle prestazioni di sistemi complessi (di
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
DettagliFigura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.
ESERCIZIO 1 Sia dato il grafo orientato in Figura 1. Si consideri il problema di flusso a 1 2 4 Figura 1: costo minimo su tale grafo con b 1 = 4 b 2 = 2 b = b 4 = e c 12 = 2 c 1 = 4 c 14 = 1 c 2 = 1 c
DettagliMacchine di Turing: somma di due numeri
Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore
DettagliUn tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:
Pag 29 4) La ricorsione 4.1 Funzioni matematiche ricorsive Partiamo da un concetto ben noto, quello delle funzioni matematiche ricorsive. Una funzione matematica è detta ricorsiva quando la sua definizione
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:
DettagliAnalogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale
Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer
DettagliScegliere il migliore Expert Advisor
Scegliere il migliore Expert Advisor Analizziamo le principali Linee Guida per identificare i migliori Expert Advisors (Automatic Trading Systems) Gli Expert Advisors (EA) devono innanzitutto essere automatici
DettagliAlgoritmo 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
DettagliQUICKSORT. 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
Dettagli11.4 Chiusura transitiva
6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)
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
DettagliArray e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
DettagliTeorema di Thevenin generalizzato
Teorema di Thevenin generalizzato Si considerino due reti elettriche lineari, A e B, aventi rispettivamente N A e N B nodi interni. Esse si interfacciano attraverso n (n 3) fili di collegamento, in cui
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
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014
A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità
DettagliNozioni introduttive e notazioni
Nozioni introduttive e notazioni 1.1 Insiemi La teoria degli insiemi è alla base di tutta la matematica, in quanto ne fornisce il linguaggio base e le notazioni. Definiamo un insieme come una collezione
DettagliProblemi di Flusso: Il modello del Trasporto
Problemi di Flusso: Il modello del rasporto Andrea Scozzari a.a. 2014-2015 April 27, 2015 Andrea Scozzari (a.a. 2014-2015) Problemi di Flusso: Il modello del rasporto April 27, 2015 1 / 25 Problemi su
Dettagli2.6 Calcolo degli equilibri di Nash
92 2 Giochi non Cooperativi Per queste estensioni di giochi non finiti si possono provare risultati analoghi a quelli visti per i giochi finiti. Rimandiamo alla bibliografia per uno studio più approfondito
DettagliSintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone
Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone Il problema dell assegnamento degli stati versione del 9/1/03 Sintesi: Assegnamento degli stati La riduzione del numero
DettagliMetodo di Quine- McCluskey
Metodo di Quine- McCluskey Maurizio Palesi Maurizio Palesi Definizioni Date due funzioni f(x,x 2,,x n ) e g(x,x 2,,x n ) si dice che f copre g (oppure g implica f) e si scrive f g se f(x,x 2,,x n )= quando
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi
DettagliLA PROGRAMMAZIONE MATEMATICA (p.m.)
LA PROGRAMMAZIONE MATEMATICA (p.m.) Un problema di programmazione matematica è un problema di ottimizzazione riconducibile alla seguente espressione generale: ricercare i valori delle variabili x 1, x
DettagliIntroduzione al Calcolo Scientifico
Introduzione al Calcolo Scientifico Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico 1 / 14 Calcolo Scientifico Insieme degli
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)
DettagliL ALGORITMO DEL SIMPLESSO REVISIONATO
L ALGORITMO DEL SIMPLESSO REVISIONATO L'algoritmo del simplesso revisionato costituisce una diversa implementazione dell algoritmo standard tesa a ridurre, sotto certe condizioni, il tempo di calcolo e
DettagliGrafi (non orientati e connessi): minimo albero ricoprente
Grafi (non orientati e connessi): minimo albero ricoprente Una breve presentazione Definizioni Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è
DettagliNote per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
DettagliEquazioni, funzioni e algoritmi: il metodo delle secanti
Equazioni, funzioni e algoritmi: il metodo delle secanti Christian Ferrari 1 Introduzione La risoluzione di equazioni in R ci ha mostrato che solo per le equazioni polinomiali di primo e secondo grado,
DettagliAgenti che risolvono problemi attraverso la ricerca in uno spazio di stati
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_1 V1.4 Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Il contenuto del documento è
DettagliLa codifica. dell informazione
00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111
DettagliGrandezze fisiche e loro misura
Grandezze fisiche e loro misura Cos è la fisica? e di che cosa si occupa? - Scienza sperimentale che studia i fenomeni naturali suscettibili di sperimentazione e caratterizzati da entità o grandezze misurabili.
DettagliAnalisi interazione domanda/offerta: modelli di assegnazione
Corso di Laurea Ingegneria Civile - AA 1112 Corso di: Fondamenti di Trasporti Lezione: Analisi interazione domanda/offerta: modelli di assegnazione Giuseppe Inturri Università di Catania Dipartimento di
Dettagli4.5 Metodo del simplesso
4.5 Metodo del simplesso min z = c T x s.v. Ax = b x PL in forma standard Esamina una sequenza di soluzioni di base ammissibili con valori non crescenti della funzione obiettivo fino a raggiungerne una
DettagliEsercizi proposti 10
Esercizi proposti 10 In questo gruppo di esercizi assumiamo, dove non sia specificato diversamente, di rappresentare i grafi mediante liste di archi, con il tipo di dati così dichiarato: type a graph =
DettagliTecniche di compressione senza perdita
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Tecniche di compressione senza perdita 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliAlbero di Riscorsione
Albero di Riscorsione Albero di ricorsione Un albero di ricorsione è un modo di visualizzare cosa accade in un algoritmo divide et impera L etichetta della radice rappresenta il costo non ricorsivo della
DettagliTeoria dell informazione
Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Teoria dell informazione A.A. 2008-09 Alberto Perotti DELEN-DAUIN Modello di sistema di comunicazione Il modello di
DettagliNote sull implementazione in virgola fissa di filtri numerici
Note sull implementazione in virgola fissa di filtri numerici 4 settembre 2006 1 Introduction Nonostante al giorno d oggi i processori con aritmetica in virgola mobili siano molto comuni, esistono contesti
DettagliPROBABILITA :Popolazioni biologiche
PROBABILITA :Popolazioni biologiche In due popolazioni biologiche A, B una certa caratteristica F è presente con probabilità rispettivamente 0.7, 0.4. La frequenza della popolazione A è 0.2, mentre quella
DettagliWeek #9 Assessment. Practice makes perfect... November 23, 2016
Week #9 Assessment Practice makes perfect... November 23, 2016 Esercizio 1 Un azienda di trasporto deve caricare m camion {1,..., m} in modo da servire giornalmente un dato insieme di clienti. Nei camion
DettagliPORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1.
PORTE LOGICHE Premessa Le principali parti elettroniche dei computer sono costituite da circuiti digitali che, come è noto, elaborano segnali logici basati sullo 0 e sull 1. I mattoni fondamentali dei
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
DettagliPermutazioni. 1 Introduzione
Permutazioni 1 Introduzione Una permutazione su un insieme di n elementi (di solito {1, 2,...,n}) è una funzione biiettiva dall insieme in sé. In parole povere, è una regola che a ogni elemento dell insieme,
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 -
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
DettagliSistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara
Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)
DettagliGrandezze fisiche e loro misura
Grandezze fisiche e loro misura Cos è la fisica? e di che cosa si occupa? - Scienza sperimentale che studia i fenomeni naturali suscettibili di sperimentazione e che implicano grandezze misurabili. - Sono
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
DettagliOrdinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
Dettagli