.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Logica matematica (http://www.dsy.it/forum/forumdisplay.php?forumid=246)
-- Aiuto DPLL (http://www.dsy.it/forum/showthread.php?threadid=34491)


Posted by darkshadow on 28-03-2008 15:34:

Aiuto DPLL

Ciao ragazzi.

Ho saltato le ultime lezioni di logica in cui ha spiegato le DPLL.
Qualcuno puo' gentilmente fare qualche esempio di come funziona??
magari commentando l'esercizio in modo tale da capire come si fanno.

Ho dato uno sguardo sulle dispense ma ci sono solo delle formule e gli esercizi non vengono commentati quindi è difficile capire come funziona.

Grazie in anticipo.

__________________
by Ð@rk§h@ÐØw


Posted by yeah on 28-03-2008 16:04:

Devo vedere se trovo quello che avevo studiato e a metterlo in qualche forma utilizzabile.

Di preciso che dubbi hai?

__________________
?


Posted by darkshadow on 28-03-2008 16:41:

so che bisogna prima fare la fnn poi la fnc e poi fare la dpll. Le prime due le so invece la dpll non l'ho proprio capita perchè nelle dispense fa vedere degli esempi ma non spiega i passaggi che fa.

se riesci a postare qualche esempio commentandolo mi fai un grande favore.

__________________
by Ð@rk§h@ÐØw


Posted by Simeon on 28-03-2008 19:03:

Dopo che hai aiutato darkshadow potresti dirmi come ti muoveresti in questa situazione, per favore?

p1=0 - {¬p4, p2 V p3, p2 V ¬p3 V ¬p4, p4}

la cosa che non mi convince e' la presenza di ¬p4 e p4. non so se posso proseguire normalmente o fermarmi dichiarando l'insoddisfacibilita' (se non ci fossero le altre clausole di mezzo farei cosi').


@darkshadow : non so se ti possa essere d'aiuto, ma ai tempi io usai
http://homes.dsi.unimi.it/~zucchell.../SlidesDPLL.pdf per capire la DPLL. Sono gli stessi lucidi che si trovano sul sito, ma lo svolgimento della DPLL e' commentato e piu' chiaro.


Posted by yeah on 28-03-2008 20:20:


la cosa che non mi convince e' la presenza di ¬p4 e p4. non so se posso proseguire normalmente o fermarmi dichiarando l'insoddisfacibilità (se non ci fossero le altre clausole di mezzo farei cosi').

Sì, alla fine dovresti ottenere la clausola vuota, soltanto che devi continuare ad applicare le regole fino in fondo. Prosegui applicando l'asserzione e poi la risoluzione unitaria :)

Ricorda che è un algoritmo, quindi anche se ad intuito si capisce che non è soddisfacibile, devi comunque proseguire finché ottieni la clausola vuota da tutti i rami della procedura.


Le prime due le so invece la dpll non l'ho proprio capita perchè nelle dispense fa vedere degli esempi ma non spiega i passaggi che fa.

Ok, dalla FNC ottieni qualcosa come: C1 ^ C2 ^ C3, queste le traduci nell'insieme di clausole C={C1, C2, C3}.
La DPLL mira a trovare un assegnamento (anche parziale) che soddisfi l'insieme di clausole, cioè le tue Ci saranno scritte impiegando diverse lettere proposizionali (p, q, r, ...) e con la DPLL arrivi ad ottenere qualcosa come {p = 1, q = 1, r = 0, ...} col quale tutte le clausole dell'insieme sono soddisfatte (cioè valgono vero), oppure hai la clausola vuota e C è insoddisfacibile.


Questo e' un esercizio che avevo fatto, c'è solo una parte (infatti al primo passo ho fatto uno spezzamento di cui ho poi verificato solo una parte), dimmi come ti trovi.



In sostanza, per applicare una regola devi verificare che il tuo insieme di clausole te lo consenta, ad esempio la sussunzione:

V |- C u {p v C}
----------------------------- (col vincolo che devi avere già p=1)
V |- C

significa che passi da {p = 1} |- {p v q, r} a {p=1} |- {r}
in pratica, dato che hai già deciso per p=1, la clausola che contiene p (essendo una disgiunzione di letterali) sarà sempre soddisfatta per p=1, indipendentemente dal valore assunto dagli altri letterali.

__________________
?


Posted by Simeon on 28-03-2008 20:48:

Originally posted by yeah
Sì, alla fine dovresti ottenere la clausola vuota, soltanto che devi continuare ad applicare le regole fino in fondo. Prosegui applicando l'asserzione e poi la risoluzione unitaria :)


Hai ragione, cosi' facendo mi rimane

p1=0,p4=0 - {p2 V p3, (clausola vuota)}

e proseguendo avrei

p1=0,p4=0,p2=1,p3=1 - clausola vuota

ti ringrazio nuovamente :asd:

Se ti dovesse avanzare un attimo di tempo e voglia prima di lunedi' mi farebbe molto piacere se potessi risolvere alcuni esercizi su DPLL, potrebbe essere d'aiuto anche ad altri.

Li copio qua, poi fai come vuoi

1)
code:
¬p V s, p V q, p V r, p V ¬q V ¬t, ¬p V ¬s, ¬r V t


2)
code:
¬p v s v r, p v q, p v r, ¬q v ¬s v p, ¬p v ¬s


