Umělá inteligence I. Roman Barták, KTIML.

Podobné dokumenty
Logika a logické programování

platné nejsou Sokrates je smrtelný. (r) 1/??

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

2.5 Rezoluční metoda v predikátové logice

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 α

Matematická logika. Miroslav Kolařík

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

Hilbertovský axiomatický systém

Umělá inteligence I. Roman Barták, KTIML.

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

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

Predikátová logika. Teoretická informatika Tomáš Foltýnek

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

Výroková logika - opakování

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

Klauzulární logika. úvod. Šárka Vavrečková. 20. října Ústav informatiky Filozoficko-Přírodovědecká fakulta Slezské univerzity, Opava

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

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

1. Matematická logika

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

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

M - Výroková logika VARIACE

Predikátová logika. prvního řádu

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

Logické programy Deklarativní interpretace

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

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

Logické programování

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

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

Predikátová logika Individua a termy Predikáty

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

Výroková logika. Sémantika výrokové logiky

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

6. Logika a logické systémy. Základy logiky. Lucie Koloušková, Václav Matoušek / KIV. Umělá inteligence a rozpoznávání, LS

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

Modely Herbrandovské interpretace

Logika Libor Barto. Výroková logika

Skolemizace. x(x + f(x) = 0). Interpretace f unární funkce, která pro daný

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

Znalosti budeme nejčastěji vyjadřovat v predikátové logice prvního řádu. Metody:

Tableaux metody. Jiří Vyskočil 2011

0. ÚVOD - matematické symboly, značení,

Výroková logika syntaxe a sémantika

LOGIKA VÝROKOVÁ LOGIKA

Klauzulární logika. Znalostní báze. Šárka Vavrečková

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

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

1. Matematická logika

Predikátová logika [Predicate logic]

Programovací jazyk Prolog

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

Petr Křemen. Katedra kybernetiky, FEL ČVUT. Petr Křemen (Katedra kybernetiky, FEL ČVUT) Sémantické sítě a rámce 1 / 112

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

Úvod do informatiky. Miroslav Kolařík

Základy logiky Logika a logické systémy. Umělá inteligence a rozpoznávání, LS

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

Matematická logika. Rostislav Horčík. horcik

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

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

Logika pro sémantický web

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

Reprezentace znalostí. Katedra kybernetiky, ČVUT v Praze.

Úvod do logiky a logického programování.

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

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

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

4.2 Syntaxe predikátové logiky

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

Úvod do predikátové logiky. (FLÚ AV ČR) Logika: CZ.1.07/2.2.00/ / 1

Okruh č.3: Sémantický výklad predikátové logiky

Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz

Sémantika predikátové logiky

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

Logický agent, výroková logika

Logický agent, výroková logika.

Predikátová logika: Axiomatizace, sémantické stromy, identita. (FLÚ AV ČR) Logika: CZ.1.07/2.2.00/ / 13

Logický agent, výroková logika

I) Příklady (převeďte následující věty do formulí PL1 a ověřte jejich ekvivalenci pomocí de Morganových zákonů):

Klasická predikátová logika

Matematika B101MA1, B101MA2

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

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

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

1 Základní pojmy. 1.1 Množiny

Matematická logika. Miroslav Kolařík

Logika. Dana Nejedlová Katedra informatiky Ekonomická fakulta Technická univerzita v Liberci

Logické programování

Matematická indukce, sumy a produkty, matematická logika

Matematická logika. Miroslav Kolařík

Úvod do logiky (PL): analýza vět přirozeného jazyka

7 Jemný úvod do Logiky

Expertní systémy. 1. Úvod k expertním systémům. Cíl kapitoly:

Seminární práce z Teorie ICT

Znalosti a jejich reprezentace

Od Aristotela k Prologu

1. Predikátová logika jako prostedek reprezentace znalostí

4. Moudrost. Znalosti

Inference v deskripčních logikách

