Sei sulla pagina 1di 40

Calcolo della risoluzione e DPLL nella logica proposizionale

Giulio Barocchiere 6 marzo 2011

Di conseguenza, quando sorgeranno controversie fra due loso, non sar pi necessaria una discussione, come [non lo ] fra due calcolatori. Sar suciente, infatti, che essi prendano in mano le penne, si siedano di fronte agli abachi e (se cos piace, su invito di un amico) si dicano l'un l'altro: Calculemus! (Leibniz, De arte combinatoria, 1666)

Indice
1 Prospettive losoche 2 Formulazione classica del metodo di risoluzione 3 Sviluppi del metodo 4 Il DPLL 7 11
2.1 Operazioni prelimirari al calcolo della risoluzione . . . . . . . . 11 2.2 Regola di risoluzione . . . . . . . . . . . . . . . . . . . . . . . 16 3.1 Iper-risoluzione . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.1 Regole di calcolo . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2 Esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3 Costruzione dell'algoritmo . . . . . . . . . . . . . . . . . . . . 34

21

24

5 Conclusione

37

Introduzione al problema della soddisfacibilit


che ci sia di dover un numero di Supponiamoduepersona richiesto persona dividerechiestocertoesprimere nuna persone in gruppi. Ad ogni stato di preferenza su una con la quale vorrebbe stare assieme in gruppo. Come possiamo stabilire, a seconda dei dati forniti, se tutte le preferenze possono essere soddisfatte o se sono tra di loro inconciliabili?

Quello qui esposto un esempio di problema di soddisfacibilit risolvibile nella logica proposizionale. Altri esempi della stessa natura sono la stesura dell'orario delle lezioni di una classe tenendo presente le disponibilit dei professori ed evitando sovrapposizioni di orari oppure la compilazione degli orari di mezzi di trasporto pubblici (corriere, treni, metropolitane ecc...) per evitare incidenti e permettere concidenze. Si tratta in generale di trovare una soluzione possibile che rispetti tutte le condizioni ssate o viceversa di dimostrare che una tale soluzione non pu esistere. Trattando un problema di logica, il primo necessario passo verso la risoluzione del problema quello di esprimere le informazioni in nostro possesso in un linguaggio formale pi consono alla disciplina. Questo lavoro di formalizzazione ci condurr ad ottenere una formula F su cui potremo operare. Riprendendo il primo esempio proposto, protremmo denire la proposizione atomica pi come la persona j sta nel gruppo i, dove i {1, 2} e j j {1, 2, . . . , n}. Le prime condizioni che ssiamo sono quelle che impediscono ad una persona di appartenere a entrambi i gruppi contemporaneamente:
(p1 p2 ), (p1 p2 ), . . . , (p1 p2 ) 1 1 2 2 n n

Per formalizzare le preferenze, scriviamo che i e i devono essere o entrambi nel primo gruppo, o entrambi nel secondo:
(p1 p1 ) (p2 p2 ) i i i i

Congiungendo le n condizioni di incompatibilit e le n preferenze, otteniamo la formula F su cui potremo lavorare. La richiesta di trovare una situazione che rispetti tutte le condizioni ssate pu ora essere riformulata nella ricerca dell'esistenza di un assegnamento v di atomi che renda vera la formula F , ossia: v v(F ) = 1 (1) 5

Per i casi pi semplici di formule brevi con pochi letterali, questo problema pu essere risolto con i metodi tradizionali della logica classica, ossia con le tavole di verit o gli alberi semantici.

Esempio 1 Se consideriamo la formula


F = (p q) (p q) (p q)

la sua soddisfacibilit pu essere vericata compilando la sua tavola di verit; analizzando cio tutti i possibili assegnamenti nch non se ne trova uno che renda vera la formula:
p 1 1 0 0 q (p q) 1 1 1 0 1 1 0 0

1 1 1 1

(p q)

1 1 0 1

1 0 1 1

(p q)

1 0 1 1

Lo stesso risultato si pu ottenere pi rapidamente tracciando un albero semantico ponendo in radice la verit della formula in esame:
V [(p q) (p q) (p q)] F [(p q) (p q)] V [p q] F [p] F [q] F [q] V [p q] F [p] V [q]

I rami che rimangono aperti ci dicono come denire la valutazione v che rende vera la formula iniziale. I due metodi ora utilizzati, quando applicati a formule pi lunghe o semplicemente con pi letterali, diventano estremamente laboriosi. Per vericare che una formula con n letterali non soddisfacibile, potrebbe essere necessario analizzare tutti i 2n assegnamenti possibili. Per risolvere il nostro problema in maniera pi rapida dovremo adottare metodi diversi che, a dierenza delle tavole di verit, non ci forniscono tutti gli assegnamenti che soddisfano la formula ma ci dicono solamente se tali assegnamenti esistono o no. 6

1 Prospettive losoche sul problema della soddisfacibilit

citazione di Gottfried Wilhelm von ho posto epigrafe Laper le sue possibili applicazioni pratiche,Leibnizechesviluppa ainpartire da rivela come il problema del calcolo della risoluzione, introdotto no ad ora nasce si

esigenze puramente teoriche, ossia dal tentativo di matematizzare il pensiero umano, il suo linguaggio come le sue regole, per impadronirsi in ultima istanza dei concetti di vero e di falso. Leibniz era molto attratto dall'opera di Cartesio che aveva descritto in maniera completa la geometria attraverso il linguaggio della matematica riuscendo cos a ridurre le dimostrazioni geometriche in una serie di calcoli algebrici. Allo stesso modo Leibniz voleva denire un linguaggio universale (lingua characteristica ) e delle operazioni di calcolo (calculus ratiocanator ) che potessero descrivere completamente il pensiero. Egli aerma infatti: Se infatti oggetto di lode quell'uomo che ha determinato il numero dei solidi regolari - la cui scoperta non ha altro utilizzo se non il piacere che pu dare la sua contemplazione - e se considerato esercizio adatto al genio matematico l'aver portato alla luce le propriet pi eleganti di un concoide o di un cissoide o di una qualunque altra gura che dicilmente ha qualche utilizzo; quanto meglio sarebbe sottomettere a leggi matematiche il ragionare umano, che la nostra dote pi grande e pi utile. [6] Una tale opera, a suo dire, riuscirebbe a liberare la mente umana dalla necessit di dover pensare alle cose , ossia ridurrebbe il pensiero ad un puro calcolo formale. Il lavoro incominciato - sebbene con scarsi successi pratici - da Leibniz, diede i suoi primi frutti solamente due secoli dopo con l'opera di George Boole (1815-1864). Attraverso la sua ormai famosa algebra, Boole apr la strada che ci ha portato a poter meccanizzare la logica, ossia esprimere un contenu-

