Sistemi Intelligenti M 2011/2012

A.A. 2011/2012

Questo sito Web è dedicato al corso di Sistemi Intelligenti M. Il sito vuole consentire agli allievi di avere accesso a tutte le informazioni relative a finalità, contenuti, testi adottati e modalità di valutazione del corso.

AVVISO:   A  causa di un impegno fuori sede, il ricevimento della prof. Michela Milano del giorno 11 Ottobre 2012 non si terrà. 

 

Orario del corso: consultabile sul sistema informatizzato di Facoltà.


Titolare del corso:
Prof. ssa Michela Milano, Tel. 051 20 93790, michela <dot> milano <at> unibo <dot> it, Ricevimento: Giovedi dalle 10 alle 12 presso lo studio del docente. Fac. Ing. Aule Nuove di fianco all'aula 5.7

Assistente:
Dott. Michele Lombardi, Tel. 051 20 93938, michele <dot> lombardi2 <at> unibo <dot> it, Ricevimento: Via Saragozza 8 (CIRAM), previo appuntamento via email

Obiettivi, Programma e Modalità d'Esame

Obiettivi:

Questo corso sfrutta alcuni degli argomenti trattati in Fondamenti di Intelligenza Artificial, quali rappresentazione della conoscenza, logica, strategie di ricerca informate e non informate, teoria dei giochi, risoluzione di vincoli. Il corso di Sistemi Intelligenti M, partendo dalle nozioni acquisite nel corso di Fondamenti, si propone di mostrare le principali applicazioni di Intelligenza Artificiale e dare esempi pratici delle tecniche apprese nel primo modulo.

Gli obiettivi pricipali del corso sono:

  • Applicare le conoscenze acquisite nel primo corso a problemi complessi
  • Studiare tali problemi e i principali strumenti
  • Fornire esempi pratici

Inoltre:

  • Insegnare a leggere in modo critico un articolo di rassegna su un argomento del corso
  • Fornire un approccio pratico a problemi reali
  • Insegnare a preparare una presentazione simile a quella di laurea
  • Dare agli studenti la possibilità di ascoltare seminari proposti da ricercatori attivamente coinvolti nella ricerca avanzata in AI

Programma:

Il programma del corso si divide in due componenti principali: una teorica e una pratica in laboratorio. Per ognuno degli argomenti trattati, al termine della presentazione dei principali concetti, verranno proposte esercitazioni guidate rivolte ad utilizzare i principali strumenti disponibili. Le tecniche studiate in questo modulo rappresentano lo stato dell'arte della ricerca scientifica nel settore dell'Intelligenza Artificiale. Per ogni argomento, verranno consigliati articoli di rassegna che riassumono i più recenti progressi nello stato dell'arte. Segue il programma dettagliato:

  1. Pianificazione
    1. Pianificazione non lineare
    2. Pianificazione gerarchica
    3. Pianificazione basata su grafi
  2. Swarm Intelligence
    1. Ant-colony Optimization
    2. Particle Swarm Optimization
  3. Programmazione a Vincoli ed Ottimizzazione
    1. Applicazioni
    2. Strategie di ricerca e di Propagazione avanzate
  4. Apprendimento Automatico
    1. Alberi di decisione
    2. Reti neurali

Modalità d'esame

L'esame si compone di una prova scritta che riguarda sia esercizi sia domande di teoria. Per questo motivo non sarà possibile consultare libri o appunti.

Attività Progettuale a Scelta

E' possibile inserire nel piano di studi l'attività progettuale in Sistemi Intelligenti M. In questo caso il progetto da svolgere deve essere discusso con il docente.

Il progetto può riguardare o l'uso di un sistema esistente per la soluzione di un problema complesso o lo sviluppo di uno strumento di risoluzione di un'applicazione di IA. Il progetto deve essere corredato da:

  • Una relazione accurata sul contenuto del progetto e sul codice sviluppato.
  • Una presentazione, ossia una serie di lucidi, che riassume i principali punti del progetto e deve essere usata per "guidare" la prova orale.
  • Il codice dell'esercitazione. 

Lucidi Lezioni & Esercitazioni

Lezioni

Esercizi

Esercitazioni

 

Testi di Riferimento

Intelligenza Artificiale in Genere:

Prolog:

Testi Aggiuntivi:

Articoli

Planning

Swarm Intelligence

Neural Networks

Programmazione a Vincoli

 

Seminari

Seminari effettuati e previsti:

Robot Mobili

Ing. Riccardo Falconi, Ing. Raffaele Grandi (DEIS, Univeristà di Bologna) - 16 Marzo 2012 ore 11 in aula 5.7

