logo

Înlănțuire înainte și înlănțuire înapoi în AI

În inteligența artificială, înlănțuirea înainte și înapoi este unul dintre subiectele importante, dar înainte de a înțelege înlănțuirea înainte și înapoi, să înțelegem mai întâi de unde provin acești doi termeni.

string builder java

Motor de inferență:

Motorul de inferență este componenta sistemului inteligent din inteligența artificială, care aplică reguli logice bazei de cunoștințe pentru a deduce informații noi din fapte cunoscute. Primul motor de inferență a făcut parte din sistemul expert. Motorul de inferență funcționează de obicei în două moduri, care sunt:

    Înlănțuire înainte Înlănțuire înapoi

Clauza corn și clauza definită:

Clauza corn și clauza definită sunt formele de propoziție, care permit bazei de cunoștințe să utilizeze un algoritm de inferență mai restrâns și mai eficient. Algoritmii de inferență logică folosesc abordări de înlănțuire înainte și înapoi, care necesită KB sub forma clauză definită de ordinul întâi .

Clauza definita: O clauză care este o disjuncție a literalelor cu exact un literal pozitiv este cunoscută ca clauză definită sau clauză strictă.

Clauza corn: O clauză care este o disjuncție a literalelor cu cel mult un literal pozitiv este cunoscut sub numele de clauză corn. Prin urmare, toate clauzele definite sunt clauze corn.

Exemplu: (¬ p V ¬ q V k) . Are un singur literal k pozitiv.

Este echivalent cu p ∧ q → k.

A. Înlănțuire înainte

Înlănțuirea directă este, de asemenea, cunoscută ca o metodă de deducție înainte sau de raționament înainte atunci când se utilizează un motor de inferență. Înlănțuirea înainte este o formă de raționament care începe cu propoziții atomice în baza de cunoștințe și aplică reguli de inferență (Modus Ponens) în direcția înainte pentru a extrage mai multe date până când un obiectiv este atins.

Algoritmul Forward-chaining pleacă de la fapte cunoscute, declanșează toate regulile ale căror premise sunt satisfăcute și adaugă concluzia lor la faptele cunoscute. Acest proces se repetă până când problema este rezolvată.

Proprietăți de Forward-Chaining:

  • Este o abordare descendentă, deoarece se mișcă de jos în sus.
  • Este un proces de a face o concluzie bazată pe fapte sau date cunoscute, pornind de la starea inițială și ajunge la starea scop.
  • Abordarea de înlănțuire înainte este numită și bazată pe date, pe măsură ce atingem obiectivul folosind datele disponibile.
  • Abordarea forward-chaining este folosită în mod obișnuit în sistemul expert, cum ar fi sistemele CLIPS, de afaceri și de reguli de producție.

Luați în considerare următorul exemplu celebru pe care îl vom folosi în ambele abordări:

Exemplu:

„Conform legii, este o crimă pentru un american să vândă arme unor națiuni ostile. Țara A, un dușman al Americii, are niște rachete și toate rachetele i-au fost vândute de Robert, care este cetățean american.

Demonstrează asta — Robert este criminal.

Pentru a rezolva problema de mai sus, mai întâi, vom converti toate faptele de mai sus în clauze definite de ordinul întâi, apoi vom folosi un algoritm de înlănțuire înainte pentru a atinge obiectivul.

Conversia faptelor în FOL:

  • Este o crimă pentru un american să vândă arme unor națiuni ostile. (Să presupunem că p, q și r sunt variabile)
    American (p) ∧ armă(q) ∧ vinde (p, q, r) ∧ ostil(r) → Criminal(p) ...(1)
  • Țara A are niște rachete. ?p Deține(A, p) ∧ Rachetă(p) . Poate fi scris în două clauze definite folosind Instanțiarea Existențială, introducând noua Constantă T1.
    Deține(A, T1) ......(2)
    Rachetă (T1) .......(3)
  • Toate rachetele au fost vândute țării A de Robert.
    ?p Rachete(p) ∧ Deține (A, p) → Vinde (Robert, p, A) ......(4)
  • Rachetele sunt arme.
    Rachetă(p) → Arme (p) .......(5)
  • Dușmanul Americii este cunoscut ca ostil.
    Dușman(p, America) → Ostil(p) ........(6)
  • Țara A este un dușman al Americii.
    Inamicul (A, America) .........(7)
  • Robert este american
    American (Robert). ..........(8)

Dovada de înlănțuire înainte:

Pasul 1:

În primul pas vom începe cu faptele cunoscute și vom alege propozițiile care nu au implicații, cum ar fi: American (Robert), Inamic (A, America), Deține (A, T1) și Rachetă (T1) . Toate aceste fapte vor fi reprezentate mai jos.

Înlănțuire înainte și înlănțuire înapoi în AI

Pasul 2:

