logo

Prolog | Pristatymas


Įvadas :

Prologas yra a loginis programavimas kalba. Ji vaidina svarbų vaidmenį dirbtiniame intelekte. Skirtingai nuo daugelio kitų programavimo kalbų, „Prolog“ visų pirma skirta kaip deklaratyvi programavimo kalba. Prologe logika išreiškiama kaip santykiai (vadinami kaip faktai ir taisyklės). Pagrindinė prologo širdis yra logika taikomos. Formuliavimas arba skaičiavimas atliekami vykdant šių ryšių užklausą.



Diegimas Linux sistemoje:

Atidarykite terminalą (Ctrl + Alt + T) ir tipas:

 sudo apt-get install swi-prolog>

Sintaksė ir pagrindiniai laukai:



Prologe paskelbiame kai kuriuos faktus. Šie faktai sudaro sistemos žinių bazę. Galime pateikti užklausą pagal žinių bazę. Gauname išvestį kaip teigiamą, jei mūsų užklausa jau yra žinių bazėje arba ji yra numanoma žinių bazės, kitu atveju išvestį gauname kaip neigiamą. Taigi, žinių bazę galima laikyti panašia į duomenų bazę, pagal kurią galime atlikti užklausas. Prologo faktai išreiškiami tam tikru būdu. Faktai apima esybes ir jų ryšį. Esybės rašomos skliausteliuose, atskirtos kableliais (, ). Jų ryšys išreiškiamas pradžioje ir už skliaustų ribų. Kiekvienas faktas/taisyklė baigiasi tašku (.). Taigi, tipiškas prologo faktas yra toks:

 Format : relation(entity1, entity2, ....k'th entity). Example : friends(raju, mahesh). singer(sonu). odd_number(5). Explanation : These facts can be interpreted as : raju and mahesh are friends. sonu is a singer. 5 is an odd number.>

Pagrindiniai bruožai :
1. Suvienijimas: Pagrindinė mintis yra ta, ar pateikti terminai gali reprezentuoti tą pačią struktūrą.
2. Grįžimas atgal: Kai užduotis nepavyksta, prolog seka atgal ir bando įvykdyti ankstesnę užduotį.
3. Rekursija: Rekursija yra bet kokios paieškos programoje pagrindas.

Vykdomos užklausos:
Įprastą prologo užklausą galima užduoti taip:



 Query 1 : ?- singer(sonu). Output : Yes. Explanation : As our knowledge base contains the above fact, so output was 'Yes', otherwise it would have been 'No'. Query 2 : ?- odd_number(7). Output : No. Explanation : As our knowledge base does not contain the above fact, so output was 'No'.>

Privalumai:
1. Lengva sukurti duomenų bazę. Nereikalauja daug programavimo pastangų.
2. Rašto derinimas yra lengvas. Paieška pagrįsta rekursija.
3. Jame yra įmontuotas sąrašų tvarkymas. Palengvina žaidimą su bet kokiu algoritmu, apimančiu sąrašus.

Trūkumai:
1. LISP (kita loginio programavimo kalba) dominuoja prieš prolog I/O funkcijų atžvilgiu.
2. Kartais įvestis ir išvestis nėra lengva.

Programos :

„Prolog“ plačiai naudojamas dirbtiniame intelekte (AI). „Prolog“ taip pat naudojamas modelių derinimui per natūralios kalbos analizavimo medžius.

1 nuoroda: https://en.wikipedia.org/wiki/Prolog

2 nuoroda: http://www.swi-prolog.org/