Fondamenti di Intelligenza Artificiale M
A.A. 2013-2014

Progetti

In questa pagina sono raccolte alcune proposte di progetti per la parte di laboratorio eventualmente associata al corso (3 crediti). Tale elenco non va inteso come esaustivo: gli studenti possono proporre altri progetti, concordandoli preventivamente col docente.
La discussione del progetto può avvenire solo dopo aver sostenuto con successo l'esame scritto di Fondamenti di Intelligenza Artificiale M, e contestualmente alla registrazione del voto. La data di discussione va concordata preventivamente col docente. Alla discussione del progetto, lo studente è tenuto a:

  1. portare una relazione sintetica del lavoro svolto (max. 10 pagine);
  2. effettuare una presentazione della durata di 10 minuti ca. (max. 8 slide);
  3. mostrare una demo del sistema realizzato.

GIOCHI, BOTS e ALTRO

  • 43: Implementazione di un semplice sistema web-based per il test di Turing  .
    (Persone : 1) (Referente: Paola Mello) (Stato: non asssegnata)
  • 37: Social Bots and Social Networks Si studino i socialbot nei social networks. Proviamo a farne qualcuno?
    I particolare si studi la letteratura in questo contesto con particolare rifermento alle tecniche di AI.
    Si cerchi di progettare un sofbot (anche tipo cleverbot) in grado di interagire su forum e/o social networks (facebook, tweeter..).
    http://www.newscientist.com/article/mg20928045.100-fake-tweets-by-socialbot-fool-hundreds-of-followers.html
    (Persone : 1) (Referente: Paola Mello) (Stato: non asssegnata)
  • 38: Wolfram AlphaSi studi e verifichi con esempi il seguente sistema;
    http://www.wolframalpha.com/about.html

    Wolfram|Alpha's long-term goal is to make all systematic knowledge immediately computable and accessible to everyone.

    We aim to collect and curate all objective data; implement every known model, method, and algorithm; and make it possible to compute whatever can be computed about anything. Our goal is to build on the achievements of science and other systematizations of knowledge to provide a single source that can be relied on by everyone for definitive answers to factual queries.
    Wolfram|Alpha aims to bring expert-level knowledge and capabilities to the broadest possible range of people­spanning all professions and education levels.
    (Persone : 1) (Referente: Paola Mello) (Stato: non asssegnata)
  • 36: Giochi matematici e problem solving Si affrontino e risolvano (cercando di essere il piu' generali possibile) alcuni giochi matematici tipo quelli riportati nei files che seguono mediante le tecniche di problem-solving descritte nel Corso di Intelligenza Artificiale. http://matematica.unibocconi.it/sites/default/files/giochiautunno2010/allenamentiautunno2010.pdf
    http://matematica.unibocconi.it/sites/default/files/giochiautunno2010/soluzioniautunno2010.pdf
    Se ne possono trovare altri nel sito:
    http://matematica.unibocconi.it/giochi-matematici
    o in altri siti mediante ricerca con  google.
    Si tenti una classificazione dei problemi i base alle modalita` di soluzione. Si espliciti la difficolta` nel trattare la parte di "comprensione" del problema descritto in modo testuale/grafico e si mostrino esempi e possibili soluzione studiando anche lo stato dell'arte.
    (Persone : 1) (Referente: Paola Mello) (Stato: non asssegnata)

FARSEEING PROJECT

  • 42: Definizione di una ontologia dei fattori di rischio e interfaccia web-based per la consultazione  Nell'ambito del progetto Farsseing, coordinato dal Prof. Chiari, si sta sviluppando un prototipo di valutatore del rischio di caduta di un soggetto, basato sull'idea di rischio "statico" dato dallo stato generale della persona. Si richiede di progettare e implementare una piccola ontologia dei possibili fattori di rischio, sulla base della letteratura esistente nel dominio specifico; si richiede inoltre lo sviluppo di una (semplice) interfaccia web per la consultazione di tale ontologia.
    (Persone : 1) (Referente: Federico Chesani) (Stato: non asssegnata)

  • 41: Design ed implementazione di un sistema esperto per la valutazione del rischio “statico” (tecnologie: Prolog, LPAD, Dynamic Bayesian Networks)  Nell'ambito del progetto Farsseing, coordinato dal Prof. Chiari, si sta sviluppando un prototipo di valutatore del rischio di caduta di un soggetto, basato sull'idea di rischio "statico" dato dallo stato generale della persona. Si richiede di progettare e implementare tale prototipo, tale modello, utilizzando in parte alcuni sistemi esperti già sviluppati.
    (Persone : 1) (Referente: Federico Chesani) (Stato: non asssegnata)
  • 40: Design ed implementazione di un sistema esperto (app) per smartphone per la valutazione del rischio “dinamico” (tecnologie: Android, Drools, …) Nell'ambito del progetto Farsseing, coordinato dal Prof. Chiari, si sta sviluppando un modello del rischio di caduta nelle persone anziane, basato sulla valutazione di un rischio "statico" dato dallo stato generale della persona, e su un rischio "dinamico" dato dall'epsosizione corrente di una persona ad una situazione potenzialmente pericolosa. Si richiede di progettare e implementare una piccola applicazione android che realizzi tale modello, utilizzando alcuni sistemi esperti già sviluppati.
    (Persone : 1) (Referente: Federico Chesani) (Stato: non asssegnata)

ALGORITMI GENETICI

  • 14: Progetto e implementazione di un algoritmo genetico per risolvere problemi di ottimizzazione combinatoria (per esempio, quadratic assignment problem e timetabling problem)
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)
  • 15: Progetto e implementazione di un algoritmo genetico per definire una strategia di gioco per il dilemma del prigioniero (versione iterata) o altri giochi analoghi descritti da matrice di payoff. [ http://en.wikipedia.org/wiki/Prisoner's_dilemma]
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)
  • 16: Progetto e implementazione di un algoritmo genetico per costruire un'istanza difficile per un problema di ottimizzazione combinatoria.
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)
  • 17: Progetto e implementazione di un algoritmo di programmazione genetica per l'approssimazione di funzioni.
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)
  • 18: Progetto e implementazione di un algoritmo di programmazione genetica per una strategia di comportamento in un videogioco (per esempio Robocode o Mario Bros).  [ http://robocode.sourceforge.net/]
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)

