Know-how, előadás, nyelvi prologus alapkonstrukciók

Kivonat: A nyelv általános jellemzői Prolog: tudásbázisok és szakértői rendszerek. A Prolog objektumai és feltételei: Prolog objektumok - nevek, változók és listák; alapvető és nem alapvető kifejezések; atomok. Prolog tények: a tények szintaxisa; univerzális tények. Prolog szabályok: az elégtelen tények problémája a tudásbázis leírására; a szabály szintaxisza a szabály fejléce és teste; az eljárást, mint a szabályok egyetlen fejléccel való egyesítését; Prolog programot a tények és szabályok gyűjteményeként. Prolog kérések: query syntax; változók nélküli lekérdezésre adott válasz; változók lekérdezése és a változók értelmezése a program végrehajtásakor; Példák a lekérdezõ programokra.







A nyelv általános jellemzői Prologus

A matematikai logika világos és pontos nyelvet biztosít a tudás, hipotézisek és célok kifejezett kifejezéséhez. A teoretikák gépi bizonyításának lehetősége. egy speciális következtetésen alapulva, amelyet az állásfoglalási elvnek neveznek. először J. Robinson 1965-ben szerezte meg. Ez vezetett ahhoz, hogy programozási nyelvet építsen. amely lehetővé tenné az emberi tevékenység egyik szellemi aspektusának megvalósulását - az érvelés magatartását program formájában.

A múlt század 70-es évek elején egy csoport, amelyet A. Kolmeroe vezetett Marseille-ben Fortran-ban, írt egy programot a tételek igazolására. A Prológ (Programmation en Logique). Ez az évtized végén a Prolog nyelv fejlődéséhez és ennek a nyelvnek a továbbfejlesztéséhez vezetett, és általában a logikai programozásnak nevezett irányt.

A nyelv Prolog közel van a Markov modellhez: az alapja egy megfelelő helyettesítés keresése - a változók értelmezése. A helyettesítéseket azonban a nyelv szabályai (a refal-mondatok analógjai) keresi, és a cél pontosan a helyettesítés keresése.

A Prolog program szabályokat tartalmaz. amelyek a bal és a jobb oldali predikátumokkal (tárgyakhoz viszonyítva) vannak. Így a Prolog program bizonyos ismereteket fejez ki a külső világról (feladat vagy feladatcsoport), amely a problémák megoldásához szükséges. Az olyan szabályok, amelyek nem tartalmaznak termékcsomagokat, tények. és a programszabályzat teljes rendszere képezi a tudás alapját.

Egy feladat kérdése, amelyet lekérdezésnek neveznek. szintén valamiféle predikátum. az igazság, amiről érdekel. Ha a lekérdezés nem tartalmaz változókat. akkor az értéke kiszámítása "Igen" választ ad az igazsággal, vagy a "Nem" választ a hamisságra. Ha vannak változók a lekérdezési predikátumban. akkor meg kell keresni értéküket (értelmezésüket), amely alapján ez a predikátum és a program minden predikátuma valósul meg. Ez a program számítása a Prologon.

Mivel minden predikátum egy függvény. akkor a Prolog a funkcionális programozás nyelve.

Tehát a Prolog nyelvben tárgyakat és háromféle objektumot vizsgálnak: tényeket, szabályokat és lekérdezéseket. Az egyetlen adatszerkezet a kifejezés.







A prologum tárgyai és feltételei

A Prolog célja

  • nevek (kisbetűvel kezdődnek), karakterláncok (apostrofokban vannak bezárva) és számok - állandó objektumok vagy állandók; például egy autó, egy ház, Ivan, 'a + b'. 'X'. 123;
  • változók - más objektumok értékét vehetik fel, és nagybetűs latin betűkkel írjuk: például X, A, W;
  • listák - azok elemei bármilyen tárgy; A listákat szögletes zárójelben csatoljuk, elválasztva az elemeket vesszővel; Például [] egy üres lista (ez egy konstans, azt is nullával jelöljük, és vessünk véget a lista ezen elemével, hogy megjelenítsük a lista végét), [a, b, c, nil] egy három állandóból álló lista. b és c; [X, [b, Y, 'X', nil], nil] két elemből álló lista, amelyek közül az első az X változó, a második pedig három elemből álló lista: a név b. Y változót és az "X" karakterláncot.

