Úvod :
Prolog je a logické programovanie Jazyk. Má dôležitú úlohu v umelej inteligencii. Na rozdiel od mnohých iných programovacích jazykov je Prolog určený predovšetkým ako deklaratívny programovací jazyk. V prológu je logika vyjadrená ako vzťahy (nazývané ako fakty a pravidlá). Jadrom prologu je logika sa uplatňuje. Formulácia alebo výpočet sa vykonáva spustením dotazu nad týmito vzťahmi.
java generátor náhodných čísel
Inštalácia v Linuxe:
Otvorte terminál (Ctrl+Alt+T) a typ:
sudo apt-get install swi-prolog>
Syntax a základné polia:
V prológu uvádzame niektoré skutočnosti. Tieto skutočnosti tvoria bázu znalostí systému. Môžeme sa pýtať na Databázu znalostí. Výstup dostaneme ako kladný, ak je náš dotaz už v znalostnej báze alebo je implikovaný znalostnou bázou, inak dostaneme výstup ako negatívny. Znalostnú bázu teda možno považovať za podobnú databáze, proti ktorej môžeme dotazovať. Prologové fakty sú vyjadrené v určitom vzore. Fakty obsahujú entity a ich vzťah. Entity sa píšu v zátvorkách oddelených čiarkou (, ). Ich vzťah je vyjadrený na začiatku a mimo zátvorky. Každý fakt/pravidlo končí bodkou (.). Takže typický prolog vyzerá takto:
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.>
Kľúčové vlastnosti:
1. Zjednotenie: Základnou myšlienkou je, či môžu dané výrazy reprezentovať rovnakú štruktúru.
2. Backtracking : Keď úloha zlyhá, prolog sleduje spätne a pokúsi sa splniť predchádzajúcu úlohu.
3. Rekurzia: Rekurzia je základom pre akékoľvek vyhľadávanie v programe.
Spustené dopyty:
Typický prologový dotaz môže byť položený ako:
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'.>
Výhody:
1. Jednoduché zostavenie databázy. Nevyžaduje veľa programátorského úsilia.
2. Priraďovanie vzorov je jednoduché. Vyhľadávanie je založené na rekurzii.
3. Má zabudovanú manipuláciu so zoznamom. Uľahčuje hru s akýmkoľvek algoritmom zahŕňajúcim zoznamy.
binárny strom java
Nevýhody:
1. LISP (ďalší logický programovací jazyk) dominuje nad prologom, pokiaľ ide o I/O funkcie.
2. Niekedy nie je vstup a výstup jednoduchý.
Aplikácie:
Prolog je vysoko používaný v umelej inteligencii (AI). Prolog sa tiež používa na porovnávanie vzorov nad stromami analýzy prirodzeného jazyka.
Referencia 1: https://en.wikipedia.org/wiki/Prolog
Referencia 2: http://www.swi-prolog.org/