Sunteți pe pagina 1din 21

Prolog

0. Introducere – exemplu de start


1. Sintaxa
2. Raţionamente în Prolog - explicaţii simplificate
3. Folosirea operatorilor
4. Liste
5. Reguli recurente
6. .Explicaţii detaliate legate de raţionamentele în
Prolog
Prolog
0. Introducere
- Limbaj descriptiv
- Exemplu de start
- Scurt istoric
1. Sintaxa
2. Raţionamente în prolog - explicaţii simplificate
3. Folosirea operatorilor
4. Liste
5. Reguli recurente
6. Explicaţii detaliate legate de raţionamentele în Prolog
Prolog – Introducere - Limbaj descriptiv
(≠ limbaj imperativ: C, C++ etc.)

Program: bază de fapte şi reguli (cunoştinţe)


– mod descriptiv
Răspunsuri cerute prin întrebări

Găsirea răspunsurilor: prin raţionament (logică)

>> bază pentru


inteligenţă artificială

Obs: Nu se indică explicit din program CUM să se caute soluţia


Execuţia programului include deducţie.
Prolog – Introducere

Exemplu de start
parent(fred, greta).
Fapte %“fred” este “parent” pentru “greta”
Fapta - adevărată

parent(greta, henry).

grandparent(X, Z):- parent(X, Y), parent(Y, Z). Regula –


adevărată dacă
% X este grandparent pentru Z dacă enunturile din
Regula
% . X este parent pentru Y şi
corpul regulii sunt
% Y este parent pentru Z adevărate

(consecintă
? - parent(X, greta).
logică)
Întrebări ? - grandparent(fred, X).
?- grandparent(X, henry).
Prolog – Introducere

Exemplu simplu de start

relaţie – aritate (nr argumente) 2

parent(fred, greta). constante Faptele sunt


Fapte adevărate.
parent(greta, henry).

argumente variabile

grandparent(X, Z):- parent(X, Y), parent(Y, Z). Regulile - adevărate


Regula dacă toate
subscopurile din
corp sunt
îndeplinite
Prolog – Introducere

Exemplu simplu de start

parent(fred, greta). Structura unui fapt:


Fapte
parent(greta, henry). • parent –nume predicat
• fred, greta - constante
grandparent(X, Z):- parent(X, Y), parent(Y, Z).
Regula (atomi)
Prolog – Introducere

Exemplu simplu de start

Structura unei reguli:


parent(fred, greta).
Fapte
• grandparent = cap [engl. - head]
parent(greta, henry).
• parent(X, Y), parent(Y, Z) = corp
grandparent(X, Z):- parent(X, Y),
Regula [engl. -body].
parent(Y, Z).
• parent(X,Y) – primul subscop al
regulii
• parent(Y, Z) – al doilea subscop al
regulii
• X, Y, Z – variabile (primul caracter
din nume este majuscula sau _)
Prolog – Introducere –

Exemplu simplu de start

Raţionament: - prin substituţie şi


parent(fred, greta). unificare (potrivire)
Fapte
parent(greta, henry). o se parcurg in ordine clauzele (de
sus in jos, de la stânga la dreapta),
grandparent(X, Z):- parent(X, Y), încercând potrivire
Regula
parent(Y, Z).
o dacă o ramura conduce la un caz
imposibil, se revine la precedenta
Intrebare potrivire găsită.
?- parent(X, henry).
o primul răspuns găsit este returnat;
dacă se mai cere un răspuns, se
continuă din punctul rămas; când
nu mai sunt posibile răspunsuri se
returnează no
Prolog – Introducere

Exemplu simplu de start

Fapte parent(fred, greta).


parent(greta, henry).

grandparent(X, Z):- parent(X, Y), parent(Y, Z).


Regula

Intrebare ?- parent(X, henry).


o Potrivirile la predicate se fac după cap şi aritate (număr argumente)
Pas 1.1 în parent(fred, greta) NU

parent(X, henry)
apoi în parent(greta, henry) se obtine X=greta %(raspuns)
Pas 1.2

parent(X, henry)
Prolog – Introducere -Exemplu simplu de start

parent(fred, greta).
Fapte
parent(greta, henry).

Regula grandparent(X, Z):- parent(X, Y), parent(Y, Z).

Intrebare ?- grandparent(fred, X).

o Potrivirile la predicate se fac după cap şi aritate (număr argumente)

grandparent(fred, X) subscop 1: parent(fred, Y) Y=greta


Pas 2
grandparent(X,Z) cu parent(fred, greta)
Pas 1 subscop 2: parent(Y, X) X=henry (răspuns)
Pas 3 cu parent(greta, henry)
fred, X

Se poate căuta încă o potrivire: –


- de la S1 cu parent(greta, henry), dar nu conduce la
solutie
Prolog – Introducere -Exemplu simplu de start
Fapte parent(fred, greta).
parent(greta, henry).

Regula grandparent(X, Z):- parent(X, Y), parent(Y, Z).

Intrebare ?- grandparent(X, bob).

Pas 1
Z=bob S1: parent(X, Y), S2:parent(X, bob) - potrivirea cu bob la pas 3!

: S1: parent(fred, greta) cu X=fred si Y= greta , Pas 2

apoi S2:parent(greta, bob) [nu] Pas 3

: S1: parent(greta, henry) cu X=greta si Y= henry, Pas 2


apoi S2: parent(henry, bob) [nu] false %raspuns Pas 3
Prolog – Introducere -Exemplu simplu de start
Fapte parent(fred, greta).
parent(greta, henry).

Regula grandparent(X, Z):- parent(X, Y), parent(Y, Z).

Intrebare ?- grandparent(X, henry).

Z=henry: S1: parent(X, Y), S2:parent(X, henry) - potrivirea cu henry la pas 3!

S1: parent(fred, greta), pt X=fred, Y=greta ;


apoi S2: parent(greta, Z) , pt Z=henry [da] X=fred %raspuns

S1: parent(greta, henry), pt X=greta, Y=henry ;


apoi S2: parent(henry, Z) [nu]
Prolog – Introducere

Istoric

1958 1970 1972 →1980s


LISP PLANNER PROLOG TAUM Proj.
McCarthy Hewitt (Program. en Logique) Colmerauer,
Colmerauer, 1970s-1980s
[Dartmouth, USA] [MIT,USA] Roussel Kowalski
Pasero, Roussel Demonstrarea automata
[Univ Marseille, Fr] Prolog pentru a teoremelor
traducere engleză-
1954 franceză
[ICL si Univ Edinburgh,
UK]
Newell Formalizare gramatică
Demonstrarea automata IBM 360-44 Predictie meteo
a teoremelor 1MB memorie
[Carnegie Mellon, USA] [Univ Montreal, Ca]

1980s
2000…. 1980s Robinson
Tratarea restrictiilor 1990s Aplicaţii [Syracuse Univ.,USA]
Abordări multiagent Paralelizare Prolog – sisteme expert Shapiro
2006……. Implementări: Enciclopedie geografie [Weizmann Institute,IL]
&-PROLOG, CGE, ACE - Warren & Pereira
Watson IBM DASWAM Testare hardware – Clocksin &
Raspuns la intrebari puse
in limbaj natural 1990s
Barrow & Horstmann Mellish
[Univ Edinburgh, UK]
(in 2011- Wikipedia) Paralelizare Prolog
Gupta - Teorie
+ Univ . din USA Îmbunătăţiri Prolog:
[Univ. Dalas, USA]
calculul predicatelor
Prolog – Introducere

Perspective de dezvoltare – domeniul Inteligență artificială


- Sunt incluse abordări cu raționament deductiv și
inductiv
https://www.forbes.com/sites/louiscolumbus/2018/02/18/roundup-of-machine-learning-
forecasts-and-market-estimates-2018/#7dc610282225

https://www.forbes.com/sites/gilpress/2019/04/03/7-indicators-of-the-state-of-artificial-
intelligence-ai-march-2019/#2e616f86435a

• 2014-2017: a treia pozitie la % crestere număr patente


inregistrate
Prolog – Introducere

Perspective de dezvoltare – domeniul Inteligență artificială


Predicții (realizate in 2018):
• 61% dintre companii au indicat AI ca fiind cel mai important proiect pentru anul
viitor
• International Data Corporation: investiitii in AI: de la 12.7 miliarde $ in 2017 la
56.7 miliarde $ in 2021
• Deloitte Global: număr implementari în AI: dublu 2018 față de 2017 si dublu
2020 față de 2018

Predicții (realizate in 2019):


• 82% din managerii top in IT considera investitiile in AI ca un avantaj
• International Data Corporation: investiitii in AI de la 35.8 miliarde $ in 2019 la
79.2 miliarde in 2022
Prolog – Introducere
Perspective de dezvoltare – domeniul Inteligență artificială
Predicții (realizate in 2020):

• International Data Corporation: Investitii in AI pentru 2023: 98 miliarde USD (]n


Europa 1.19 miliarde USD, crestere cu 44% față de 2018).
• GLOBE NEWSWIRE: creștere cu 33% până în 2024 față de 2020
2020: 53% top manageri – companiile lor dezvoltă metode bazate pe AI

2022: 75% din companii vor utiliza intsrumente bazate pe AI


Prolog – Introducere
Perspective de dezvoltare – domeniul Inteligență artificială
Prolog - Introducere
Repetă
Cum se scriu faptele şi regulile?

Cum se răspunde la întrebări?


RECAPITULARE

Întrebări şi exerciţii:

Care este diferenţa dintre fapte şi reguli referitor la valorile de


adevăr?

Care este diferenţa intre fapte şi reguli la potrivire?


Prolog
Cum va continua cursul?

1. Sintaxa
2. Raţionamente în Prolog - explicaţii simplificate
3. Folosirea operatorilor
4. Folosirea listelor
5. Reguli recurente
Prolog

Obiective principale

Înţelegerea modului de programare in limbaj declarativ

• Principiul abordării

• Când este utilă

• Dezvoltarea unor aplicaţii de inteligenţă artificială cu


raționament deductiv
Prolog

Ce trebuie să ştiu?

Formalizare prin predicate


Raţionamente cu predicate

practică şi imaginaţie

S-ar putea să vă placă și