Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1



Podobné dokumenty
Representace znalostí s použitím klasické negace

Modely Herbrandovské interpretace

Logické programy Deklarativní interpretace

Výroková a predikátová logika - V

Logika a logické programování

Částečná korektnost. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

Logika. 6. Axiomatický systém výrokové logiky

SLD-derivace. Petr Štěpánek. S využitím materiálu Krysztofa R. Apta

Výroková a predikátová logika - III

Matematická logika. Miroslav Kolařík

Výroková a predikátová logika - II

Výroková a predikátová logika - II

Výroková logika. Teoretická informatika Tomáš Foltýnek

Matematická logika. Miroslav Kolařík

Výroková a predikátová logika - III

Programování v čistém Prologu

Occur-check (Test konfliktu proměnných)

Výroková a predikátová logika - VII

Výroková a predikátová logika - II

popel, glum & nepil 16/28

Logické programování

Výroková a predikátová logika - VIII

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

Výroková a predikátová logika - IV

Výroková a predikátová logika - XII

Výroková a predikátová logika - VIII

Domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1

Výroková logika - opakování

Základy logiky a teorie množin

Aplikace: Znalostní báze

Matematická logika. Rostislav Horčík. horcik

Formální systém výrokové logiky

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

1. Matematická logika

Výroková a predikátová logika - VII

Výroková a predikátová logika - IX

Výroková a predikátová logika - X

Výroková a predikátová logika - IX

vhodná pro strojové dokazování (Prolog) metoda založená na vyvracení: dokazuje se nesplnitelnost formulí

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

1 Pravdivost formulí v interpretaci a daném ohodnocení

Základní pojmy matematické logiky

Matematická logika. Rostislav Horčík. horcik

4.2 Syntaxe predikátové logiky

Matematická logika. Rostislav Horčík. horcik

Logika. 5. Rezoluční princip. RNDr. Luděk Cienciala, Ph. D.

3.10 Rezoluční metoda ve výrokové logice

Predikátová logika. Z minula: 1. jazyk logiky 1. řádu. 2. term a formule. 3. interpretace jazyka (relační struktura) 4. Tarského definice pravdy

Výroková a predikátová logika - XIII

Rezoluční kalkulus pro výrokovou logiku

Úvod do matematiky. Mgr. Radek Horenský, Ph.D. Důkazy

Matematická logika. Miroslav Kolařík

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

teorie logických spojek chápaných jako pravdivostní funkce

10. Techniky formální verifikace a validace

Výroková a predikátová logika - IX

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

2.2 Sémantika predikátové logiky

Výroková a predikátová logika - XII

Převyprávění Gödelova důkazu nutné existence Boha

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Sémantika predikátové logiky

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Výroková a predikátová logika - VI

Predikátová logika dokončení

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

Úvod do informatiky. Miroslav Kolařík

1 Základní pojmy. 1.1 Množiny

Další (neklasické) logiky. Jiří Velebil: AD0B01LGR 2015 Predikátová logika 1/20

Logický důsledek. Petr Kuchyňka

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Výroková a predikátová logika - X

Predikátová logika Individua a termy Predikáty

PŘEDNÁŠKA 7 Kongruence svazů

Výroková logika dokazatelnost

Systém přirozené dedukce výrokové logiky

Úvod do logiky (VL): 5. Odvození výrokových spojek z jiných

Tableaux metody. Jiří Vyskočil 2011

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

1. Matematická logika

Kongruence na množině celých čísel

1 Linearní prostory nad komplexními čísly

Cvičení Aktivita 1. část 2. část 3. část Ústní Celkem Známka

Matematická analýza pro informatiky I. Limita funkce

Logika, výroky, množiny

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

Rezoluční kalkulus pro logiku prvního řádu

Zastavování výpočtů (Terminace)

Báze a dimenze vektorových prostorů

