logo

Kedja framåt och bakåt i AI

Inom artificiell intelligens är kedja framåt och bakåt ett av de viktiga ämnena, men innan vi förstår kedja framåt och bakåt ska vi först förstå varifrån dessa två termer kom.

python rest-operator

Inferensmotor:

Slutledningsmotorn är komponenten i det intelligenta systemet inom artificiell intelligens, som tillämpar logiska regler på kunskapsbasen för att härleda ny information från kända fakta. Den första slutledningsmotorn var en del av expertsystemet. Inferensmotorn fortsätter vanligtvis i två lägen, som är:

    Kedja framåt Kedja bakåt

Hornklausul och definitiv sats:

Hornsats och bestämd sats är formerna av meningar som gör det möjligt för kunskapsbasen att använda en mer begränsad och effektiv slutledningsalgoritm. Logiska slutledningsalgoritmer använder kedjemetoder framåt och bakåt, som kräver KB i form av första ordningens bestämda klausul .

Bestämd klausul: En klausul som är en disjunktion av bokstavliga ord med exakt en positiv bokstavlig är känd som en bestämd klausul eller strikt hornsats.

Hornklausul: En klausul som är en disjunktion av bokstavliga ord med högst en positiv bokstavlig är känd som hornklausul. Därför är alla bestämda klausuler hornsatser.

Exempel: (¬ p V ¬ q V k) . Den har bara ett positivt bokstavligt k.

Det motsvarar p ∧ q → k.

A. Forward Chaining

Forward chaining är också känd som en framåtriktad deduktion eller framåtriktad resonemangsmetod när man använder en inferensmotor. Forward chaining är en form av resonemang som börjar med atomära meningar i kunskapsbasen och tillämpar inferensregler (Modus Ponens) i framåtriktningen för att extrahera mer data tills ett mål uppnås.

Forward-chaining-algoritmen utgår från kända fakta, utlöser alla regler vars premisser är uppfyllda, och lägger sin slutsats till de kända fakta. Denna process upprepas tills problemet är löst.

Egenskaper för forward-chaining:

  • Det är ett nedåtriktat tillvägagångssätt, eftersom det rör sig från botten till toppen.
  • Det är en process att dra en slutsats baserad på kända fakta eller data, genom att utgå från initialtillståndet och nå måltillståndet.
  • Framåtkedjande tillvägagångssätt kallas också för datadrivet när vi når målet med hjälp av tillgänglig data.
  • Framåtkedjemetoden används vanligtvis i expertsystemet, såsom CLIPS, affärs- och produktionsregelsystem.

Betrakta följande berömda exempel som vi kommer att använda i båda tillvägagångssätten:

Exempel:

'I enlighet med lagen är det ett brott för en amerikan att sälja vapen till fientliga nationer. Land A, en fiende till Amerika, har några missiler, och alla missiler såldes till det av Robert, som är amerikansk medborgare.'

Bevisa det 'Robert är kriminell.'

För att lösa ovanstående problem kommer vi först att omvandla alla ovanstående fakta till första ordningens bestämda klausuler, och sedan kommer vi att använda en framåtkedjealgoritm för att nå målet.

Faktakonvertering till FOL:

  • Det är ett brott för en amerikan att sälja vapen till fientliga nationer. (Låt oss säga att p, q och r är variabler)
    Amerikanskt (p) ∧ vapen(q) ∧ säljer (p, q, r) ∧ fientlig(r) → Kriminell(p) ...(1)
  • Land A har några missiler. ?p Äger(A, p) ∧ Missil(p) . Det kan skrivas i två bestämda satser genom att använda Existential Instantiation, vilket introducerar nya Constant T1.
    Äger(A, T1) ......(2)
    Missil(T1) .......(3)
  • Alla missiler såldes till land A av Robert.
    ?p Missiler(p) ∧ Äger (A, p) → Säljer (Robert, p, A) ......(4)
  • Missiler är vapen.
    Missil(p) → Vapen (p) .......(5)
  • Enemy of America är känd som fientlig.
    Fiende(p, Amerika) → Fientlig(p) ........(6)
  • Land A är en fiende till Amerika.
    Fiende (A, Amerika) .........(7)
  • Robert är amerikan
    Amerikansk (Robert). ..........(8)

Forward chaining proof:

Steg 1:

I det första steget börjar vi med de kända fakta och kommer att välja de meningar som inte har implikationer, såsom: Amerikansk(Robert), Enemy(A, Amerika), Owns(A, T1) och Missile(T1) . Alla dessa fakta kommer att representeras enligt nedan.

