Fondamenti di Intelligenza Artificiale M
A.A. 2010-2011

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. 30 pagine);
  2. effettuare una presentazione della durata di 10 minuti ca. (max. 10 slide);
  3. mostrare una demo del sistema realizzato.

  • 2011-01: Studio di pattern per l'integrazione di tecniche di mining e sistemi a regole. In AI esiste un dualismo tra chi cerca di riprodurre comportamenti "intelligenti" usando un approccio simbolico ("hard computing") e chi, invece, preferisce sistemi sub-simbolici ("soft computing"). I sistemi della prima classe sono orientati alla logica e si basano su tecnologie quali logic programming e ontologie, mentre i sistemi del secondo tipo sono orientati ai dati e sfruttano tecnologie come il signal processing e il data mining.
    Quando due o più tecnologie "intelligenti" sono combinate all'interno della stessa architettura si parla propriamente di sistemi "ibridi": nonostante l'ampia diffusione, la maggior parte dei sistemi ibridi combina tecnologie della stessa classe, mentre gli approcci ibridi soft/hard sono più rari.
    Si ritiene, invece, che un'interazione stretta possa portare a notevoli benefici: in particolare, l'approccio simbolico (top-down) semplifica il trasferimento della conoscenza in un sistema, mentre un approccio sub-simbolico rende possibile l'apprendimento da parte del sistema stesso (bottom-up).
    Il lavoro, pertanto, si può articolare in diverse fasi:
    • uno studio dello stato dell'arte sui sistemi che combinano soft e hard computing
    • uno studio dei pattern di integrazione, a diversi livelli:
      • loose integration : moduli indipendenti che operano in serie/parallelo, scambiandosi dati
      • tight integration : moduli indipendenti che interagiscono, scambiandosi dati e istruzioni/parametri di controllo in modo bidirezionale
      • homogeneous integration : architetture dove non vi è più distinzione fra i diversi moduli

