Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 31

Prolog

Section 3 Click to edit Master subtitle style

4/29/12

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol)
X Z nondeterm Y ahma ibrahi ahma age(symbol,integer) 1 d m 0 d

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

ahma d al i ibrahi m ibrahi m kam el kam 4/29/12 el mage

kam el al mage di ahma d ibrahi kam m el ahma d ibrahi m al

1 0 9

1 0 1

0 1 0 1 0 9

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol) nondeterm age(symbol,integer)
4/29/12

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol)
X Z nondeterm Y ahma ibrahi age(symbol,integer) 1 d m 0

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

ahma d al i ibrahi m ibrahi m kam el kam 4/29/12 el mage

kam el mage d ahma d kam el ahma d ibrahi m al

1 0 9

1 0 1

0 1 0 1 0 9

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol) nondeterm age(symbol,integer)
4/29/12

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol) nondeterm X Y Z age(symbol,integer) ahma 1 ibrahi
d ahma d m kam el 0 1 0

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

4/29/12

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol) nondeterm age(symbol,integer)
4/29/12

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol) nondeterm X Y Z age(symbol,integer) ahma 1 ahma
d d 0

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

4/29/12

NO SOLUTION

Example 1 on Cut off (!) Play


Predicates nondeterm play(symbol,symbol) nondeterm X Y Z age(symbol,integer) ahma ibrahi 1 ahma
d m d 0

clauses age(ahmad ,10). age(ali,9). age(ibrahi m,10). age(kamel, 10). age(maged

4/29/12

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). eger) car(fiat,black,2400 nondeterm 0). buycar(symbol,symbol car(dogan,red,240 ) 00). nondeterm color(symbol,symbol)
4/29/12

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 fiat black 24000 nondeterm 0). dogan red 24000 buycar(symbol,symbol car(dogan,red,240 mercedes red 27000 ) mazda green _ 00).
fiat

nondeterm red _ color(symbol,symbol) mercedes red _


dogan 4/29/12

black

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


goal buycar(X,Y).

4/29/12

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 fiat black 24000 nondeterm 0). dogan red 24000 buycar(symbol,symbol car(dogan,red,240 mercedes red 27000 ) 00). nondeterm color(symbol,symbol)
4/29/12

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


goal buycar(X,Y).

4/29/12

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 nondeterm 0). buycar(symbol,symbol car(dogan,red,240 ) 00). nondeterm color(symbol,symbol)
4/29/12

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


goal buycar(X,Y).

4/29/12

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 nondeterm 0). buycar(symbol,symbol car(dogan,red,240 ) 00). nondeterm color(symbol,symbol)
4/29/12

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


goal buycar(X,Y).

4/29/12

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 fiat black 24000 nondeterm 0). dogan red 24000 buycar(symbol,symbol car(dogan,red,240 ) 00). nondeterm color(symbol,symbol)
4/29/12

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


goal buycar(X,Y).

4/29/12

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 fiat black 24000 nondeterm 0). dogan red 24000 buycar(symbol,symbol car(dogan,red,240 mercedes red 27000 ) mazda green _ 00).
fiat

nondeterm red _ color(symbol,symbol) mercedes red _


dogan 4/29/12

black

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 fiat black 24000 nondeterm 0). dogan red 24000 buycar(symbol,symbol car(dogan,red,240 mercedes red 27000 ) mazda green _ 00). nondeterm color(symbol,symbol)
4/29/12

car(marcedes,red, 27000).

Example 2 on Cut off (!) Buy Car


goal buycar(X,Y).

4/29/12

Example 2 on Cut off (!) Buy Car


predicates clauses nondeterm car(mazda,green,2 car(symbol,symbol,int 5000). M C P eger) green mazda 25000 car(fiat,black,2400 fiat black 24000 nondeterm 0). dogan red 24000 buycar(symbol,symbol car(dogan,red,240 mercedes red 27000 ) mazda green _ 00). nondeterm color(symbol,symbol)
4/29/12

car(marcedes,red, 27000).

Example 3 on Cut off (!) Max of two numbers


int max(int X, int Y) { int M; if(X>=Y) M=X; else if(X<Y)
4/29/12

int max(int X, int Y) { O R int M; if(X>=Y) M=X; else M=Y;

M=Y;

values -> new variable for the int max(int X, result max(int X, int

Example 3 on Cut off (!) In prolog, there are no return Max of two numbers

int Y) {
If

int Y)

int M;

The if statements in C++ are { converted into rules in prolog


Returne d value

if(X>=Y) M=X;

O R

int M;

max(X,Y,M):-

max(X,Y,M):-

if(X>=Y) M=X;

max(X,Y,M):M=Y; X<Y,M=Y. else 4/29/12

X>=Y,M=X. else if(X<Y)

X>=Y,M=X. else max(X,Y,M):M=Y; M=Y.

Example 3 on Cut off (!) Max of two numbers


Clauses Predicates
max(X,Y,M):max(integer,integer,integer) X>=Y,M=X. max(X,Y,M):Goal X<Y,M=Y.

max(3,5,M) -> M=5 max(5,3,M) -> M=5


4/29/12

Example 3 on Cut off (!) Max of two numbers


Clauses Predicates
max(X,Y,M):max(integer,integer,integer) X>=Y,M=X. max(X,Y,M):Goal M=Y.

max(3,5,M) -> M=5 max(5,3,M) -> M=5,M=3

4/29/12

Example 3 on Cut off (!) Max of two numbers


Clauses Predicates
max(X,Y,M):-!, max(integer,integer,integer) X>=Y,M=X. max(X,Y,M):Goal M=Y.

max(3,5,M) -> no sol max(5,3,M) -> M=5

4/29/12

Example 3 on Cut off (!) Max of two numbers


Clauses Predicates
max(X,Y,M):max(integer,integer,integer) X>=Y,!,M=X. max(X,Y,M):Goal M=Y.

max(3,5,M) -> M=5 max(5,3,M) -> M=5

4/29/12

Assignment
Give the following: 1- Ahmed is a male 2- Adel is a male 3-Mona is a female 4- Amal is a female 5- The age of Ahmed, Adel, Mona and Amal is 30, 26, 28, 22 in order. 6- X can marry Y if X is a male, Y is a 4/29/12

You might also like