AGENTI, COMMITMENT e ARGUMENTATION

  • 25: Middleware per commitment. Progettare un middleware per i servizi che offra metodi per la creazione/gestione/monitoring di commitment. Possibilità di lavoro a due, in cui oltre al lavoro teorico c'è anche una implementazione e validazione delle proposte tramite jREC e integrazione con piattaforme a servizi esistenti.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 26: Diagnosi e prognosi di commitment.. Come usare l'output del monitoring per (A) effettuare diagnosi, nel caso di violazioni di commitment in ambito distribuito (B) segnalare in anticipo possibili situazioni di future violazioni? Il lavoro è sia teorico sia implementativo (in REC: non molto impegnativo); possibilità di laboratorio a due, in cui si esplorano e mettono a confronto varie possibilità di diagnosi/prognosi a complessità crescente.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 44: Social tagging di opinioni emergenti nella rete. La grande quantità di contributi disponibili online e aperti ha consentito negli ultimi  anni di sviluppare tecniche di "sentiment analysis" per rilevare le opinioni e misurare la generica disposizione di una comunità di riferimento verso un marchio, prodotto, politica, etc. Ma quali sono i motivi alla base delle opinioni più diffuse? Lo scopo di questa tesina è di progettare tecniche di crowdsourcing che consentano di far emergere i motivi a supporto di opinioni presenti in un dibattito in rete, e metterli in relazione tra loro. Si tratta di ideare un ambiente, ad esempio un gioco, che consenta di raccogliere input da parte delle comunità in rete, sulla falsariga di quanto è stato proposto in altri contesti, ad esempio musei http://www.steve.museum/ e per effettuare lavori di categorizzazione di vario genere http://www.sfgate.com/business/article/Virtual-pay-for-real-work-3260737.php

 

 

 

