logo

Logika prvního řádu v umělé inteligenci

V tématu Výroková logika jsme viděli, jak reprezentovat výroky pomocí výrokové logiky. Ale bohužel ve výrokové logice můžeme reprezentovat pouze fakta, která jsou buď pravdivá, nebo nepravdivá. PL nestačí k reprezentaci složitých vět nebo prohlášení v přirozeném jazyce. Výroková logika má velmi omezenou vyjadřovací schopnost. Uvažujme následující větu, kterou nemůžeme reprezentovat pomocí PL logiky.

log4j
    'Někteří lidé jsou inteligentní', nebo 'Sachin má rád kriket.'

Pro znázornění výše uvedených tvrzení není logika PL dostatečná, takže jsme požadovali nějakou výkonnější logiku, jako je logika prvního řádu.

Logika prvního řádu:

  • Logika prvního řádu je dalším způsobem reprezentace znalostí v umělé inteligenci. Jde o rozšíření výrokové logiky.
  • FOL je dostatečně expresivní, aby reprezentoval výpovědi přirozeného jazyka stručným způsobem.
  • Logika prvního řádu je také známá jako Predikátová logika nebo predikátová logika prvního řádu . Logika prvního řádu je výkonný jazyk, který rozvíjí informace o objektech snadnějším způsobem a může také vyjádřit vztah mezi těmito objekty.
  • Logika prvního řádu (jako přirozený jazyk) nejen předpokládá, že svět obsahuje fakta, jako je výroková logika, ale předpokládá také následující věci ve světě:
      Objekty:A, B, lidé, čísla, barvy, války, teorie, čtverce, jámy, wumpus, ......
  • Vztahy: Může to být unární vztah jako: červený, kulatý, sousedí, nebo n-jakýkoli vztah, například: sestra, bratr, má barvu, přichází meziFunkce:Otec, nejlepší přítel, třetí směna, konec, ......
  • Jako přirozený jazyk má logika prvního řádu také dvě hlavní části:
      Syntax
  • Sémantika

    Syntaxe logiky prvního řádu:

    Syntaxe FOL určuje, která kolekce symbolů je logickým výrazem v logice prvního řádu. Základními syntaktickými prvky logiky prvního řádu jsou symboly. Příkazy píšeme ve zkratkovém zápisu ve FOL.

    Základní prvky logiky prvního řádu:

    Níže jsou uvedeny základní prvky syntaxe FOL:

    Konstantní 1, 2, A, John, Bombaj, kočka,....
    Proměnné x, y, z, a, b,....
    Predikáty Bratr, otec, >,....
    Funkce sqrt, LeftLegOf, ....
    Spojiva ∧, ∨, ¬, ⇒, ⇔
    Rovnost ==
    Kvantifikátor ∀, ∃

    Atomové věty:

    • Atomové věty jsou nejzákladnější věty logiky prvního řádu. Tyto věty jsou tvořeny z predikátového symbolu následovaného závorkou s posloupností pojmů.
    • Atomové věty můžeme reprezentovat jako Predikát (člen1, člen2, ......, člen n) .

    Příklad: Ravi a Ajay jsou bratři: => Brothers(Ravi, Ajay).
    Chinky je kočka: => kočka (Chinky)
    .

    Složité věty:

    • Složité věty vznikají spojením atomárních vět pomocí spojovacích výrazů.

    Logické příkazy prvního řádu lze rozdělit do dvou částí:

      Předmět:Předmět je hlavní částí prohlášení.Predikát:Predikát lze definovat jako relaci, která spojuje dva atomy dohromady ve výroku.

    Zvažte výrok: 'x je celé číslo.' , skládá se ze dvou částí, první část x je předmětem výroku a druhá část „je celé číslo“ je známá jako predikát.

    Logika prvního řádu v umělé inteligenci

    Kvantifikátory v logice prvního řádu:

    • Kvantifikátor je jazykový prvek, který generuje kvantifikaci, a kvantifikace specifikuje množství vzorku ve vesmíru diskurzu.
    • Jedná se o symboly, které umožňují určit nebo identifikovat rozsah a rozsah proměnné v logickém výrazu. Existují dva typy kvantifikátorů:
        Univerzální kvantifikátor (pro všechny, všechny, všechno)
    • Existenciální kvantifikátor (pro některé alespoň jeden).

    Univerzální kvantifikátor:

    Univerzální kvantifikátor je symbol logické reprezentace, který určuje, že výrok v jeho rozsahu platí pro všechno nebo každý výskyt konkrétní věci.

    Univerzální kvantifikátor je reprezentován symbolem ∀, který připomíná obrácené A.

    if else v java

    Poznámka: V univerzálním kvantifikátoru používáme implikaci '→'.

    Pokud je x proměnná, pak se ∀x čte jako:

      Za všechny x Za každé x Za každé x.

    Příklad:

    Všichni lidé pijí kávu.

    Nechte proměnnou x, která odkazuje na kočku, aby všechna x mohla být reprezentována v UOD, jak je uvedeno níže:

    Logika prvního řádu v umělé inteligenci

    ∀x muž(x) → pití (x, káva).

    Bude se číst jako: Existuje všech x, kde x je muž, který pije kávu.

    Existenciální kvantifikátor:

    Existenciální kvantifikátory jsou typem kvantifikátorů, které vyjadřují, že tvrzení v jeho rozsahu platí alespoň pro jednu instanci něčeho.

    Označuje se logickým operátorem ∃, který se podobá invertovanému E. Je-li použit s predikátovou proměnnou, nazývá se existenciální kvantifikátor.

    Poznámka: V existenciálním kvantifikátoru vždy používáme AND nebo Konjunkční symbol (∧).

    Je-li x proměnná, pak existenciální kvantifikátor bude ∃x nebo ∃(x). A bude se číst takto:

      Existuje 'x.' Pro některé 'x'. Alespoň pro jedno „x“.

    Příklad:

    Někteří kluci jsou inteligentní.

    statický v c
    Logika prvního řádu v umělé inteligenci

    ∃x: chlapci (x) ∧ inteligentní (x)

    Bude se číst jako: Existuje několik x, kde x je chlapec, který je inteligentní.

    Body k zapamatování:

    • Hlavní spojka pro univerzální kvantifikátor je implikace .
    • Hlavní spojovací výraz pro existenciální kvantifikátor Je a .

    Vlastnosti kvantifikátorů:

    • V univerzálním kvantifikátoru je ∀x∀y podobné ∀y∀x.
    • V existenciálním kvantifikátoru je ∃x∃y podobné ∃y∃x.
    • ∃x∀y není podobné ∀y∃x.

    Některé příklady FOL pomocí kvantifikátoru:

    1. Všichni ptáci létají.
    V této otázce je predikát „ moucha (pták) .'
    A protože jsou všichni ptáci, kteří létají, bude to znázorněno následovně.
    ∀x pták(x) →leť(x) .

    2. Každý muž respektuje svého rodiče.
    V této otázce je predikát „ respekt(x, y),' kde x = muž a y = rodič .
    Protože existuje každý člověk, tak použijeme ∀ a bude reprezentováno následovně:
    ∀x muž(x) → respektuje (x, rodič) .

    3. Někteří chlapci hrají kriket.
    V této otázce je predikát „ hrát (x, y) ,' kde x= chlapci a y= hra. Protože tam jsou nějací kluci, tak využijeme ∃ a bude reprezentován jako :
    ∃x chlapci (x) → hrát (x, kriket) .

    4. Ne všichni studenti mají rádi matematiku i přírodní vědy.
    V této otázce je predikát „ like(x, y),' kde x= student a y= předmět .
    Jelikož tam nejsou všichni studenti, tak využijeme ∀ s negací, tak k tomu následující zastoupení:
    ¬∀ (x) [ student(x) → like(x, Matematika) ∧ like(x, Science)].

    5. Pouze jeden žák propadl z matematiky.
    V této otázce je predikát „ neúspěšný(x, y),' kde x= student a y= předmět .
    Protože z matematiky propadl pouze jeden student, použijeme k tomu následující znázornění:
    ∃(x) [ student(x) → neprospěl (x, matematika) ∧∀ (y) [¬(x==y) ∧ student(y) → ¬neprospěl (x, matematika)] .

    Volné a vázané proměnné:

    Kvantifikátory interagují s proměnnými, které se objevují vhodným způsobem. V logice prvního řádu existují dva typy proměnných, které jsou uvedeny níže:

    Volná proměnná: O proměnné se říká, že je volnou proměnnou ve vzorci, pokud se vyskytuje mimo rozsah kvantifikátoru.

    srovnání java

    Příklad: ∀x ∃(y)[P (x, y, z)], kde z je volná proměnná.

    Vázaná proměnná: Proměnná se nazývá vázanou proměnnou ve vzorci, pokud se vyskytuje v rozsahu kvantifikátoru.

    Příklad: ∀x [A (x) B( y)], zde x a y jsou vázané proměnné.