Výroková logika. p, q, r...

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Transkript:

Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1

Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit žádnou jeho instanci p. V Prologu negaci definovanou neúspěchem vyjadřuje operátor not, který je interně definován dvěma klauzulemi not(p) :- not(p). p,!, fail. Ty dávají výrazu not(p) následující operační význam Jestliže cíl p uspěje, na dotaz not(p) dává odpověď no, jestliže p neuspěje, na dotaz not(p) odpoví yes. Logické programování 15 2

Tedy not(p) nevrací žádnou hodnotu jenom potvrzení yes nebo no. Proto not(p) chápeme jenom jako testovací cíl. V tom se liší od logické negace p. Ukazuje to následující Příklad. Situaci v hotelu popisují dva typy tvrzení: V Prologu například Hotel je obsazen Pokoj(13) je volný Pokoj(313) je volný hotel_obsazen :- not(volný_pokoj(x)). volny_pokoj(13). volny_pokoj(313). Logické programování 15 3

Můžeme očekávat konverzaci?- hotel_obsazen. no?- not(hotel_obsazen). yes?- volny_pokoj(x). X = 13; X 313; no Uvedený program však nepřipouští dotaz které pokoje nejsou volné? Logické programování 15 4

V Prologu mohou být negované cíle použity jen jako testovací. Negace jako neúspěch tedy není logická negace. Platí: je-li atom p základní a not(p) uspěje znamená to, že cíl p nelze odvodit, volněřečeno, že atom p není pravdivý, má-li atom p proměnné, X 1,...,X n, a cíl not(p) uspěje, znamená to, že nelze odvodit žádnou instanci p. Definice. Je-li P program v Prologu, (i) Říkáme, že prologovský strom konečně selhává, je-li konečný a neobsahuje prázdnou klusuli, (ii) atom A konečně selhává vzhledem k P,je-li kořenem konečně selhávajícího stromu. Logické programování 15 5

Tedy všechny větve konečně selhávajícího stromu jsou neúspěšné derivace programu P a atom A konečně selhává jestliže všechny derivace pro P {A} jsou neúspěšné (tedy také konečné). Jinými slovy, cíl not(a) uspěje, právě když atom A konečně selhává. Poznámka. Negace jako neúspěch jen ukazuje, že procedurální interpretace prologovských programů používá tzv. Hypotézu uzavřeného světa. A nelze odvodit z P not(a) Logické programování 15 6

Prologovské programy, které používají operátor negace jako neúspěch se nazývají obecné programy. jestliže sestává z definit- Definice. Říkáme, že P je obecný program ních klauzulí a klauzulí tvaru A B 1, B 2,..., B m, not(b m+1 ), not(b m+2 ),..., not(b n ) (1) kde n > m > 0 a A a každé B 1 je atom. Obecný program rozděluje množinu základních dotazů na dvě množiny: na základní dotaz odpovídá yes nebo no. Každý základní atom, který nevyplývá z faktů uvedených v programu se považuje za nepravdivý v souladu s Hypotézou uzavřeného světa. Procedurální metoda vyhodnocení dotazů v obecných programech dává odpověď no na každý dotaz, který neuspěje. Logické programování 15 7

Naproti tomu konzistentní teorie v predikátové logice prvního řádu dělí uzavřené formule (sentence) na tři skupiny: Sentence je buď dokazatelná nebo nedokazatelná nebo nerozhodnutelná Přitom nerozhodnutelnost se obvykle chápe jako neúplnost informací, které teorie poskytuje pro řešení problému. Ve srovnání s predikátovou logikou, definitní ani obecné logické programy nedovolují pracovat přímo s neúplnou informací. Abychom překonali takové omezení, rozšíříme třídu obecných logických programů přidáme klasickou negaci k negaci definované neúspěchem not. Tím zavedeme třídu rozšířených programů. Obecné logické programy poskytují negativní informaci implicitně pomocí pravidla uzavřeného světa, zatím co rozšířený program může vyjádřit negativní informaci explicitně. Logické programování 15 8

