Sono disponibili tesi sui seguenti argomenti:
- Applicazione di tecniche di soddisfacimento di vincoli a problemi di:
- Scheduling
- Pianificazione per la gestione di sistemi distribuiti
- Integrazione di Programmazione a Vincoli e Ricerca Operativa
- Ottimizzazione Multi-Criteria
- Apprendimento di programmi logici
- Sistemi Esperti e Data Mining in campo Medico
- Società di entità computazionali
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.
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 disponibili 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:
- Utilizzo della Programmazione Logica ad Oggetti come limguaggio di rappresentazione.
- 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.
Sistemi Esperti e Data Mining in campo medico
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:
- creazione di un sistema esperto per la validazione dei dati di tipo Microbiologico (infezioni) e la generazione in tempo reale di allarmi.
- 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.
Società di entità computazionali
Nel triennio 2002-2004 ha avuto 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
Ulteriori informazioni sul progetto SOCS si possono trovare all'indirizzo: http://lia.deis.unibo.it/Research/Projects/SOCS