Transkript:

Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Už umíme používat výrokovou logiku pro reprezentaci znalostí a odvozování důsledků. Dnes Dnes zopakujeme stejný postup jako minule, ale použijeme obecnější nástroj predikátovou logiku. reprezentace znalostí odvozování v predikátové logice převodem na výrokovou logiku

Reprezentace znalostí Hledáme formální jazyk, který nám umožní reprezentovat znalosti pracovat se znalostmi Co třeba programovací jazyky (C++, Java, )? asi nejrozšířenější třída formálních jazyků fakta lze popisovat datovými strukturami array svět [4,4] programy popisují výpočtové procesy (změny datových struktur) svět[2,2] díra Jak ale obecně odvozovat další fakta z faktů známých? změny datových struktur jsou dělány ad-hoc procedurami procedurální přístup deklarativní přístup naproti tomu odděluje znalost a mechanismus pro práci se znalostí (ten je navíc obecný, nezávislý na problému) Jak reprezentovat znalosti typu na pozicích [2,2] nebo [3,1] je díra? proměnné v programech nabývají jediné hodnoty Přirozené jazyky Nemohli bychom pro reprezentaci znalostí použít jazyk přirozený, kde můžeme vyjádřit vše? Bylo by to krásné, ale zatím se nepodařilo najít přesnou formální sémantiku! Současný pohled na přirozený jazyk je, že slouží spíše jako médium pro komunikaci než médium pro čistou reprezentaci. Věta sama nekóduje informaci, záleží také na kontextu, ve kterém je vyslovena. Podívejte! Jazyk není kompozicionální význam jednévěty může záviset na významu vět okolních. Pak jsem to uviděl. Problémem přirozeného jazyka je jeho nejednoznačnost. koleje, stopky,

Zpět t k logice Výroková logika je deklarativní, má kompoziciální sémantiku, která nezáleží na kontextu a je jednoznačná. Některé vlastnosti světa ale vyjadřuje těžkopádně (ne moc kompaktně). Wumpus: v okolí každá buňky s dírou je vánek B 1,1 (P 1,2 P 2,1 ) B 2,1 (P 1,1 P 2,2 P 3,1 ) Poučme se v přirozeném jazyce: máme zde podstatná jména, která představují objekty (díra, buňka, ) slovesa vyjadřují vztahy mezi objekty (sousedí s, ) některé relace jsou vlastně funkce (je otcem od) Místo prostých faktů (výroková logika) začneme pracovat s objekty, relacemi a funkcemi a navíc budeme vyjadřovat fakta o některých nebo o všech objektech světa (predikátová logika). Logiky všeobecnv eobecně Výroková logika fakta, která platí nebo ne Predikátová logika Temporální logika Logika vyšších řádů objekty a relace mezi nimi platí nebo ne fakta a časy, kdy daná fakta platí nebo ne relace mezi objekty jsou také objekty (lze dělat tvrzení o všech relacích)

konstanty Predikátov tová logika John, 2, Crown,... predikáty Brother, >,... funkce proměnné spojky rovnost = kvantifikátory Sqrt, LeftLeg,... x, y, a, b,...,,,,, syntax konstanty (jména objektů): Richard, John, TheCrown funkční symbol: LeftLeg Příklad termy (jiný způsob pojmenování objektu) LeftLeg(John) predikátové symboly: Brother, OnHead, Person, King, Crown atomická tvrzení (popis relace mezi objekty): Brother(Richard,John) složená tvrzení: King(Richard) King(John) King(Richard) King(John) tvrzení o výběru objektů (kvantifikátory): x King(x) Person(x) Pozor: x King(x) Person(x)!!! x Crown(x) OnHead(x,John) Pozor: x Crown(x) OnHead(x,John)!!! x,y Brother(x,y) Brother(y,x) x,y Brother(x,Richard) Brother(y,Richard) x,y Brother(x,Richard) Brother(y,Richard) (x=y) Rovnost říká, že dva termy odkazují na stejný objekt (Father(John) = Henry).

