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.

5.2. CLAUSOLE DI HORN E PROGRAMMAZIONE LOGICA 123<br />

9 ← r<br />

10 ← u<br />

11 ←<br />

Queste sono le due <strong>in</strong>put-refutazioni dell’<strong>in</strong>sieme<br />

S = {p ∨ ¬r ∨ ¬q, q ∨ ¬t ∨ ¬u, r ∨ ¬u, u, t, q, ¬p}<br />

con top ¬p. Il motore <strong>in</strong>ferenziale dei l<strong>in</strong>guaggi <strong>di</strong> programmazione logica si<br />

basa tuttavia oltre che sulla regola <strong>di</strong> risoluzione anche su alcune restrizioni<br />

pratiche, per ragioni <strong>di</strong> controllo; ad esempio le clausole del programma sono<br />

date <strong>in</strong> modo or<strong>di</strong>nato, e per sod<strong>di</strong>sfare un sottogoal le clausole <strong>di</strong> programma<br />

sono passate <strong>in</strong> rassegna nell’or<strong>di</strong>ne fissato, a cercare una clausola con testa<br />

che unifichi con il sottogoal, e viene scelta la prima che si <strong>in</strong>contra. Questo<br />

v<strong>in</strong>colo <strong>di</strong>strugge la completezza, perchè ad esempio il programma<br />

p ← q<br />

q ← p<br />

p ←<br />

entra <strong>in</strong> ciclo con il goal ← p e il goal non è sod<strong>di</strong>sfatto, nonostante p sia<br />

conseguenza logica <strong>di</strong> {p → q, q → p, p}. Per via <strong>di</strong> queste e altre restrizioni,<br />

si impone un’attenta scr<strong>it</strong>tura or<strong>di</strong>nata dei programmi, o l’<strong>in</strong>troduzione <strong>di</strong><br />

coman<strong>di</strong> permessi dal l<strong>in</strong>guaggio che impe<strong>di</strong>scano <strong>di</strong> tornare a clausole già<br />

considerate.<br />

Il proce<strong>di</strong>mento <strong>in</strong>ferenziale sopra descr<strong>it</strong>to, nella notazione della programmazione<br />

logica, corrispondente alla <strong>in</strong>put-risoluzione, si chiama anche<br />

nella letteratura specifica sld-risoluzione, sld per Selection Left for Def<strong>in</strong><strong>it</strong>e<br />

clauses: “clausole def<strong>in</strong><strong>it</strong>e” è un altro nome per le clausole <strong>di</strong> Horn; la “scelta<br />

a s<strong>in</strong>istra” si riferisce alla scelta <strong>di</strong> prendere <strong>in</strong> considerazione sempre il<br />

primo, a s<strong>in</strong>istra, sottogoal <strong>di</strong> un goal multiplo; la scelta corrisponde a quella<br />

della risoluzione or<strong>di</strong>nata <strong>di</strong> considerare l’ultimo, a destra, letterale come<br />

letterale da risolvere, secondo la rappresentazione del goal ¬qn ∨ . . . ∨ ¬q1<br />

come ← q1, . . . , qn.<br />

Esercizio 5.2.6. Verificare e spiegare perché non può esistere alcuna <strong>in</strong>putrefutazione<br />

dell’<strong>in</strong>sieme S = {p ∨ q, ¬p ∨ q, ¬q ∨ p, ¬p ∨ ¬q} dell’esempio <strong>di</strong><br />

p. 116.<br />

Esercizio 5.2.7. Verificare che l’<strong>in</strong>sieme <strong>in</strong>sod<strong>di</strong>sfacibile <strong>di</strong> clausole S =<br />

{p ∨ ¬r, q ∨ ¬r, r ∨ ¬q ∨ p, ¬p ∨ ¬q, q ∨ r} non ammette una <strong>in</strong>put-refutazione.<br />

Esercizio 5.2.8. Spiegare perché l’<strong>in</strong>sieme {p ∨ q, ¬p ∨ ¬q, p, q} pur non<br />

essendo un <strong>in</strong>sieme <strong>di</strong> clausole <strong>di</strong> Horn ammette una <strong>in</strong>put-refutazione.

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

Saved successfully!

Ooh no, something went wrong!