logo

Prolog | En introduktion


Introduktion :

Prolog er en logisk programmering Sprog. Det har en vigtig rolle i kunstig intelligens. I modsætning til mange andre programmeringssprog er Prolog primært tænkt som et deklarativt programmeringssprog. I prolog udtrykkes logik som relationer (kaldet som fakta og regler). Kernen i prolog ligger på logik bliver anvendt. Formulering eller beregning udføres ved at køre en forespørgsel over disse relationer.

Installation i Linux:



Åbn en terminal (Ctrl+Alt+T) og type:

javascript
 sudo apt-get install swi-prolog>

Syntaks og grundlæggende felter:

I prolog erklærer vi nogle fakta. Disse fakta udgør systemets vidensbase. Vi kan forespørge mod vidensbasen. Vi får output som bekræftende, hvis vores forespørgsel allerede er i vidensbasen, eller det er underforstået af Knowledge Base, ellers får vi output som negativt. Så Knowledge Base kan betragtes som en database, som vi kan forespørge efter. Prolog-fakta er udtrykt i et bestemt mønster. Fakta indeholder enheder og deres relation. Enheder skrives inden for parentesen adskilt af komma (, ). Deres relation er udtrykt i starten og uden for parentesen. Hver kendsgerning/regel slutter med en prik (.). Så en typisk prolog-kendsgerning lyder som følger:

industri og fabrik
 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.>

Nøglefunktioner :
1. Sammenlægning: Den grundlæggende idé er, kan de givne udtryk fremstilles til at repræsentere den samme struktur.
2. Tilbagesporing: Når en opgave mislykkes, spores prolog baglæns og forsøger at opfylde tidligere opgave.
3. Rekursion: Rekursion er grundlaget for enhver søgning i programmet.

Kørende forespørgsler:
En typisk prolog-forespørgsel kan stilles som:

 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'.>

Fordele:
1. Let at bygge database. Kræver ikke en masse programmeringsindsats.
2. Mønstermatching er let. Søgning er rekursionsbaseret.
3. Den har indbygget listehåndtering. Gør det nemmere at spille med enhver algoritme, der involverer lister.

reactjs kort

Ulemper:
1. LISP (et andet logisk programmeringssprog) dominerer over prolog med hensyn til I/O-funktioner.
2. Nogle gange er input og output ikke let.

Ansøgninger:

Prolog er meget brugt i kunstig intelligens (AI). Prolog bruges også til mønstermatching over parsetræer i naturligt sprog.

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

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