Uno degli ostacoli all'integrazione è la natura booleana dei sistemi basati sulla logica, in contrasto con gli output tipicamente non booleani (probabilistici, fuzzy, confidence...) dei modelli costruiti tramite mining. Gli esperimenti saranno eseguiti usando il rule engine Drools, open source e java-oriented, che prevede un supporto per le logiche non booleane, consentendo una maggiore interoperabilità.
(Persone : variabile) (Referente: Davide Sottara) (Stato: non asssegnata)

  • 2011-02: Apprendimento, interscambio e utilizzo di "association rules". Le regole associative sono costrutti simbolici usati per descrivere relazioni di correlazione tra elementi di un insieme. Ad esempio, si pensi alla "market basket analysis", in cui le regole, indotte tramite un processo di mining su data-set sufficientemente ampi, vengono usate per suggerire ulteriori acquisti ai clienti sulla base del contenuto attuale del carrello.
    Obiettivo del lavoro è verificare lo stato dell'arte nel settore, nonché la realizzazione di un processo semi-automatizzato che, partendo da un data set adeguato, apprenda le regole e ne generi una versione eseguibile, sfruttando il rule engine Drools, open source e interamente realizzato in Java.
    Lo studio prevede diverse fasi:
    • survey degli algoritmi per l'apprendimento di regole associative, con attenzione alle estensioni in senso probabilistico e/o fuzzy;
    • analisi dei tool esistenti per il mining delle regole associative, con attenzione al supporto per il formato di interscambio PMML;
    • conversione di un modello associativo in formato PMML in un set di regole in linguaggio DRL per l'esecuzione in Drools;
    • valutazione complessiva del sistema su alcuni casi di studio.
    (Persone : variabile) (Referente: Davide Sottara) (Stato: non asssegnata)
  • 2011-03: Analisi di dati citofluorimetrici mediante integrazione di tecniche data-driven e knowledge-driven. Il citofluorimetro è uno strumento che viene usato in biologia genetica per analizzare dei campioni cellulari: esso, analizza individualmente le cellule contenute in un campione ed estrae, per ciascuna cellula, una serie di features che la descrivono.
    Lo scopo del lavoro è utilizzare tali informazioni per fini diagnostici, modellando, automatizzando ed estendendo alcune procedure che vengono eseguite manualmente dagli esperti del dominio.
    Il primo step prevede la realizzazione di un classificatore che, sulla base delle features delle cellule, classifichi e quindi consenta di isolare solo le cellule di interesse per un particolare esame.
    Il secondo prevede l'analisi delle cellule di interesse, estraendo delle feature aggregate che possono essere indicatrici di certe patologie. Un requisito di questa fase è la realizzazione di un modello "knowledge-based" argomentativo, che possa fungere da sistema di supporto alle decisioni del medico/biologo. Idealmente tale sistema dovrebbe poter interagire con l'esperto durante l'analisi dei dati, se necessario. Al momento, tuttavia, il requisito è la generazione di un report esplicativo che illustri, nella maniera più opportuna, le conclusioni raggiunte.
    Una terza fase prevede il confronto tra i profili di vari individui, realizzando un sistema per estrarre informazioni statistiche relative ad una popolazione, nonché per evidenziare eventuali correlazioni tra i profili e certe situazioni patologiche.
    (Persone : variabile) (Referente: Davide Sottara) (Stato: non asssegnata)
  • 2011-04: Implementazione di modelli predittivi all'interno di un sistema a regole. Nel capo dell'IA si sono sviluppati diversi algoritmi, talvolta etichettati come "tecniche di soft AI computing", con lo scopo, in ultima analisi, di approssimare funzioni non-lineari complesse di cui non si conosce la forma analitica, ma di cui si dispone di un certo numero di "esempi" - valori di input per cui è noto il corrispondente output.
    Questi algoritmi, tramite adeguati processi di data-mining, costruiscono dei modelli delle relazioni incognite. A seconda del contesto e dello scopo per cui vengono usati, questi modelli sono detti predittivi (usati per predire valori futuri sulla base di dati presenti o passati), di classificazione (se usati per stabilire l'appartenenza di un individuo ad una classe, date le sue features), oppure di regressione (se usati per approssimare relazioni input-output generiche). L'uso di questi modelli prevede tipicamente una prima fase, di addestramento/mining, su dati storici, ed una seconda, di utilizzo, su nuovi dati.
    Lo scopo di questo lavoro, in particolare, è valutare se la fase di valutazione possa essere realizzata all'interno di un sistema a regole, partendo da un modello predefinito e serializzato in formato PMML, senza ricorrere a librerie esterne, effettivamente realizzando un'implementazione logica (semi)dichiarativa degli algoritmi di valutazione. I tipi di modello da analizzare includono reti neurali, algoritmi di clustering, support vector machines, alberi decisionali, ecc...
    Il sistema a regole usato per l'implementazione sarà Drools, un rule engine open source scritto in java.
    Sviluppi futuri del lavoro includono lo studio di modelli che supportano il training/mining incrementale, prevedendo pertanto la modifica "a runtime" delle regole di valutazione.
    (Persone : variabile) (Referente: Davide Sottara) (Stato: non asssegnata)
  • 2011-05: Sviluppo di un editor grafico per regole reattive. Il rule engine open source Drools consente di scrivere regole con un linguaggio proprietario. Tale linguaggio è molto espressivo, dato che, pur essendo orientato agli oggetti (Java), combina aspetti tipici della logica del primo ordine con aspetti funzionali e può essere considerato affine ad un linguaggio per query in database (re)attivi. La semantica potente ne fa uno strumento adatto per esperti che debbano modellare la conoscenza di qualche dominio applicativo, ma la sintassi complessa ne limita l'adozione.
    Lo scopo della tesi, pertanto, è valutare se e fino a quale punto si possa mantenere la stessa espressività, basandosi però su una sintassi grafica, il più possibile compatibile con standard quali il BPMN2. Tale mapping consentirebbe un'implementazione di un editor grafico per Drools, a partire da tool web-based ed open source già usati per la modellazione di processi (es. Oryx).
    (Persone : 1) (Referente: Davide Sottara) (Stato: non asssegnata)
  • 2011-06: Analisi e verifica delle dipendenze in una base di regole. Uno dei limiti principali dei sistemi a regole è proprio l'espressività delle regole che possono essere scritte nei linguaggi dei vari sistemi. Questi linguaggi, infatti, difficilmente sono inquadrabili in logiche trattabili - al punto che sono considerati più dei linguaggi di programmazione che non dei linguaggi logici. Ciò ne rende praticamente impossibile la verifica formale, ad esempio per dimostrare con certezza la correttezza o la terminazione dell'esecuzione.
    Tuttavia, analogamente a quanto accade con i linguaggi di programmazione, è concepibile la verifica di alcune proprietà che potrebbero essere usate, ad esempio, da un "Rule IDE" intelligente per la segnalazione all'utente di errori/warning. Al momento, infatti, non esistono tool open source per la scrittura di regole che supportino questo tipo di analisi.
    La prima fase del lavoro, pertanto, potrebbe consistere in un'analisi degli algoritmi per la verifica a compile time dei normali linguaggi di programmazione, nonché dei programmi logici, valutando cosa possa essere applicato direttamente.
    In un secondo momento, invece, si passerebbe a sperimentare algoritmi mirati.
    Uno dei primi approcci potrebbe consistere nel costruire il grafo di dipendenza tra le regole per evidenziare cicli e regole (non) raggiungibili.
    (Persone : 1) (Referente: Davide Sottara) (Stato: non asssegnata)
  • 2011-07: RETE vs Treat : Gator - euristiche per l'ottimizzazione dei join nei sistemi a regole. I sistemi a regole di produzione hanno molte affinità con i database attivi:
    • consentono la memorizzazione di dati, chiamati rispettivamente fatti e tuple;
    • sfruttando memorie (risp. tabelle) distinte;
    • consentono l'esecuzione di azioni arbitrarie quando una serie di fatti fa match con un pattern (risp. per ogni tupla restituita da una query applicata al join di una o più tabelle).
    Dal punto di vista delle prestazioni, il join di fatti/tabelle è critico, soprattutto quando un pattern/query richiede una lunga catena di join : X1 x X2 x X3 x ... Xn. L'algoritmo RETE, usato diffusamente nell'implementazione di sistemi a regole, affronta il problema usando la proprietà associativa sinistra del join, calcolando in pratica (...((X1 x X2) x X3) x ... Xn ) Storicamente, l'alternativa a RETE nota come Treat esegue invece i join in modo flat: ( X1 x X2 x X3 x ... Xn ) Le reti "Gator", invece, si collocano in posizione intermedia, associando solo alcuni join, tipicamente in base ad euristiche. Uno dei molteplici esempi potrebbe essere: (X1 x (X2 x X3)) x ... x (Xn-1 x Xn)
    Il lavoro, pertanto, potrebbe prevedere:
    • - un'analisi delle euristiche per la costruzione delle reti Gator, confrontando le alternative e comparandole alle reti RETE e Treat;
    • studiare l'uso di reti Gator dinamiche, in grado cioè di modificare l'associatività dei join in base allo stato a runtime
    (Persone : 1) (Referente: Davide Sottara) (Stato: non asssegnata)
  • 2011-08: Conversione tra (Reaction) RuleML, RIF e Drools DRL. Drools è un production rule engine open source scritto in Java. Esso consente di scrivere regole molto espressive, usando tuttavia un linguaggio proprio, non standard e poco adatto all'interscambio. Esistono, invece, almeno due linguaggi standard per la scrittura e l'interscambio di regole, RIF (standard de iure) e RuleML (standard de facto).
    Lo scopo del lavoro è duplice, e andrebbe replicato indipendentemente per i due linguaggi (RIF e RuleML). In primis, bisognerebbe valutare il grado di intersezione dei due linguaggi dal punto di vista dell'espressività, per capire quali parti possono essere tradotte in modo bidirezionale, quali possono essere tradotte solo in un verso e quali non possono essere tradotte affatto.
    In secondo luogo, bisognerebbe definire concretamente il mapping e implementare il/i traduttore/i che lo realizzano.
    (Persone : 1) (Referente: Davide Sottara) (Stato: non asssegnata)
  • 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)
  • 2011-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)
  • 2011-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)
  • 2011-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)
  • 2011-17: Progetto e implementazione di un algoritmo di programmazione genetica per l'approssimazione di funzioni.
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)
  • 2011-18: Progetto e implementazione di un algoritmo di programmazione genetica per una strategia di gioco in Robocode. [ http://robocode.sourceforge.net/]
    (Persone : 1) (Referente: Andrea Roli) (Stato: non asssegnata)
  • 2011-19: Modellazione e ragionamento su eventi complessi in REC. Una volta acquisito il necessario background sul complex event processing (http://www.complexevents.com/), formulare uno/due scenari realistici di eventi complessi che richiedano il monitoring, e verificare la possibiltà di modellare questi scenari con il REC. Valutaizone sperimentale con jREC.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-20: Garbage collection per il REC.È possibile dimenticare eventi/fluenti e continuare a garantire un monitoring corretto? A quali condizioni? Studio prevalentemente teorico. Possiblità di laboratorio a due, in cui oltre al lavoro teorico c'è anche una implementazione e validazione delle proposte tramite jREC.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-21: Integrazione di REC con piattaforme agenti. Una volta acquisito il necessario background su una o più piattaforme ad agenti (JaCaMo, Jade, Jadex), progettare e implementare l'integrazione di jREC all'interno di tali piattaforme. Progetto e implementazione di alcuni esempi illustrativi, in cui il monitoring viene effettuato da parte di un agente, ad esempio allo scopo di soddisfare un determinato goal. Possibilità di laboratorio a due o tre, nel caso si vogliano considerare due/tre piattaforme. Nel qual caso, obbligo di valutazione comparativa anche sperimentale, focalizzata sull'aspetto di integrazione del REC.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-22: REC su multi-processore.Immaginando di avere eventi su larga scala, sfruttando una sorta di principio di località, come è possibile gestire/convogliare gli eventi in modo che il monitoring possa essere distribuito su più processori/siti? Ideare meccanismi di coordinamento che garantiscano la correttezza del risultato. Studio teorico. Possibilità di laboratorio a due in cui gli strumenti proposti nella teoria vengono anche implementati e testati mediante esempi illustrativi di complessità crescente.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-23: Collaborazione tra più monitor. Partendo da una situazione in cui più monitor agiscono in autonomia, e ciascuno con una visione parziale degli eventi, studiare meccanismi di collaborazione che consentano di arricchire la conoscenza del monitor in modo focalizzato. Ad esempio: studiare un protocollo publish/subscribe in cui un monitor può dichiarare l'interesse a seguire l'andamento di un determinato fluente. Possibilità di laboratorio a due in cui gli strumenti proposti nella teoria vengono anche implementati e testati mediante esempi illustrativi di complessità crescente.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-24: Validazione sperimentale del commitment monitoring con REC. Fino a che scala è possibile utilizzare jREC in scenari di e-commerce? Quali sono le situazioni che causano un maggiore/minore degrado delle prestazioni, al crescere del numero di contratti/commitment/eventi?
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-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)
  • 2011-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)
  • 2011-27: Diagnosi basata su argomentazione e dialogo. Modellazione di semplici basi di conoscenza per scenari di e-commerce, in un framework ABA (assumption-based argumentation). Ideazione di meccanismi di diagnosi e comunicazione di alto livello (dialogo) allo scopo di collaborare nella diagnosi di comportamenti eccezionali. Possibilità di laboratorio a due, in cui i meccanismi proposti vengono implementati in CaSAPI (http://www.doc.ic.ac.uk/~dg00/casapi.html)
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-28: Integrazione di CaSAPI con piattaforme agenti.Una volta acquisito il necessario background su una o più piattaforme ad agenti (JaCaMo, Jade, Jadex), progettare e implementare l'integrazione di CaSAPI all'interno di tali piattaforme, in modo produrre comunicazione di alto livello (dialogo) a scopi diagnostici. Progetto e implementazione di alcuni esempi illustrativi, in cui due o più agenti dialogano, scambiandosi informazioni in base al ragionamento effettuato con CaSAPI. Possibilità di laboratorio a due o tre, nel caso si vogliano considerare due/tre piattaforme. Nel qual caso, obbligo di valutazione comparativa anche sperimentale, focalizzata sull'aspetto di integrazione con CaSAPI.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-29: Dibattito e voto su piattaforme forum di discussione.Ideazione di meccanismi per supportare un dibattito di tipo argomentativo in un social network o in un forum di discussione. Studio di possibili scenari di uso, in ambito servizi, policy/decision/sense making, e-democracy. Possibilità di laboratorio a due o tre (a seconda del grado di complessità e sviluppo), nel caso si voglia implementare un prototipo. Per tale implementazione sono richieste competenze su ajax, e/o su basi di dati.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-30: Graded ABA frameworks. Come estendere il framework ABA (assumption-based argumentation) in modo da combinare argomentazione e voti degli utenti (es. "Likes" in Youtube)? Studio teorico.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-31: Argomentazione tra servizi web in ArgSCIFF.Implementazione di un prototipo. Materiale di partenza: articolo su IEEE Intelligent Systems. Validazione tramite casi d'uso, descritti nell'articolo.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-32: Normative multi-agent systems. Studiare alcune proposte in letteratura su linguaggi di programmazione normativi per società di agenti/istituzioni virtuali (Dastani, Vasconcelos, Dignum). Proporre delle specifiche/mapping in SCIFF dei formalismi esistenti. Validazione tramite esempi illustrativi. Possibilità di laboratorio a due o tre (a seconda del grado di complessità, numero di linguaggi considerati, e grado di sviluppo), nel caso si voglia implementare un prototipo.
    (Persone : 1) (Referente: Paolo Torroni) (Stato: non asssegnata)
  • 2011-33: Monitoraggio di Business Constraints.Realizzazione di uno strumento di monitoraggio per vincoli di business espressivi (con aspetti legati a vincoli temporali, dati e condizioni basate sui dati). I vincoli possono essere specificati mediante un linguaggio grafico oppure una notazione testuale. Da investigare, per quando riguarda gli aspetti linguaggistici, la possibilità di utilizzare altre notazioni (ad esempio SBVR).
    (Persone : 2) (Referente: Marco Montali, Federico Chesani) (Stato: non asssegnata)
  • 2011-34: Monitoraggio di commitments regulativi Estensione di un sistema di monitoraggio per protocolli di interazione in sistemi aperti basati su commitments.
    (Persone : 1) (Referente: Marco Montali, Federico Chesani) (Stato: non asssegnata)
  • 2011-35: Process mining - Analisi di log di eventi . Realizzazione di un sistema di analisi per log di eventi, in particolare capace di verificare la conformità di una serie di tracce di esecuzione rispetto a regole di business, all'interno del framework ProM, standard de facto nel campo del process mining. E' già presente una versione implementata per ProM 5, a partire dalla quale si evidenziano varie direzioni di ricerca:
    - porting su ProM 6 (che ha un'architettura completamente nuova)
    - estensione con verifica di parametri nell'ambito di un certo range (aspetti sia linguaggistici che di verifica e visualizzazione grafica)
    - estensione considerando i dati
    (Persone : 3) (Referente: Marco Montali, Federico Chesani) (Stato: non asssegnata)
  • 2011-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)
  • 2010-01: Studio e confronto della capacità espressiva dei linguaggi OWL e JAVA. Il progettino consiste nello studiare la capacità espressiva, nell'ambito della rappresentazione della conoscenza, di due linguaggi noti (OWL 1.1/2.0 e Java), al fine di valutare eventuali "sovrapposizioni" e/o limiti, vantaggi e svantaggi di un approccio rispetto ad un altro. (Persone: 1) (Referente: Federico Chesani) (Stato: assegnata)
  • 2010-02: Sviluppo di un algoritmo e relativa implementazione per la traduzione da OWL a Java. Scopo del progetto, in collaborazione con il progetto 2010-01, è quello di sviluppare, una volta noti i possibili limiti di espressività dei due linguaggi, uno strumento per la traduzione automaatica di basi di conoscenza scritte in OWL in una possibile, alternativa rappresentazione scritta in Java. (Persone: 1) (Referente: Federico Chesani) (Stato: non assegnata)
  • 2010-03: Re-ingegnerizzazione del Cached Event Calculus e confronto di performances con il Reactive Event Calculus. Il progetto prevede una iniziale re-ingegnerizzazione del Cached Event Calculus proposta daChittaro e Montanari, in Prolog, e poi lo sviluppo di una test suite tramite cui comparare le perfomances del CEC e del Reactive Event Calculus. (Persone: 1) (Referente: Federico Chesani) (Stato: non assegnata).
  • 2010-04: Studio del linguaggio DROOLS Flow e implementazione di un traduttore in SCIFF. Scopo del progetto è valutare la potenza espressiva del linguaggio DROOLS Flow, e di implementare un algoritmo per la traduzione automatica di flussi definiti tramite DROOLS Flow nel linguaggio SCIFF o nella sua estensione REC. (Persone: 2) (Referente: Davide Sottara) (Stato: non assegnata).
  • 2010-05: Realizzazione del Calcolo degli Eventi in DROOLS. Il progetto prevede la realizzazione del Calcolo degli Eventi tramite il motore a regole DROOLS, e poi un confronto in termini di performances con il Reactive Event Calculus.(Persone: 1) (Referente: Davide Sottara) (Stato: non assegnata)
  • 2010-06: Realizzazione di un gioco basato su "regole di comportamento". Il progetto mira alla realizzazione di un semplice gioco, le cui regole vengono configurate volta per volta dall'utente. Lo spazio degli stati è costituito da una scacchiera con celle di vari colori, e l'obiettivo del gioco è riuscire a raggiungere una cella obiettivo rispettando tutte le regole di comportamento modellate. Le regole di comportamento vietano o impongono il passaggio su certe celle nel caso in cui il percorso attuale del giocatore verifichi una serie di condizioni. Esempi di regole possono essere: "se il giocatore passa su una cella rossa, deve anche passare su una cella blu", "ogni volta che il giocatore esegue uno spostamento a destra, è tenuto prima o poi a muoversi in avanti di due celle".
    Su questo caso di studio, si vogliono in particolare mostrare le potenzialità di formalismi dichiarativi e corrispondenti meccanismi di ragionamento automatico per:
    • esprimere regole di comportamento complesse
    • verificare se un certo percorso ha effettivamente rispettato le regole modellate
    • verificare se esista almeno un percorso che permetta di raggiungere l'obiettivo rispettando tutte le regole, e, in caso positivo, mostrare un esempio
    • guidare il giocatore nell'esecuzione del gioco, mostrando man mano le celle su cui il giocatore non può andare, e quelle su cui invece è tenuto a passare.
    Il progetto prevede l'integrazione di JAVA (per la GUI) e del framework SCIFF, basato su estensioni della programmazione logica (per la parte di formalizzazione e verifica). (Persone: 2-3) (Referente Marco Montali) (Stato: Assegnata)
  • 2010-07: Modellazione di workflow nel calcolo degli eventi. Il progetto prevede uno studio dei principali workflow pattern di controllo, utilizzati per catturare situazioni ricorrenti nella modellazione di workflow, e indagare una loro possibile rappresentazione nel Calcolo degli Eventi. A partire da questo studio di carattere generale, si propongono due possibili linee di indagine: - uso del Calcolo degli Eventi per la formalizzazione di linee guida in campo medico (focalizzandosi in particolare sul linguaggio GLARE) - applicazione del Calcolo degli Eventi Reattivo per verificare la conformità di tracce di esecuzione reali rispetto alle prescrizioni del modello, studiando opportuni meccanismi di gestione delle deviazioni. (Persone: 2-3) (Referente: Marco Montali) (Stato: non assegnata)
  • 2010-08: Analisi e applicazione di Drools Planner. Drools Solver (aka Drools Planner) è stato pensato per risolvere problemi di ricerca/ottimizzazione. È basato su regole, ma consente l'uso di tecniche euristiche varie, potenzialmente estendibili dall'utente. Si vuole tracciare un quadro delle potenzialità offerte mostrandone un'applicazione pratica. (Persone: 1) (Referente: Davide Sottara) (Stato: assegnata)
  • 2010-09: Confronto e traduzione del linguaggio DRL in (Reaction) RuleML. RuleML è una proposta di standard basata su XML per la codifica e l'interscambio di regole. Ne esistono diversi dialetti, ottenuti per composizione modulare: in particolare, Reaction RuleML è nato per codificare costrutti come regole di produzione, regole reattive, ECA rules... Si vuole verificare se RuleML e il linguaggio DRL di Drools siano compatibili e quindi implementare i necessari traduttori. (Persone: 2) (referente: Davide Sottara) (Stato: non assegnata)
  • 2010-10: Estensioni del core engine di Drools. In previsione della futura release di Drools 6, ci sono diversi spunti sul miglioramento delle caratteristiche del sistema, riassunte in un wiki ai link sottostanti. Potenzialmente, lo sviluppo di una o più di queste funzionalità è valido come progetto/tesi (Persone : variabile) (Referente: Davide Sottara) (Stato: non asssegnata)

     

     

    Last Update: Tuesday, April 20, 2010 12:28 . Contact webmaster of this site

    Valid XHTML + RDFa