I robot mobili, negli ultimi anni, stanno sempre più entrando a far parte del mondo quotidiano, diffondendosi sia in ambiente industriale che in ambiente domestico. Di conseguenza, sempre maggiore interesse è stato focalizzato su tali sistemi da parte di numerosi enti di ricerca. Inoltre, il prezzo sempre più basso e le ridotte dimensioni a cui possibile accedere ad hardware relativamnete complesso, hanno portato da un lato alla miniaturizzazione di robot mobili, dall’altro alla possibilità di iniziare a studiare sistemi complessi composti da un numero sempre maggiore di robot mobili in grado di cooperare tra loro per portare a termine un determinato compito, come il trasporto cooperativo, l’esporazione decentralizzata o compiti di ricerca e soccorso in ambienti ostili all’uomo. Il seminario è stato suddiviso in due parti. Nella prima parte, dopo una breve introduzione storica, verrà introdotto il modello cinematico base dei robot mobili più diffusi e verrà presentata una panoramica delle tecniche di controllo più diffuse per sistemi single-robot. Si passerà poi a considerare le proprietà dei sistemi multirobot e le relative tecniche controllo, quali graph theory e PSO, basate essenzialmente non sull’individualità del singolo elemento, ma sulla capacità dell’intero sistema di svolgere compiti complessi sfruttando le capacità dei singoli componenti.

Durante la seconda parte dell’incontro verrà fatta una introduzione di massima sui mattoncini Lego Mindstorm NXT, illustrando la componentistica a disposizione dell’utente e la piattaforma di sviluppo hardware. Seguirà un breve cenno sui linguaggi a utilizzati nella programmazione dei Lego e in particolare sul linguaggio Java e il sistema LeJOS che ne consente l’interfacciamento con l’hardware del micro-controllore, comprese le procedure di sostituzione del firmware. Successivamente si illustreranno le caratteristiche di LeJOS e tutto ciò che viene messo a disposizione del programmatore o per il controllo via software del robot, comprese le letture dei sensori e il controllo dei motori. Il tutto verrà in pratica attraverso un piccolo esempio implementativo che dimostri le buone capacità dei lego come piattaforma di sviluppo di algoritmi...

A conclusione della seconda parte verrà mostrata la piattaforma multi-robot Unibot sviluppata al LAR con il relativo software di controllo ed i suoi sviluppi futuri nonché una veloce panoramica delle tecnologie hardware e software che ruotano attorno al mondo della robotica, con un breve cenno al sistema che sta diventando uno standard per il controllo di robots: "ROS: an open-source Robot Operating System".


Viaggio al centro della tecnologia semantica: dal trattamento dei Big Data all’analisi del sentiment, passando attraverso il Natural Language Processing

Marcello Pellacani (EXPERT SYSTEM) - 16 Maggio 2012 ore 9.00 aula Magna fac. Ing.

 


 Intelligenza Artificiale e Robotica: dalla RoboCup alle applicazioni di tutti i giorni

 Ing. Luca Iocchi (Università La Sapienza) - 20 Aprile 2012 ore 11.00 aula 5.7

Lo sviluppo di sistemi robotici intelligenti è da sempre un obiettivo principale dell'Intelligenzza Artificiale e moltissima ricerca è stata svolta in questo ambito.
Tra le varie attività, le competizioni scientifiche, e in particolare la RoboCup, danno un importante contributo a questa ricerca in quanto forniscono dei benchmark
di riferimento comuni e dei metodi di valutazione delle prestazioni delle soluzioni adottate da diversi gruppi di ricerca.
Nonostante tale intensa attività di ricerca, l'uso di robot intelligenti nelle applicazioni di tutti i giorni è ancora alquanto limitato. Robot industriali eseguono compiti specifici con molta poca flessibilità, robot commerciali per applicazioni domestiche reagiscono a stimoli esterni molto semplici, robot per applicazioni di sicurezza e per applicazioni medico-chirurgiche sono tipicamente tele-guidati.
Nei campi in cui l'autonomia e l'intelligenza di un robot è l'elemento principale di successo (ad esempio, robot domestici, robot sociali per la cura di anziani o disabili, automobili autonome, ecc.) le applicazioni reali sono ancora lontane. In questo seminario si vogliono analizzare le problematiche e le sfide
nell'uso di robot autonomi e intelligenti in applicazioni reali, gli sviluppi delle ricerche nel tempo e i contributi di attività come la RoboCup ad un maggiore sviluppo della robotica intelligente. 


Complessità, emergenza ed auto-organizzazione

 

Alessandro Filisetti, PhD C.I.R.I. - Energy and Environment Università of Bologna 23 Maggio ore 11.00 Aula 3.4