Kvantifikátory tory Univerzální kvantifikátor x P P je pravda pro každý možný objekt x zhruba odpovídá konjunkci všech instaciovaných P P(John) P(Richard) P(TheCrown) P(LeftLeg(John)) typicky se váže s implikací (výběr objektů, pro které je něco pravda) x King(x) Person(x) Existenční kvantifikátor x P existuje objekt x, pro kterou je P pravda zhruba odpovídá disjunkci všech instaciovaných P P(John) P(Richard) P(TheCrown) P(LeftLeg(John)) Vazby mezi kvantifikátory x y je to saméjako y x x y je to samé jako y x x y není to samé jako y x x P je to samé jako x P x P je to samé jako x P ( x y Loves(x,y)vs. y x Loves(x,y)) PL a báze b znalostí Podobně jako u výrokové logiky použijeme operace TELL pro přidávání tvrzení do báze znalostí: TELL(KB, King(John)) TELL(KB, x King(x) Person(x)) Přidáváme axiomy (fakta jako atomická tvrzení, definice s použitím a jiná složená tvrzení) a někdy i teorémy (lze je logicky odvodit z axiomů, ale zrychlují odvozování) a operace ASK pro dotazování se na logické důsledky KB: jako databázový dotaz ASK(KB, King(John)) tady už je potřeba odvození ASK(KB, Person(John)) ASK(KB, x Person(x)) zde budeme chtít nejen odpověď zde budeme chtít nejen odpověď true, ale také hodnotu x, pro kterou to platí substituce {x/john}

Odvozování v PL Již umíme odvozovat ve výrokové logice a teď se podíváme na odvozování v logice predikátové. Základní odlišnosti: kvantifikátory skolemizace funkce a proměnné unifikace Zbytek už je nám známý: dopředné řetězení (dedukční databáze, produkční systémy) zpětné řetězení (logické programování) rezoluce (dokazování vět) Redukce PL na VL Odvozování v predikátové logice může udělat převedením do logiky výrokové a použitím jejích odvozovacích nástrojů. uzemnění (grounding) za všechny proměnné dosadíme všechny možné termy atomická tvrzení potom odpovídají výrokovým proměnným A co kvantifikátory? univerzální kvantifikátor: proměnná nahrazena termem existenciální kvantifikátor: skolemizace (proměnné nahrazena novou konstantou)

Redukce PL na VL odstranění kvantifikátor torů Univerzální instanciace v α Subst({v/g}, α) Pro proměnnou a instanciovaný term g aplikujeme substituci g za x. Aplikujeme opakovaně pro různé instanciace g. Příklad: x King(x) Greedy(x) Evil(x) vede na: King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(LeftLeg(John)) Greedy(LeftLeg(John)) Evil(LeftLeg(John)) Existenciální instanciace v α Subst({v/k}, α) Pro proměnnou a novou konstantu k aplikujeme substituci k za x. Aplikujeme jedenkrát s novou konstantou, která se nevyskytuje v bázi znalostí (Skolemova konstanta) Příklad: x Crown(x) OnHead(x,John) vede na: Crown(C 1 ) OnHead(C 1,John) Redukce PL na VL Ze znalostní báze v predikátové logice (zatím bez funkcí): x King(x) Greedy(x) Evil(x) King(John) Greedy(John) Brother(Richard,John) vytvoříme znalostní bázi ve výrokové logice všemi možnými instanciacemi: King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(John) Greedy(John) Brother(Richard,John) Odvození provedeme ve výrokové logice. příklad Problém: funkční symboly vedou k nekonečně mnoha termům LeftLeg(John), LeftLeg(LeftLeg(John)), Herbrand: odvození v PL z dané KB existuje, pokud existuje odvození ve VL v konečné podmnožině instanciované KB postupně přidáváme větší a větší termy do KB, dokud nenajdeme odvození když ale odvození neexistuje, neskončíme