3)
code:
¬p V s, p V q, p V r, ¬q V ¬r V p, ¬p V ¬s


Posted by yeah on 28-03-2008 21:04:


Se ti dovesse avanzare un attimo di tempo e voglia prima di lunedi' mi farebbe molto piacere se potessi risolvere alcuni esercizi su DPLL, potrebbe essere d'aiuto anche ad altri.

Ammazza quanti sono o_O

Provate a farli che li controllo :asd:

__________________
?


Posted by Simeon on 28-03-2008 21:07:

Originally posted by yeah
Ammazza quanti sono o_O

Provate a farli che li controllo :asd:


Io li ho fatti ma di quei tre in particolare mi sembra di sbagliare il procedimento, per questo sarebbe stato comodo che tu li risolvessi.

Poi oh, se non ti va non importa, ma era il procedimento che contava (almeno per me).


Posted by yeah on 28-03-2008 21:20:

Posta il procedimento che lo guardo ;)

__________________
?


Posted by Simeon on 28-03-2008 22:18:

Bon, li copio dal quad ( i passaggi di sussunzione e risoluzione unitaria sono impliciti )

code:
¬p V s, p V q, p V r, p V ¬q V ¬t, ¬p V ¬s, ¬r V t


asserzioni e letterali puri non se ne possono fare, spezzo su p:

[RAMO p=1]

p=1 - {s,¬s,¬r V t}

letterale puro per r

