The Udine Constraint Logic Programming Group


Breve Introduzione.

La programmazione logica è una disciplina dell'Informatica nata nei primi anni '70 dalle ricerche congiunte dell'intelligenza artificiale, dei linguaggi di programmazione e della logica matematica. Tra i suoi principali obiettivi vi sono quelli di permettere la risoluzione di problemi mediante una codifica dichiarativa ad alto livello dei problemi stessi. La ricerca delle soluzioni avviene mediante una visita opportuna dello spazio/albero di ricerca, denominata backtracking, naturalmente parallelizzabile. Si tratta inoltre di una metodologia consolidata per la rappresentazione della conoscenza ed il ragionamento sulla stessa tale da essere considerata il linguaggio principe per le applicazioni di intelligenza artificiale. La programmazione con vincoli è un campo di ricerca multi-disciplinare in cui le competenze spaziano dalla Intelligenza Artificiale, alla Ricerca Operativa, ai Linguaggi di Programmazione, alle Basi di Dati, e le cui applicazioni sono presenti in molti discipline. Anche in questo caso la codifica del problema avviene in modo dichiarativo e la ricerca delle soluzioni è basata su una forma intelligente di backtracking. Vista la vicinanza alle specifiche della programmazione logica, i primi linguaggi di programmazione con vincoli nacquero nell'ambiente della programmazione logica e la ricerca nelle due aree proseguí spesso di pari passo. Attualmente la ricerca mira a rendere più efficiente il meccanismo di ricerca basato su propagazione di vincoli e backtracking, all'estensione sintattica dei linguaggi per permettere di utilizzare vincoli ad alto livello ma provvisti di tecniche di risoluzione efficienti, nonché di applicare le tecniche ad applicazioni di interesse generale. Queste ultime spaziano tra codifica e soluzione di problemi in domini complessi quali il ragionamento legale, il planning, la robotica, cosí come in problemi tipici dell'intelligenza artificiale quali la programmazione di giochi, l'armonizzazione automatica della musica, l'interpretazione del linguaggio naturale, e la ricerca di soluzioni in problemi di tipo combinatorico quali la determinazione di turni di lavoro, ferie, orari e affini. Di recente, inoltre, è stato mostrato come sia del tutto naturale applicare tecniche consolidate di logic programming ad aree innovative quali il cosiddetto Web 2.0 e nel campo della bioinformatica sia nella predizione di struttura molecolare, che nel problema degli Haplotypes, che in systems biology.

Negli anni '80 nacquero l'Association for Logic Programming ALP, il cui convegno internazionale ICLP parte nel 1982 e l'associazione italiana Gruppo Utenti e ricercatori del Logic Programming GULP il cui convegno nasce nel 1986. La nostra università ha organizzato il convegno italiano nel 1997 e quello internazionale ICLP nel 2008.

Specificatamente, gli interessi più recenti del gruppo di Udine sono:


Internal members:

Agostino Dovier Carla Piazza Alberto Policriti Angelo Montanari Raffaele Cipriano

Aggregate members:

Alessandro Dal Palù Andrea Formisano Enrico Pontelli
Gianfranco Rossi Luca Bortolussi. Eugenio Omodeo


For more details, see here