Programmazione logica abduttiva
# Programmazione logica abduttiva

La Programmazione Logica Abduttiva (ALP, dall'inglese Abductive Logic Programming) è una sottoarea della programmazione logica che inserisce nella programmazione logica regole di inferenza basate sulla abduzione.

Formalmente, un programma logico abduttivo è definito con una tripla $\langle P,A,IC\rangle$, dove P è un programma logico (un insieme di clausole di Horn), A è un insieme distinto di predicati, denominati 'abducibili' ed IC è un insieme di formule logiche, dette 'vincoli di integrità'.

Lo scopo dell'abduzione è quello di trovare una spiegazione per delle cause. Un classico esempio è la 'diagnosi': partendo dagli effetti e dalle regole che collegano cause ed effetti, si cerca di abdurre quali sono le possibili cause.

Ad esempio, un programma logico abduttivo potrebbe essere il seguente:

che indica che due possibili cause del mal di testa sono il tumore e l'influenza. Chiaramente sarebbe possibile abdurre qualsiasi cosa; per questo spesso si aggiungono i vincoli di integrità, che servono a limitare le possibili combinazioni di abducibili che vengono ipotizzati.

Un altro classico esempio è la pianificazione: dato un programma logico che definisce quali sono gli effetti di alcune azioni ed una sequenza di eventi, si può ottenere tramite deduzione la situazione finale. Usando lo stesso programma logico con una procedura abduttiva, fornendo come goal lo stato finale che si vuole raggiungere, si può ottenere una possibile sequenza di eventi che fornisce quello stato finale. Questo metodo è stato spesso usato con il calcolo degli eventi di Sergot e Kowalski.

## Procedure abduttive

Varie procedure abduttive sono state proposte. In ordine cronologico:

* Kakas-Mancarella
* SLDNFA
* ACLP, su ada.cs.ucy.ac.cy. URL consultato il 1º giugno 2006 (archiviato dall'url originale il 10 marzo 2007).
* IFF
* A-system, su cs.kuleuven.ac.be. URL consultato il 1º giugno 2006 (archiviato dall'url originale il 28 luglio 2005).
* SCIFF, su lia.deis.unibo.it.
