Compito esame ragionamento automatico
Primo appello 2007
Soluzione

Domanda 1

Testo

Verificare la soddisfacibilità della seguente formula usando la procedura Davis-Putnam (DPLL). In particolare, mostrare l'albero di ricerca, evidenziando in ogni nodo i letterali che si ottengono per propagazione unitaria e uso dei letterali puri.

{ a &or b, ¬ a &or c, ¬ a &or d, a ∨ ¬ b ∨ c ∨ d, ¬ b ∨ ¬ c ∨ ¬ d, a ∨ c ∨ ¬ d, ¬ c ∨ d, ¬ a ∨ c ∨ e ∨ f, ¬ a ∨ b &or ¬ e ∨ ¬ f }

Soluzione

La variable b compare tre volte in clausole binarie, quindi viene scelta come variabile di branching. Dato che compare due volte negata, si sceglie il valore negativo come primo valore da provare.

Gli effetti della propagazione unitaria di ¬ a sono:

{ a &or b, ¬ a &or c, ¬ a &or d, a ∨ ¬ b ∨ c ∨ d, ¬ b ∨ ¬ c ∨ ¬ d, a ∨ c ∨ ¬ d, ¬ c ∨ d, ¬ a ∨ c ∨ e ∨ f, ¬ a ∨ b &or ¬ e ∨ ¬ f } =
{ b, ¬ b ∨ c ∨ d, ¬ b ∨ ¬ c ∨ ¬ d, c ∨ ¬ d, ¬ c ∨ d, }

Dalla prima clausola, segue b per propagazione unitaria. La propagazione di questo letterale non produce altri letterali.

{ ¬ b ∨ c ∨ d, ¬ b ∨ ¬ c ∨ ¬ d, c ∨ ¬ d, ¬ c ∨ d, } =
{ c ∨ d, ¬ c ∨ ¬ d, c ∨ ¬ d, ¬ c ∨ d, }

Come letterale di branching si può ora scegliere indifferentemente c oppure d. In questo caso, si è scelto di usare c. Dato che c appare due volte positiva e due volte negativa, anche la scelta del valore da provare per primo è arbitraria.

Il risultato di imporre c=0 è che vengono generati per propagazione unitaria sia d che ¬ d, e si ha quindi una contraddizione.

Lo stesso si ottiene per propagazione unitaria di c=1.

Avendo ottenuto inconsistenza per a=0, si passa ora all'altro ramo, in cui a=1. Gli effetti della propagazione unitaria sono:

{ a &or b, ¬ a &or c, ¬ a &or d, a ∨ ¬ b ∨ c ∨ d, ¬ b ∨ ¬ c ∨ ¬ d, a ∨ c ∨ ¬ d, ¬ c ∨ d, ¬ a ∨ c ∨ e ∨ f, ¬ a ∨ b &or ¬ e ∨ ¬ f } =
{ c, d, ¬ b ∨ ¬ c ∨ ¬ d, ¬ c ∨ d, c ∨ e ∨ f, b &or ¬ e ∨ ¬ f }

Si ottengono quindi c e d. La propagazione di questi due letterali porta al seguente risultato:

{ ¬ b ∨ ¬ c¬ d, ¬ c ∨ d, c ∨ e ∨ f, b &or ¬ e ∨ ¬ f } =
{ ¬ b, b &or ¬ e ∨ ¬ f }

Viene quindi anche generato ¬ b. La propagazione unitaria trasforma quindi l'unica altra clausola b &or ¬ e ∨ ¬ f in ¬ e ∨ ¬ f. Dal momento che le variabile e ed f compaiono ora solo negative, si può assegnare loro il valore falso.

Un modello della formula è quindi a, ¬ b, c, d, ¬ e , ¬ f.

Domanda 2

Testo

Verificare la soddisfacibilità della seguente formula usando il metodo tableaux. Usare a scelta il metodo con o senza unificazione.

{ ∃ x ∀ y Q(x, y), &forall x ¬ Q(a, x), ∀ x (Q(a, x) ∨ ¬ Q(x, x)) }

Soluzione

In questa soluzione si usa il metodo con unificazione. Le prime tre formule sono quelle dell'insieme di partenza. La quarta si ottiene per skolemizzazione della terza. La quindi, sesta e settima sono applicazioni della regola dei quantificatori universali.

Dopo aver applicato la regola dell'or, si ottengono due foglie che chiudono con x''=x'''e con x'''=c e x'=x'''. Un tableau chiuso si sarebbe quindi anche potuto ottenere usando il metodo senza unificazione, usando sempre il valore c per eliminare i quantificatori universali.

Domanda 3

Testo

Mostrare i vari passi che vengono effettuati per forzare la consistenza di arco (arc consistency) sul seguente problema. Ad ogni passo, dire su quale archi e nodi si effettua la propagazione e dire quali valori vengono eliminati.

variabili
{x, y, z, w}
domini
vincoli

Soluzione

Si illustrano i vari passi dell'algoritmo AC3, mostrando lo stato dell'insieme dei vincoli potenzialmente non consistenti e il vincolo che viene preso in considerazione ad ogni passo.

P={⟨x,y⟩, ⟨y,z⟩, ⟨z,w⟩,, vincolo considerato ⟨x,y⟩
Dy diventa {0,1}
Non viene aggiunto ⟨y,z⟩ a P perchè già presente
P={⟨y,z⟩, ⟨z,w⟩,, vincolo considerato ⟨y,z⟩
nessuna modifica
P={⟨z,w⟩,, vincolo considerato ⟨z,w⟩
Dz diventa {1}
Dw diventa {1}
dato che il dominio di z è stato modificato, il vincolo ⟨y,z⟩ viene rimesso in P
P={⟨y,z⟩}, vincolo considerato ⟨y,z⟩
Dy diventa {0}
il dominio di y è stato modificato, per cui il vincolo ⟨x,y⟩ viene rimesso in P
P={⟨x,y⟩}, vincolo considerato ⟨x,y⟩
nessuna modifica

Si ottengono quindi i seguenti domini: