Está en la página 1de 6

“2020, Año de Leona Vicario, Benemérita Madre de la Patria”

NOMBRE DE ALUMNA:
BR. ESTRELLA CANO ANA GUADALUPE.

NOMBRE DEL DOCENTE:


MTRO. JOSE LEONEL PECH MAY.

NOMBRE DEL CURSO:


PROGRAMACIÓN LÓGICA Y FUNCIONAL.

SEMESTRE:
8° B

INGENIERÍA:
SISTEMAS COMPUTACIONALES

TEMA:
PROGRAMACIÓN LÓGICA

ACTIVIDAD:
RESUMEN U3

FECHA DE ENTREGA:
15 DE ABRIL DEL 2020

Julio 2017

CARRETERA VALLADOLID - TIZIMÍN, KM. 3.5 TABLAJE CATASTRAL NO. 8850


VALLADOLID, YUCATÁN, MÉXICO, C.P. 97780.
TELÉFONO 985 – 856 – 6300| WWW.VALLADOLID.TECNM.MX
Número de registro: RPrIL-072
Fecha de inicio: 2017-04-10
Término de la certificación 2021-04-10
“2020, Año de Leona Vicario, Benemérita Madre de la Patria”

CONTENIDO

El lenguaje Prolog ................................................................................................................ 3

Objetos y relaciones ............................................................................................................. 3

Programación ....................................................................................................................... 3

Hechos ................................................................................................................................. 4

Preguntas ............................................................................................................................. 4

Variables............................................................................................................................... 5

Conjunciones ........................................................................................................................ 5

Reglas .................................................................................................................................. 5

Ejemplos ............................................................................................................................... 6

Referencias bibliográficas..................................................................................................... 6

Julio 2017

CARRETERA VALLADOLID - TIZIMÍN, KM. 3.5 TABLAJE CATASTRAL NO. 8850


VALLADOLID, YUCATÁN, MÉXICO, C.P. 97780.
TELÉFONO 985 – 856 – 6300| WWW.VALLADOLID.TECNM.MX
Número de registro: RPrIL-072
Fecha de inicio: 2017-04-10
Término de la certificación 2021-04-10
“2020, Año de Leona Vicario, Benemérita Madre de la Patria”

El lenguaje Prolog

Prolog es un lenguaje de programación declarativo que se utiliza para resolver problemas


en los que existen objetos y las relaciones entre ellos. Los lenguajes declarativos se
diferencian de los lenguajes imperativos en que están basados en formalismos abstractos
(Prolog tiene sus fundamentos en la lógica de predicados o de primer orden), por lo tanto,
su semántica no depende de la máquina en la que se ejecutan. Busca obtener conocimiento
declarando hechos sobre los objetos y sus relaciones, creando reglas sobre dichos objetos
y relaciones y realizando preguntas en ese dominio. Está basado en los siguientes
mecanismos básicos: unificación, estructuras de datos basadas en árboles y backtracking.

Objetos y relaciones
• Resolución de problemas planteados en base a objetos y las relaciones entre ellos.
o Objetos: juan, libro
• Los hechos describirán propiedades de los objetos
o tiene (juan, libro)
• Las reglas describirán relaciones entre objetos.
o Dos personas son hermanas si ambas son mujeres y tienen los mismos
padres

Programación
En Prolog se tiene dos cuerpos principales: la especificación de los hechos y las preguntas
sobre esos objetos o relaciones. Cuando se crea una base de datos con esa especificación
de hechos se puede poner a hacer preguntas sobre esa especificación dando como
resultado sí o no.

Prolog saca la respuesta explorando cada uno de los hechos introducidos en la base de
datos hasta encontrar uno que coincida, que será el caso en la que la respuesta será

Julio 2017

CARRETERA VALLADOLID - TIZIMÍN, KM. 3.5 TABLAJE CATASTRAL NO. 8850


VALLADOLID, YUCATÁN, MÉXICO, C.P. 97780.
TELÉFONO 985 – 856 – 6300| WWW.VALLADOLID.TECNM.MX
Número de registro: RPrIL-072
Fecha de inicio: 2017-04-10
Término de la certificación 2021-04-10
“2020, Año de Leona Vicario, Benemérita Madre de la Patria”

afirmativa, o hasta que termine toda la base de datos, cuyo caso dará una respuesta
negativa. Las preguntas que hacemos sobre la base de hechos pueden ser más complejas
usando operadores lógicos como AND, OR y NOT. En este caso, Prolog busca que la
satisfacción a la primera parte de la pregunta y si lo es, lo busca en la segunda

Hechos
Un hecho es una relación entre objetos. Son el tipo de sentencia más sencillo de Prolog y
declaran los valores que son verdaderos para un predicado. No tienen que reflejar el mundo
real necesariamente, pero será única y exclusivamente lo que Prolog tomará como
verdadero. Están conformados por un predicado y un argumento u objetos como se puede
observar en la siguiente imagen.
Los hechos pueden construir propiedades o relaciones. Cuando están compuestos por un
único argumento (monódicos), se dice que es una propiedad. Cuando se forman con dos o
más argumentos (poliádicos), construyen relaciones. Existe una serie de reglas que se
deben tener presentes al momento de definir un predicado.
➢ Los nombres de los hechos (predicado) deben iniciar con minúscula.
➢ Los argumentos se escriben separados por comas, en minúscula y encerrados entre
paréntesis.
➢ Todos los hechos deben terminar en punto