p=1,r=0 - {s,¬s} (qui non mi convinceva la sparizione di t e l'applicazione del letterale puro)

asserzione su s e ris. unitaria su ¬s

p=1,r=0,s=1 - clausola vuota

[RAMO p=0]

p=0 - {q,r,¬q V ¬t,¬r V t}

asserzione su q

p=0, q=1 - {r,¬t,¬r V t}

asserzione su r

p=o, q=1, r=1 - {¬t,t}

asserzone su t

P=0, q=1, r=1, t=1 - clausola vuota

Insoddisfacibili entrambi i rami

code:
¬p v s v r, p v q, p v r, ¬q v ¬s v p, ¬p v ¬s


qui c'e' r e non c'e' ¬r, per cui applico il letterale puro (e' giusto?)

r=1 - {pvq,¬q V ¬s V p, ¬p V ¬s}

spezzo su p

[RAMO p=1]

r=1,p=1 - {¬s}

asserzione su ¬s

r=1,p=1,s=0 (q e' sparita, va bene l'assegnamento parziale?)

[RAMO p=0]

r=1,p=0 - {q,¬q V ¬s}

asserzione su q

r=1,p=0,q=1 - {¬s}

asserzione su ¬s

r=1,p=0,q=1,s=1

Vengono due assegnamenti, di cui uno parziale

code:
¬p V s, p V q, p V r, ¬q V ¬r V p, ¬p V ¬s


niente asserzioni o letterali puri, spezzo su p

[RAMO p=1]

p=1 - {s,¬s} (q sparisce... boh=

asserzione su s

p=1,s=1 - {¬s}

ris. unitaria su s

p=1,s=1 - clausola vuota

[RAMO p=0]

p=0 - {q,r,¬q V ¬r}

asserzione su q

p=0, q=1 - {r,¬r}

asserzione su r

p=0, q=1, r=1 - {¬r}

ris. unitaria su ¬r

p=0, q=1, r=1 - clausola vuota

insoddisfacibili entrambi i rami

EDIT: corretta lettera eser. 2


Posted by darkshadow on 29-03-2008 08:13:

grazie ragazzi.

non ho ancora avuto tempo di guardare bene perchè sono un po' impegnato ma più tardi lo farò, e se avro' dei dubbi li postero'.

grazie ancora.

__________________
by Ð@rk§h@ÐØw


Posted by Larios on 29-03-2008 14:03:

ho provato a fare gli esercizi ma non ho capito perchè sullo spezzamento del primo esercizio una volta ottenuto:

p=1 - {s,¬s,¬r V t}

fai -> letterale puro per r

nel senso non capisco perchè prendi prima ¬r di s non mi pare ci siano precedenze di questo genere da rispettare sugli appunti, se ho capito male in caso contrario devo prendere il primo elmento che è o 1 o 0 corretto?

il secondo e terzo mi vengono anche a me cosi.


Posted by Larios on 29-03-2008 14:22:

Originally posted by yeah






All'inizio non si puo applicare nulla quindi applico lo spezzamento su p. Perchè sul secondo ramo non compare p=0 ma q=0.

Sicuro che è corretto? :?


Posted by Simeon on 29-03-2008 14:55:

Originally posted by Larios
[B]ho provato a fare gli esercizi ma non ho capito perchè sullo spezzamento del primo esercizio una volta ottenuto:

p=1 - {s,¬s,¬r V t}

fai -> letterale puro per r

nel senso non capisco perchè prendi prima ¬r di s non mi pare ci siano precedenze di questo genere da rispettare sugli appunti, se ho capito male in caso contrario devo prendere il primo elmento che è o 1 o 0 corretto?


Mah, l'ho fatto senza nessuna ragione particolare, volendo avrei potuto prendere prima s e farci l'asserzione, ma poi mi rimaneva la clausola vuota tra le palle e l'ho lasciata per ultima :asd:

Se il procedimento e' giusto penso vada bene uguale.


Posted by Larios on 29-03-2008 15:05:

ok :)

per quel che riguarda l'esercizio svolto di yeah è giusto?


Posted by yeah on 30-03-2008 12:53:

----- Primo esercizio di Simeon -----


p=1,r=0 - {s,¬s} (qui non mi convinceva la sparizione di t e l'applicazione del letterale puro)

Dal momento che avevi (not) r e r=0, ti rimaneva t per risoluzione unitaria (regola 2.3); a parte quel passaggio, il risultato è giusto per quel ramo.

E' giusto anche il secondo ramo.


----- Secondo esercizio di Simeon -----


qui c'e' r e non c'e' ¬r, per cui applico il letterale puro (e' giusto?)

Giusto, ah nel passaggio subito è comparso (not) r anziché (not) s, sicuramente un errore di battitura, lo scrivo per altri che potrebbero leggerlo :)


r=1 - {pvq,¬q V ¬s V p, ¬p V ¬s}

spezzo su p

Non è formalmente sbagliato, però lo spezzamento è meglio tenerlo come ultima spiaggia, e applicare prima tutte le altre, se si può. Dal momento che avevi (not) s e non avevi s, potevi applicare il letterale puro ottenendo:
r=1,s=0 - {pvq,¬q V ¬s V p, ¬p V ¬s}
r=1,s=0 - {pvq}
E fare lo spezzamento qui.

Dal momento che le regole possono essere applicate in modo sparso, si possono ottenere percorsi diversi, ciò che conta è il risultato finale, che deve essere uguale.

(Non ho capito se questo è un dubbio o no :)) Ottenere un assegnamento parziale è perfettamente lecito, se provi ad usarlo nell'insieme di clausole di partenza vedrai che, benché esso manchi di alcune lettere proposizionali, soddisfa comunque le clausole.


----- Terzo esercizio di Simeon -----


[RAMO p=1]

p=1 - {s,¬s} (q sparisce... boh=

q non "sparisce", ma si trova in una clausola in cui compare anche p e poiché a p hai assegnato 1, la clausola in cui compare q è soddisfatta qualsiasi sia il valore di verità che le assegneresti (dal momento che è in OR con p).

Il resto è corretto.



Mah, l'ho fatto senza nessuna ragione particolare, volendo avrei potuto prendere prima s e farci l'asserzione, ma poi mi rimaneva la clausola vuota tra le palle e l'ho lasciata per ultima :asd:

Se il procedimento e' giusto penso vada bene uguale.

E' giusto, le regole si possono applicare nell'ordine che si preferisce, infatti conviene applicarle in modo da facilitarsi i conti :)


All'inizio non si puo applicare nulla quindi applico lo spezzamento su p. Perchè sul secondo ramo non compare p=0 ma q=0.

Sicuro che è corretto?

Quello che vedi è un secondo spezzamento, su q :). Dello spezzamento iniziale ho svolto solo un ramo, con p=1. L'altro (nel rettangolo vuoto) non c'è. Ho preferito postare questo esercizio piuttosto che un altro che era lungo il doppio, perché il procedimento è sempre lo stesso, serve acquisire un po' di dimestichezza con le regole (che è meglio sappiate riscriverle senza guardare gli appunti).

__________________
?


Posted by Larios on 30-03-2008 13:19:

si poi mi sono accorto... grazie :)

