logo

Prolog | Uvod


Uvod:

Prolog je a logično programiranje jezik. Ima pomembno vlogo pri umetni inteligenci. Za razliko od mnogih drugih programskih jezikov je Prolog mišljen predvsem kot deklarativni programski jezik. V prologu je logika izražena kot relacije (imenovane dejstva in pravila). Jedro prologa je na logika se uporablja. Formulacija ali izračun se izvede z izvajanjem poizvedbe čez te relacije.



Namestitev v Linuxu:

Odprite terminal (Ctrl+Alt+T) in tip:

 sudo apt-get install swi-prolog>

Sintaksa in osnovna polja:



V prologu razglasimo nekaj dejstev. Ta dejstva sestavljajo bazo znanja sistema. Poizvedujemo lahko po bazi znanja. Izhod dobimo kot pritrdilen, če je naša poizvedba že v zbirki znanja ali jo implicira Baza znanja, sicer dobimo izhod kot negativen. Bazo znanja torej lahko obravnavamo kot podobno zbirki podatkov, po kateri lahko izvajamo poizvedbe. Prolog dejstva so izražena v določenem vzorcu. Dejstva vsebujejo entitete in njihov odnos. Entitete so zapisane v oklepaju in ločene z vejico (, ). Njuno razmerje je izraženo na začetku in zunaj oklepaja. Vsako dejstvo/pravilo se konča s piko (.). Torej, tipično uvodno dejstvo je naslednje:

java while zanka
 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.>

Ključne funkcije :
1. Poenotenje: Osnovna ideja je, ali lahko dani izrazi predstavljajo isto strukturo.
2. Sledenje nazaj: Ko naloga ne uspe, prolog sledi nazaj in poskuša izpolniti prejšnjo nalogo.
3. Rekurzija: Rekurzija je osnova za vsako iskanje v programu.

Izvajanje poizvedb:
Tipično prologno poizvedbo lahko zastavimo kot:



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

Prednosti:
1. Bazo podatkov je enostavno zgraditi. Ne potrebuje veliko truda pri programiranju.
2. Ujemanje vzorcev je preprosto. Iskanje temelji na rekurziji.
3. Ima vgrajeno rokovanje s seznami. Olajša igranje s katerim koli algoritmom, ki vključuje sezname.

Slabosti:
1. LISP (drug logični programski jezik) prevladuje nad prologom glede V/I funkcij.
2. Včasih vnos in izhod nista preprosta.

Aplikacije:

Prolog se zelo uporablja v umetni inteligenci (AI). Prolog se uporablja tudi za ujemanje vzorcev v drevesih za razčlenjevanje naravnega jezika.

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

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