V jazyce rozšířených programů můžeme rozlišovat mezi dotazy, které neuspějí, protože odvození odpovědi na dotaz je neúspěšná derivace a dotazy, které neuspějí, protože jejich negace uspěje. Připomeňme, že literál je formule tvaru A nebo A. Definice. Říkáme, že P je rozšířený program jestliže sestává z klauzulí tvaru L 0 L 1, L 2,..., L m, not(l m+1 ), not(l m+2 ),..., not(l n ) (2) kde n > m > 0 a každé L i je literál. Pro základní dotaz A rozšířený program dává odpověď yes, no nebo unknown podle toho jestli množina odpovědí obsahuje A, A nebo žádný z obou literálů. Odpověď no odpovídá explicitní negativní informaci obsažené v rozšířeném programu. Logické programování 15 9

Klasická negace. Uvažujme rozšířený program P 1 sestávající z jediné klazule Q not P Intuitivně ji chápeme jako tvrzení Q neplatí (je nepravdivé) jestliže nelze ukázat, že P je pravdivé. Později ukážeme, že { Q }je množina odpovědí pro tento program. Odpovědi, které tento program dává pro dotazy P, Q jsou unknown a no. Srovnejme dva rozšířené programy, které neobsahují not. Logické programování 15 10

Program P 2 P. P Q Program P 3 P. Q P Potom { P} je množina odpovědí pro P 2 a { P, Q} je množina odpovědí pro P 3. Naše sémantika není kontrapozitivní vzhledem k a ; dává různé odpovědi k programovým klauzulím P Q a Q P, které jsou v predikátové logice ekvivalentní. To proto, že tato sémantika interpretuje obě klauzule jako odvozovací pravidla a ne jako implikace. Logické programování 15 11

Jazyk rozšířených programů obsahuje klasickou negaci, ale neobsahuje klasickou implikaci. Tento přístup je z výpočtového hlediska výhodný. Za dosti obecných předpokladů se dá ukázat, že vyhodnocení klauzule rozšířeného programu se dá převést na vyhodnocení dvou klauzulí, které neobsahují klasickou negaci. Tedy rozšíření obecných programů nepřináší žádné nové požadavky na výpočty. Odpovědní množiny (Answer Sets) Sémantika rozšířených programů chápe klauzuli s proměnnými jako zkratku za množinu pravidel, která odpovídají všem jejím základním instancím. Proto stačí definovat odpovědní množiny pro rozšířené programy bez proměnných. To uděláme ve dvou krocích. Logické programování 15 12

Nejprve uvažujeme rozšířené programy bez proměnných, které navíc neobsahují not tj. m = n v každé klauzuli (2). Takové jsou oba programy P 2 a P 3. Rozšířené programy bez not volně řečeno odpovídají obvyklým logickým programům s tím, že místo atomů vystupují literály. Takové programy budou mít jen jednu odpovědní množinu. Prvky této množiny budou základní literály generované dvěma neformálními pravidly (i) klauzulemi programu, a (ii) klasickou logikou. Z klasické logiky vyplývá, že z množiny základních literálů lze odvodit literál, který do této množiny nepatří, jen když tato množina obsahuje dva komplementární literály A a A. Logické programování 15 13

Uvedené pozorování pak motivuje následující definici odpovědní množiny. Definice. (Odpovědní množina 1) Nechť P je rozšířený program, který neobsahuje not a nechť Lit je množina základních literálů v jazyce programu P. Odpovědní množina pro P je minimální podmnožina S množiny Lit, která splňuje následující dvě podmínky (i) Pro každé pravidlo L 0 L 1, L 2,..., L m programu P takové, že literály L 1, L 2,..., L m patří do S, potom L 0 je také prvkem S, (ii) pokud S obsahuje komplementární pár literálů, pak S = Lit. Odpovědní množinu programu P, který neobsahuje negaci jako neúspěch budeme označovat α(p). Logické programování 15 14

