Basics vizuális prolog
Alapjai Visual Prolog nyelv
1.1 Programozási logika
A Prolog, az oldat egy logikus következtetés az ismert pozíciókat. Általában a program Prolog nem egy akció-szekvencia - ez a tényállásra a szabályokat, így következtetések alapján ezeket a tényeket. Ezért Prolog ismert deklaratív nyelv.
Prolog alapul Horn kikötések, amelyek egy részét a formális rendszer, az úgynevezett elsőrendű logika. elsőrendű logika - a legegyszerűbb módja annak, hogy magyarázza el, hogyan „működik” a gondolkodás, és ez könnyebb, mint számtani, amit már használ. Prolog használ egy egyszerűsített változata a szintaxis a elsőrendű logika.
Prolog magában kiadási mechanizmust, amely alapul minták összehasonlítása. A kiválasztás a válaszok kéréseket beolvassa tárolják (ismert) információkat. Prolog megpróbálja érvényességének ellenőrzése a hipotézist (más szavakkal -, hogy válaszoljon a kérdésre), kérve az információkat, amelyek már tudjuk, hogy ez igaz. Prolog ismerete a világ - korlátozott tények (és szabályok) a programban meghatározott.
Az egyik legfontosabb jellemzője a Prologue - az, hogy amellett, hogy a logikus keresés a választ ezekre a kérdésekre, tudja kezelni az alternatívák, és megtalálja a lehetséges megoldásokat. Ahelyett, hogy a szokásos munka a program elején, hogy a végén a Prologue mehet vissza, és többet, mint egy „út” a probléma megoldásában minden alkatrészei.
elsőrendű logika úgy lett kialakítva, hogy a legegyszerűbb átalakítása elveinek logikus gondolkodás a felvehető formában. Prologue előnye szintaxis logikai szoftverfejlesztés nyelvet. Az elsőrendű logika ki kell zárni a javaslat összes releváns szó. Akkor átalakítani ezeket a javaslatokat, helyezzük el őket az első helyen hozzáállás, és utána - csoportosított objektumokat. Ezt követően az érvek tárgyak között, amelyre telepítették hozzáállás.
Egy természetes nyelv
Szintaxisa elsőrendű logika
Bill szereti a kocsi, ha az autó gyönyörű
szeret (Bill, autó), ha fun (autó)
Tények és szabályok
A program kidolgozásában a Prolog bemutatásához szükséges tárgyak (objektumok) és attitűdök (kapcsolatok), majd - a szabályok (szabályok), amelyben ezek a kapcsolatok igaz.
Bill szereti a kutyákat.
javaslat létrehozza objektumok közötti Bill és kutyák; ez a reláció szeret. A meghatározó szabály, ha a mondat igaz, valahogy így nézne ki:
Bill szereti a kutyákat, ha a kutya szép.
Az objektumok közötti nevezzük tény (tény). Tények - egy kapcsolat vagy tulajdonságokkal, amelyekről ismert, hogy van értéke „true”. Az arány áll a név és a kapcsolat a tárgy vagy tárgyak zárójelbe téve. Mint egy javaslatot, hogy a végpont.
Tények szét viszony kifejezésére és tulajdonságai:
Szabályok lehetővé teszik, hogy egy tény egyéb tényeket. Szabály - a következtetés, hogy amiről tudjuk, hogy ez igaz, ha egy vagy több más talált véleményeket vagy tények igazak. Szabályok - összefügg a kapcsolat. Ezek lehetővé teszik Prolog következtetni egyetlen információt a másiktól. A szabály van beállítva, hogy az „igazi”, ha bebizonyosodik, hogy egy adott feltételrendszer igaz.
Cindy szeret mindent, ami Bill szereti.
E szabály értelmében, kiderül, hogy
Cindy szereti a kutyákat.
Prolog szabályok a szintaxis más lesz:
szeret (cindy, valami): - szeret (számla, valami).
Symbol: - van értelme a „ha”, és arra szolgál, hogy elválassza a két része a szabály: fejléc és a test. Title - Tény, hogy igaz lenne, ha igaz lenne, hogy több feltételeket. Ez az úgynevezett terminális vagy függő kapcsolatban. A test - számos feltétel, hogy igaznak kell lennie, hogy a Prolog bizonyítani tudja, hogy a szabályok a főcím igaz.
A szabály lehet tekinteni, mint egy eljárást. A mi esetünkben ez így néz ki: „Annak bizonyítására, hogy Cindy szeret valamit, azt bizonyítják, hogy Bill szereti.” Az ilyen eljárási szempontból előírások végrehajtását teszik szükségessé minden olyan intézkedés, kivéve a bizonyítékok a tények - a nyomtatni valamit, vagy hozzon létre egy fájlt.
Miután kérve néhány a tényeket, kérdéseket tehet fel a köztük lévő kapcsolatot. Ezt nevezik a kérést (query) rendszer Prolog. Prologue mindig keresi a választ, hogy a lekérdezés az első tény, és ezen keresztül az összes tényt, amíg el nem fogynak.
A második esetben a második tárgy - Mi - kezdődik nagybetűvel, míg az első tárgy - cindy - horizontális. Ez azért van, mert Cindy - fix, helyhez kötött tárgy, ismert mennyiségű, és mi - változó.
Kézhezvételét követően a kérelmet, hogy szeret, Cindy, Prolog válaszolni fog:
Kéri (gól) lehet egyszerű vagy összetett. Komplex úgynevezett cél, amely két vagy több részből áll. És minden része egy komplex cél - egy al. Lehet, hogy a használata a konjunktív és diszjunktív társulási formák al-célokat. A karakterek használhatók zárni. és; volt.
Composite célokat is használható megoldást találni, amelynek során:
ü Mind a sub A és B igaz (együtt), al-felosztási pont:
ü részcél igaz, vagy A, vagy a részcél B (diszjunkciót), pontosvesszővel elválasztva subgoals.
Prolog változók mindig úgy kezdődik, nagybetűvel vagy aláhúzás.
Prolog nincs értékadó operátor. Változók kezdeti a prológ, ha összehasonlítjuk a állandók tény vagy szabály. Inicializálás előtt a változó szabadon, miután egy értéket rendelünk hozzá kötötté válik. A változó kötött csak annyi ideig, ami szükséges egy határozatot a kérelem, akkor a Prologue elengedi, és keres egy másik megoldást.
Nem lehet menteni az adatokat, hozzárendel egy értéket egy változónak. Változókat lehet használni, mint a folyamat részeként megoldásokat találjanak, nem pedig egy információs tárház.
Ez a példa kényelmes megfigyelni, hogy ő kiemelkedik a tényeket, amelyek a második érv - olvasás, egy személy változó kezdetben összefüggő ellen érték és a listát a tények arra törekszik tény megfelel a második része a lekérdezés: szereti (ellen, úszás). Mivel ez a tény sem, Prolog tények különböztet a következő tény, amely a második érv - olvasás, azaz szereti (Eric, olvasás) és egy változó személy társított érték Eric. Tovább a listán, akik a tények tény megfelel a második része a lekérdezés: szereti (Eric, úszás). És mivel ez a tény a hely, akkor Prolog megadja a választ:
A változók ilyen típusú akkor használjuk, ha a használni kívánt on-demand nem egy teljes és részletes információk a kérés, figyelmen kívül hagyva a felesleges értékeket. Ezek a változók által jelzett aláhúzás.
Anonymous változókat lehet használni a Prolog tényeket. Például a tényeket:
Ezek segítségével fejezzük ki a természetes nyelv: Mindenkinek megvan a száját. Minden italt.
Anonymous változók illeszkedik bármilyen adat.
articles = könyv (string Cím, string Szerző)
szeret (string nagybetűk, string kisbetűk)
Visual Prolog programot
A fő részei a programokat.
- Szakasz domének (tartományok);
- partíció predikátumok (predikátumok);
- szakasz kikötések (mondat);
- profil cél (célok).
Javaslat. Bármilyen javaslatot minden állítmány ebben a szakaszban kell összeilleszteni. A sorozat mondat leírására egy állítmány nevezett eljárás.
predikátumok részben. Ez felsorolja az összes predikátumok, amelyek eltérnek a standard (beépített VP) és a programban használt. Predikátumok szerepelni, jelezve típusú (domének) érveik.
1) az állítmány neve - egy betűkből, számokból és aláhúzás kezdődő nagybetűvel. A név hossza nem lehet több, mint 250 karakter. A neveket tilos a karakterek, mint a szóköz, -, *, stb.;
2) a domainek listáját (típusok) az alapul érvek zárójelbe téve.
Ezzel szemben a javaslatok alapján kikötések leírása az állítmány nem ér véget a kérdésben. Domains (típusát) érvek lehetnek szabványos, illetve domaint deklarált részben területen.
Argumentumainak száma állítmány - a számos érv tart. A program magában foglalja a két predikátum lehet használni az azonos nevű, de különböző argumentumainak száma.
Domain partíciót. Ha my_predikate (szimbólum, integer) predikátum bejelentett predikátumok szakaszban a következő módon:
my_predikate (szimbólum, integer)
my_predikate (név, szám),
A fent kell szakaszban leírt Domain
Domains lehetővé teszi különböző nevek különböző típusú adatokat.
imya, pol = szimbólum
személy (imya, pol, vozrast)
rovesnik (X, Y): - személy (X, Pol, Let), személy (Pol, Y, Let)
ha a változót használjuk egy mondatban egynél több állítmány, meg kell nyilvánítani azonos mindegyikben.
egy rövid, jelképes, mennyiségi