to [del pensiero] attraverso segni scritti in una maniera pi precisa e chiara di quanto sia possibile con le parole [9] . Ha reso cio possibile formalizzare molte categorie di concetti. L'opera di Boole fu poi perfezionata prima da Frege, poi da Peano.
1 Per

il percorso storico presentato in questo capitolo, ho seguito l'esposizione di M. Davis posta come introduzione alla raccolta di articoli riguardanti la logica computazionale edita da J. Siekmann e G. Wrightson [8]

A questo punto ci si trova davanti a due dierenti problemi. Il primo riguarda lo sviluppo della lingua characteristica e in particolare la ricerca di formalizzazioni che riescano a descrivere il maggior numero di tipi di concetti possibile. Questo ramo di ricerca punta, in ultima istanza, a chiedersi se ogni concetto pu essere formalizzato in almeno un linguaggio della logica o se esistono dei concetti intrinsecamente non formalizzabili. Il secondo problema riguarda invece lo sviluppo metodi e tecniche con cui trattare i concetti formalizzati. Si cercava cio di costruire un'algebra tale che rendesse possibile provare la verit di una aermazione con la stessa facilit con cui in matematica si risolve un'equazione. La ricerca di tali metodi, tra i quali le tavole di verit e gli alberi semantici gi presentati nell'introduzione, ha portato in ultima istanza a chiedersi se poteva esistere una tecnica che riuscisse a provare la validit di qualsiasi aermazione. Tale problema fu posto in maniera rigorosa nel 1928 dai matematici Hilbert e Ackermann nell'opera Gurndzuge der Theoretischen Logik (Fondamenti della logica teorica) con il nome di problema della decisione ( Entscheidungsproblem ). Esso si chiedeva se fosse possibile trovare un algoritmo - ossia una serie nita di istruzioni- che potesse provare la validit di qualunque proposizione. La risoluzione di questo problema e la conseguente scoperta dell'algoritmo risolutore sarebbe stato un punto di svolta non solo della logica ma della stessa matematica: un siatto algoritmo avrebbe potuto risolvere qualsiasi problema matematico formalizzabile. La speranza della risoluzione per via di un algoritmo di tutti i problemi aperti della matematica pura ebbe per breve durata: Meno di dieci anni dopo, nel 1936, Alan Turing e Alonzo Church, indipendentemente l'uno dall'altro, dimostrarono l'irrisolvibilit del problema. Avendo perso denitivamente l'alto valore teorico che aveva in partenza, l'entscheidungsproblemnon venne pi preso in considerazione no agli anni '50, in concomitanza con l'avvento dei primi computer e con prospettive radicalmente dierenti. In particolare, stato compreso che, mentre non pu

esistere un algoritmo per la teoria della quanticazione, sono possibili mlte procedure di prova e alcune di esse potrebbero essere appropriate per le moderne apparecchiature informatiche [2]. Lo scopo della ricerca si era cio ridotto a trovare un algoritmo implementabile su un elaboratore elettronico che vericasse la verit di una aermazione il pi velocemente possibile.

Le prime macchine logiche, come quella di Newell, Shave e Simond, erano semplicemente trascrizioni su macchine di precedenti metodi per la verica dei teoremi. La costruzione della macchina logica di Newell, Shave e Simond, proposta nel 1957, si articolava in questo modo: ssati un alfabeto (variabili, connettivi ecc...), alcune regole di calcolo e alcuni assiomi, si cerca una successione di formule che, attraverso le regole di calcolo, inizi con assiomi a termini con l'asserzione da dimostrare.

Figura 1: Ricerca di una dimostrazione per X Trovare una dimostrazione per un teorema nella logica simbolica pu essere descritto come la scelta di un elemento in un insieme, come mostrato nella gura. Considerate tutte le possibili successioni di formule logiche, alcune di esse - in grande minoranza - saranno dimostrazioni. Una successione che sia una dimostrazione per X soddisfa la seguente richiesta: che ogni formula della successione sia o un assioma, o ottenibile dalle formule precedenti attraverso le regole di calcolo. [...] La dicolt nel provare un teorema dipende dalla scarsit di elementi nell'intersezione tra l'insieme delle prove P e l'insieme delle successioni che terminano con X TX . [4] A partire da questi primi tentativi di costruzione di macchine logiche, si sono sviluppate due orientamenti di fondo. La prima riteneva che le macchine logiche dovessero simulare i metodi del pensiero umano sfruttando solamente la maggiore rapidit di calcolo degli elaboratori elettronici. La seconda intendeva invece superare la correlazione con i metodi di risoluzione precedenti 9

e sviluppare algoritmi pensati specicamente per una macchina sfruttando tutte le potenzialit della logica matematica. Di fatto nessuna delle due tendenze ebbe il sopravvento e le macchine logiche successive furono sviluppate combinando entrambi i punti di vista. Tra queste macchine logiche di seconda generazione si colloca il cosiddetto metodo di risoluzione, sviluppato da Davis e Putnam nel 1960 e successivamente integrato da Robinson nel 1965 con la regola della iperrisoluzione, di cui tratta la prima parte di questa tesi. La scelta di studiare proprio questo metodo dovuto soprattutto all'importanza storica che esso ha avuto introducento alcune concetti e tecniche basilari che divennero successivamente i pilastri dei metodi di risoluzione successivi.

10

2 Formulazione classica del metodo di risoluzione


In questo testo fornita una procedura per la verica di teoremi applicabile alle formule anche pi complicate ... La superiorit della presente procedura sulle precedenti dimostrata dal fatto che una formula vericata con il metodo di Gilmore su un IBM 704 in 21 minuti pu essere vericata a mano con il nostro metodo in soli 30 minuti. [2] Con queste parole nel 1960 M. Davis e H. Putnam presentarono il loro metodo di risoluzione. Il loro obiettivo era quello di costruire un algoritmo che operasse su formule scritte in una maniera pi uniforme possibile attraverso una operazione applicabile in modo automatico che portasse in un numero nito di passi al risultato.
2.1 Operazioni prelimirari al calcolo della risoluzione

Il metodo di risoluzione e tutti i suoi successivi sviluppi operano su formule espresse in una specica forma sintattica che rende possibile operare in modo meccanico su di esse.

Denizione 1 Una formula A detta in forma normale negativa se e solo se A contiene solo i connettivi , e e la negazione si applica alle sole formule atomiche. Teorema 1 Per ogni formula A esiste una formula A in forma normale negativa (fnn) ad essa equivalente. Dimostrazione: Il teorema si dimostra per induzione sulla lunghezza di A. 0 Se lg(A) = 0 allora A gi in forma normale negativa e A = A . 1 lg(A) = k + 1 pu avvenire in due casi: se A = B o se A = B C oppure A = B C dove per ipotesi indutiva B e C possono essere trasformate nelle formule equivalenti B , C in fnn. 1.1 Se A = B occorre ulteriormente distinguere: 1.1.1 Se B atomica, allora A = A = B gi in forma normale negativa. 1.1.2 Se B = D, per ipotesi induttiva deve esistere una D equivalente a D in fnn e tale formula equivalente per come l'abbiamo costruita anche ad A
11

1.2 Visto che esistono per ipotesi B e C in fnn, si avr che A = B C o


A =B C

2 Per il principio di induzione, il teorema vale per tutte le formule. Denizione 2 Una formula detta in forma normale congiuntiva se e solo se una congiunzione di disgiunzioni di atomi. Teorema 2 Per ogni formula A esiste una formula A in forma normale congiuntiva (fnc) ad essa equivalente. Dimostrazione: Assumendo che A sia in forma normale negativa, procedo per induzione sulla lunghezza di A: 0 Se A p o p, allora A gi in fnc. 1 Se A = B C , allora per ipotesi induttiva esistono gli equivalenti di B e C , B e C , in forma normale congiuntiva. 1.1 Se B e C non contengono congiunzioni, allora B C gi in fnc. 1.2 Se B C = (B1 B2 Bm ) (C1 C2 Cn ), posso applicare m + n volte le regole di De Morgan ed ottenere una formula equivalente a B C in forma normale congiuntiva. 2 Per il principio di induzione, il teorema vale per tutte le formule. Esempio 2 Per trasformare nella forma normale congiuntiva la seguente formula . . .
(a b) (a b)

prima di tutto eliminiamo le implicazioni logiche . . .


(a b) (a b) (a b) (a b)

poi trasformiamo la prima parte della formula perch la negazione operi solo su atomi:
(a b) (a b)

Ora la formula in forma normale negativa. Applichiamo ora la propriet distributiva per avere disgiunzioni all'interno delle parentesi e congiunzioni all'esterno:
(a a) (a b) (a b) (b b)

Eliminando l'ultima clausola perch una tautologia e semplicando la prima otteniamo una formula equivalente a quella di partenza nella fnc:
a (a b) (a b)

12

Una f.n.c. F avr sempre questa forma:


n pi i lj i=1 j=1

F =

(2)

e potr essere espressa attraverso l'elencazione delle sue clausole. Osservando - nell'esempio - la formula di partenza, la trasformata in fnc e la trasformata in fnn, evidente che al passaggio dalla forma normale negativa alla forma normale congiuntiva la formula si ingigantisce esponenzialmente. Una formula in fnn con n parentesi, potrebbe avere nella forma normale congiuntiva no a n2 clausole. Risulta quindi conveniente cercare un metodo alternativo che ci permetta di lavorare su formule con il minor numero di clausole possibile. Sapendo inoltre che il problema di soddisfacibilit non ricerca i singoli assegnamenti che soddisfano la formula ma ne prova solamente l'esistenza; possiamo utilizzare per il calcolo, al posto della formula di partenza, un'altra formula in fnc non equivalente alla prima ma solamente equisoddisfacibile. Presenter quindi un metodo che, data una formula F in fnn, mi produca una formula F tale che:
v : v(F ) = 1 v : v (F ) = 1

Una formula F che sia gi in f.n.n. ma non in f.n.c. deve per forza contenere una sottoformula del tipo c (d1 d2 ). Invece di applicare le leggi distributive a c (d1 d2 ), consideriamo una nuova lettera proposizionale a e costruiamo la formula F con:
(F [a/d1 d2 ]) (a d1 ) (a d2 )

dove F [a/d1 d2 ] ottenuta da F sostituendo (una o pi) occorrenze di sottoformule del tipo d1 d2 con a. Si noti che la lunghezza della nuova formula stata incrementata al pi di una quantit costante, per cui il fenomeno di esplosione in spazio non pu ripetersi.

Teorema 3 La formula F in tal modo costruita equisoddisfacibile rispetto a F. Dimostrazione: prender in esame una generica formula A = (a b) C e la sua trasformata B = (d C) (d a) (d b)
1. v : v(A) = 1 v : v (B) = 1 Ponendo che il nuovo assegnamento v sia uguale a v per tutti i letterali in comune, verico attraverso un albero semantico che posto v(A) = 1 si pu sempre costruire un v tale che v (B) = 1.
13

v(A) = 1 v(a b) = 1 v(a) = 1 v(b) = 1 v(C) = 1

Ora a ciascun ramo dell'albero associo un assegnamento v che renda vera la formula B . v'(a)=v(a)=1 v'(b)=v(b)=1 v'(d)=1 v'(B)=1 v'(C)=v(C)=1 v'(d)=0 v'(B)=1

2. Provo nella stessa maniera la seconda parte del teorema, ossia:


v : v (B) = 1 v : v(A) = 1 v (B) = 1 v (d C) = 1 v (d) = 1 v (d a) = 1 v (a) = 1 v (d b) = 1 v (b) = 1 v (C) = 1

v(a)=v'(a)=1 v(b)=v'(b)=1 v(A)=1

v(C) = v'(C)=1 v(A)=1

Esempio 3 Trasformare nella forma normale congiuntiva la formula:


F = (p q) (t r) (p s) (p q)

14

utilizzando il metodo adottato nel precedentente esempio comporterebbe un aumento esponenziale della lunghezza della formula (no a 16 clausole). Proveremo allora qui ad adottare il metodo appena introdotto per vericarne l'ecacia:
F [a/p q] (a p) (a q) [(a (t r) (p s) (p q))] (a p) (a q)

Proseguo sostituendo le altre tre parentesi con i nuovi letterali b, c e a


[a b (p s) (p q)] (a p) (a q) (b t) (b r) ... (abcd)(ap)(aq)(bt)(br)(cp)(cs)(dp)(dq)

Le clausole su cui dovremo operare, non contando la prima clausola che una tautologia, sono solamente otto, la met di quelle che avremmo ottenuto con il metodo classico.
La scelta della forma normale congiuntiva come standard per il calcolo della soddisfacibilit di una formula non casuale: essa semplica e rende pi immediato il calcolo stesso. Essendo il problema della soddisfacibilit quello di dimostrare se esiste un assegnamento che soddis la formula F, v v(F ) = 1 , se la formula espressa in fnc il problema pu essere scomposto nella dimostrazione dell'esistenza di un assegnamento che soddis tutte le clausole di F:
v i v(C i ) = 1

ossia dimostrare che esiste un assegnamento che renda vero almeno un letterale in ogni clausola:
i i v i j lj C v lj = 1

Nel seguito di questa trattazione, prenderemo in esame solo formule in fnc e le indicheremo in forma insiemistica come l'insieme delle loro clausole:
F = {C1 , C2 , . . . , Cn }

15

2.2

Regola di risoluzione

Data una formula F espressa in forma normale congiuntiva, prendo in considerazione due qualsiasi sue clausole A, B . Se esiste uno e un solo letterale l tale che A lo contenga e B ne contenga la sua negazione, allora si pu denire l'operazione cos denita:
AB =A B

dove A la clausola A privata del letterale l e B la clausola B privata del letterale l . importante che il letterale l sia unico per ogni coppia anch la formula risultante A B sia unica e non sia una tautologia. Altrimenti un'operazione come per esempio (p q r) (p q r) potrebbe fornire tre dierenti risultati tutti tautologici. La formula in questo modo calcolata conseguenza logica delle due formule di partenza e pu essere espressa come regola della logica proposizionale:
A l B l AB

(3)

La bont di questa regola pu essere dimostrata intuitivamente in quanto, presupponendo che entrambe le clausole devono essere soddisfatte: 1. se l vera; allora, perch la seconda clausola venga soddisfatta, deve esserci un letterale in B che la soddis; 2. se l falsa; allora, perch la prima clausola venga soddisfatta, deve esserci un letterale in A che la soddis. Dimostriamo ora la regola di risoluzione in maniera pi rigorosa attraverso la deduzione naturale:
l B [l ] E B I BA l A [l ] E A I BA AB

l l

(4)

Possiamo inoltre denire, a partire da F , l'insieme R delle formule ottenute dall'operazione sugli elementi di F :
R = {A B : A, B F }

Tale insieme, per sua denizione, dipende dall'insieme F di partenza. Avendo poi dimostrato che gli elementi di R sono conseguenza logica degli elementi 16

di F , allora l'insieme F R logicamente equivalente all'insieme F e ogni assegnamento che soddisfa F deve soddisfare anche F R. Per costruire un metodo di risoluzione basato sull'operazione , denisco due applicazioni che operano dall'insieme dei numeri naturali alla famiglia delle formule logiche:
f :NF r:NF f (0) = F f (1) = f (0) r(0) f (n) = f (n 1) r(n 1) r(n) = {A B : A, B f (n)}

In pratica user una denizione pi agile dell'applicazione r:


r(n) = {A B : A (f (n) f (n 1)), B f (n)}

In questo modo diminuisco le operazioni da compiere e le formule che non vengono prese in considerazione rispetto alla formulazione precedente sono tutte gi presenti in f (n).

Denizione 3 Chiamiamo derivazione da F nel calcolo della risoluzione l'insieme D immagine dell'applicazione f. Denizione 4 Diciamo che una derivazione termina quando l'operazione non riesce pi a produrre formule nuove, ossia quando n : f (n) = f (n 1) . In tal caso avremo che D = f (n) = Im(f ) Teorema 4 Ogni derivazione termina (l'insieme derivazione limitato) Dimostrazione: Considero una formula F nella quale compaiono, tra forme positive o negative, 2k letterali. Per non essere una tautologia, ogni clausola dovr avere al massimo k letterali. Il numero massimo di tali clausole pari a:
k

n=
i=1

2k i

ossia al numero delle combinazioni di 2k elementi a 1 a 1, a 2 a 2, . . . a k a k . Combinando poi a due a due la clausole attraverso la regola di risoluzione, otterremo formule anch'esse con un numero di letterali pari o inferiore a k. L'insieme derivazione non pu contenere pi di n elementi ed pertanto limitato.

Lemma 1 L'applicazione f conserva la soddisfacibilit:


n v : v(f (n)) = 1 v(f (n + 1)) = 1

17

Questo lemma deriva direttamente dalla denizione dell'applicazione. Essendo infatti r(n) conseguenza logica di f (n), anche f (n + 1) = f (n) r(n) conseguenza logica di f (n) da cui segue l'asserto.

Teorema 5 Se la derivazione D di una formula F contiene la clausola vuota, F insoddisfacibile. Dimostrazione: se D allora sar possibile trovare un k tale che f (k) e tale insieme insoddisfacibile. Per il lemma 1 se f (k) insoddisfacibile, anche f (k 1) lo e - a catena - ogni f (i) insoddisfacibile. Pertano se D contiene la clausola vuota, F = f (0) insoddisfacibile. Teorema 6 Se la derivazione di una formula F non contiene la clausola vuota, F soddisfacile. Dimostrazione: prendo in considerazione l'insieme derivazione D, che per ipotesi non contiene la clausola vuota, e provo a costruire un assegnamento v tale che v(D) = 1. Proceder per induzione:
0. Incomincio a costruire l'assegnamento v (che in principio sar vuoto):
v=

1. Prendo in considerazione le clausole non soddisfatte da v che abbiano un solo letterale non valutato e lo valuto in modo tale da soddisfare la clausola:
v(C) = 1 v(l ) = 1 v(l ) = 1

Un tale assegnamento si pu sempre trovare poich in caso contrario ci dovrebbero essere clausole che produrrebbero la clausola vuota nella derivazione. 2. Prendo in considerazione le clausole non soddisfatte da v con pi di un letterale non valutato, scelgo tra esse quella con il minor numero di letterali non valutati e ne valuto uno a piacere. Anche in questo caso impossibile che sorgano conitti in quanto le clausole porterebbero nella derivazone alla clausola vuota. 3. Torno al punto 1: applico in serie i punti uno e due nch tutte le clausole sono soddisfatte. Essendo possibile costruire una valutazione di F dalla sola ipotesi dell'assenza della clausola vuota dalla sua derivazione, la tesi provata.
I risultati ottenuti dai precedenti due teoremi possono essere riespressi in modo sintetico nei seguenti modi: 18

Teorema 7 Condizione necessaria e suciente perch una formula F sia insoddisfacibile che la sua derivazione contenga la clausola vuota:
v v(F ) = 0 D(F )

o anche: Condizione necessaria e suciente perch una formula F sia soddisfacibile che la sua derivazione termini senza la clausola vuota:
v : v(F ) = 1 D(F ) /

Se una formula F insoddisfacibile, gli insiemi f (k) contenenti la clausola vuota sono detti refutazioni di F .

Esempio 4 Vericare se il seguente insieme di clausole soddisfacibile:


F = {a b, b c, a c d, b c d, a d}

Procedo costruendo le due funzioni:


f (0) = F r(0) = {b d, a b d, b d, a c} f (1) = f (0) {b d, b d, a b d, a c} r(1) = {bd, cd, abd, abd, bd, ab, abc, ab, bc, b} f (2) = f (1) {c d, a b d, a b c, a b c, b c} r(2) = {b c d, b c, b d, a b, b, a b} f (3) = f (2) {b c d} f (4) = f (3)

La derivazione conclusa e la formula di partenza soddisfacibile.


La procedura del metodo della risoluzione cos formulata pu essere rappresentata in forma insiemistica tenendo presente che
f (0) f (1) f (2) Im(f )

Nella rappresentazione graca troviamo dunque all'esterno l'insieme della derivazione che contiene tutti gli insiemi concentrici f (0), f (1) . . . f (n). Per la costruzione si parte dal nucleo, ossia da f (0), e successivamente si costruiscono le corone circolari inserendo le formule ottenute con l'operazione non ancora presenti nell'insieme. In questo modo la corona circolare pi esterna risulta vuota indicando la conclusione della procedura. 19

Figura 2: Rappresentazione graca dell'esempio 4

Esempio 5 Vericare se esiste un'assegnamento v che soddisfa la formula F:


F = {p q, p q, p q, p q}

Anche in questo caso sviluppo le due funzioni f ed r:


f (0) = F r(0) = {q, q q, q, p, p p} f (1) = f (0) {q, q q, q, p, p p} r(1) = {p, p, q, , . . . }

20

Avendo trovato che che r(1) e dunque f (2), la formula in esame non soddisfacibile e f (2) una refutazione di F .

3 Sviluppi del metodo


Al metodo di risoluzione precedentemente esposto possono essere applicate alcune regole aggiuntive per rendere pi rapida la conclusione della procedura. Si tratta cio di trovare delle restrizioni che ci permettano ad ogni passaggio di eliminare da r(i) tutte le clausole inutili che appesantiscono il procedimento. Poich tuttavia queste restrizioni non portano a signicativi miglioramente del procedimento, essi saranno tralasciati in questa trattazione. Mi soermer invece su altro percorso che possiamo seguire per migliorare il calcolo della risoluzione che consiste nel potenziare la regola stessa.
3.1 Iper-risoluzione

L'iper-risoluzione un metodo di risoluzione analogo al precedente ma in certi casi pi potenente. Esso fu proposto nel 1965 dal matematico J.A. Robinson

come base per la costruzione di programmi informatici pi ecienti per la ricerca di prove di teoremi di diversi campi della matematica [7]. Prendiamo in considerazione una formula ideale cos strutturata:
F= {l1 l2 ln p1 p2 pm } C1 {p1 } C2 {p2 } ... Cm {pm }

(5)

Essa contiene una clausola mista (contenente cio atomi e negazioni da atomi) e una serie di m clausole positive. Chiameremo nucleo la prima clausola e satelliti le altre. Questo tipo di formula pu essere visualizzato attraverso il graco radiale in gura. Notiamo che sulle clausole di questa formula posso applicare l'operazione in maniera iterativa nel seguente modo: detto N il nucleo e Si i sateliti possibile questa serie di operazioni
N S0 = I1 N S1 = I2 ...

21

Figura 3: Clausola nucleo e clausole satellite


N Sm = I

ossia
{l1 l2 ln p1 p2 pm } C1 {p1 } {l1 l2 ln p2 p3 pm } C1 C2 {p2 } {l1 l2 ln p3 pm } C1 C2 C3 {p3 } {l1 l2 ln } C1 C2 Cm

. . .

(6) La clausola risultante non contiene pi nessun letterale del tipo pi o pi . Posso quindi formalizzare l'operazione di iper-risoluzione che si applica su una clausola nucleo N e un insieme S di clausole satelliti in questa maniera:
N S = ((((N S0 ) S1 ) . . . ) Sm )

A dierenza dall'operazione di risoluzione precedentemente descritta, l'iperrisoluzione non ha un numero sso di clausole matrici: richiesto solamente 22

che sia presente il nucleo e almeno un satellite. Risulta evidente le maggiore potenza di questa nuova regola di risoluzione che pu essere quanticata dal numero delle clausole satellite coinvolte. Chiameremo iper-derivazione l'insieme di tutte le formule I ottenibili attraverso l'operazione .

Teorema 8 L'insieme di iper-derivazione coincide con l'insieme di derivazione Dimostrazione: essendo l'operazione di iper-risoluzione una semplice iterazione dell'operazione di risoluzione, ogni elemento dell'iper-derivazione contenuto nella derivazione (I D). Allo stesso modo ogni elemento della derivazione pu essere visto come risultato di una iper-risoluzione avente un solo satellite (D I ). I due insiemi sono dunque coincidenti.
Quest'ultimo teorema ci mostra che la superiorit dell'iper-risoluzione vale solo quando la formula in analisi insoddisfacibile mentre in caso contrario i due metodi sono equivalenti.

Esempio 6 Trovare una iper-refutazione della formula:


F = {p q r , p q r , p q , p}

Posso facilmente trasformare F nella forma richiesta dalla regola di iperrisoluzione con alcune sostituzioni: a = p b = q c = r
F = {a b c , ab c , a b , a}

Applico l'operazione di iper-risoluzione su tutte le clausole della formula:


(a b c) {ab c, a b, a} =

23

4 Il DPLL

P sultato, anche leper ricercareed ilmetodo radicalmente diverso.furono ben restrizioni calcolo dell'iper-risoluzioni presto abbandonati un

ur riducendo signicativamente il tempo necessario per ottenere il ri-

Infatti gi nel 1962, solo due anni dopo l'invenzione della regola di risoluzione, i matematici Martin David Davis, George Logemann e Donald W. Loveland presentano un nuovo algoritmo per il calcolo della soddisfacibilit nell'articolo A machine program for theorem-proving . [1] Tale algoritmo prende il nome di DLL o anche DPLL per il non secondario e successivo apporto del matematico Hilary Putnam. Il DPLL:
un algoritmo

ossia una procedura che, come il calcolo della risoluzione, utilizza un certo numero di regole di calcolo per ottenere un risultato in un numero nito (e il pi piccolo possibile) di passaggi;
2

costruisce un assegnamento v che possa soddisfare la formula in analisi. tratta coppie ordinate (v, F ) dove F la formula da studiare e v un

assegnamento parziale (assegna cio il valore di verit solo ad una parte dei letterali presenti nella formula). Ogni passaggio della procedura ha questa sintassi:
v F

