Introduzione agli algoritmi genetici. Diego Nova

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione agli algoritmi genetici. Diego Nova"

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 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

Problemi, istanze, soluzioni

Problemi, 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

Dettagli

Cercare il percorso minimo Ant Colony Optimization

Cercare 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

Dettagli

Intelligenza collettiva Swarm intelligence

Intelligenza 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

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

UNIVERSITÀ 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

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Ricerca 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)

Dettagli

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

In 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ù

Dettagli

1 Esercizio - caso particolare di ottimalità

1 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

Dettagli

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

Introduzione 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

Dettagli

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia

Esercizi 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

Dettagli

Il problema del commesso viaggiatore

Il 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à

Dettagli

Il metodo dei Piani di Taglio (Cutting Planes Method)

Il 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

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

Corso di elettrotecnica Materiale didattico: i grafi

Corso 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

Dettagli

Altrimenti, 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.)

Altrimenti, 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

Dettagli

Algoritmo di Branch & Bound

Algoritmo 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

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

Algoritmi in C++ (seconda parte)

Algoritmi 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

Dettagli

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Page 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

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

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Nell 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

Dettagli

Algoritmi Genetici. e programmazione genetica

Algoritmi 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

Dettagli

Problema del cammino minimo

Problema 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

Dettagli

Grammatiche. 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 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

Dettagli

Possibile applicazione

Possibile 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

Dettagli

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO 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

Dettagli

Esecuzione concorrente di transazioni

Esecuzione 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

Dettagli

Argomenti 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 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

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

Grafi pesati Minimo albero ricoprente

Grafi 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

Dettagli

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Algoritmi 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

Dettagli

Macchine sequenziali. Automa a Stati Finiti (ASF)

Macchine 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

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

IL METODO DEL SIMPLESSO

IL 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

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi 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

Dettagli

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Indici 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

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione 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

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. 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

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come 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

Dettagli

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Analizzatore 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,

Dettagli

Diagrammi a blocchi 1

Diagrammi 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

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione 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

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio 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

Dettagli

Appendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19

Appendice 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

Dettagli

Diagrammi a blocchi 1

Diagrammi 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

Dettagli

Alberi Binari di Ricerca

Alberi 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,

Dettagli

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

Programmazione 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:

Dettagli

A lezione sono stati presentati i seguenti passi per risolvere un problema:

A 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

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti 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)

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

Modelli e Metodi per la Simulazione (MMS)

Modelli 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

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Esercizi 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

Dettagli

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Figura 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

Dettagli

Macchine di Turing: somma di due numeri

Macchine 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

Dettagli

Un tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:

Un 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

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

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Analogico 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

Dettagli

Scegliere il migliore Expert Advisor

Scegliere 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

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

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

11.4 Chiusura transitiva

11.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)

Dettagli

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 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

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array 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

Dettagli

Teorema di Thevenin generalizzato

Teorema 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

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione 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

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

UNIVERSITÀ 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à

Dettagli

Nozioni introduttive e notazioni

Nozioni 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

Dettagli

Problemi di Flusso: Il modello del Trasporto

Problemi 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

Dettagli

2.6 Calcolo degli equilibri di Nash

2.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

Dettagli

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Sintesi 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

Dettagli

Metodo di Quine- McCluskey

Metodo 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

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti 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

Dettagli

LA PROGRAMMAZIONE MATEMATICA (p.m.)

LA 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

Dettagli

Introduzione al Calcolo Scientifico

Introduzione 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

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti 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)

Dettagli

L ALGORITMO DEL SIMPLESSO REVISIONATO

L 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

Dettagli

Grafi (non orientati e connessi): minimo albero ricoprente

Grafi (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 è

Dettagli

Note per la Lezione 4 Ugo Vaccaro

Note 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

Dettagli

Equazioni, funzioni e algoritmi: il metodo delle secanti

Equazioni, 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,

Dettagli

Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati

Agenti 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 è

Dettagli

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

Dettagli

Grandezze fisiche e loro misura

Grandezze 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.

Dettagli

Analisi interazione domanda/offerta: modelli di assegnazione

Analisi 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

Dettagli

4.5 Metodo del simplesso

4.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

Dettagli

Esercizi proposti 10

Esercizi 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 =

Dettagli

Tecniche di compressione senza perdita

Tecniche 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

Dettagli

Albero di Riscorsione

Albero 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

Dettagli

Teoria dell informazione

Teoria 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

Dettagli

Note sull implementazione in virgola fissa di filtri numerici

Note 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

Dettagli

PROBABILITA :Popolazioni biologiche

PROBABILITA :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

Dettagli

Week #9 Assessment. Practice makes perfect... November 23, 2016

Week #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

Dettagli

PORTE 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. 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

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

Permutazioni. 1 Introduzione

Permutazioni. 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,

Dettagli

Intelligenza Artificiale Ing. Tiziano Papini

Intelligenza 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 -

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI 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

Dettagli

Sistemi 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 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)

Dettagli

Grandezze fisiche e loro misura

Grandezze 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

Dettagli

Tipi 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: 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

Dettagli

Ordinamenti per confronto: albero di decisione

Ordinamenti 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