Fondamenti di Intelligenza Artificiale M
A.A. 2018-2019

Tesi e Progetti

In questa pagina sono raccolte alcune proposte di progetti per la parte di laboratorio eventualmente associata al corso (4 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. 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.

AI e Sistemi Distribuiti per il Calcolo Parallelo

  • Parallelizzazione di sistemi per il Complex Event Processing (CEP).  L'obiettivo di questo progetto è quello di studiare la possibilità di distribuire su più nodi di computazione l'esecuzione di sistemi a regole CEP (e.g., Drools Fusion).  Si suggerisce l'uso di Apache Spark come piattaforma di supporto alla computazione parallela.  Dopo aver studiato gli strumenti software coinvolti, sarà interessante confrontare le performance di esecuzione di un determinato algoritmo CEP su singola macchina e in ambiente distribuito.
    (Persone: 1) (Referente: Daniela Loreti) (Stato: assegnata)
  • Parallelizzazione di algoritmi di apprendimento automatico. L'obiettivo di questo progetto è quello di studiare la possibilità di distribuire su più nodi di computazione l'esecuzione di algoritmi di Machine Learning e reti neurali.  In particolare, risulta interessante studiare la parallelizzazione di algoritmi che sfruttino librerie predefinte, come Google TensorFlow. Si suggerisce l'uso di Apache Spark come piattaforma di supporto alla computazione parallela.  Dopo aver studiato gli strumenti software coinvolti, sarà interessante confrontare le performance di esecuzione di un determinato algoritmo di esempio su singola macchina e in ambiente distribuito.
    (Persone: 1) (Referente: Daniela Loreti) (Stato: assegnata)

Reti Neurali e Deep Learning

  • Reti neurali applicate ai giochi. Lo scopo del progetto è applicare una rete neurale profonda (Deep Network) a giochi da tavolo e piccoli videogiochi, confrontando i risultati con altre tecniche di IA. Non è richiesta conoscenza approfondita delle reti neurali, poiché verrà utilizzato un framework già esistente; il focus del progetto sarà sulla modellazione del gioco, la sperimentazione e il confronto con altre tecniche.
    Esempio di giochi sui quali sono già stati svolti progetti o tesi: Mulino, Mastermind...
    (Persone 1 o 2, a seconda della difcioltà del gioco) (Referente: Andrea Galassi) (Stato: non assegnata)

NAO Robot

  • Disponibili diversi progetti con il Robot NAO
    L'attività si svolgerà inizialmente sull'ambiente di sviluppo e simulazione fornito con il robot (framework Choreographe). Una volta raggiunta una buona stabilità e affidabilità del software sviluppato, verrà fornita l'opportunità di lavorare direttamente con il robot presso i locali del DISI.
    Di seguito vengono mostrati alcuni esempi di possibili progetti ma è possibile ampliare o proporre anche nuovi spunti.
    • Robot NAO e linguaggio naturale
      • Sviluppo di bot
      • Sviluppo di giochi interattivi
      • Sviluppo di abilità per quiz e giochi matematici
    • Robot NAO e planning real-time
      • Esecuzione di azioni (comandi) real-time in ambiente chiuso
      • Movimento all’interno di un percorso/li>
    • (Persone : 1-2) (Referente:Allegra De Filippo) (Stato: non asssegnata)

GIOCHI, BOTS e ALTRO

  • Giochi matematici di puzzle geometrici Si affrontino e risolvano (cercando di essere il piu' generali possibile) i giochi matematici dove viene richiesto di comporre un puzzle geometrico usando forme predefinite, come ad esempio il gioco numero 5 nel seguente file:
    http://matematica.unibocconi.it/sites/default/files/2014.autunno.q1.pdf
    (Persone : 1 o 2) (Referente: Paola Mello) (Stato: non asssegnata)
  • Realizzazione di una IA per una competizione internazionale su un gioco.
    Lo scopo del progetto è la realizzazione di un agente basato su tecniche di IA per giocare a uno dei tanti giochi per i quali esistono competizioni internazionali. Ovviamente non è richiesto che il giocatore si dimostri il migliore (anche se ci si può sempre sperare! Nel caso ci sarebbero anche premi in denaro…), ma piuttosto l’applicazione delle tecniche viste durante il corso o di tecniche originali che portino a risultati discreti e che non siano ancora state applicate nell’ambito di queste competizioni.
    Alcune delle competizioni correntemente attive sono le seguenti: https://project.dke.maastrichtuniversity.nl/cig2018/?page_id=255
    In particolare si suggerisce il gioco Hanabi: http://hanabi.aiclash.com/index.html/
    (Persone : 1 o 2, a seconda della difficoltà del gioco)(Referente: Andrea Galassi) (Stato: non asssegnata)
  • Realizzazione di una IA per il videogioco "Baba is You".
    Si applichino tecniche di intelligenza artificiale (in particolare possono essere utili algoritmi di planning e algoritmi logici) per risolvere i livelli del puzzle-game "Baba is you".
    Materiale: sito del gioco, jam version, un articolo sul gioco.
    (Persone : 1 o 2, a seconda dell'approfondimento) (Referente: Andrea Galassi) (Stato: non asssegnata)
  • Realizzazione di una IA per giocare al gioco di carte KeyForge.
    Lo scopo del progetto è la realizzazione di un agente basato su tecniche di IA per giocare al gioco di carte KeyForge.
    Come ambiente di gioco si consiglia di sfruttare il software di Keyteki https://github.com/keyteki/keyteki
    (Persone : 1 o 2, a seconda dell'approfondimento)(Referente: Andrea Galassi) (Stato: non asssegnata)

  • Realizzazione di una IA che predica il vincitore di una partita di KeyForge.
    Lo scopo del progetto è la realizzazione di un sistema che dati due mazzi del gioco di carte KeyForge sia in grado di predire chi dei due vincerà la partita (eventualmente anche il punteggio finale della partita).
    Sono già disponibili dei dataset/ di partite sulle quali effettuare analisi, test e apprendimento. Per modellare i mazzi è possibile sfruttare feature già esistenti o svilupparne di nuove.
    E' possibile realizzare questa IA con ogni tecnica desiderata (machine learning, regole logiche, reti neurali ecc.)
    (Persone : 1 o 2, a seconda dell'approfondimento)(Referente: Andrea Galassi) (Stato: non asssegnata)

  • Realizzazione di valutatore di mazzi di KeyForge tramite tecniche di machine learning.
    Lo scopo del progetto è la realizzazione di un sistema che dato un mazzo del gioco di carte KeyForge realizzi la valutazione automatica del mazzo.
    Attualmente, esistono diversi siti che realizzano la valutazione algoritmica della qualità dei mazzi tramite alcuni punteggi, tra i più popolari ci sono SAS e AERC.
    Gli algoritmi esistenti si basano su una serie di regole, scopo del progetto è sperimentare diverse tecniche di machine learning per effettuare questo procedimento in modo automatico.
    E' possibile sfruttare dataset già esistenti per analisi, apprendimento e testing.
    (Persone 1) (Referente: Andrea Galassi) (Stato: non asssegnata)
  • Calcolo della complessità e/o soluzione di giochi da tavolo Si applichino tecniche di intelligenza artificiale per il calcolo della complessità e/o per cercare di risolvere un gioco da tavolo. Un elenco di giochi che sono già stati studiati, con possibili riferimenti a tecniche utilizzabili, si può trovare alla seguente pagina wikipedia: https://en.wikipedia.org/wiki/Game_complexity
    (Persone : 1 o 2) (Referente: Andrea Galassi) (Stato: non asssegnata)

COMPUTAZIONE EVOLUTIVA

  • Progetto e implementazione di un algoritmo genetico per definire una rete booelana con caratteristiche date. (Per informazioni sul progetto si veda il seguente articolo: https://www.sciencedirect.com/science/article/pii/S0925231212004870)
    (Persone: 1) (Referente: Prof. Andrea Roli) (Stato: non assegnata)
  • 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)
  • 51: Progetto e implementazione di un algoritmo genetico per definire le regole di transizione di un automa cellulare unidimensionale
    [ http://mathworld.wolfram.com/CellularAutomaton.html]

    di raggio r > 1 in modo da ottenere un classificatore capace di risolvere il problema della densità (cioè, il pattern iniziale, binario, converge a valori tutti 0 o tutti 1 a seconda della predominanza di un valore o dell'altro nella configurazione iniziale). Per maggiori informazioni: http://csc.ucdavis.edu/~evca/Projects/evca.html
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)

NATURAL LANGUAGE PROCESSING E ARGUMENTATION MINING

  • Sentence Generation using a Abductive Logic System
    Implementazione un programma in grado di generare frasi in linguaggio naturale che siano grammaticalmente corrette e scorrette. Come sistema è possibile utilizzare SCIFF, un sistema logico abduttivo.
    (Persone : 1-2) (Referenti: Daniela Loreti, Andrea Galassi)
  • Natural Language Processing in Prolog..
    (Persone : 1-2) (Referente: Paola Mello) (Stato: non asssegnata)
  • Feature Extraction from Textual Corpora
    . Studio ed estrazione di feature (linguistiche, semantiche, subsimboliche…) da documenti testuali in corpora esistenti
    (Persone : 1-2) (Referenti: Paolo Torroni, Marco Lippi, Andrea Galassi, Federico Ruggeri)
  • Natural Language Processing in Prolog..
    (Persone : 1-2) (Referente: Paola Mello) (Stato: non asssegnata)

  •  Argumentation Mining from Speech..
    Creazione e utilizzo di nuovi dataset per l'estrazione automatica di argomenti da discorsi politici.
    (Persone : 1-2) (Referenti: Paolo Torroni, Marco Lippi) (Stato: non asssegnata)

  • Fake News Detection with Argumentation Mining.
    Analisi della presenza di argomenti all'interno di documenti testuali riguardanti notizie vere e fasulle.
    (Persone : 1-2) (Referenti: Paolo Torroni, Marco Lippi) (Stato: non asssegnata)

  • Consumer-Empowering Artificial Intelligence.
    Creazione di un tool/crawler per l’estrazione automatica di terms of service e/o privacy policies da siti web, da analizzare con tool (in parte già esistenti) di machine learning.
    (Persone : 1-2) (Referenti: Paolo Torroni, Marco Lippi) (Stato: non asssegnata)

  • Symbolic Reasoning for Legal Documents.
    L'attività consiste nel combinare tecniche simboliche per il reasoning con un tool già esistente che riconosce automaticamente clausole fraudolente in contratti online.
    (Persone : 1-2) (Referenti: Paolo Torroni, Marco Lippi) (Stato: non asssegnata)

 

 

 

Contact webmaster of this site