Proposte negli anni precedenti

  • 2011-09: Caratterizzazione di una General Purpose-GPU mediante machine learning/model fitting. L’utilizzo di General Purpose Graphical Processing Units (GP-GPUs) per l’accelerazione di calcolo con parallelismo di dati massiccio sta acquistando popolarità ad un ritmo sorprendente; l’attrattiva dell’approccio risiede nella sua efficacia e nella vasta disponibilità di GPGPU potenti e di costo contenuto. Ottenere performance mediante un simile approccio è però tutt’altro che banale e richiede la riprogettazione di molti algoritmi per esporne il parallelismo, una massiccia ristrutturazione del codice e una profonda conoscenza delle caratteristiche dell’hardware su cui l’applicazione è destinata ad eseguire. Tali difficoltà motivano l’interesse verso lo sviluppo di sistemi di Computer Aided Design (CAD) che permettano l’automatizzazione di alcuni passi di progetto; la realizzazione di un tale strumento richiede però la formulazione di opportuni modelli, che descrivano con un grado di approssimazione sufficiente la risposta della piattaforma hardware a variazione di determinati parametri di progetto. Obiettivo di questo studio è realizzare una prima caratterizzazione di una GP-GPU reale (Nvidia Fermi architecture), utilizzando allo scopo tecniche di apprendimento automatico (reti neurali o Support Vector Machines) o di model fitting. Per le sue caratteristiche, questo progetto offre l’opportunità di contribuire in modo relativamente semplice, ma significativo, allo sviluppo di una linea di ricerca.
    (Persone : 1) (Referente: Michele Lombardi) (Stato: non asssegnata)
  • 2011-10: Sperimentazione di euristiche di ricerca per l’ottimizzazione di applicazioni streaming. L’elaborazione in real time di flussi di dati (stream processing – es. Codifica/decodifica di flussi audio/video) rimane ad oggi l’applicazione principale per la maggior parte dei cosiddetti sistemi embedded; in tale contesto, la possibilità di sovrapporre l’elaborazione di  frame consecutivi è un fattore chiave per ottenere la migliori performance. L’utilizzo di metodi automatici di ottimizzazione si è dimostrato efficace nel migliorare le prestazioni di applicazioni software per sistemi embedded multi-core complessi; gli approcci classici, tuttavia, non considerano esplicitamente la possibilità di sovrapporre elaborazioni ripetute su un flusso di dati e perdono molta della loro attrattiva quando l’applicazione di interesse (come spesso accade) è di tipo streaming, motivando lo sviluppo di approcci a hoc. In tempi recenti, il gruppo di ricerca di Intelligenza Artificiale a Bologna ha sviluppato alcuni prototipi di ottimizzatori per risolvere questo tipo di problematiche: obiettivo di questo progetto è il miglioramento di uno di questi prototipi, in particolare attraverso la sperimentazione ed ideazione di euristiche per guidare una ricerca ad albero. Per le sue caratteristiche, questo progetto offre l’opportunità di contribuire in modo semplice, ma significativo, allo sviluppo di una linea di ricerca.
    (Persone : 1) (Referente: Michele Lombardi) (Stato: non asssegnata)
  • 2011-11: Estensione di un risolutore automatico per l’ottimizzazione di applicazioni streaming.L’elaborazione in real time di flussi di dati (stream processing – es. Codifica/decodifica di flussi audio/video) rimane ad oggi l’applicazione principale per la maggior parte dei cosiddetti sistemi embedded; in tale contesto, la possibilità di sovrapporre l’elaborazione di  frame consecutivi è un fattore chiave per ottenere la migliori performance. L’utilizzo di metodi automatici di ottimizzazione si è dimostrato efficace nel migliorare le prestazioni di applicazioni software per sistemi embedded multi-core complessi; in linea di massima, l’approccio richiede di risolvere un problema combinatorio di allocazione delle risorse hardware e di scheduling. I metodi classici, tuttavia, non considerano esplicitamente la possibilità di sovrapporre elaborazioni ripetute su un flusso di dati e perdono molta della loro attrattiva quando l’applicazione di interesse (come spesso accade) è di tipo streaming: questo fornisce motivazione per lo sviluppo di approcci a hoc. In tempi recenti, il gruppo di ricerca di Intelligenza Artificiale a Bologna ha sviluppato alcuni prototipi di ottimizzatori per risolvere questo tipo di problematiche: obiettivo di questo progetto è l’estensione di uno di questi prototipi, in particolare introducendo nell’ottimizzazione uno stadio di allocazione delle risorse (assente nella versione attuale). Per le sue caratteristiche, questo progetto offre l’opportunità di contribuire in modo semplice, ma significativo, allo sviluppo di una linea di ricerca.
    (Persone : 1) (Referente: Michela Milano, Michele Lombardi) (Stato: non asssegnata)
  • 2011-12: Scheduling di trasferimenti di dati per l’ottimizzazione di applicazioni streaming. L’elaborazione in real time di flussi di dati (stream processing – es. Codifica/decodifica di flussi audio/video) rimane ad oggi l’applicazione principale per la maggior parte dei cosiddetti sistemi embedded; in tale contesto, la possibilità di sovrapporre l’elaborazione di  frame consecutivi è un fattore chiave per ottenere la migliori performance. L’utilizzo di metodi automatici di ottimizzazione si è dimostrato efficace nel migliorare le prestazioni di applicazioni software per sistemi embedded multi-core complessi; in linea di massima, l’approccio richiede di risolvere un problema combinatorio di allocazione delle risorse hardware e di scheduling. I metodi classici si basano tuttavia su un modello semplificato dell’utilizzo dei dispositivi di memoria, in cui ogni task lavora su dati indipendenti: realizzare a livello implementativo una simile astrazione richiede spesso l’inutile replicazione di strutture dati e non permette una efficace ottimizzazione dei trasferimenti di dati. In tempi recenti, il gruppo di ricerca di Intelligenza Artificiale a Bologna ha sviluppato alcuni prototipi di ottimizzatori per risolvere problemi di scheduling ciclico: obiettivo di questo progetto è l’estensione di uno di questi prototipi, incorporando uno stadio di pianificazione e scheduling dei trasferimenti di dati; tale stadio di ottimizzazione si baserà su un modello decisamente più realistico di quello classico, evitando inutili colli di bottiglia dovuti a replicazione e sollevando in parte il programmatore dal gravoso compito di ottimizzare i trasferimenti. Per le sue caratteristiche, questo progetto offre l’opportunità di contribuire in modo significativo allo sviluppo di una linea di ricerca.
    (Persone : 1) (Referente: Michela Milano, Michele Lombardi) (Stato: non asssegnata)
  • 2011-13: Progetto e training di una rete neurale per predizione della temperatura di un sistema multicore. Le gestione termica di sistemi multi-core è diventata negli ultimi anni un argomento di ricerca particolarmente attivo: ne è motivo la presa di coscienza che lo sviluppo di tali piattaforme è destinato a ricevere una battuta di arresto, se non saranno risolti i problemi di dissipazione di calore dovuti all’impacchettamento di una grande quantità di unità di calcolo su una superficie limitata. È possibile utilizzare metodi automatici di ottimizzazione per distribuire il carico di lavoro su una piattaforma multi-core in modo da ridurre la temperatura di picco, così da evitare l’innesco di meccanismi di controllo di basso livello (riduzione della frequenza, core shutdown...) ed i conseguenti rallentamenti di esecuzione. L’impiego di algoritmi di ottimizzazione ha tuttavia come condizione la disponibilità di un modello dichiarativo del comportamento termico del dispositivo; l’approccio classico, che consiste nella sintesi di un modello sulla base delle leggi fisiche che regolano i trasferimenti e la generazione di calore, è però in questo caso difficilmente applicabile; la ragione è che la quantità di elementi da prendere in considerazione è così grande (workload, posizione dei processori sul chip, efficienza locale del sistema di raffreddamento...) che la soluzione del corrispondente sistema di equazioni differenziali diventa proibitiva. In questo contesto il gruppo di ricerca in Intelligenza Artificiale a Bologna sta sviluppando un approccio alternativo, che consiste nell’apprendimento automatico di un modello approssimato (allo stadio corrente una rete neurale): in questo modo, l’azione dei vari elementi che concorrono al comportamento termico viene appresa dalla rete, piuttosto che esplicitamente definita dal progettista; la rete addestrata può poi essere utilizzata da un metodo di ottimizzazione. Un prototipo dell’intero approccio è già stato realizzato, mettendo in luce la necessità di riprogettare in parte la rete per adattarla alla formulazione del problema di ottimizzazione e migliorare l’accuratezza delle previsioni: tale attività di riprogettazione e training costituisce l’argomento del progetto corrente.
    (Persone : 1) (Referente: Michela Milano, Michele Lombardi, Andrea Bartolini) (Stato: non asssegnata)

 

 

Contact webmaster of this site