Nella seconda metà del secolo scorso all’interno della comunità scientifica ha cominciato a farsi largo l'idea, peraltro non del tutto inedita, che non tutti i fenomeni naturali potessero essere descritti tramite la sola descrizione degli elementi e dei processi che li caratterizzano. 

Sebbene il cosiddetto riduzionismo, basato sulla descrizione classica dei sistemi attraverso la scomposizione negli elementi costitutivi, abbia permesso la descrizione e l’interpretazione di un numero elevato di fenomeni naturali, ergendosi legittimamente a paradigma metodologico dominante, negli ultimi anni un nuovo approccio scientifico si è gradualmente sviluppato basandosi sull’idea che la realtà possa essere meglio descritta attraverso una prospettiva olistica. Secondo tale metodo d'interpretazione un fenomeno o un sistema complesso non può essere descritto attraverso la semplice somma delle parti che lo compongono. 

Lo studio e l’analisi delle dinamiche che emergono dalle interazioni non lineari degli elementi che compongono i sistemi sono alla base di quella disciplina (o insieme di discipline) definita oggi come “Scienza della Complessità”. 

Nonostante non vi sia ancora un quadro teorico generale e completamente coerente, alcuni concetti chiave dei sistemi complessi, tra cui non linearità, emergenza ed auto-organizzazione sono stati ampiamente studiati e hanno consentito diverse importanti applicazioni negli ambiti più svariati, dalla fisica alla chimica, dalla biologia ai sistemi sociali. 

Durante il seminario saranno illustrate le principali caratteristiche e proprietà di questi sistemi, a partire dall’illustrazione del quadro storico di riferimento legato alla nascita di tale approccio. 

A scopo esemplificativo saranno presentati due filoni di ricerca dei quali mi sto occupando attivamente all'interno dell'Università di Bologna ed in collaborazione con diversi gruppi scientifici, tra cui il gruppo di ricerca di Scienze della Complessità dell'Università di Modena e Reggio Emilia. 

Il primo riguarda l'analisi delle dinamiche di diffusione delle fonti energetiche in un ipotetico sistema industriale descritto tramite un modello ad agenti. Sebbene tale ricerca sia ancora nella fase preliminare la possibilità di interazione con il modello può aiutare ad analizzare l'influenza che le differenti politiche di pianificazione possono avere sulle dinamiche emergenti dall'azione delle aziende che compongono il sistema. 

Il secondo caso di studio verte invece sullo sviluppo di modelli biologici di protocellule.  Mentre le cellule moderne sono oggetti caratterizzati da un numero elevato di unità interagenti con diverse funzioni specifiche e frutto di parecchi milioni di anni di evoluzione, si suppone che le cosiddette protocellule fossero oggetti molto più semplici, composti da poche molecole e dotate di un metabolismo elementare. L'emergenza di queste prime strutture biologiche organizzate è studiata attraverso diversi approcci modellistici. Il primo di tipo deterministico, basato su sistemi di equazioni differenziali ordinarie (ODE) e finalizzato alla comprensione delle dinamiche che portano alla sincronizzazione delle cinetiche di crescita della membrana e di duplicazione del materiale interno; il secondo di natura stocastica è rivolto allo studio dell'emergenza di strutture autocataliche in reti di reazioni chimiche.


Tecniche di ottimizzazione per lo sviluppo di applicazioni embedded su piattatforme multiprocessore su singolo chip 

Prof. Luca Benini - DEIS, Università di Bologna

L'evoluzione della tecnologia microelettronica consente oggigiorno di produrre sistemi multi-processore su singolo chip per applicazioni embedded quali telefonia cellulare, televisione digitale, handheld gaming, etc. Lo sviluppo di software per queste piattaforme hardware richiede complesse decisioni di allocazione  e scheduling in presenza di stringenti vincoli prestazionali (banda, ritardo) ed energetici. In questa presentazione verranno illustrati alcuni problemi di ottimizzazone relativi al mapping  di applicazioni software su piattaforme multiprocessore su singolo chip. Dai casi di studio illustrati emerge il ruolo strategico delle tecnologie di ottimizzazione studiate nel corso di Applicazioni di Intelligenza Artificiale nel rendere possibile lo sviluppo di software efficiente per tali piattaforme. 

Temi d'Esame

ATTENZIONE: i provengono dal vecchio corso di Applicazioni di Intelligenza Artificiale e differiscono dalle prove d'esame correnti principalmente per l'esercizio di Programmazione a Vincoli (vedi esempi a seguire).

Alcuni esercizi di Programmazione a Vincoli tratti da temi d'esame di Sistemi Intelligenti

 

Links

Curiosità: