RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

Documenti analoghi
Esercitazioni per il corso di Logica Matematica

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale.

C1: L C1 C2: L C2 C: C1 C2

11. Misure con segno.

Esercitazioni per il corso di Logica Matematica

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine

Logica proposizionale

Logica per la Programmazione

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Logica: materiale didattico

DAI NUMERI NATURALI AI NUMERI RAZIONALI

Alberi: definizioni e dimostrazioni induttive.

Logica. 7: Conseguenza ed equivalenza logica in logica classica proposizionale. Claudio Sacerdoti Coen. Universitá di Bologna

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

Precorsi di matematica

3.2 Calcolo della risoluzione

Maiuscole e minuscole

Gli insiemi N, Z e Q. I numeri naturali

Appunti sui Codici di Reed Muller. Giovanni Barbarino

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R):

04 - Logica delle dimostrazioni

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or )

LOGICA MATEMATICA. Sonia L Innocente. Corso di Laurea. Informatica e Tecnologie/Informatica Industriale. Argomento 1. Logica proposizionale

02 - Logica delle dimostrazioni

carattere a b c d e f cod. var

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

Def. La lunghezza media L(C) di un codice C per una v.c. Obiettivo: Codice ottimo rispetto alla lunghezza media. Lunghezza media di un codice

LA MATEMATICA DELLE RELAZIONI SOCIALI

METODI MATEMATICI PER L INFORMATICA

Appunti del Corso Analisi 1

APPUNTI DI TEORIA DEGLI INSIEMI. L assioma della scelta e il lemma di Zorn Sia {A i } i I

Logica per la Programmazione

8. Completamento di uno spazio di misura.

Introduzione ai grafi

Dimostrazione: Data una allora non appartiene all immagine. Se per

1 Principio di Induzione

La codifica digitale

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

1 IL LINGUAGGIO MATEMATICO

Linguaggi e Grammatiche Liberi da Contesto

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento

c A (a c = b) Le ipotesi che abbiamo ci dicono che esistono h, k A tali che:

Note sulle classi di complessità P, NP e NPC per ASD (DRAFT)

Fondamenti di Informatica 2

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo. Paolo Baiti 1 Lorenzo Freddi 1

Logica proposizionale

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Sistemi compatibili (Il metodo di Fourier-Motzkin) Claudio Arbib Università degli Studi di L Aquila

Logica per la Programmazione

m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica

Suffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

LE EQUAZIONI DIFFERENZIALI. che, insieme alle loro derivate, soddisfano un equazione differenziale.

LOGICA MATEMATICA PER INFORMATICA

Dimostrazione. Indichiamo con α e β (finiti o infiniti) gli estremi dell intervallo I. Poniamo

Due numeri naturali non nulli a, b tali che MCD(a,b) = 1 si dicono coprimi o relativamente primi.

LOGICA MATEMATICA. Sonia L Innocente. Corso di Laurea. Informatica e Tecnologie/Informatica Industriale

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.

3. Successioni di insiemi.

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Compressione Dati. Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p.

Logica proposizionale

La definizione di Ultrafiltro e la regolarità per partizioni

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

04 - Numeri Complessi

Prima lezione. Gilberto Bini. 16 Dicembre 2006

LE EQUAZIONI DI SECONDO GRADO

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI

ESERCIZI E COMPLEMENTI DI ANALISI MATEMATICA: quinto foglio. A. Figà Talamanca

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Prova scritta di Matematica Discreta e Logica del giorno 3 luglio 2017 Soluzione degli esercizi FILA D

Esistenza ed unicità per equazioni differenziali

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

3/10/ Divisibilità e massimo comun divisore

Linguaggi. Claudio Sacerdoti Coen 29,?/10/ : La struttura dei numeri naturali. Universitá di Bologna

EQUAZIONI DI PRIMO GRADO

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

1 Campi di spezzamento

Alcune nozioni preliminari di teoria elementare di insiemi e funzioni

Serie numeriche e serie di potenze

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.

Possibile applicazione

2.6 Calcolo degli equilibri di Nash

OSTRUZIONI SUI GRAFI. Alcune ostruzioni per l esistenza di grafi con dato score 1) Vale il seguente lemma

Università degli Studi di Palermo Facoltà di Economia. CdS Sviluppo Economico e Cooperazione Internazionale. Appunti del corso di Matematica

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Matematica e Statistica per Scienze Ambientali

Osservazione 1.1 Si verifica facilmente che esiste un unica relazione d ordine totale su Q che lo renda un campo ordinato.

Teoria della Programmazione Lineare Intera

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo.

Appunti di. Logica. per l insegnamento di Matematica Discreta e Logca del corso di laurea triennale in Informatica

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

Espressioni regolari

Transcript:

RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale positivo) oppure la negazione di una variabile proposizionale (letterale negativo). Se l è un letterale, allora l = { P, se l = P P P, se l = P con P P Definitione 1.2. Una clausola è F oppure una disgiunzione di un numero finito di letterali: C = l 1... l n. Ad esempio sono clausole le formule seguenti: P Q; P ; P Q. Da un punto di vista sintattico la clausola P Q è distinta dalla clausola Q P, ma l ordine non conta se consideriamo le clausole a meno di equivalenza semantica. Per questa ragione adotteremo la rappresentazione insiemistica di una clausola, indicandola semplicemente con l insieme di letterali di cui è disgiunzione: ad esempio, rappresenteremo entrambe le clausola P Q, Q P con l insieme {P, Q}. L insieme vuoto di letterali corrisponde alla clausola e si indica con. Ad esclusione della clausola vuota, che è insoddisfacibile, tutte le altre clausole sono soddisfacibili (basta rendere vero un letterale contenuto nella clausola). É invece possibile che un insieme di clausole sia insoddisfacibile: ad esempio, se S contiene la clausola vuota oppure le due clausole {l}, {l}, per un dato letterale l. Come vedremo, questi due esempi rappresentano dei casi semplici di insoddisfacibilità. L iniseme vuoto S = di clausole è invece sempre soddisfacibile (ogni valutazione lo rende vero). Definitione 1.3. Siano C 1.C 2 due causole ed l un letterale tale che l C 1, l C 2. Il risolvente di C 1, C 2 rispetto al letterale l è la clausola (in notazione insiemistica) Res l (C 1, C 2 ) = (C 1 \ {l}) (C 2 \ {l}) Definitione 1.4. Dato un insieme di clausole S definiamo induttivamente l insieme Res n (S), per ogni n N, in modo che Res 0 (S) = S e: Res n+1 (S) = Res n (S) {C : l, C 1 Res n (S), C 2 Res n (S), C = Res l (C 1, C 2 )}. Notiamo che vale Res n (S) Res n+1 (S), per ogni n N. Un altra caratterizzazione degli insiemi Res n (S) ci viene dalla definizione di albero di risoluzione di una clausola C da S: un tale albero T è un albero binario finito in cui le foglie sono etichettate da clausole in S, la radice è etichettata da C e ogni nodo interno è etichettato seguendo la regola di risoluazione: se i discendenti diretti del nodo sono etichettati con C 1, C 2 allora il nodo è etichettato con Res l (C 1, C 2 ), per un opportuno letterale l. Se C =, l albero T si dice anche un albero di refutazione per risoluzione di S. Non 1

RISOLUZIONE IN LOGICA PROPOSIZIONALE 2 è allora difficile convincersi per induzione su n che Res n (S) se e solo se esiste un albero di refutazione di S di altezza al più n (vedi gli esercizi alla fine). Esempio 1.1. Se S è l insieme di clausole S = {{ P, U}, { Q, U}, { U}, {P, R}, {Q, R, }, allora Res P ({ P, U}, {P, R}) = {U, R} Res 1 (S); la clausola {Q, U} = Res R ({Q, R, }, {U, R}) appartiene invece a Res 2 (S). Gli insiemi Res n (S) possono essere utilizzati per costruire un algoritmo, basato sulla regola di risoluzione, che controlli la soddisfacibilità o meno di un insieme di causole. Per prima cosa si nota che: Lemma 1.1. Se esiste n N con C Res n (S), allora S = C. Dimostrazione. La dimostrazione procede per induzione su n. Il caso base è banale perché se C Res 0 (S) = S allora S = C. Nel passo induttivo, supponiamo che C Res n+1 (S): se C Res n (S) otteniamo S = C per induzione, altrimenti esistono un letterale l e due clausole C 1, C 2 in Res n (S) tali che l C 1, l C 2 e C = Res l (C 1, C 2 ). Sappiamo inoltre per induzione che le clausole C 1, C 2 sono conseguenze logiche di S. Per dimostrare che C è conseguenza logica di S ci basta allora notare che vale: C 1, C 2 = C. Per dimostare questa conseguenza logica, sia v una valutazione tale che v(c 1 ) = v(c 2 ) = V. Vogliamo dimostrare che v(c) = V, dove C = Res l (C 1, C 2 ).. Dividiamo la dimostrazione in due casi, a seconda che valga v(l) = V oppure v(l) = F. Nel primo caso, poiché v(c 2 ) = V e v(l) = F, deve esistere un letterale l C 2 \ {l} con V (l ) = V ; tale letterale apparterrà anche a C = (C 1 \ {l}) (C 2 \ {l}) e quindi v(c) = V. Nel secondo caso il ragionamento è analogo al precedente e si ottiene scambiando C 2 con C 1 e l con l. L implicazione opposta del Lemma precedente non è valida: basta considerare l insieme di clausole (contenente un unica clausola) S = {{P }} e C = {P, Q}: si ha S = C ma Res 1 (S) = S, quindi Res n (S) = S per ogni n e nessuno di questi insiemi contiene C. Possiamo però dimostrare: Teorema 1.2. Se S è insoddisfacibile (cioè se S = ), allora esiste numero naturale n tale che Res n (S). Dimostreremo questo Teorema per prima cosa nel caso in cui S è un insieme finito di clausole. Lo generalizzeremo poi a tutti gli insiemi di clausole utilizzando il Terorema di Compattezza. Nel caso in cui l insieme S è finito, dimostreremo il Teorema?? per induzione, ma il giusto parametro su cui basare l induzione non è il numero delle clausole di S bensí il numero delle variabili proposizionali P per cui P o P appare in S (in altre parole: la cardinalità del linguaggio di S). Indicheremo tale numero con n(s). Il risultato che permette di far funzionare l induzione si basa sulla costruzione dell insieme S l : Ricordiamo che vale: S l := {C \ {l} : C S, l C}. Lemma 1.3. Un insieme di clausole S è soddisfacibile se e solo se S l è soddisfacibile oppure S l è soddisfacibile.

RISOLUZIONE IN LOGICA PROPOSIZIONALE 3 Corollario 1.4. Un insieme di clausole S è insoddisfacibile se e solo se S l e S l sono entrambi insoddisfacibili. Notiamo che l non compare più nei letterali presenti nelle clausole di S l e S l. Ne segue che, se l appartiene al linguaggio di S allora n(s) > n(s l ), n(s) > n(s l ). Insieme al Lemma?? questo risultato suggerisce di utilizzare una dimostrazione induttiva su n(s) per provare: Teorema 1.5. (Completezza del metodo di risoluzione, caso finito) Se S è un insieme finito di clausole insoddisfacibile, allora esiste un n N tale che Res n (S). Dimostrazione. Sia S un insieme insoddisfacibile di clausole. La dimsotrazione procede per induzione sul numero n(s) di variabili proposizionali P tali che P o P appartengono a clausole in S. Se n(s) = 0, allora S = { } (S non può essere l insieme vuoto perché tale insieme è soddisfacibile) e S = Res 0 (S). Nel passo induttivo n(s) > 0 ed esiste almeno una variabile proposizionale P tale che P o P appartiene ad una delle clausole di S. Consideriamo i due insiemi di clausole S P = {C \ {P } : C S, P C}, S P = {C \ {P } : C S, P C}. Poiché S è insoddisfacibile, dal Lemma?? segue che S P e S P sono insoddisfacibili. Ma né P né P appartengono a S P o a S P, quindi n(s) > n(s P, n(s) > n(s P ). Per ipotesi induttiva, quindi, possiamo trovare un numero n 1 tale che Res n 1 (S P ) e possiamo trovare un numero n 2 tale che Res n 2 (S P ). Questo significa che esistono due alberi T 1, di altezza n 1 e T 2, di altezza n 2, che sono di refutazione per S P, S P, rispettivamante. Se in T 1 le etichette delle foglie sono clausole in S, (questo avviene se le etichette delle foglie in T 1 sono clausole C in S con l C, l C), allora abbiamo trovato una derivazione della clausola vuota da S, e lo stesso vale per T 2. Altrimenti in T 1 c è almeno una foglia etichettata da una clausola in S P \ S e in T 2 c è almeno una foglia etichettata da una clausola in S P \ S. Rietichettiamo allora gli alberi T 1, T 2 come segue. Per quanto riguarda T 1, aggiungiamo P alle foglie etichettate da clausole in S P \ S. Affinché l albero ottenuto sia un albero di risoluzione, però, dovremo cambiare le etichette anche dei nodi interni a partire dai predecessori delle foglie, per poi arrivare fino alla radice: aggiungeremo P anche alle etichette dei nodi interni, se P compare nelle etichette di almeno uno dei due figli. In questo modo si ottiene un albero di risoluzione T 1 di P da S. L albero T 2 viene rietichettato in modo simile, reintroducendo opportunamente la variabile P. In questo modo si ottiene un albero di risoluzione T 2 di P da S. Un ultimo passo di risoluzione consente allora di costruire un albero di risoluzione di da S. Per quanto detto, questo albero avrà altezza pari a n = max{n 1, n 2 } + 1 e quindi Res n (S), come volevasi dimostrare. Esempio Sia Abbiamo: S = {{Q, R}, {Q, R}, { Q, S}, { S, R}, { Q, R}}.

RISOLUZIONE IN LOGICA PROPOSIZIONALE 4 S Q = {{S}, { S, R}, { R}} S Q = {{R}, { R}, { S, R}} (S Q ) S = {{R}, { R}} (S Q ) S = {, { R}} (S Q ) S = {{R}, { R}} (S Q ) S = {{R}, { R}} ((S Q ) S ) R = { } ((S Q ) S ) R = { } Abbiamo quindi refutazioni di altezza zero degli insiemi (S Q ) S ) R, (S Q ) S ) R. Dalla refutazione di (S Q ) S ) R otteniamo una risoluzione di altezza zero della clausola { R} da (S Q ) S ; dalla refutazione di ((S Q ) S ) R otteniamo una risoluzione di altezza zero della clausola {R} da (S Q ) S. Un ultimo passo di risoluazione ci permette di ottenere una refutazione di (S Q ) S. Similmente otteniamo una refutazione di (S Q ) S. A partire dalla refutazione di (S Q ) S possiamo, reinserendo S, arrivare ad una risoluzione della clausola { S} da S Q ; a partire dalla refutazione di (S Q ) S possiamo invece, reinserendo S, arrivare ad una risoluzione della clausola {S} da S Q. Mettendo insieme questi alberi, con un ultima risoluzione sul letterale S arriviamo ad una refutazione di S Q. Si prosegue poi trovando una refutazione di S Q, che, insieme a quella di S Q ci permette di ottenere la refutazione di S. Il Teorema?? vale anche nel caso S non sia un insieme finito. La dimostrazione usa il Teorema di Compattezza: Teorema 1.6. (Teorema di Completezza, caso generale). Se S è un insieme insoddisfacibile di clausole, allora esiste una refutazione per risoluzione di S. Dimostrazione. Abbiamo già dimostrato il caso finito nel Teorema??. Se S è infinito e insoddisfacibile, dal Teorema di compattezza segue l esistenza di un sottoinsieme S 1 finito di S a sua volta insoddisfacibile. Per la completezza nel caso finito, sappiamo allora che esiste una refutazione per risoluzione di S 1, e l albero così trovato è banalmente anche una refutazione per risoluzione di S. Notiamo infine che vale: Lemma 1.7. Per ogni S finito esiste un n calcolabile a partire da S tale che, per ogni m n, vale: Res n (S) = Res m (S). Dimostrazione. Sia S = {C 1,..., C h }. È sufficiente allora notare che, se C 1... C n = {l 1,..., l k }, allora per ogni n e C Res n (S) vale C {l 1,..., l k }; siccome ci possono essere al più 2 k clausole di questo tipo, ne segue che ogni Res n (S) ha cardinalità al più pari a 2 k ed ogni catena di inclusioni strette fra insiemi del tipo S Res(S) Res 2 (S)... avrà, al piú, lunghezza 2 k. Ne segue che se m n = 2 k si ha Res n (S) = Res m (S). I teoremi??,?? ed il Lemma?? ci danno un algoritmo per testare l insoddisfacibilità di un insieme finito di clausole. Generiamo gli insiemi Res n (S) fino a che non troviamo in essi la clausola vuota oppure ci troviamo un n per cui Res n (S) = Res n+1 (S). Nel primo caso l insieme è insoddisfacibile, nel secondo caso invece è soddisfacibile. Tale metodo può essere applicato con successo anche al problema di stabilire se una formula F è valida: basta infatti considerare un insieme di clausole che rappresenti una forma normale congiuntiva di F e testare questo insieme per insoddisfacibilità. In pratica dato un insieme S non si genera tutto l insieme Res 1 (S), poi tutto Res 2 (S),

RISOLUZIONE IN LOGICA PROPOSIZIONALE 5 etc, nella speranza di trovare la clausola vuota, ma si cerca direttamente un albero di refutazione per S. 1.1. Esercizi. (1) Dimostrazione per risoluzione la validità della legge di derivazione per casi ((A C) (B C) (A B C) : (2) Trasformare ognuna delle formule seguenti in un insieme di clausole logicamente equivalente. Utilizzare poi il metodo di risoluzone per stabilire se la formula di partenza è insoddisfacibile. (P Q) (P R) P ( Q R); [(P Q) (P R)] P ( Q R); (P R) (Q R) (P Q) R; (3) Sia S l insieme di clausole dove S = {C 1, C 2, C 3, C 4, C 5, C 6, C 7, C 8, C 9 }, C 1 = { P 0, P 1, P 2 } C 2 = { P 0, P 1, P 3 } C 3 = { P 4, P 5, P 6 } C 4 = { P 6, P 3, P 7 } C 5 = {P 0 } C 6 = {P 1 } C 7 = {P 4 } C 8 = {P 5 } C 9 = { P 7 } Dimostrare con il metodo di risoluzione che S è insoddisfacibile. (4) Dimostrare per induzione su n che C Res n (S) se e solo se esiste un albero di risoluzione di C da S di altezza minore o uguale ad n. (5) Dimostrare la validità delle seguenti formule con il metodo di risoluzione (considerare cioè la negazione della formula data, trovare un insieme di clausole logicamente equivalente a tale negazione e applicare risoluzione a questo insieme). (P Q) P (Q R S) (R S) S (P Q) (Q P ); (P Q) ( Q P );

RISOLUZIONE IN LOGICA PROPOSIZIONALE 6 (6) Siano C 1 = {l, l } C 1, C 2 = {l, l } C 2. Considera la regola che permette di passare dalle clausole C 1, C 2 alla clausola C 1 C 2. Tale regole è corretta? (cioè, è vero che C 1, C 2 = C 1 C 2, come avviene con risoluzione?) (7) Considerare il seguente insieme di clausole S: S = {{P, Q}, { P, R}, { P, S}, {R, S}, { Q, R}, { Q, S}}. i Dimostrare che S è insoddisfacibile con il metodo di risoluzione; ii dimostrare che non esiste alcun albero di refutazione per risoluzione di S in cui tutte le foglie siano etichettate da clausole distinte (cioè non esiste una refutazione per risoluzione che utilizza una sola volta le clausole di S). (8) Una clausola C si dice di Horn se contiene al più un letterale positivo. Ad esempio, C = {P, Q, R} e C = { Q, R} sono clausole di Horn, mentre D = {P, Q} non lo è. Sia S un insieme di clausole di Horn insoddisfacibile. (a) Dimostrare che S, se non contiene la clausola vuota, deve contenere almeno una clausola del tipo {l} con l letterale positivo; (b) Dimostrare che se S è insoddisfacibile, allora esiste una risoluzione lineare della clausola vuota da S.