La procedura DPLL ha subito nel corso degli anni vari miglioramenti e tuttora i pi recenti metodi di risoluzione sono basati sulla procedura DPLL. L'algoritmo qui esposto corrisponde quasi completamente a quella classica con alcune aggiunte e modiche tratte dall'esposizione di Silvio Ghilardi (et al.) [3] . Per l'esposizione della versione orginale della procedura e dei successivi miglioramenti, si veda invece l'articolo di Nieuwenhuius (et al.)[5] .

in maniera specica nell'ultima sezione di questo capitolo.

2 Della procedura dpll come algoritmo funzionale per un elaboratore informatico tratter

24

4.1

Regole di calcolo del DPLL classico

L'obiettivo della procedura consiste nel costruire un assegnamento di variabili v che renda vera la formula F in esame. La procedura si sviluppa attraverso l'applicazione di una serie di regole di transizione del tipo:
v v F R F

La regola R valida se e solo se si pu vericare che la formula


vF v F

sia una tautologia. Le prime tre regole che presento lasciano immutata la formula F e aggiungono informazioni all'assegnamento v . La prima regola (asserzione) si applica ogni qual volta sia presente nella formula in esame una clausola atomica. La seconda (scelta) permette di decidere di attribuire ad un letterale un valore di verit arbitrario con la successiva possibilit di ritornare indietro e rivedere la scelta. La terza regola (letterale puro) si applica solamente nei casi in cui fosse presente un letterale che compaia solo in forma aermativa o solo in forma negativa. In n dei conti, le regole dell'asserzione e del letterale puro non sono altro che applicazioni speciche della regola della scelta.
v F l Asserzione v, l F l

(7)

Teorema 9 La regola dell'asserzione valida, cio


v (F l) (v l) (F l)

una tautologia. Lo verico con il metodo degli alberi semantici:

25

