logo

Prolog | O introducere


Introducere:

greatandhra

Prolog este un programare logica limba. Are un rol important în inteligența artificială. Spre deosebire de multe alte limbaje de programare, Prolog este conceput în primul rând ca un limbaj de programare declarativ. În prolog, logica este exprimată ca relații (numite fapte și reguli). Inima de bază a prologului se află la logică fiind aplicat. Formularea sau Calculul se realizează prin rularea unei interogări asupra acestor relații.



Instalare in Linux:

Deschide un terminal (Ctrl+Alt+T) și tastați:

 sudo apt-get install swi-prolog>

Sintaxă și câmpuri de bază:



În prolog, declarăm câteva fapte. Aceste fapte constituie baza de cunoștințe a sistemului. Putem interoga pe baza de cunoștințe. Obținem rezultate afirmative dacă interogarea noastră este deja în baza de cunoștințe sau este implicată de baza de cunoștințe, altfel obținem rezultate negative. Deci, baza de cunoștințe poate fi considerată similară bazei de date, față de care putem interoga. Faptele prolog sunt exprimate în model definit. Faptele conțin entități și relația lor. Entitățile sunt scrise între paranteze separate prin virgulă (, ). Relația lor este exprimată la început și în afara parantezei. Fiecare fapt/regulă se termină cu un punct (.). Deci, un fapt tipic de prolog este după cum urmează:

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

Caracteristici cheie:
1. Unificare: Ideea de bază este dacă termenii dați pot fi făcuți să reprezinte aceeași structură.
2. Înapoi: Când o sarcină eșuează, prologul urmărește înapoi și încearcă să satisfacă sarcina anterioară.
3. Recursie: Recursiunea este baza oricărei căutări în program.

Rularea interogări:
O interogare tipică prolog poate fi solicitată ca:



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

Avantaje:
1. Baza de date usor de construit. Nu necesită mult efort de programare.
2. Potrivirea modelelor este ușoară. Căutarea se bazează pe recursivitate.
3. Are încorporat gestionarea listelor. Facilitează jocul cu orice algoritm care implică liste.

Dezavantaje :
1. LISP (un alt limbaj de programare logic) domină peste prolog în ceea ce privește caracteristicile I/O.
2. Uneori, intrarea și ieșirea nu este ușoară.

Aplicatii:

Prolog este foarte utilizat în inteligența artificială (AI). Prolog este, de asemenea, folosit pentru potrivirea modelelor peste arbori de analiză a limbajului natural.

Referința 1: https://en.wikipedia.org/wiki/Prolog

convertește matricea de octeți în șir

Referința 2: http://www.swi-prolog.org/