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.

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 assegnata)

Giochi, Bots e altro

  • Giochi matematici e ChatBot L'attivita' consistera' nell'individuare e valutare chat bot moderni (ad esempio chatGPT), rispetto alla loro capacita' di risolvere giochi matematici.
    L'attivita' comprendera' sia una parte di studio e valutazione dei modelli sottostanti ai chat bot, sia una parte di valutazione delle caratteristiche dei giochi, al fine di comprendere meglio eventuali limiti dei chat bot.
    (Persone: 2) (Referente: Paola Mello, Daniela Loreti, Federico Chesani) (Stato: non assegnata)
  • Giochi matematici di puzzle geometrici Si affrontino e risolvano (cercando di essere il piu' generali possibile) i giochi matematici dove viene richiesto di interagire con una parte grafica (diagrammi), estendendo opportunamente un prototipo di sistema in Prolog già realizzato (si veda http://137.204.57.70/games/demo). Ad esempio si potrebbe introdurre la criptoaritmetica.
    (Persone: 2) (Referente: Paola Mello, DAniela Loreti, Federico Chesani) (Stato: non assegnata)
  • 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: sito IEEE Conference on Games 2021 sito IEEE Conference on Games 2022
    In particolare si suggerisce il gioco Hanabi: http://hanabi.aiclash.com/index.html/ o il gioco Simplexity (vedi sotto)
    (Persone : 1 o 2, a seconda della difficoltà del gioco)(Referente: Andrea Galassi) (Stato: non assegnata)
  • Realizzazione di una IA per un gioco da tavolo complesso.
    Si applichino tecniche di intelligenza artificiale a un gioco da tavolo a scelta.
    Materiale: sito con vari giochi già implementati, tra cui Exploding Kittens, Colt Express, Pandemic, Love Letter.
    (Persone : 1 o 2, a seconda dell'approfondimento) (Referente: Andrea Galassi) (Stato: non assegnata)
  • 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". Una versione del gioco è stata usata nel 2022 per la competizione Keke AI, come parte della IEEE Conference on Gamese
    Materiale: sito del gioco, jam version, un articolo sul gioco, competizione sul gioco.
    (Persone : 1 o 2, a seconda dell'approfondimento) (Referente: Andrea Galassi) (Stato: non assegnata)
  • 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 assegnata)

  • 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 assegnata)

  • 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 assegnata)
  • 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 assegnata)
  • Creazione di una IA per giocare al gioco Simplexity Si applichino tecniche di intelligenza artificiale per il gioco Simplexity, un gioco simile a forza 4 ma di complessità maggiore. Il gioco è stato usato nel 2021 come parte della competizione internazionale ColorShapeLinks AI, come parte della IEEE Conference on Gamese. Risorse: Link competition
    (Persone : 1 o 2) (Referente: Andrea Galassi) (Stato: non assegnata)
  • Creazione di una IA per giocare ai giochi Wordle e Absurdle Si applichino tecniche di intelligenza artificiale per i giochi Wordle e Absurdle. Wordle è una specie di mastermind basato su parole esistenti, in cui si hanno 6 tentativi per indovinare una parola inglese di 5 lettere, ricevendo indizi su lettere corrette a ogni passo. Absurdle è una versione avversaria di Wordle, in cui una IA deterministica cambia la parola nascosta a ogni passo (rimanendo coerente con gli indizi dati) con lo scopo di prolungare la partita il più a lungo possibile. Risorse: Wordle, Absurdle
    (Persone : 1 o 2) (Referente: Andrea Galassi) (Stato: non assegnata)

Process Mining and Discovery

  • Process Mining. Utilizzo di strumenti e tecniche di Process Mining per la modellazione, apprendimento, e verifica di modelli di processi in ambito aziendale.
    (Persone: 1)(Referente: Paola Mello, Daniela Loreti, Federico Chesani)(Stato: non assegnata)

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 assegnata)
  • 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 assegnata)
  • 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 assegnata)
  • 17: Progetto e implementazione di un algoritmo di programmazione genetica per l'approssimazione di funzioni.
    (Persone : 1) (Referente: Andrea Roli) (Stato: non assegnata)
  • 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 assegnata)
  • 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 assegnata)

Natural Language Processing e Argumentation Mining

  • Sentence Generation using a Abductive Logic System
    Implementazione di 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, Paola Mello, Federico Chesani)(Stato: non assegnata)

  • Natural Language Processing in Prolog
    (Persone : 1-2) (Referente: Paola Mello) (Stato: non assegnata)

  • Ulteriori attività legate a Natural Language Processing
    Ulteriori attività progettuali possono essere disponibili sul sito https://site.unibo.it/nlp/en/activities.
    Tra i possibili argomenti ci sono argument mining, NLP on Italian documents, multi-lingualism, legal analytics, summarization, linguistic resources, neuro-symbolic for NLP, explainable NLP.
    (Persone : 1-2) (Referenti: Paolo Torroni, Andrea Galassi, Federico Ruggeri)

 

 

 

Contact webmaster of this site