DEIS - Università di Bologna
Laboratorio d'Informatica Avanzata
Corso di Intelligenza Artificiale
Tesi Disponibili
L'Associazione Italiana per l'Intelligenza Artificiale
AI*IA bandisce un
Premio per la miglior
tesi di Intelligenza Artificiale.
Sono disponibili tesi sui seguenti argomenti:
Diagnosi e soddisfacimento di vincoli
L'applicazione di tecniche di soddisfacimento di vincoli ai problemi di diagnosi
consiste nel modellare il sistema che si vuole monitorare come insieme di
vincoli e nell'individuare un guasto tramite il raggiungimento di uno stato
inconsistente. Sono disponibili tesi sia di tipo compilativo basate su una
ricerca bibliografica esauriente sull'argomento sia di tipo sperimentale che
consistono nella realizzazione di un sistema a vincoli per la risoluzione
di problemi di diagnosi reali.
Scheduling e soddisfacimento di vincoli
I problemi di scheduling classicamente sono stati affrontati tramite tecniche
di Ricerca Operativa. Negli ultimi anni, tuttavia, sono state sperimentate
alcune tecniche di soddisfacimento di vincoli che hanno portato a risultati
promettenti. In particolare, i linguaggi di Programmazione Logica a Vincoli
su domini finiti (CLP(FD)) si sono dimostrati ottimi candidati per risolvere
questo tipo di applicazioni dal punto di vista dell'efficienza e del potere
espressivo. Le tesi si laurea disponibili riguardano
- lo studio e la realizzazione di estensioni della CLP(FD) in grado di
migliorare ulteriormente l'efficienza nella propagazione e il potere espressivo.
- lo studio e la realizzazione di euristiche che si possono integrare
nel linguaggio CLP(FD) che permettano di scegliere la strada più
promettente quando la propagazione di vincoli non è in grado di
condurre a una scelta precisa.
Riconoscimento di immagini e focalizzazione
di attenzione in sistemi di visione
Il riconoscimento di oggetti in una immagine è un problema piuttosto
complesso in quanto è necessario manipolare una grande quantità
di dati normalmente incerti e incompleti. Sono state adottate, in letteratura,
numerose strategie di ricerca volte al confronto tra l'oggetto da riconoscere
(modello) e i pixel della scena. Modellando gli oggetti tramite vincoli, è
possibile ridurre questo spazio di ricerca in modo da scartare prima possibile
quelle zone dell'immagine non contenenti informazioni significative, concentrandosi
così sulle zone interessanti. Tuttavia, i classici modelli di soddisfacimento
di vincoli non sono idonei per trattare tali problemi in quanto richiedono
che tutti i dati del problema da manipolare siano noti a priori. Pertanto,
è necessario, prima di affrontare il problema della visione da questo
punto di vista, modificare il modello CSP al fine di renderlo interattivo.
I domini delle variabili (che in questo caso rappresentano gli elementi degli
oggetti da riconoscere) possono non essere completamente specificati e noti
a priori. Quindi è necessario intercalare una fase di acquisizione
della conoscenza con una fase di manipolazione. Sono disponibili tesi riguardanti
sia la definizione e l'implementazione del modello CSP interattivo sia per
la sua integrazione con sistemi di estrazione di features da immagini.
Pianificazione per la gestione di
sistemi distribuiti
Lo scopo di un pianificatore è quello di costruire, sulla base di un
insieme di azioni elementari, una sequenza di azioni in grado di raggiongere
un obiettivo dato in ingresso a partire da una configurazione iniziale del
sistema in esame. Tipicamente, i pianificatori generativi (che producono piani
ottimali) si basano su una rappresentazione completa del mondo che devono
modellare e assumono che questa rappresentazione sia statica. Per applicare
un pianificatore di questo genere al fine di generare script automatici per
la gestione delle risorse in un sistema distribuito e' necessario rilassare
tali ipotesi restrittive. A tal fine, e' necessario definire meccanismi per
il recupero delle informazioni dal sistema sottostante in grado di acquisire
dinamicamente solo lo stato del mondo che interessa al processo di pianificazione
e per il controllo sull'esecuzione del piano stesso. Le applicazioni di tali
pianificatori vanno da information retrieval a gestione di problematiche riguardanti
la sicurezza delle reti. Sono disponibili tesi sui diversi aspetti del problema.
Integrazione di Programmazione a Vincoli
e Ricerca Operativa
Tra i metodi e le tecniche utilizzate in Intelligenza Artificiale per la risoluzione
di problemi hanno assunto particolare rilevanza negli ultimi anni quelli che
si basano sul soddisfacimento di vincoli. Alle tecniche tradizionali di Ricerca
Operativa che risolvono queste classi di problemi con algoritmi specifici,
si affiancano oggi tecniche di Intelligenza Artificiale che esplorano lo spazio
delle soluzioni possibili e che, al contempo, possono ridurlo attraverso la
propagazione dei vincoli della rete. Ultimamente, l'integrazione delle due
tecniche ha portato a notevoli vantaggi dal punto di vista computazionale
nella programmazione a vincoli e dal punto di vista della rappresentazione
del problema in Ricerca Operativa. Sono sisponibili tesi di tipo teorico e/o
realizzativo sull'integrazione di metodi quali Branch and Bound e Branch and
Cut in risolutori di vincoli commerciali.
Ottimizzazione Multi-Criteria
La Programmazione Logica a Vincoli è una classe di linguaggi logici
con cui è possibile definire problemi di ottimizzazione combinatoria, in
cui è presente una funzione obiettivo che deve essere ottimizzata.
In molti ambiti ingegneristici, però, non è possibile stabilire una unica funzione
obiettivo, ma esistono più criteri che si vorrebbero rendere ottimi contemporaneamente.
Una buona soluzione è spesso un compromesso fra due o più criteri.
In questi casi un possibile metodo consiste nel trovare tutte le soluzioni che non sono dominate;
l'utente deciderà a posteriori quale soluzione risulta migliore, dopo aver visto
la distribuzione delle soluzioni.
Per esempio, si consideri un CSP
in cui si vorrebbero massimizzare due funzioni f1 ed f2.
Alcune soluzioni sono dominate da altre; cioè risultano peggiori di altre
rispetto ad entrambe le funzioni obiettivo. Le soluzioni non-dominate formano la cosiddetta
Frontiera non-dominata.
Poiché le soluzioni precedentemente trovate sono punti in uno spazio,
risulta ragionevole memorizzarle con strutture dati spaziali, quali i
Point Quadtrees (vedi anche un
demo
sui Point Quadtree).
Sono disponibili tesi per la realizzazione di meta-predcati di ottimizzazione multi-criteria
nell'ambito della Programmazione Logica a Vincoli.
Apprendimento di programmi logici
La programmazione logica induttiva (ILP: Inductive Logic Programming) è
un'area di ricerca all'intersezione fra Apprendimento Automatico e Programmazione
Logica. Il suo scopo è quello di realizzare sistemi in grado di apprendere
un programma logico partendo da esempi e da una conoscenza di background.
All'interno di questa area di ricerca, sono disponibili tesi sui seguenti
argomenti:
1) Utilizzo della Programmazione Logica ad Oggetti come limguaggio di rappresentazione.
2) applicazione di tecniche di ILP al Data Mining e Knowledge Discovery
in Databases.
1) L'utilizzo di programmi logici ad oggetti come formalismo di rappresentazione
consente una migliore strutturazione della conoscenza. Questo formalismo
risulta adatto a rappresentare domini dove è riconoscibile una gerarchia
di classi, in quanto consente di rappresentare esplicitamente tale gerarchia
attraverso una struttura ad albero dove i nodi sono classi e le foglie entità.
In questo modo è possibile una migliore organizzazione delle informazioni:
la conoscenza specifica relativa ad una singola istanza viene associata
all'istanza, mentre la conoscenza comune alle istanze di una classe viene
associata alla classe. Il partizionamento che ne risulta rende la base di
conoscenza più facilmente leggibile e consente meccanismi di ragionamento
più efficienti. Inoltre, l'organizzazione gerarchica delle classi
rende disponibile un nuovo operatore di generalizzazione per l'apprendimento,
che consiste nello "spostare" da una classe ad una superclasse la clausola
appresa.
Varie scelte sono possibili sia per la definizione del problema di apprendimento
in questo nuovo contesto, sia per lo sviluppo di un algoritmo per la soluzione
di tale problema. Fra le varie alternative, è stata scelta una definizione
del problema ed è stato progettato e realizzato un algoritmo che
combina tecniche note di programmazione logica induttiva.
Sono disponibili tesi per
I) investigare le altre scelte possibili per la definizione del problema
e lo sviluppo di un algoritmo
II) compiere esperimenti con dati reali.
2) applicazione di tecniche di ILP al Data Mining e Knowledge Discovery
in Databases. Le organizzazioni hanno a loro disposizione una sempre maggiore
quantità di dati sulla attività che compiono. Le informazioni
che possono essere estratte da questi dati possono essere molto importanti
per il miglioramento delle prestazioni dell'organizzazione. Le tecniche
tradizionali di analisi dei dati spesso non sono sufficienti per l'estrazione
di queste informazioni, a questo scopo è nato il campo di ricerca
del Data Mining e Knowledge Discovery in Databases che si occupa di sviluppare
strumenti più efficienti ed intelligenti per analizzarli. Le informazioni
che possono essere tratte da questi dati spesso forniscono un importantissimo
vantaggio competitivo ad una azienda. Per questa ragione, il Data Mining
e Knowledge Discovery in Databases ha ricevuto una grande attenzione recentemente.
Sono disponibili tesi al fine di investigare le applicazioni delle tecniche
di ILP in questo campo.
Le tecniche di Intelligenza Artificiale vengono applicate al settore della
medicina già da parecchi anni per la realizzazione di Sistemi Intelligenti
(basati sulla conoscenza) capaci di dare un supporto alle decisioni del personale
ospedaliero in alcune attività di routine in cui vengono richiesti standard
qualitativi sempre più stringenti. Il processo di estrazione della conoscenza
in campo medico/ospedaliero è una operazione di per sé molto difficile a causa
della complessità dei problemi trattati e dal fatto che quasi sempre la conoscenza
degli esperti del settore è di tipo empirico. Questa caratteristica del mondo
della medicina porta ai seguenti problemi:
- le regole che esprimono i ragionamenti e guidano alla soluzione di
un particolare problema medico non sono sempre le stesse e sono ampiamente
soggettive.
- spesso le regole non sono formalizzabili, ma solo estraibili a posteriori
da grosse moli di dati.
Il Data Mining, sviluppatosi nell'ultimo decennio, rappresenta la soluzione
proposta dall'Intelligenza Artificiale e dal settore delle Basi di Dati
a questi problemi e sta dimostrando ampi margini di espansione. Il suo obiettivo
è la ricerca di modelli all'interno delle basi di dati, in modo da permettere
un supporto alle decisioni. Alcuni obiettivi della ricerca in questo settore
sono:
- studio e sperimentazione di tecniche di datamining su dati di tipo medico
- studio di strumenti e tecniche di Filtraggio Intelligente
- studio e realizzazione di Sistemi Esperti capaci di essere un valido
supporto al personale medico nello svolgimento delle attività che coinvolgono
i dati analizzati. Le regole che faranno parte della base di conoscenza
potranno essere anche ricavate dalla applicazione delle tecniche di DataMining
sopra citate.
Alcuni argomenti di tesi sono i seguenti:
1) creazione di un sistema esperto per la validazione dei dati di tipo
Microbiologico (infezioni) e la generazione in tempo reale di allarmi.
2) applicazione di tecniche di Data Mining ai dati di tipo Microbiologico
per l'estrazione di nuova conoscenza da utilizzare anche per migliorare
e espandere la base di conoscenza del sistema esperto descritto nel punto
precedente.
Queste due tesi verranno svolte in collaborazione con la Dianoema S.p.A,
operante nel settore dell'informatica applicata alla medicina.
Nel triennio 2002-2004 avrà luogo un progetto europeo dal titolo
'Societies Of ComputeeS' (SOCS), in collaborazione con altri istituti universitari
europei, tra cui l'università di Cipro, Imperial College e la City
University di Londra. Il progetto ha come argomenti la analisi, la specifica
formale, la prototipazione, e la verifica di società di entità
computazionali, ovvero di programmi software basati su logica computazionale.
Gli argomenti che si intendono trattare a livello di tesi includono:
- agenti software intelligenti
- logica computazionale
- integrazione di varie forme di ragionamento
- sviluppo di modelli teorici
- implementazione e applicazioni in ambiti internet information gathering,
commercio elettronico, simulazione, politiche di sicurezza per sistemi
distribuiti
nell'ambito del progetto, è prevista la possibilità di trascorrere
un periodo all'estero. Ulteriori informazioni sul progetto SOCS si possono
trovare all'indirizzo: http://lia.deis.unibo.it/Research/Projects/SOCS