COMPUTAZIONE NATURALE E BIOISPIRATA

Anno accademico 2018/2019 - 1° anno - Curriculum Data Science
Docente: Mario Francesco PAVONE
Crediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre:

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.

  1. 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
  2. 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.
  3. 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.
  4. 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.
  5. 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

Frontali


Prerequisiti richiesti

Il corso presuppone una buona conoscenza di strumenti matematici (discreti e continui) e buona conoscenza di algoritmi e strutture dati.


Frequenza lezioni

La frequenza è fortemente consigliata.


Contenuti del corso

Il corso si suddivide in 2 parti fondamentali:

PRIMA PARTE:

  • Definizione informale di Computazione Naturale
  • Teoria della computabilità: problemi NP-Completi
  • Teoria dei Grafi: una breve introduzione
  • Sistemi Complessi: una breve introduzione
  • Modellistica dei sistemi complessi
  • Landscape e Search Space: topologie, significato e importanza
  • Modelli per l’ottimizzazione

 

SECONDA PARTE:

  • Metaheuristics: concetti principali
  • Single-solution based Metaheuristics
  • Population based Metaheuristics

Testi di riferimento

  1. E.G. Talbi, "Metaheuristics: From Design to Implementation", Wiley, 2009
  2. C. Blum and G.R. Raidl, "Hybrid Metaheuristics: Powerful Tools for Optimization", Artificial Intelligence: Foundations, Theory, and Algorithms, 2016
  3. Materiale fornito dal docente.


Programmazione del corso

 ArgomentiRiferimenti testi
1Definizione informale di Computazione Naturale 
2Teoria della computabilità 
3Teoria dei GrafiReinhard Diestel, ''Graph Theory'', Electronic Edition 2000 
4Sistemi ComplessiHiroki Sayama, ''Introduction to the Modeling and Analysis of Complex Systems'', Electronic Edition 2015 
5Modellistica dei sistemi complessiHiroki Sayama, ''Introduction to the Modeling and Analysis of Complex Systems'', Electronic Edition 2015 
6Landscape e Search Space: topologie, significato e importanza 
7Modelli per l’ottimizzazione: (i) Single-Objective Optimization; (ii) Constrained Optimization; (iii) Multi-Objective Optimization; (iv) Optimization under Uncertainty; (v) Dynamic Optimization 
8Single-solution based Metaheuristics: (i) Local Search; (ii) Tabu Search; (iii) Hill ClimbingE.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 
9Population based Metaheuristics: (i) Concetti comuni; (a) Selection methods; (b) Reproduction; (c) Replacement strategies; (ii) ESs; (iii) EPs; (iv) GAs; (v) GPs; (vi) AIS; (vii) Swarm IntelligenceTalbi, ''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 

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L'esame consiste di tre prove: (i) test scritto; (ii) progetto e relazione; e (iii) colloquio orale.

TEST SCRITTO: Consiste di 15 domande a risposta multipla, i cui questiti riguardano la prima del programma.

PROGETTO E RELAZIONE: lo studente dovrà sviluppare un algoritmo evolutivo da applicare e testare su un problema complesso (algoritmo, problema e protocollo sperimentale verranno concordati con il docente). Alla conclusione del progetto, lo studente dovrà consegnare per la valutazione del proprio elaborato: (a) codice sorgente dell’algoritmo sviluppato; e (b) relazione scritta sull'originalità introdotte nell'elaborato.

COLLOQUIO ORALE: discussione orale, attraverso una presentazione in PowerPoint or PDF, sul progetto sviluppato. Lo studente avrà un tempo massimo di 10 minuti per descrivere il progetto svolto e i relativi punti chiavi e originali.


Esempi di domande e/o esercizi frequenti

n.a.