COMPUTAZIONE NATURALE E BIOISPIRATA

Anno accademico 2016/2017 - 1° anno
Docente: Mario Francesco PAVONE
Crediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 126 di studio individuale, 24 di lezione frontale
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 bio-inpisred algoritmi in ambito dell'ottimizzazione, sicurezza, e in ambiro della teoria delle decisioni e teoria dei giochi.

Alla fine del corso gli studenti avranno maturato:

  1. buona conoscenza dei concetti di base
  2. buona conoscenza del funzionamento dei “sistemi intelligenti”
  3. eccellente capacità autonoma di implementazione di un algoritmo bio- o nature-inspired
  4. problem-solving

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
1 Definizione informale di Computazione Naturale 
2 Teoria della computabilità 
3 Teoria dei GrafiReinhard Diestel, ''Graph Theory'', Electronic Edition 2000 
4*Sistemi ComplessiHiroki Sayama, ''Introduction to the Modeling and Analysis of Complex Systems'', Electronic Edition 2015 
5*Modellistica dei sistemi complessiHiroki Sayama, ''Introduction to the Modeling and Analysis of Complex Systems'', Electronic Edition 2015 
6*Landscape e Search Space: topologie, significato e importanza 
7*Modelli per l’ottimizzazione: (i) Single-Objective Optimization; (ii) Constrained Optimization; (iii) Multi-Objective Optimization; (iv) Optimization under Uncertainty; (v) Dynamic Optimization 
8*Single-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 
9*Population 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 
* Conoscenze minime irrinunciabili per il superamento dell'esame.

N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.

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.