Preguntas
➢ Para resolver consultas Prolog intenta unificar con algún Hecho o Regla con igual
predicado, si es posible, se realiza lo mismo con el Cuerpo de la Regla sustituyendo
en cada objetivo también lo que se logró unificar.
➢ La regla auxiliar "preguntar" sirve para recibir los datos del usuario, esta hace uso de
la regla assert que trae Prolog por defecto para poder añadir nuevos hechos a la base
de conocimiento del sistema

Julio 2017

CARRETERA VALLADOLID - TIZIMÍN, KM. 3.5 TABLAJE CATASTRAL NO. 8850


VALLADOLID, YUCATÁN, MÉXICO, C.P. 97780.
TELÉFONO 985 – 856 – 6300| WWW.VALLADOLID.TECNM.MX
Número de registro: RPrIL-072
Fecha de inicio: 2017-04-10
Término de la certificación 2021-04-10
“2020, Año de Leona Vicario, Benemérita Madre de la Patria”

Variables
Las variables en Prolog se representan mediante cadenas formadas por letras, dígitos y el
símbolo de subrayado, también con una letra mayúscula en su inicio, una excepción es la
variable anónima ‘_’. (ejemplo X, Y, Resultado, _nombre, _).

➢ Una variable permite hacer referencias a Una variable permite hacer referencias a
múltiples objetos en funciltiples objetos en función del contexto n del contexto

➢ Una variable puede estar libre o ligada Una variable puede estar libre o ligada

Conjunciones
• Las operaciones lógicas por excelencia son la conjunción (“Y”, sólo es cierta si ambas
condiciones son ciertas) y la disyunción (“O”, es cierta si alguna de las condiciones
es cierta).
• Permiten expresar múltiples objetivos que deben satisfacer simultáneamente.
• Las conjunciones implican instanciar y desinstanciar, para satisfacer o resatisfacer.
Objetivos -> reevaluación (con backtracking).

Reglas
• Cuando la verdad de un hecho depende de la verdad de otro hecho o de un grupo
de hechos se usa una regla. Declaran las condiciones para que un predicado sea
cierto, con una implicación que pueden relacionar hechos para dar los valores de
verdad a un predicado (la cabeza se cumple si el cuerpo se cumple). Funcionan como
las fórmulas condicionales habituales en lógica. Una regla está compuesta por una
cabeza y un cuerpo. El cuerpo puede estar formado por varios hechos y objetivos.
• Establece dependencias entre hechos, de forma compacta: afirmación general sobre
objetos y sus relaciones
• Una regla sirve para representar conocimiento que en lenguaje natural se expresa
mediante una sentencia condicional. Por ejemplo, si en lenguaje natural decimos “si
X es padre de Y entonces Y es hijo de X”.

Julio 2017

CARRETERA VALLADOLID - TIZIMÍN, KM. 3.5 TABLAJE CATASTRAL NO. 8850


VALLADOLID, YUCATÁN, MÉXICO, C.P. 97780.
TELÉFONO 985 – 856 – 6300| WWW.VALLADOLID.TECNM.MX
Número de registro: RPrIL-072
Fecha de inicio: 2017-04-10
Término de la certificación 2021-04-10
“2020, Año de Leona Vicario, Benemérita Madre de la Patria”

Ejemplos
➢ Conjunciones: Se usa una coma para separar los hechos del cuerpo de la regla. Este
'separador' se traduce como un AND lógico, concatenado cada hecho con un AND.
Por ejemplo:
% X es hermano de Y si existe algún padre Z que sea padre de X y Y
hermano(X, Y) :- padre(Z), padrede(Z, X), padrede(Z, Y).

➢ Disyunciones: Se usa un punto y coma para separar los hechos del cuerpo de la
regla. Este 'separador' se traduce como un OR lógico, concatenado cada hecho con
unOR.
Por ejemplo:
% A y B son familiares si A es padre de B o A es hijo de B o A es hermano de B
familiarde(A,B) :- padrede(A,B); hijode(A,B); hermanode(A,B).

Referencias bibliográficas
❖ Wielemaker, J., Schrijvers, T., Triska, M., & Lager, T. (2012). Swi-prolog. Theory and
Practice of Logic Programming, 12(1-2), 67-96.
❖ Clocksin, W. F., & Mellish, C. S. (2012). Programming in Prolog: Using the ISO
standard. Springer Science & Business Media.
❖ Clark, K. L., & Mc Cabe, F. G. (1984). micro-PROLOG: Programming in Logic.
❖ Sterling, L., & Shapiro, E. Y. (1994). The art of Prolog: advanced programming
techniques. MIT press.

Julio 2017

CARRETERA VALLADOLID - TIZIMÍN, KM. 3.5 TABLAJE CATASTRAL NO. 8850


VALLADOLID, YUCATÁN, MÉXICO, C.P. 97780.
TELÉFONO 985 – 856 – 6300| WWW.VALLADOLID.TECNM.MX
Número de registro: RPrIL-072
Fecha de inicio: 2017-04-10
Término de la certificación 2021-04-10

También podría gustarte