Pokud P neobsahuje not ani, podmínka (ii) je trivální a α(p ) je nejmenší Herbrandův model P. Je také zřejmé, že odpovědní množiny pro programy P 2 a P 3 uvedené v motivaci jsou odpovědní množiny podle definice Odpovědní množina 1. Platí α(p 2 ) = { P} a α(p 3 ) = { P, Q}. Nyní mějme rozšířený program P bez proměnných. Označme množinu základních literálů v jazyce programu P symbolem Lit. Pro každou množinu S Lit označme P S rozšířený program, který vznikne z P vynecháním (i) každého pravidla, které obsahují v těle formuli notl, L je prvkem S (ii) a všechny formule notl v tělech ostatních pravidel. Logické programování 15 15

Definice. (Odpovědní množina 2) P S již neobsahuje not a jeho odpovědní množina byla definována jako Odpovědní množina 1. Pokud je tato odpovědní množina rovna S, řekneme, že S je odpovědní množina pro P. Jinými slovy, odpovědní množina pro P je charakterizována rovnicí S = α(p S ) (3) Abychom ověřili, že { Q} je odpovědní množina pro program P 1 je třeba sestrojit program P 1 { Q}. Ten sestává z jediného pravidla Q. Toto pravidlo vznikne vynecháním not P z jediného pravidla P 1. Odpovědní množina P 1 { Q}, a tedy P 1 je vskutku { Q}. Je zřejmé, že žádná jiná množina literálů S nesplňuje (fixpointovou) podmínku (3). Logické programování 15 16

Ještě je třeba ověřit, že druhá, obecnější definice odpovědních množin, pokud je použita k programu bez not je ekvivalentní s první definicí. To bezprostředně plyne z faktu, že pro takový program P platí P S takže z rovnosti (3) dostáváme = P S = α(p ) Na druhé straně, jestliže P neobsahuje, pak je to obecný logický program a P S je obyčejný logický program. Jeho odpovědní množina neobsahuje negativní literály. Proto odpovědní množina obecného logického programu (neobsahuje klasickou negaci) je množina atomů. Logické programování 15 17

Odpovědní množiny můžeme také považovat za neúplné teorie v logice ve smyslu tamní definice. Tedy pro odpovědní množinu S pro nějaký program P a nějakou formuli A v jazyce programu P obecně nemusí platit S - A nebo S - A Má-li program několik odpovědních množin, je neúplný v jiném smyslu: má několik různých interpretací a odpověď na dotaz může záviset na interpretaci. Rozšířený program je sporný pokud má spornou odpovědní množinu, tedy odpovědní množinu obsahující komplementární pár literálů. Takový je například program P 4 P. P. sestávající z pravidel Logické programování 15 18

Je zřejmé, že obecné logické programy nemohou být sporné. Pozorování. Sporný rozšířený logický program má právě jednu odpovědní množinu - množinu všech literálů Lit. Důkaz. Z definice odpovědních množin je zřejmé, že každá odpovědní množina, která obsahuje komplementární pár literálů se rovná Lit. Fakt že sporný program nemá jinou odpovědní množinu plyne z obecnějšího tvrzení. Pozorování. Rozšířený program nemůže mít dvě odpovědní množiny takové, že jedna z nich je vlastní podmnožinou druhé. Důkaz. Předpokládejme, že S a S jsou dvě odpovědní množiny programu P takové, že S S. Potom P S P S odkud plyne α(p S ) α(p S ), tedy S S a S = S. Logické programování 15 19

Bezespornost sama nezaručuje existenci odpovědní množiny. Obecný logický program P 5 Je toho dokladem. P not P Logické programování 15 20

Odbočka. (Multiagentní systémy) Intuice napovídá, že odpovědní množiny mohou být vhodnými množinami přesvědčení, které racionální agent může mít na základě informací vyjádřených pravidly programu P. Je-li S množina základních literálů o kterých je agent převědčen, že jsou pravdivé, potom žádné pravidlo, které obsahuje cíl not L pro literál L z množiny S pro něj není užitečné a každý cíl not L, kde L patří do S bude pro něj trivální. Bude tedy schopen nahradit množinu pravidel programu P množinou zjednodušených pravidel programu P S. Je-li odpovědní množina pro P S totožná s S, potom volba S jako množiny přesvědčení je racionální. Logické programování 15 21