Vincoli e preferenze come formalismo unificante per l'analisi di sistemi informatici e la soluzione di problemi reali
Progetto MIUR PRIN 2005 n.2005-015491
Le preferenze che si trovano in situazioni reali possono essere di vario tipo: qualitative, quantitative, condizionate, positive o negative. Nei problemi reali esistono anche cose non solo preferite, ma obbligatorie, che si esprimono naturalmente tramite vincoli. Esistono vari formalismi che sono in grado di descrivere e gestire questi tipi diversi di preferenze e di vincoli. Ma non esiste nessun formalismo che riesca a gestire tutte queste tipologie di conoscenza allo stesso tempo. Studieremo come utilizzare i formalismi esistenti per svilupparne uno che riesca a fare cio' e come sfruttare le differenze di complessita' computazionali dei vari formalismi per sviluppare algoritmi efficienti per trovare soluzioni ottime e per test di dominanza. Intendiamo anche sviluppare tecniche per gestire le preferenze positive e negative in modo generale e studiare casi in cui il problema di trovare soluzioni ottime secondo entrambi i tipi di preferenze diventa trattabile. Vogliamo anche evitare di dare priorita' ad un tipo di preferenze rispetto all'altro. Quando le preferenze si uniscono all'incertezza, e' necessario trovare soluzioni che siano ottime per le preferenze ma anche robuste rispetto alle parti incerte del problema. Intendiamo sviluppare semantiche innovative per tali sistemi, che riescano ad evidenziare, per una soluzione, sia il suo livello di preferenza che il suo grado di compatibilita' con l'incertezza del problema, che puo' essere visto come la robustezza della soluzione.
E' molto comune che piu' agenti vogliano esprimere le loro preferenze su oggetti condivisi. In questi casi, e' necessario aggregare le loro preferenze per trovare le soluzioni che possano soddisfare tutti al meglio. Varie funzioni di aggregazione possono essere definite, con proprieta' molto diverse tra loro, sia in termini di complessita' computazionale che in termini di espressivita'. Ad esempio, proprieta' interessanti di aggregazioni di preferenze, che sono gia' state studiate in contesti sociali, sono la fairness e la non-manipolabilita'. Vogliamo studiare queste ad altre proprieta' e capire anche i loro risvolti sulla complessita' della funzione di aggregazione. Vogliamo anche capire se i classici teoremi di impossibilita' che riguardano queste proprieta' nel campo sociale valgono anche nelle situazioni da noi considerate.
Preferenze ed ottimizzazione multi-obiettivo possono essere viste come due aspetti di uno stesso concetto. Storicamente, le preferenze sono state studiate di piu` nell'Intelligenza Artificiale, mentre l'ottimizzazione multi-obiettivo e` tradizionalmente approfondita in Ricerca Operativa. I due tipi di approcci sono complementari da questo punto di vista ed algoritmi ibridi che cercano di sfruttare gli aspetti migliori di entrambi i campi sono risultati particolarmente efficienti nel caso mono-obiettivo e sono riusciti ad ottenere soluzioni che nessuna delle due tecniche, prese separatamente, era riuscita a produrre in tempi ragionevoli. Il nostro scopo è quello di sviluppare algoritmi ibridi in grado di generare efficientemente la frontiera Pareto ottima.
Nell'area delle logiche temporali ad intervalli, si intende trasformare il metodo a tableau per la logica BCDT+ (logica CDT interpretata su strutture ramificate, con intervalli non stretti), recentemente proposto da Goranko e altri, in una procedura di decisione per classi particolari di logiche temporali. In particolare, verranno esplorate opportune restrizioni di tipo sintattico o semantico, che garantiscano la terminazione del processo di costruzione e verifica del tableau. Per supportare in maniera adeguata il lavoro di sviluppo, testing e validazione di tali procedure, verranno utilizzate tecniche e strumenti mutuati dalla programmazione (logica) con vincoli. Le procedure di decisione così ottenute verranno sperimentate in ambito biologico per la specifica e la verifica di rilevanti proprietà temporali.
Si vogliono investigare le problematiche connesse alla progettazione ed alla integrazione di linguaggi di programmazione con vincoli di tipo insiemistico con particolare attenzione agli aspetti computazionali che garantiscano la loro effettiva utilizzabilità. In particolare si desidera analizzare le problematiche relative alla integrazione o cooperazione dei risolutori di vincoli insiemistici di CLP(SET) e a quelli su domini finiti di CLP(FD). Ciò permette di ottenere un ambiente di programmazione con vincoli che permette la dichiaratività della programmazione insiemistica, adatta alla rapida prototipazione del software e l'efficienza data dai risolutori su domini finiti. Si desidera inoltre, usando tecniche di interpretazione astratta, sviluppare dei compilatori di parti di codice CLP(SET) in CLP(FD). Si desidera inoltre completare e mettere a punto la libreria JSetL, una libreria Java che offre caratteristiche proprie dei linguaggi logici a vincoli, in particolare con vincoli insiemistici, in un ambito di programmazione "object-oriented". In questo contesto verrà anche affrontato il problema della cooperazione di più risolutori di vincoli. Inoltre verrano studiati linguaggi e tecniche di risoluzione per la combinazione di vincoli e logiche per multi-insiemi, un formalismo che trova una naturale applicazione nello studio di sistemi concorrenti.
Progetto MIUR PRIN 2005 - Coordinatore Scientifico del Programma di Ricerca: Francesca Rossi