Kedja framåt och bakåt i AI

Steg 2:

I det andra steget kommer vi att se de fakta som härleder från tillgängliga fakta och med tillfredsställda premisser.

Regel-(1) uppfyller inte premisser, så det kommer inte att läggas till i den första iterationen.

Regel-(2) och (3) har redan lagts till.

Regel-(4) tillfredsställ med bytet {p/T1}, så säljer (Robert, T1, A) läggs till, vilket härleds från konjunktionen av regel (2) och (3).

Regel-(6) är nöjd med substitutionen(p/A), så Hostile(A) läggs till och som härleds från regel-(7).

Kedja framåt och bakåt i AI

Steg 3:

Vid steg-3, som vi kan kontrollera, är Regel-(1) nöjd med bytet {p/Robert, q/T1, r/A}, så vi kan lägga till Criminal(Robert) som härleder alla tillgängliga fakta. Och därmed nådde vi vårt mål.

Kedja framåt och bakåt i AI

Därför är det bevisat att Robert är kriminell genom att använda framåtkedjemetoden.

B. Bakåtkedja:

Bakåtkedja är också känd som en bakåtdeduktion eller bakåtresonemangsmetod när man använder en inferensmotor. En bakåtkedjad algoritm är en form av resonemang, som börjar med målet och arbetar bakåt, kedjar genom regler för att hitta kända fakta som stöder målet.

Egenskaper för bakåtkedja:

  • Det är känt som ett uppifrån och ner tillvägagångssätt.
  • Bakåtkedja baseras på modus ponens slutledningsregel.
  • Vid baklängeskedja delas målet upp i delmål eller delmål för att bevisa att fakta är sanna.
  • Det kallas ett målstyrt tillvägagångssätt, eftersom en lista med mål avgör vilka regler som väljs och används.
  • Bakåtkedjealgoritm används i spelteori, automatiserade teorembevisande verktyg, inferensmotorer, bevisassistenter och olika AI-applikationer.
  • Bakåtkedjemetoden använde oftast a djup-första sökning strategi för bevis.

Exempel:

I bakåtkedja kommer vi att använda samma exempel ovan och kommer att skriva om alla regler.

    Amerikanskt (p) ∧ vapen(q) ∧ säljer (p, q, r) ∧ fientlig(r) → Kriminell(p) ...(1)
    Äger(A, T1) ........(2) Missil (T1) ?p Missiler(p) ∧ Äger (A, p) → Säljer (Robert, p, A) ......(4) Missil(p) → Vapen (p) .......(5) Fiende(p, Amerika) → Fientlig(p) ........(6) Fiende (A, Amerika) .........(7) Amerikansk (Robert). ..........(8)

Bakåtkedjebevis:

I Backward chaining kommer vi att börja med vårt målpredikat, vilket är Kriminell (Robert) , och dra sedan slutsatsen ytterligare regler.

Steg 1:

I det första steget kommer vi att ta målfaktumet. Och från målfaktumet kommer vi att sluta oss till andra fakta, och till sist kommer vi att bevisa att dessa fakta är sanna. Så vårt mål är 'Robert är kriminell', så följande är predikatet för det.

Kedja framåt och bakåt i AI

Steg 2:

I det andra steget kommer vi att sluta oss till andra fakta från målfakta som uppfyller reglerna. Så som vi kan se i Regel-1, är målpredikatet Criminal (Robert) närvarande med substitution {Robert/P}. Så vi lägger till alla konjunktivfakta under den första nivån och kommer att ersätta p med Robert.

Här kan vi se amerikanska (Robert) är ett faktum, så det bevisas här.

Kedja framåt och bakåt i AI

Steg 3: t Vid steg-3 kommer vi att extrahera ytterligare faktamissil(q) som härleder från Vapen(q), eftersom den uppfyller Regel-(5). Vapen (q) är också sant med substitution av en konstant T1 vid q.

Kedja framåt och bakåt i AI

Steg-4:

I steg-4 kan vi sluta oss till fakta Missile(T1) och Owns(A, T1) från Sells(Robert, T1, r) som uppfyller Regel - 4 , med ersättning av A i stället för r. Så dessa två påståenden bevisas här.

Kedja framåt och bakåt i AI

Steg-5:

I steg-5 kan vi sluta oss till faktum Enemy (A, Amerika) från Fientlig(A) som uppfyller regel-6. Och därför bevisas alla påståenden sanna med hjälp av bakåtkedja.

Kedja framåt och bakåt i AI