La al doilea pas, vom vedea acele fapte care deduc din faptele disponibile și cu premise satisfăcute.

Regula-(1) nu satisface premisele, deci nu va fi adăugată în prima iterație.

Regula-(2) și (3) sunt deja adăugate.

Regula-(4) satisface cu substituția {p/T1}, așa că Sells (Robert, T1, A) se adaugă, care deduce din conjuncția regulii (2) și (3).

Regula-(6) este satisfăcută cu substituția (p/A), deci se adaugă Ostil(A) și care deduce din Regula-(7).

Înlănțuire înainte și înlănțuire înapoi în AI

Pasul 3:

La pasul 3, după cum putem verifica, Regula-(1) este mulțumit de înlocuire {p/Robert, q/T1, r/A}, deci putem adăuga Criminal(Robert) care deduce toate faptele disponibile. Și, prin urmare, ne-am atins declarația de obiectiv.

Înlănțuire înainte și înlănțuire înapoi în AI

Prin urmare, se dovedește că Robert este criminal folosind abordarea înlănțuirii înainte.

B. Înlănțuire înapoi:

Înlănțuirea înapoi este cunoscută și ca metodă de deducție inversă sau de raționament invers atunci când se utilizează un motor de inferență. Un algoritm de înlănțuire înapoi este o formă de raționament, care începe cu scopul și funcționează înapoi, înlănțuind prin reguli pentru a găsi fapte cunoscute care susțin scopul.

Proprietățile înlănțuirii înapoi:

  • Este cunoscută ca o abordare de sus în jos.
  • Înlănțuirea înapoi se bazează pe regula de inferență modus ponens.
  • În înlănțuirea înapoi, obiectivul este împărțit în sub-gol sau sub-obiective pentru a dovedi faptele adevărate.
  • Se numește abordare bazată pe obiectiv, deoarece o listă de obiective decide ce reguli sunt selectate și utilizate.
  • Algoritmul de înlănțuire înapoi este utilizat în teoria jocurilor, instrumente automate de demonstrare a teoremelor, motoare de inferență, asistenți de demonstrare și diverse aplicații AI.
  • Metoda de înlănțuire înapoi folosită în cea mai mare parte a căutarea în profunzime strategie pentru dovezi.

Exemplu:

În înlănțuirea înapoi, vom folosi același exemplu de mai sus și vom rescrie toate regulile.

    American (p) ∧ armă(q) ∧ vinde (p, q, r) ∧ ostil(r) → Criminal(p) ...(1)
    Deține(A, T1) ........(2) Rachetă (T1) ?p Rachete(p) ∧ Deține (A, p) → Vinde (Robert, p, A) ......(4) Rachetă(p) → Arme (p) .......(5) Dușman(p, America) → Ostil(p) ........(6) Inamicul (A, America) .........(7) American (Robert). ..........(8)

Dovada de înlănțuire înapoi:

În înlănțuirea înapoi, vom începe cu predicatul nostru obiectiv, care este Criminal (Robert) , și apoi deduceți reguli suplimentare.

Pasul 1:

La primul pas, vom lua fapta obiectivului. Și din fapta scopului, vom deduce alte fapte și, în cele din urmă, vom demonstra că acele fapte sunt adevărate. Deci scopul nostru este „Robert este criminal”, așa că următorul este predicatul.

Înlănțuire înainte și înlănțuire înapoi în AI

Pasul 2:

La al doilea pas, vom deduce alte fapte din fapte de obiectiv care satisfac regulile. Deci, după cum putem vedea în Regula-1, predicatul scop Criminal (Robert) este prezent cu substituția {Robert/P}. Deci vom adăuga toate faptele conjunctive sub primul nivel și vom înlocui p cu Robert.

Aici putem vedea că americanul (Robert) este un fapt, așa că este dovedit aici.

Înlănțuire înainte și înlănțuire înapoi în AI

Pasul 3: t La pasul-3, vom extrage un fapt suplimentar Rachetă(q) care deduce din Weapon(q), deoarece îndeplinește Regula-(5). Arma (q) este de asemenea adevărată cu înlocuirea unei constante T1 la q.

Înlănțuire înainte și înlănțuire înapoi în AI

Pasul-4:

La pasul 4, putem deduce faptele Rachetă(T1) și Owns(A, T1) formează Sells(Robert, T1, r) care satisface Regula - 4 , cu înlocuirea lui A în locul lui r. Deci aceste două afirmații sunt dovedite aici.

Înlănțuire înainte și înlănțuire înapoi în AI

Pasul-5:

La pasul 5, putem deduce faptul Inamic (A, America) din Ostil(A) care îndeplinește regula 6. Și, prin urmare, toate afirmațiile sunt dovedite adevărate folosind înlănțuirea înapoi.

Înlănțuire înainte și înlănțuire înapoi în AI