Az írás befejező elemét elhagyhatjuk, ha szükség van rá. A listák és elemek egy listához való összekapcsolásához használja a pontot a bal oldali (listafej) és a jobboldali (listás fark) bináris összekapcsolási műveleteként. Összekapcsolási művelet esetén a zérusszintű szögletes zárójelek elhagyhatók. Például a.X.Y.a, ahol X = b. Y = c az [a, b, c, a] listája. X = [b] esetén is. Y = [c] ugyanaz a lista. és X = [b, [d, e]] és Y = [[c]] van egy listája [a, b, [d, e], [c], a].

Most bemutatjuk egy fogalom fogalmát induktív módon. A kifejezések a Prolog objektumai. Ezen kívül a kifejezések összetett kifejezések. Egy összetett kifejezést a függvény neve és az argumentumok listája (Prolog kifejezések) képez a zárójelben. A szintaktikailag megfogalmazott kifejezés formája

ahol f az n-ary funktor neve. a - érvek.

Az összetett kifejezésekre példák az alábbiak: hideg (víz), apa (ivan, petr), lista (d, list (b, nil)) és bintree (bintree (null, null), L, 12).

Az első példában egy összetett kifejezés egy olyan állítás, amelynek neve Boolean 1 függvény egy állandó argumentum, amelynek logikai értéke igaz vagy hamis.

A második példában a "ivan a petra atyja" reláció Boole-függvényként van megadva, 2 argumentum-konstans esetén.

A harmadik példában egy bináris függvény a névlista és a két argumentummal az első argumentum egy állandó objektum d. és mint második érv - egy összetett kifejezés ugyanazon funkció nevével és visszatér, nyilvánvalóan, egy lista.

A negyedik példában egy bintree és három argumentumú függvény egy bináris fát ad vissza, amelynek 7, jobb 12 fia és bal fia van, amit az L. változó határoz meg.

Feltételek. amelyben nincsenek benne változók, alapul fognak nevezni. de a kifejezések. a nem változó változók nem alapulnak. Tehát az első három példa a főbb kifejezések. és a negyedik példa egy nem fő kifejezés.

Logikai programozás esetén az alapszerkezet egy predikciós függvény, amelyet olyan összetett kifejezés ír le, amely igaz értékű (igaz vagy hamis), valószínűleg az argumentumok értékeitől függően. Az ilyen predikátumot atomnak vagy atomnak nevezik.

A tények egyszerű állítások azokról a programobjektumokról, amelyek valósnak tekinthetők, vagyis értelmezik a program axiómáit. Mindegyik tény egy atomi predikátum formájában alakul ki, és a jobb oldali nyíl, amely jobbra van. Tehát a következő példában

Meghatározza, hogy Ivan és Petr tárgyai férfiak. hogy Ivan Petra apja, és hogy kétszer kettő négy.

Miért van egy nyíl? A "ha A. majd B" termékrekord általános nézete, ahol A és B predikátumok, a következőképpen fejeződik ki a Prologban:

Az a tény nem rendelkezik előfeltevéssel, és "akkor B" -nek olvasható, vagyis a B állítást valóságosnak tekintik.

Sok a tény a legegyszerűbb Prolog programból. De a tény atomikus predikátuma tartalmazhat változókat argumentumként vagy nem alapvető feltételként. Ebben az esetben alapértelmezés szerint a predikátumváltozókkal rendelkező univerzális kvantálót adjuk hozzá. Az ilyen tényeket univerzálisnak nevezik. ezek igazak a változók bármely értékére. Például,

azt jelenti, hogy a program bármely tárgya "szeret egy alma". Az univerzális tények lerövidítik a program felvételét.