COMPUTAZIONE NATURALE
Anno accademico 2021/2022 - 1° anno - Curriculum Data ScienceCrediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre: 2°
Obiettivi formativi
Il corso introduce alla progettazione e implementazione di algoritmi che prendono ispirazione dalla natura e dalla biologia, nonché alle caratteristiche chiavi necessari all'ottenimento di algoritmi di successo. Verranno altresì analizzate varie applicazioni di diversi algoritmi bio-inspired in ambito dell'ottimizzazione, della sicurezza, della teoria delle decisioni e della teoria dei giochi.
- Conoscenza e capacità di comprensione (knowledge and understanding): l'obiettivo del corso è quello di far acquisire conoscenze base e avanzate che consentano allo studente di comprendere i meccanismi chiave, teorici e applicativi, che stanno alla base degli algoritmi evolutivi necessari all’ottenimento di algoritmi di successo
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze necessarie per progettare un algoritmo bio-ispirato, definendo in modo opportuno la rappresentazione delle soluzioni e i necessari operatori evolutivi, nonché la necessaria conoscenza per l’utilizzo di un idoneo protocollo sperimentale atto a valutare correttamente l’efficienza e la robustezza dell’algoritmo sviluppato.
- Autonomia di giudizio (making judgements): Attraverso esempi applicativi lo studente sarà in grado di elaborare autonomamente proprie soluzioni, al fine di sviluppare un algoritmo in grado di risolvere, anche approssimativamente, un qualunque problema del mondo reale.
- Abilità comunicative (communication skills): lo studente acquisirà ulteriori abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale della (i) complessità computazionale, (ii) teoria dei grafi, (iii) sistemi complessi, (iv) ottimizzazione, e (v) metaeuristiche.
- Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche e pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante l'attività progettuale tipica di un Laureato Magistrale.
Modalità di svolgimento dell'insegnamento
Le lezioni si svolgeranno in modalità frontale. Alcune specifiche lezioni potranno però essere svolte in laboratorio.
Il corso può inoltre prevedere seminari tenuti da esperti esterni su argomenti correlati e d'attualità.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Il corso presuppone una buona conoscenza di strumenti matematici (discreti e continui), algoritmi e strutture dati, nonchè ottima conoscenza dei linguaggi di programmazione C, C++, e/o Java.
Frequenza lezioni
La frequenza è fortemente consigliata.
Contenuti del corso
Il corso si suddivide in due parti fondamentali:
PRIMA PARTE:
- Introduzione alle Teoria della Computabilità: problemi NP-Completi
- Introduzione ai concetti di base
- Introduzione a concetti di Machine Learning e Computational Learning Theory
- Landscape, Search Space e Modelli per l’Ottimizzazione
- Concetti principali e comuni della Computazione Naturale
- No Free Lunch Theorem
SECONDA PARTE:
- Algoritmi Bio-Inspirati*: Algoritmi Genetici; Programmazione Genetica; Sistemi Immunitari Artificiali, Swarm Intelligence (PSO, ACO, ABC) e Differential Evolution
- Algoritmi Bio-Inspirati in Ottimizzazione Multi-Obiettivo e Decision Making
- Algortimi Bio-Inspirati Ibridi
- Algoritmi Bio-Inspirati Paralleli e Distribuiti
- Applicazioni di Algoritmi Bio-Inspirati in: Network Sciences; Games; Internet of Things; Computer Security; Robotics; Art and Design.
Testi di riferimento
- E.G. Talbi, "Metaheuristics: From Design to Implementation", Wiley, 2009
- C. Blum and G.R. Raidl, "Hybrid Metaheuristics: Powerful Tools for Optimization", Artificial Intelligence: Foundations, Theory, and Algorithms, 2016
- Materiale fornito dal docente.
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione alle Teoria della Computabilità: problemi NP-Completi | T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein. Introduction to algorithms (Third Edition), The MIT Press, Cambridge - Massachusetts, 2009 (chapter 34) |
2 | Introduzione ai concetti di base | Talbi, ''Metaheuristics: From Design to Implementation'', Wiley, 2009 - Blum & Raidl, ''Hybrid Metaheuristics: Powerful Tools for Optimization'', A.I.: Foundations, Theory, & Algorithms, 2016 |
3 | Introduzione a concetti di Machine Learning e Computational Learning Theory | E. Alpaydin, “Introduction to Machine Learning”, MIT Press, 2014 - Kearns, Vazirani, "An Introduction to Computational Learning Theory", MIT Press 1994 |
4 | Landscape e Search Space: topologie, significato e importanza | Talbi, ''Metaheuristics: From Design to Implementation'', Wiley, 2009 - Blum & Raidl, ''Hybrid Metaheuristics: Powerful Tools for Optimization'', A.I.: Foundations, Theory, & Algorithms, 2016 + materiale fornito dal docente |
5 | Modelli per l’ottimizzazione: (i) Single-Objective Optimization; (ii) Constrained Optimization; (iii) Multi-Objective Optimization; (iv) Optimization under Uncertainty; (v) Dynamic Optimization | Talbi, ''Metaheuristics: From Design to Implementation'', Wiley, 2009 - Blum & Raidl, ''Hybrid Metaheuristics: Powerful Tools for Optimization'', A.I.: Foundations, Theory, & Algorithms, 2016 |
6 | No Free Lunch Theorem | Materiale fornito dal docente |
7 | Algoritmi Bio-Inspirati: (i) Concetti comuni; (a) Selection methods; (b) Reproduction; (c) Replacement strategies; (ii) GAs; (ii) GPs (iii) AIS; (iv) Swarm Intelligence: PSO, ACO, ABC; and (v) DE | Talbi, ''Metaheuristics: From Design to Implementation'', Wiley, 2009 - Blum & Raidl, ''Hybrid Metaheuristics: Powerful Tools for Optimization'', A.I.: Foundations, Theory, & Algorithms, 2016 - materiale fornito dal docente |
8 | Algoritmi Bio-Inspirati Ibridi | C. Blum and G.R. Raidl, ''Hybrid Metaheuristics: Powerful Tools for Optimization'', Artificial Intelligence: Foundations, Theory, and Algorithms, 2016 |
9 | Algoritmi Bio-Inspirati Paralleli e Distribuiti | E.G. Talbi, ''Metaheuristics: From Design to Implementation'', Wiley, 2009 |
10 | Esempi di applicazioni degli Algoritmi Bio-Inspirati in: Network Sciences; Games; Internet of Things; Computer Security; Robotics; Art and Design | Materiale fornito dal docente |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame consiste di due prove: (i) progetto e relazione; e (ii) colloquio orale.
PROGETTO E RELAZIONE: lo studente dovrà sviluppare un algoritmo evolutivo da applicare e testare su un dato problema complesso. Per la prova verranno fornite le seguenti informazioni: (1) problema da risolvere; (2) insieme di istanze del problema su cui testare la validità e qualità dell'algoritmo implementato; (3) elenco di alcuni algoritmi bio-inspirati, e loro caratteristiche (da cui scegliere quale algoritmo implementare); (4) funzione obiettivo; (5) protocollo sperimentale da seguire per la validazione dell'algoritmo implementato. Il progetto dovrà essere consegnato entro 15-20 giorni. Alla conclusione del progetto, inoltre, lo studente dovrà consegnare per la valutazione del proprio elaborato: (a) codice sorgente dell’algoritmo sviluppato; e (b) relazione scritta in Latex. L'algoritmo dovrà essere sviluppato in linguaggio C, C++ o Java.
COLLOQUIO ORALE: discussione orale del progetto sviluppato, attraverso presentazione in PowerPoint or PDF. Lo studente avrà un tempo massimo di 10 minuti per descrivere l'elaborato svolto, i relativi punti chiavi e le originalità introdotte.
Nota: la verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande e/o esercizi frequenti
Esempi dei progetti assegnati saranno disponibili nella pagina ufficiale del corso al seguente link: