10.06.2013 Views

Logica Matematica Corso di Laurea in Informatica ... - Mbox.dmi.unict.it

Logica Matematica Corso di Laurea in Informatica ... - Mbox.dmi.unict.it

Logica Matematica Corso di Laurea in Informatica ... - Mbox.dmi.unict.it

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

118 CAPITOLO 5. CALCOLO DELLA RISOLUZIONE<br />

Esercizio 5.1.20. Verificare che per l’<strong>in</strong>sieme <strong>in</strong>sod<strong>di</strong>sfacibile {p∨q ∨r, ¬p∨<br />

q, ¬q, ¬r∨q, ¬p∨¬r} non c’è una refutazione l<strong>in</strong>eare or<strong>di</strong>nata con top ¬p∨¬r<br />

che rispetti anche la restrizione della tautologia, e dare una spiegazione.<br />

Esercizio 5.1.21. Trovare tutte le refutazioni l<strong>in</strong>eari or<strong>di</strong>nate <strong>di</strong> S = {p ∨<br />

¬q ∨ r, ¬p ∨ ¬q, q, ¬q ∨ ¬r}.<br />

Esercizio 5.1.22. Rappresentare per ogni clausola <strong>di</strong> S dell’esercizio precedente<br />

l’albero delle derivazioni l<strong>in</strong>eari, anche non or<strong>di</strong>nate, da S che hanno<br />

quella clausola come top.<br />

Esercizio 5.1.23. Dimostrare che ogni <strong>in</strong>sieme <strong>in</strong>sod<strong>di</strong>sfacibile <strong>di</strong> clausole<br />

contiene un sotto<strong>in</strong>sieme <strong>in</strong>sod<strong>di</strong>sfacibile m<strong>in</strong>imale.<br />

5.2 Clausole <strong>di</strong> Horn e programmazione logica<br />

Una clausola si chiama clausola <strong>di</strong> Horn se contiene al più un letterale pos<strong>it</strong>ivo.<br />

Le clausole si possono classificare <strong>in</strong> negative se tutti i loro letterali sono<br />

negativi, pos<strong>it</strong>ive se tutti i loro letterali sono pos<strong>it</strong>ivi, e altrimenti miste.<br />

Una clausola <strong>di</strong> Horn può dunque essere negativa, e allora si chiama anche<br />

goal, per il motivo che vedremo, oppure pos<strong>it</strong>iva, ma allora è un<strong>it</strong>aria, e si<br />

chiama anche fatto, oppure mista, ma con un solo letterale pos<strong>it</strong>ivo, e si<br />

chiama anche legge.<br />

Un <strong>in</strong>sieme <strong>di</strong> clausole <strong>di</strong> Horn, se è <strong>in</strong>sod<strong>di</strong>sfacibile, non può contenere<br />

soltanto leggi e fatti, perché altrimenti l’<strong>in</strong>terpretazione pos<strong>it</strong>iva, quella che dà<br />

il valore 1 a tutte le lettere, lo sod<strong>di</strong>sferebbe; deve contenere qu<strong>in</strong><strong>di</strong> almeno<br />

un goal. Analogamente non può contenere solo clausole negative o miste,<br />

altrimenti l’<strong>in</strong>terpretazione negativa, quella che dà il valore 0 a tutte le lettere,<br />

lo sod<strong>di</strong>sferebbe.<br />

Per gli <strong>in</strong>siemi <strong>di</strong> clausole <strong>di</strong> Horn è completa una ulteriore restrizione<br />

della risoluzione l<strong>in</strong>eare or<strong>di</strong>nata, quella della risoluzione a <strong>in</strong>put, o <strong>in</strong>putrisoluzione<br />

(che si potrebbe def<strong>in</strong>ire anche solo sulla base della risoluzione<br />

l<strong>in</strong>eare), data dalla<br />

Def<strong>in</strong>izione 5.2.1. Una derivazione per risoluzione l<strong>in</strong>eare or<strong>di</strong>nata si <strong>di</strong>ce<br />

una <strong>in</strong>put-derivazione se nessuna clausola laterale è uguale a una centrale<br />

precedente.<br />

Una <strong>in</strong>put-derivazione <strong>di</strong> ✷ da S si chiama una <strong>in</strong>put-refutazione <strong>di</strong> S.<br />

Il vantaggio <strong>di</strong> una <strong>in</strong>put-derivazione su una derivazione l<strong>in</strong>eare or<strong>di</strong>nata<br />

è che non c’è bisogno <strong>di</strong> registrare e conservare <strong>in</strong> memoria, <strong>in</strong> un’esecuzione

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!