Hoorcollege Logica Hans-Dieter A. Hiep
Agenda 1. Horn-formules 2. Vervulbaarheidsprobleem
Validiteit en vervulbaarheid Gegeven een formule φ in de (klassieke) propositielogica. Definitie φ is valide voor elke toekenning is φ waar
Validiteit en vervulbaarheid Gegeven een formule φ in de (klassieke) propositielogica. Definitie φ is valide voor elke toekenning is φ waar Definitie φ is vervulbaar er is een toekenning zodat φ waar is
Validiteit en vervulbaarheid Gegeven een formule φ in de (klassieke) propositielogica. Definitie φ is valide voor elke toekenning is φ waar Definitie φ is vervulbaar er is een toekenning zodat φ waar is Propositie φ is vervulbaar φ is niet valide
Validiteit en vervulbaarheid Gegeven een formule φ in de (klassieke) propositielogica. Definitie φ is valide voor elke toekenning is φ waar Definitie φ is vervulbaar er is een toekenning zodat φ waar is Propositie φ is vervulbaar φ is niet valide Voorbeelden,, p, p p, p p
Horn-formules Horn-formules zijn een subklasse van formules vernoemd naar logicus Alfred Horn.
Horn-formules Horn-formules zijn een subklasse van formules vernoemd naar logicus Alfred Horn. Motivatie: vervulbaarheid
Horn-formules Horn-formules zijn een subklasse van formules vernoemd naar logicus Alfred Horn. Motivatie: vervulbaarheid Definitie Een Horn-formule is gegenereerd door H in deze grammatica: P ::= p A ::= P P A C ::= A P H ::= C C H
Horn-formules Horn-formules zijn een subklasse van formules vernoemd naar logicus Alfred Horn. Motivatie: vervulbaarheid Definitie Een Horn-formule is gegenereerd door H in deze grammatica: P ::= p A ::= P P A C ::= A P H ::= C C H Instantie van C heet een Horn-clausule.
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: Voorbeelden (goed) ( ) P ::= p A ::= P P A C ::= A P H ::= C C H
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: Voorbeelden (goed) ( ) ( p) P ::= p A ::= P P A C ::= A P H ::= C C H
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: Voorbeelden (goed) ( ) ( p) ( p) (p ) P ::= p A ::= P P A C ::= A P H ::= C C H
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: Voorbeelden (goed) ( ) ( p) ( p) (p ) (p q) (q p p) P ::= p A ::= P P A C ::= A P H ::= C C H
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: P ::= p A ::= P P A C ::= A P H ::= C C H Voorbeelden (goed) ( ) ( p) ( p) (p ) (p q) (q p p) Voorbeelden (fout) p q
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: P ::= p A ::= P P A C ::= A P H ::= C C H Voorbeelden (goed) ( ) ( p) ( p) (p ) (p q) (q p p) Voorbeelden (fout) p q ( )
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: P ::= p A ::= P P A C ::= A P H ::= C C H Voorbeelden (goed) ( ) ( p) ( p) (p ) (p q) (q p p) Voorbeelden (fout) p q ( ) ( p q)
Horn-formules Definitie Een Horn-formule is gegenereerd door H in deze grammatica: P ::= p A ::= P P A C ::= A P H ::= C C H Voorbeelden (goed) ( ) ( p) ( p) (p ) (p q) (q p p) Voorbeelden (fout) p q ( ) ( p q) (p q)
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van 2. Is er een clausule (P 1 P 2... P k P) waarvoor P i gemarkeerd is voor alle 1 i k maar P niet?
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van 2. Is er een clausule (P 1 P 2... P k P) waarvoor P i gemarkeerd is voor alle 1 i k maar P niet? Ja: markeer P en herhaal stap 2.
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van 2. Is er een clausule (P 1 P 2... P k P) waarvoor P i gemarkeerd is voor alle 1 i k maar P niet? Ja: markeer P en herhaal stap 2. Nee: ga door naar stap 3.
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van 2. Is er een clausule (P 1 P 2... P k P) waarvoor P i gemarkeerd is voor alle 1 i k maar P niet? Ja: markeer P en herhaal stap 2. Nee: ga door naar stap 3. 3. Is gemarkeerd?
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van 2. Is er een clausule (P 1 P 2... P k P) waarvoor P i gemarkeerd is voor alle 1 i k maar P niet? Ja: markeer P en herhaal stap 2. Nee: ga door naar stap 3. 3. Is gemarkeerd? Ja: onvervulbaar
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van 2. Is er een clausule (P 1 P 2... P k P) waarvoor P i gemarkeerd is voor alle 1 i k maar P niet? Ja: markeer P en herhaal stap 2. Nee: ga door naar stap 3. 3. Is gemarkeerd? Ja: onvervulbaar Nee: vervulbaar
Vervulbaarheid van Horn-formules Markeeralgoritme Invoer: Horn-formule Uitvoer: onvervulbaar of vervulbaar Toestand: lijst van markeringen van P 1. Markeer alle voorkomens van 2. Is er een clausule (P 1 P 2... P k P) waarvoor P i gemarkeerd is voor alle 1 i k maar P niet? Ja: markeer P en herhaal stap 2. Nee: ga door naar stap 3. 3. Is gemarkeerd? Ja: onvervulbaar Nee: vervulbaar Markeringen zijn voor alle voorkomens
Vervulbaarheid van Horn-formules Horn-formules zijn een subklasse van formules.
Vervulbaarheid van Horn-formules Horn-formules zijn een subklasse van formules. Bestaat er voor elke formule een equivalente Horn-formule?
Vervulbaarheid van Horn-formules Horn-formules zijn een subklasse van formules. Bestaat er voor elke formule een equivalente Horn-formule? Tegenvoorbeeld: p q heeft geen equivalente Horn-formule
Vervulbaarheidsprobleem Is een gegeven formule vervulbaar?
Vervulbaarheidsprobleem Is een gegeven formule vervulbaar? SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar
Vervulbaarheidsprobleem Is een gegeven formule vervulbaar? SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar Correctheid: voor elke formule is de uitvoer correct Volledigheid: geen formule heeft als uitvoer weet niet
Vervulbaarheidsprobleem Is een gegeven formule vervulbaar? SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar Correctheid: voor elke formule is de uitvoer correct Volledigheid: geen formule heeft als uitvoer weet niet Sectie 1.6 van boek geeft twee onvolledige SAT-algoritmen
Vervulbaarheidsprobleem Eerstegraads SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar
Vervulbaarheidsprobleem Eerstegraads SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar φ ::= p ( φ) (φ φ)
Vervulbaarheidsprobleem Eerstegraads SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar φ ::= p ( φ) (φ φ) 1. Vertaal formule met T (p) = p T ( φ) = T (φ) T (φ 1 φ 2 ) = T (φ 1 ) T (φ 2 ) T (φ 1 φ 2 ) = ( T (φ 1 ) T (φ 2 )) T (φ 1 φ 2 ) = (T (φ 1 ) T (φ 2 ))
Vervulbaarheidsprobleem 2. Schrijf formule als parse tree met gedeelde subformules (gerichte acyclische graaf). 3. Schrijf waarde T op bovenste vertex. Propageer a.d.h.v. de regels: : : T F ^ T m m m F T T T ^ F ^ F ^ F ^ F * ( ) * F T F
Vervulbaarheidsprobleem Uitkomst: Als conflict: onvervulbaar Alle atomen hebben waarden: vervulbaar Anders: weet niet
Vervulbaarheidsprobleem Uitkomst: Als conflict: onvervulbaar Alle atomen hebben waarden: vervulbaar Anders: weet niet Derdegraads SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar
Vervulbaarheidsprobleem Uitkomst: Als conflict: onvervulbaar Alle atomen hebben waarden: vervulbaar Anders: weet niet Derdegraads SAT-algoritme Invoer: formule Uitvoer: weet niet of onvervulbaar of vervulbaar Probeer waarden uit met test waarden in twee berekeningen: 1. Voor een vertex, schrijf T en bereken verder 2. Voor een vertex, schrijf F en bereken verder Als beiden conflict: dan onvervulbaar Als beiden overeenkomen voor vertex: dan definitief Herhaal voor alle ongemarkeerde vertices