You are on page 1of 11

Semana 05 Recursividad

Operaciones usando reglas con


Recursividad

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Recursividad
Objetivos
Realizar ejercicios de recursividad:
Utilizar la recursividad en Prolog.

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Divisibilidad
1 ?- divide(2,X),divide(3,X).
2 divide a 6?
X=6;
3 divide a 12?
X = 12
Cules son los mltiplos de 27?
no
Cules son los mltiplos de 6?
Cules son los elementos X e Y tales que X divide a Y?

divide(2,6).
divide(2,12).
divide(3,6).
divide(3,12).
Universidad de Ciencias y Humanidades
Inteligencia Artificial I
Divisibilidad
1 ?- divide(6,X). X = 2,
X=6; Y=6;
X = 12 ; X = 2,
divide(6,X)
Y = 12 ;
No
X = 3,
2 ?- divide(X,Y). Y=6; divide(2,X),divide(3,X).

divide(2,6). X = 3, [1] x=6 [2] x=12


divide(2,12). Y = 12 ;
divide(3,6). divide(3,12).
divide(3,6). X = 6,
divide(3,12). Y=6;
divide(6,X):- X = 6,
Y = 12
divide(2,X),divide(3,X).
No

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Recursividad
nat(0). 1 ?- nat(s(s(0))). nat(X0).
Yes X0=0 N0=S(X1)
nat(s(X)):-nat(X). 2 ?- nat(dos).
nat(0) nat(X1)
No
X1=0 X1=S(X2)
3 ?- nat(X).
X=0; nat(0) nat(X2)

X = s(0) ; X2=0 X2=S(X3)


X = s(s(0)) ; nat(0) nat(X3)
nat(0) nat(s(X)) X = s(s(s(0))) ;
X = s(s(s(s(0)))) ; . .
nat(X).
X = s(s(s(s(s(0))))) ;
X = s(s(s(s(s(s(0)))))) ;

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Suma y Exponente
Sumar los n primeros nmeros.

suma(0,1):-!.
suma(N,R):-N>0,M is(N-1),suma(M,S),R is (S+N).
%suma(5,T).

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Suma y Exponente
expo(_,0,1):-!.
expo(A,N,R):-N>0,M is(N-1),expo(A,M,S),R is (S*A).
%expo(5,3,T).

facto(0,1):-!.
facto(N,R):-N>0,M is(N-1),facto(M,S),R is (S*N).
%R=(S*N)
%facto(5,N).

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Ejercicios
Hacer un programa que imprima n veces hola mundo
Hacer un programa que imprima los nmeros del 1 al
n-esimo.
Calcular la suma de los nmeros y detener al ingresar el 0.
Un robot quiere identificar si un bloque esta arriba de otro.

E
B F
C D
A Mesa Y

Mesa X

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Representacin Byrd Box

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Representacin Byrd Box
a(X,Y):-b(X,Y),c(Y). a(X,Y)
b(X,Y):-d(X,Y),e(Y). b(X,Y) c(Y)
b(X,Y):-f(X).
d(X,Y) e(Y)
c(4).
d(1,3)
d(1,3). e(3)
d(2,4)
d(2,4). c(4)
f(X)
e(3).
f(4). f(4)

Universidad de Ciencias y Humanidades


Inteligencia Artificial I
Ejercicio
Graficar la Representacin Byrd Box
p(X,Y):-q(X,Y).
p(X,Y):-q(a,X).
q(a,a).
q(X,a):-r(Y),s(X,Y).
q(X,Y):-r(X),p(X,Y).
s(b,b).
s(b,X):-r(X).
r(b).
r(a).
Universidad de Ciencias y Humanidades
Inteligencia Artificial I

You might also like