Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Juan
LOGO
^ And (Y)
V Or (O) inclusivo
→ Implica
≡ Equivalente a
~ No (negación)
LOGO
Demostradores de teoremas.
Conocidos como razonadores automáticos.
Usados como asistentes
• Proporcionan consejo, el usuario selecciona la
estrategia a seguir.
El programa SAM (Semi-Automated
Mathematics) fue el primero en demostrar un
lema.
El programa AURA también ha respondido a
preguntas abiertas en diversas áreas de las
matemáticas
LOGO
SEGUNDA PARTE
LOGO
El método de resolución de
Robinson
El método de resolución de Robinson esta
considerado como el precursor de toda una
familia de métodos, que hacen uso de los
conceptos centrales, pero que, de alguna
manera proponen algún refinamiento.
El aspecto central del método consiste en
probar que si S contiene la cláusula vacía,
entonces es inconsistente.
LOGO
(A ٧ B) ٨ (~B ٧ C)
LOGO
equivalencia:
p → q ≡~ p ٧ q
Así:
A1 ٨ A2 … AN → B1 ٧ B2 … BM
≡~(A1 ٨ A2 … AN) ٧ (B1 ٧ B2 … BM)
≡~ 1 ∨ A ~ A ... 2 ~ N 1 2 M A ∨ B ∨ B ...B
Donde la ley de De Morgan:
~ (p ∧ q) ≡ ~ p ∨ ~ q
LOGO
----------------
A
LOGO
LOGO
Prolog
Hechos:
las aves vuelan
los pingüinos no vuelan
"pichurri" es un ave
"sandokan" es un perro
"alegría" es un ave
% Comentarios en Prolog
% Base de Hechos
Reglas o Restricciones:
Preguntas
¿ "pichurri" vuela ?
¿ qué mascotas vuelan ?
LOGO
Prolog
%Reglas
vuela(X):- ave(X).
Mascotavuela(X):- ave(X).
tipo-cliente(X,bueno)
LOGO PROLOG
progenitor(X, Y ) :- padre(X, Y ).
progenitor(X, Y ) :- madre(X, Y ).
LOGO
PROLOG
hechos: A. (A átomo)
reglas: A :- A1, ..., An. (n>0, y A, A1, ..., An átomos)
LOGO
PROLOG
Hechos:
padece(jon, gripe).
padece(jon, hepatitis).
padece(ana, gripe).
padece(carlos, alergia).
es-síntoma(fiebre, gripe).
es-síntoma(cansancio, gripe).
es-síntoma(estornudos, alergia).
suprime(paracetamol, fiebre).
suprime(antihistamínico, estornudos).
LOGO
PROLOG
Reglas:
debe-tomar(Per, Far) :- padece(Per, Enf), alivia(Far,
Enf).
alivia(Far, Enf) :- es-síntoma(Sin, Enf), suprime(Far,
Sin).
Preguntas:
? padece(carlos, gripe).
? padece(jon, Z).
? alivia(paracetamol, gripe).
LOGO
PROLOG
? alivia(X, gripe).
? debe-tomar(Y, antihistamínico).
? alivia(X, Y).
? suprime(X, fiebre), suprime(X, estornudos).
%% declaraciones
padrede('juan', 'maria').
padrede('pablo', 'juan').
LOGO PROLOG
padrede('pablo', 'marcela').
padrede('carlos', 'debora').
%%Reglas
% A es hijo de B si B es padre de A hijode(A,B) :-
padrede(B,A).
abuelode(A,B) :- padrede(A,C), padrede(C,B).
hermanode(A,B) :- padrede(C,A) , padrede(C,B), A
\== B.
familiarde(A,B) :- padrede(A,B).
LOGO PROLOG
familiarde(A,B) :- hijode(A,B).
familiarde(A,B) :- hermanode(A,B).
%% consultas
% juan es hermano de marcela?
?- hermanode('juan', 'marcela').
Yes
?- hermanode('carlos', 'juan'). No
?- abuelode('pablo', 'maria'). Yes
?- abuelode('maria', 'pablo'). no
LOGO
PROLOG
%unificación simbólica
?- X = 3+5.
X = 3+5
LOGO
PROLOG
%comparación simbólica.
?- 3+5 == 2+6.
no
?- 3+5 == 3+5.
yes
LOGO PROLOG
%Combinación de preguntas
legusta(pepe, pesca).
legusta(maria, bailar).
legusta(ana, pesca).
legusta(pepe, musica).
legusta(maria, musica).
legusta(ana, bailar).
%preguntas
LOGO PROLOG
%Sucesiones
sucesor(1,2).
sucesor(2,3).
sucesor(3,4).
sucesor(4,5).
sucesor(5,6).
LOGO
PROLOG
sucesor(6,7).
suma(1,X,R):-sucesor(X,R).
suma(N,X,R):-sucesor(M,N), suma(M,X, R1),
sucesor(R1, R).
% Ejemplo
entrada(paella).
entrada(gazpacho).
entrada(consome).
carne(filete_de_cerdo).
carne(pollo_asado).
pescado(trucha).
pescado(bacalao).
postre(flan).
LOGO
PROLOG
postre(nueces_con_miel).
postre(naranja).
calorias(paella, 200).
calorias(gazpacho, 150).
calorias(consome, 300).
calorias(filete_de_cerdo, 400).
calorias(pollo_asado, 280).
calorias(trucha, 160).
calorias(bacalao, 300).
LOGO
PROLOG
calorias(flan, 200).
calorias(nueces_con_miel, 500).
calorias(naranja, 50).
plato_principal(P):- carne(P); pescado(P).
comida(Entrada, Principal, Postre):-
entrada(Entrada), plato_principal(Principal),
postre(Postre).
valor(Entrada, Principal, Postre, Valor):-
calorias(Entrada, X), calorias(Principal, Y),
calorias(Postre, Z), sumar(X, Y, Z, Valor).
LOGO
PROLOG
fac(0,1).
fac(N,F) :- N > 0, M is N - 1, fac(M,Fm), F is N * Fm.