solo un dubbio, ma se vedo che il primo ramo di uno spezzamento è soddisfacibile non è finito l'esercizio?

in questo caso nel 2) si puo applicare nuovamente il letterale puro e dimostare che è sodisfacibile, senza usare lo spezzamento, o sbaglio?


r=1,s=0 - {pvq}
E fare lo spezzamento qui.




Posted by yeah on 30-03-2008 13:34:


solo un dubbio, ma se vedo che il primo ramo di uno spezzamento è soddisfacibile non è finito l'esercizio?

Sì, mentre se ti risulta la clausola vuota devi andare avanti finché i rami ti risultano insoddisfacibili :)

__________________
?


Posted by Simeon on 30-03-2008 15:37:

Originally posted by yeah


Dal momento che avevi (not) r e r=0, ti rimaneva t per risoluzione unitaria (regola 2.3); a parte quel passaggio, il risultato è giusto per quel ramo.


Eh no scusa, se ho r=0 su ¬r si usa la sussunzione, per cui sparisce l'intera clausola ¬r V t. O no?


Giusto, ah nel passaggio subito è comparso (not) r anziché (not) s, sicuramente un errore di battitura, lo scrivo per altri che potrebbero leggerlo :)


Si, ora l'ho corretto :)


Non è formalmente sbagliato, però lo spezzamento è meglio tenerlo come ultima spiaggia, e applicare prima tutte le altre, se si può. Dal momento che avevi (not) s e non avevi s, potevi applicare il letterale puro ottenendo:
r=1,s=0 - {pvq,¬q V ¬s V p, ¬p V ¬s}
r=1,s=0 - {pvq}
E fare lo spezzamento qui.


Vero, tnx (se ho ben capito questo e' l'unico vero errore, in quanto DOVEVO usare il letterale puro prima dello spezzamento).


Dal momento che le regole possono essere applicate in modo sparso, si possono ottenere percorsi diversi, ciò che conta è il risultato finale, che deve essere uguale.


Appunto, quindi il mio primo esercizio dovrebbe risultare corretto (e non ho capito se e' cosi' o meno)


q non "sparisce", ma si trova in una clausola in cui compare anche p e poiché a p hai assegnato 1, la clausola in cui compare q è soddisfatta qualsiasi sia il valore di verità che le assegneresti (dal momento che è in OR con p).


E quindi e' giusto ? Se poi mi scrivi "il resto e' corretto" non capisco (sti esercizi sono troppo soggetti a errori del cazzo, per questo vado in paranoia e servono conferme :asd: )

Ah giusto:


=1,s=0 - {pvq}
E fare lo spezzamento qui.


Perche' spezzamento? abbiamo p e non abbiamo ¬p, abbiamo q e non abbiamo ¬q, non si puo' semplicemente applicare il letterale puro a uno dei due? Lo spezzamento si fa quando non si puo' fare altro no?




Cioe' riassumendo, di SBAGLIATO ci dovrebbe essere solo l'esercizio 2 in quanto ho applicato lo spezzamento quando si poteva fare il letterale puro (anche se poi il risultato veniva giusto uguale).


Posted by darkshadow on 30-03-2008 19:30:

una cosa sul es. 2 dopo aver arrivato a:

r = 1, s = 0 - {p V q} applico il letterale puro su p ed ottengo:

r = 1, s = 0, p = 1 che la rende soddisfacibile.

ma q?? il suo vale è indifferente??

stessa cosa avviene se invece di p prendo q.

__________________
by Ð@rk§h@ÐØw


Posted by Bisciu on 30-03-2008 19:39:

se ti rimane p V q assegni a p il valore 1. per il letterale puro a questo punto riscrivi p V q e il passaggio successivo cancelli l'intera clausola perchè se hai p V q e p è vera allora di conseguenza lo è anche q.

detto in termini logici.

r = 1, s = 0 - {p V q} applico il letterale puro su p ed ottengo:

r = 1, s = 0, p = 1 - {p v q} applico quindi una sussunzione ed ho:

r = 1, s = 0, p = 1 - zero quindi sat

ciao


Posted by darkshadow on 30-03-2008 21:25:

per quanto riguarda la teoria?? c'e' nel compito??

