Tények és szabályok - tudásmegjelenítés

A logikai programozás a modern programozás iránya, amely eredetileg a mesterséges értelemben és a nyolcvanas évek második felében alakult ki, az ötödik generációs japán számítógépes projektnek köszönhetően. A logikai programozás ötletének legteljesebb kifejeződése a Prolog (PROgramming in LOGic - programozás logikával). A Prolog nyelv eredeti verzióját 1972-ben alapították Alain Colmerauer irányításával a Marseille Egyetemen. Jelenleg a DOS (PDC Prolog, Arity Prolog stb.), A Windows (Visual Prolog, a Strawberry Prolog, a Trinc Prolog stb.), A Linux (Arity Prolog, a Visual Prolog stb.) Különböző változatai vannak.

A Prolog elméleti alapja a szimbolikus logika szekciója, amelyet a predikátumok kalkulációjának neveznek. A Prolognak számos olyan tulajdonsága van, amelyeket néhány hagyományos programozási nyelv nem tartalmaz, ami a logikai programozás területén hatékony eszköz. Ezek a tulajdonságok magukban foglalják a keresési és visszatérési kimenet mechanizmusa, a minta együttes szállításának beépített mechanizmusa és egy egyszerű, de nagy felbontású, adatstruktúrát a változás lehetőségével. A Prolog-ban nincs point-at-t-li, a -vovation és GOTO operátorok. A természetes me-something-house pro-gram-mi-ro-vanya re-kur-siya.

A Prolog program egy nyilatkozat gyűjteménye. A jóváhagyások célokból állnak. A kijelentés végén a pont "." Néha az ut-ver-zhenie mondatot mond.

A Prolog alapvető működése a nyilatkozatban foglalt célok bizonyítása.

Kétféle állítás létezik:

  • a tény egyetlen cél, amely természetesen igaz;
  • A szabály egy fő célpontból és egy vagy több céltárgyból áll, amelyek bizonyos körülmények között igazak.

A szabály általában több céltáblát tartalmaz a célok összekapcsolása formájában.

A konjunktúra logikus függvényként értelmezhető. Így a szabály konzisztens, ha az összes célzáró célt megegyeznek.

Válasszuk ki a Visual Prolog rendszert (www.visual-prolog.com).

Megoldjuk a kapcsolódó kapcsolatok problémáját, mivel a Prolog alkalmas a nem numerikus információk feldolgozására.

Az a tény, hogy Tom a Bob szülője, így írható a Prologra:

Itt választottuk a szülőt, mint a kapcsolat név, a tom és a bab - mint érveket ennek a kapcsolatnak. Olyan neveket írunk le, mint a tom. kezdve kisbetűvel. Minden fa vonatkozású kapcsolat (szemantikai hálózat)

a következő Visual Prolog programban olvasható:

A programozáshoz szükséged van

1. Indítsa el a Visual Prolog rendszert.

Tények és szabályok - tudásmegjelenítés

Ábra. 12.1. Visual Prolog 5.0 ablak

2. Lépjen be a File → New programba.

3. Vizsgálja meg a Project ® Test Goal célját.

A megkérdezett kérdésre: "Bob a Pat szülője?" - a rendszer igen, miután megtalálta a tényt a programban.

Egy másik kérdés: "Ki a Liz szülője?"

A kérdés: "Kik Bob gyermekei?" Adható ebben a formában:

A program általánosabb kérdésekkel is foglalkozhat: "Ki az a szülő?" Tegyük fel így:

Keress X-et és Y-t úgy, hogy X az Y szülője.

A Prologon így írt:

A rendszer viszont megtalálja a szülő-gyermek típus összes párját.

Határozza meg a szabályokat: egy nő, egy férfi, egy szülő, a szülők, a nagyapa, a nagymama.

Határozza meg a nők szabályát, amely csak a leírt világon alapul.

Hasonlóképpen, a szabály ember.

A célok az alábbiak szerint állíthatók be.

Megoldjuk a Romanov család családi kapcsolatainak problémáját, és megtaláljuk Alekszej Mikhailovics gyermekeit.

Az összes kérdést egy összetett kérdés segítségével fogjuk megtalálni.

Több szabályt is hozzáadunk: testvér, how_reign.

A testvér meghatározására vonatkozó szabály az alábbiak szerint értelmezhető:

Minden X és Y esetében X az Y testvére, ha

  • X és Y közös szülő, és
  • X ember, és
  • X nem a saját testvére.

A cél elérésének folyamatában a Prolog automatikusan lefuttatja az opciókat, és visszalép, ha egyikük sem sikerül. Néha szükséges korlátozni vagy kizárni.

Ehhez a Prologban korlátozó keresési cél van ("clipping" (!), Amely feltétel nélkül igaz.

Csak Alexei Mikhailovics fiát találjuk

Olyan predikátumot írunk le, amely két egész számot határoz meg.

Ezek a szabályok kölcsönösen kizárják egymást. Ha az első elégedett, a második sikertelen lesz. Módosíthatja a szabály leütésével.

A Prolog szabványos predikátumot tartalmaz, amelynek befejezése mindig sikertelen - sikertelen. A hiba prediktálja a visszalépés folyamatát, vagyis az új megoldások keresése vagy a célok újragondolása. Mutassunk egy példát.

A negáció végrehajtásához használja a predikátumot nem. Használatának sajátossága, hogy minden átadott effimernek hozzá kell járulnia, azaz betonhoz. Például a kérdésre adott válasz: "Leonard nem Jason atya?"

a rendszer nem érzékeli. Meg lehet ismételni a célt: "Ki az ismert rendszerű apákból nem Jason apja?".

Így nem tud tudást szerezni a tudatlanságból, és a predikátumot nem csak ellenőrzési célokra használják.

A fenti programokon a Visual Prologon kiválaszthatja és elvégezheti a következőket:

Kapcsolódó cikkek