0[ v (F l) (v l) (F l) ] 1[v ((F l)] 0[(v l) (F l)] 1[v l] 0[F l] 1[v] 1[l] 0[v] 1[f l] 1[F ] 1[l] 0[F ] 0[l] v F F v, l Scelta

v, l

(8)

Teorema 10 La regola della scelta valida, cio


(v F ) ((v l) F ) ((v l) F )

una tautologia. Anche questa regola si pu prevare con il metodo degli alberi semantici: La dimostrazione rapida in quanto la formula
((v l) F ) ((v l) F )

una tautologia:
0[(v F ) ((v l) F ) ((v l) F )] 1[v F ] 0[((v l) F ) ((v l) F )] v F Letterale P uro v, l F

(9)

sse l presente in F solo in forma aerativa. 26

Teorema 11 La regola del letterale puro deriva direttamente dalla regola della scelta. Se infatti ad essa aggiungo il fatto che nessuna clausola di F contiene l, allora sono certo che se F soddisfacibile, il ramo v, l F non pu chiudersi.
Le prossime due regole, invece, modicano la formula in esame F per rendere pi semplice e immediata la procedura. La prima (sussunzione) ci permette di eliminare da F tutte le clausole gi soddisfatte dall'assegnamento parziale mentre la seconda (risoluzione unitaria) cancella dalle clausole tutti i letterali che la falsicano.
v, l F, c l Sussunzione v, l F

(10)

Teorema 12 La regola della sussunzione valida: la tecnica dimostrativa uguale alle precedenti dimostrazioni:
0[((v l) (c l) F ) ((v l) F )] 1[(v l) (c l) F ] 0[(v l) F ] 1[v l] 0[F ] 0[v l] 1[(c l) F ] 1[F ] v, l F, c l Risoluzione U nitaria v, l F, c

(11)

Teorema 13 La dimostrazione della validit della regola della risoluzione unitaria, provata dal fatto che la formula
(v l) F (c l) (v l) F c

una tautologia, lasciata al lettore.


Queste ultime due regole, operando su insiemi disgiunti di clausole, possono essere applicate contemporaneamente in un unico passaggio. Tali regole, applicabili sempre dopo una delle tre precedenti, sostituiscono la formula di 27

partenza F con una formula residuale F dalla quale sono state eliminate tutte le clausole soddisfatte e sono stati cancellati i letterali complementari rispetto a quelli presenti nell'assegnamento parziale.

Esempio 7 Dato un'insieme di clausole F , applico su di esso la procedura dpll:


F = {a, a b, a c d, a c} a a F F

a c d, a c a a, c a, c a, c a, c, d a, c, d c d, c c d, c c d d d

La procedura a questo punto conclusa e la la formula in esame stata dimostrata soddisfacibile. Gli assegnamenti che la soddisfano sono forniti dall'assegnamento parziale e sono:
v(a) = 1 v (a) = 1 v(b) = 0 v (b) = 1 v(c) = 1 , v (c) = 1 v(d) = 1 v (d) = 1

Teorema 14 Data una formula F espressa in fnc, se si riesce a concludere la procedura svuotando l'insieme della clausole, allora la formula F soddisfacibile. Dimostrazione: Per il teorema 12 (validit della regola della sussunzione) se una formula F soddisfacibile, almeno in un ramo della procedura si riuscir a costruire un'assegnamento v tale che v . Per dimostrare che vale anche il teorema inverso, ci basta provare (con la stessa prassi dei precedenti teoremi) l'inverso del teorema 12, ossia che la seguente formula una tautologia:
((v l) F ) ((v l) (c l) F )

28

Esempio 8 Dato un insieme di clausole, applico su di esso la procedura dpll:


F = {a, a b c, b c, b c} a a a, c F F

b c, c, b c b c, c, b c a, c a, c, b a, c, b b, b b, b b

Ci troviamo a questo punto in una situazione di stallo poich l'assegnamento parziale non riesce a soddisfare la clausole b. La formula di partenza non dunque soddisfacibile.

Teorema 15 Un ramo della procedura dpll si chiude quando si trova nella formula una clausola non soddisfatta dall'assegnamento parziale. Se tutti i rami della procedura si chiudono, la formula di partenza insoddisfacibile. Dimostrazione: All'inizio della procedura ( F ) ho ipotizzato che la formula fosse soddisfacibile. Se la procedura prosegue in maniera lineare senza l'utilizzo della regola della scelta e porta alla contraddizione v, l F l la tesi si dimostrata errata ed provata l'insoddisfacibilit di F. Se invece la procedura fa uso della regola della scelta, l'ipotesi di soddisfacibilit spalmata su tutti i rami della procedura. Avendo detto nel precedente teorema che basta un ramo per provare la soddisfacibilit di una formula, allora per provare l'insoddisfacibilit sar necessario dimostrare che tutti i rami portano a contraddizione.

29

4.2

Esempi di applicazione del metodo

Esempio 9 Riesaminiamo la formula dell'esempio 5 con la procedura DPLL:


F = {a b, b c, a c d, a d, b c d}

Verichiamo che la formula soddisfacibile (per aggevolare la lettura in questo primo esempio ho scritto di anco ad ogni passaggio quale regola stata applicata):
{a b, b c, a c d, a d, b c d} Sc a {a b, b c, a c d, a d, b c d} Su a {b c, a d, b c d} RU a {b c, d, b c d} A a, d {b c, d, b c d} Su a, d {b c, b c d} LP a, d, b {b c, b c d} Su a, d, b

Utilizzando questo metodo, a dierenza del calcolo della risoluzione, otteniamo gi uno o pi assegnamenti che soddisfano la formula F. Per trovarli basta prendere l'ultimo assegnamento parziale della procedura e completarlo a piacere:
v v(a) = 0 v(b) = 1 v(d) = 1 v(F ) = 1

Esempio 10 Vericare se la seguente formula soddisfacibile:


F = {a b, a b, a c, a c}

Non potendo applicare la regola dell'asserzione su nessun letterale, applichiamo subito la regola della scelta sul letterale a:
a b, a b, a c, a c

a b, a b, a c, a c a a a c, a c a c c c

a b, a b, a c, a c a a b, a b a a, b b, b b

Non riuscendo a costruire un'assegnamento in nessun ramo dell'albero, la formula F non soddisfacibile.
30

a, c

Esempio 11 Si calcoli se le tre seguenti formule sono soddisfacibili contemporaneamente: 1. (a b) (a b c)


2. (b c) (a b c) 3. (c a) (a b c) Prima di tutto trasformiamo le tre formule in forma normale congiuntiva: 1. (a b c) (a v) (a b) (a b c) 2. (a b c) (b c) (a b c) (b c) 3. (a c) (a b c) (a b c) (a c) Unendo le tre formule ottenuto ed eliminando le clausole che si ripetono otteniamo la formula su cui applicare la procedura dpll:
a b c b a b F = a b c b c b c a b c a c a c F

a a

a b c, a b, b c, b c, a c a a, b, c b c, b, b c, b c, c b c, b, b c, b c, c a, b, c

Per attestare che le tre formule di partenza sono soddisfacibili contemporaneamente, suciente esibire un assegnamento che le soddis:
v(a) = 1 v : v(b) = 1 v(c) = 1

Potremmo a questo punto vericare se le tre formule assieme formano una tautologia vedendo con la procedura dpll se la formula
(a b) (abc) (b c) (abc) (c a) (abc)

31

insoddisfacibile. In questo caso evidente che le tre formule non formano assieme una tautologia e un'assegnamento v che le falsichi tutte si trova facilmente:
v(a) = 0 v(b) = 0 v(c) = 0

Esempio 12 Vericare con la procedura dpll che il seguente un teorema:


((t r) p) s (((p q) (t r)) (p s))

Ci che mi richiesto di vericare che la formula


F = ((t r) p) s (((p q) (t r)) (p s))

una tautologia, ossia che la sua complementare F' insoddisfacibile. Portiamo la formula F' nella forma normale congiuntiva:
F = {tr, p, s, pt, pr, pts, prs, pqt, qts, pqr, qrs}

Applichiamo alla formula la procedura dpll iniziando con la regola dell'asserzione su q e s:


q, s F t r, p, p t, p r t r, p t, p r t r, t, r t r, r t r, r r

p, q, s

p, q, s p, q, s, t

p, q, s, t, r

La procedura verica che F' non soddisfacibile e che dunque F un teorema.

p, q, s, t, r

Esempio 13 Vericare se la seguente formula una tautologia:


(a b) ((a c) (b c)) c

Per risolvere questo problema costruiamo una formula derivata da quella di partenza che insoddisfacibile se e solo se la formula di partenza una tautologia:
(a b) ((a c) (b c)) c

32

che trasformata in forma normale congiuntiva diventa:


F = {a c, a b, a b, b c, c}

Applicando ora la procedura dpll constatiamo che F soddisfacibile e di conseguenza la formula di partenza F non un teorema:
c c a c, a b, a b, b c, c a c, a b, a b, b c, c a c, a b, a b, b c c c, a, b a, a b, a b, b a, a b, a b, b c, a, b

Il problema della soddisfacibilit ha svariate applicazioni pratiche. La risoluzioni di tali applicazioni si sviluppa in tre fasi: la formalizzazione del problema, la trasformazione delle formule logiche in forma normale congiuntiva ed inne l'applicazione di uno dei metodi di risoluzione. Proveremo in quest'ultimo esempio a percorrere tutte queste tre fasi applicando nell'ultima il metodo del dpll.

Esempio 14 In occasione di un anniversario, una coppia di sposi decide di fare una festa e si accorda per scegliere gli invitati. Le opininioni dei due coniugi non sono sempre concordanti. Lo sposo vuole avere alla festa almeno uno dei compagni di pinnacolo (Andrea, Pietro e Luca), ma la sposa pretende che non vengano tutti e tre. La sposa vuole invitare entrambe le sue amiche di pallavolo (Chiara e Valentina), ma Chiara non va d'accordo con Andrea e Valentina non va d'accordo con Pietro. Inne Luce non viene senza la sua danzata Sabrina, che disposta a venire solo se invitata anche Chiara. possibile trovare una soluzione senza lasciare nessuno insoddisfatto?
Iniziamo formalizzando i dati del problema: Almeno uno dei compagni di pinnacolo . . . apl . . . ma non tutti e tre a p l Entrambe le amiche di pallavolo . . . cv . . . ma Chiara non va d'accordo con Andrea . . . a c . . . e Valentina non va d'accordo con Pietro p v Luce non viene senza la sua danzata Sabrina . . . l s . . . che viene solo se invitata Chiara cs
33

Trasformiamo i dati ottenuti in forma normale congiuntiva e costruiamo l'insieme di clausole F si cui operare:
F = {a p l, a p l, c, v, a c, p v, l s, s l, c s} c, v c, v F F

a p l, a p l, a, p, l s, s l, s a p l, a p l, a, p, l s, s l, s c, v, a, p, s c, v, a, p, s, l l

c, v, a, p, s

Visto che l'assegnamento costruito con la procedura completo, il problema ha un'unica soluzione: per soddisfare tutte le richieste, i due sposi devono chiamare solamente Luca, Chiara, Valentina e Sabrina.
4.3 Costruzione dell'algoritmo della procedura DPLL

L'obiettivo principale della procedura DPLL era, come abbiamo gi detto precedentemente, quello di costruire un algoritmo espresso come una serie nita di operazioni che partendo dalla formula in esame (input) e mi fornisse come risposta se la formula sia soddisfacibile o no (output ). Partendo da alcuni automatismi che si possono facilmente notare nei precedenti esempi, ho cercato di costruire un procedimento meccanico che mi determini in modo oggettivo e univoco quali regole utilizzare e quando. Partiamo dal caso (ipotetico e ideale) in cui non si debba mai fare uso della regola della scelta che, come vedremo, dar i maggiori problemi. 0. Applico, se possibile, la regola del letterale puro. 1. Studio la formula F e guardo se posso applicare la regola dell'asserzione. Avendo ipotizzato di non dover mai utilizzare la regola della scelta, la risposta sar in questo caso positiva. 2. Applico la regola dell'asserzione su tutte le clausole atomiche di F . 3. Applico le regole della sussunzione e della risoluzione unitaria. Avendo applicato precedentemente la regola dell'asserzione, almeno una delle due regole pu essere applicata ad almeno una clausola. 34

4. Studio la formula F prodotta nel passo precedente. Se la procedura si conclusa posso fornire il risultato (soddisfacibile o insoddisfacibile), altrimenti ritorno al punto 1.

Figura 4: Rappresentazione dell'algoritmo senza la regola della scelta Proseguiamo ora l'algoritmo studiando il caso in cui non possa essere applicata la regola dell'asserzione. 1. Studio la formula F e guardo se posso applicare la regola dell'asserzione. In caso aermativo passo al punto 3, altrimenti proseguo al punto 1.1. pongo v(a) = x. 1.2 Applico le regole della sussunzione e della risoluzione unitaria. Avendo applicato precedentemente la regola della scelta, almeno una delle due regole pu essere applicata ad almeno una clausola. 1.3 Studio la formula F prodotta nel passo precedente. Se la procedura si conclusa positivamente posso fornire il risultato (soddisfacibile).Se si conclusa negativamente, asserisco che v(a) = 1 x e 35

1.1 Applico la regola della scelta su un letterale a presente in F e

1.4

1.5 1.6 1.7

passo al punto 2. Se inne la procedura non si ancora conclusa, proseguo Studio la formula F e guardo se posso applicare la regola dell'asserzione. Se posso applicarla passo al punto 1.5, altrimenti passo al punto 1.4.1 1.4.1 Applico la regola della scelta. ... Applico la regola dell'asserzione su tutte le clausole atomiche di F. Applico le regole della sussunzione e della risoluzione unitaria. Studio la formula F prodotta nel passo precedente. Se la procedura si conclusa positivamente posso fornire il risultato (soddisfacibile).Se si conclusa negativamente, asserisco che v(a) = 1 x e passo al punto 2. Se inne la procedura non si conclusa, ritorno al punto 1.4

2. Applico la regola dell'asserzione. 3. Applico le regole della sussunzione e della risoluzione unitaria. 4. Studio la formula prodotta nel passo precedente. Se la procedura si conclusa posso fornire il risultato (soddisfacibile o insoddisfacibile), altrimenti ritorno al punto 1. L'utilizzo della regola della scelta presenta due problematicit. La prima sta nel fatto che essa produce una serie innita di sottoprogrammi che si aprono via via tutte le volte che non posso applicare la regola dell'asserzione. In secondo luogo dovendo procedere in maniera lineare, devo an analizzare i rami prodotti dalla scelta ad uno ad uno. Risulta quindi necessario introdurre una nuova regola, detta backtrack , che ci permetta di risalire il ramo no all'ultima scelta compiuta. Per queste due ragioni lo schema dell'algoritmo (vd. gura 5) risulta sempre incompiuto e tutt'altro che intuitivo. A causa di questi problemi, la ricerca successiva si concentrata soprattutto sulle regole della scelta e del backtrack per sviluppare regole pi potenti e pi alla portata degli elaboratori elettronici.

36

5 Conclusione

Plineai teorica risoltodierisoluzione, potrebbeaisembrarequi descritti servano e vari metodi che il problema sia in tutti i ranamenti metodi
er come stato trattato no ad ora il problema della soddisfacibilit
unicamente a rendere ancora pi rapido il calcolo. In realt le problematiche, anche teoriche, presenti in questi metodi sono rilevanti e non riguardano solamente la lentezza delle operazioni. In primo luogo risulta problematica la trasformazione nella forma normale congiuntiva di formule al di fuori della logica proposizionale. Oltre a questo, come ammisero gli stessi ideatori del dpll, i metodi qui descritti non possono essere la risposta per la soluzione di problemi matematici signicativi o almeno non banali [1]. Come prova di questa essenziale inecacia del metodo nell'ambito del problemi non banali , nel medesimo articolo in cui esposta per la prima volta la procedura dpll, viene mostrato anche un teorema della teoria dei gruppi che la procedura non riesce n a provare, n a refutare [1]. Il problema della risoluzione, dimostrando palesemente la sua inecacia nell'ambito della logica e della matematica pura, si riduce ad essere strumento delle scienze applicate quali l'informatica per il calcolo e la risoluzione in tempi rapidi di problemi matematicamente banali.

37

Riferimenti bibliograci
[1] M. Davis, G. Logemann, and D. Loveland. Machine program for theoremproving. Journal of the ACM, 1962. [2] M. Davis and H. Putnam. A computing procedure for quantication theory. Journal of the ACM, 1960. [3] S. Ghilardi, E. Nicolini, and D. Zucchelli. Introduzione alla logica proposizionale e alla procedura dpll. Universit di Milano, 2007. [4] A. Newell, J. Shaw, and H. Simon. Empirical explorations of the logic theory machine: a case study in heuristic. Journal of the ACM, 1957. [5] R. Nieuwenhuis, A. Oliveras, and C. Tinelli. Solving sat and sat modulo theories: from an abstract davis-putnam-logemann-loveland procedure to dpll. Journal of the ACM, 2006. [6] Parkinson. Leibniz logical papers. Oxford press, 1966. [7] J. Robinson. Automatic deduction with hyper-resolution. Internation journal of computer mathematics, 1965. [8] J. Siekmann and G. Wrightson. Automation of reasoning. Symbolic computation, 1983. [9] van Heijenoort. Form Frege to Godel. Harvard university press, 1967.

38

39 Figura 5: Rappresentazione di un possibile algoritmo per la procedura DPLL

Potrebbero piacerti anche