per esempio in un compito c'e' questo esercizio:

Sia A V B una contraddizione e sia r una lettera proposizionale. Allora
1) il sequente A ----> r è dimostrabile
2) il sequente r ----> A è dimostrabile
3) il sequente r ----> A V B è dimostrabile

come si fa??

__________________
by Ð@rk§h@ÐØw


Posted by Simeon on 30-03-2008 21:38:

Originally posted by darkshadow
per quanto riguarda la teoria?? c'e' nel compito??

per esempio in un compito c'e' questo esercizio:

Sia A V B una contraddizione e sia r una lettera proposizionale. Allora
1) il sequente A ----> r è dimostrabile
2) il sequente r ----> A è dimostrabile
3) il sequente r ----> A V B è dimostrabile

come si fa??


Dimostrabile ? Cos'e' quella roba ? :o

Magari hai guardato a compiti PARECCHIO vecchi.


Posted by darkshadow on 30-03-2008 22:22:

Originally posted by Simeon
Dimostrabile ? Cos'e' quella roba ? :o

Magari hai guardato a compiti PARECCHIO vecchi.


No. è il tema d'esame di giugno 2006.

__________________
by Ð@rk§h@ÐØw


Posted by yeah on 30-03-2008 22:37:


Eh no scusa, se ho r=0 su ¬r si usa la sussunzione, per cui sparisce l'intera clausola ¬r V t. O no?

Ops! Hai ragione tu, svista terribile da parte mia.


E quindi e' giusto ? Se poi mi scrivi "il resto e' corretto" non capisco

Sì, sì, è giusto :)


Perche' spezzamento? abbiamo p e non abbiamo ¬p, abbiamo q e non abbiamo ¬q, non si puo' semplicemente applicare il letterale puro a uno dei due? Lo spezzamento si fa quando non si puo' fare altro no?

Oh cavolo... promemoria: mai correggere tre esercizi di fila! Altra svista mia :-/



ma q?? il suo vale è indifferente??

Sì, ottieni in questo modo un assegnamento parziale, che comunque ti soddisfa l'insieme di clausole.

__________________
?


Posted by Simeon on 30-03-2008 22:55:

Originally posted by darkshadow
No. è il tema d'esame di giugno 2006.


Niente ho dato un occhio, e' roba del calcolo dei sequenti che non ci sara' domani.

Grazie yeah per l'aiuto :)


Posted by yeah on 30-03-2008 23:05:

Di nulla.
Auguri per l'esame :)

__________________
?


Posted by Snakethesniper on 05-04-2013 12:51:

Salve a tutti, avrei bisogno di una mano sempre riguardo DPLL. Quello che non riesco a comprendere è quali regole utilizzare, questo perchè non riesco a "tradurre" la notazione. Per esempio nella sussunzione, nel caso di I(p)=1 si ha:
I |- C U (p V C)
____________
I |- C

dove C rappresenta l'insieme delle clausole C.
Quello che non capisco è cosa intende per (pVC), come riconosco in un insieme di clausole se mi trovo in questa situazione?
Grazie


Posted by Rocky on 05-04-2013 16:56:

p V altra roba: se p è vero, nell'or il risultato finale è in ogni caso vero, e puoi cancellare tutta la clausola.


Posted by Snakethesniper on 05-04-2013 18:29:

Originally posted by michele.c
p V altra roba: se p è vero, nell'or il risultato finale è in ogni caso vero, e puoi cancellare tutta la clausola.

mmm capito, ma allora perchè usare "C" quando mi viene detto a più riprese che con "C" si intendono le clausole?
Poi in un esempio arriva ad avere:
P1=1 P2=2 |- {notP2} e usa la risoluzione unitaria. Perchè? Non dovrebbe usare l'asserzione che dice I |- C U {notP} ?
E altra cosa, quel {pVC} intende che è una disgiunzione tra un letterale e un "qualcosa" C? O che può esserci un letterale p e un "qualcosa" C?


Posted by Rocky on 06-04-2013 17:11:

Clausola = disgiunzione di letterali. É giusto p V C, pensa a C come ad una clausola astratta dove ci sono altri letterali in disgiunzione.

L'esempio non l'ho capito, comunque a volte usando diverse regole si può arrivare allo stesso risultato, non ti puntare su di esso: punta piuttosto sul capire l'applicazione delle regole.

{pVC}: disgiunzione tra un letterale e un "qualcosa" C, dove però appunto C potrebbe essere la clausola vuota (nel senso che alla fine hai solo il letterale p)


All times are GMT. The time now is 10:52.
Show all 31 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.