SlideShare una empresa de Scribd logo
INSTITUTO TECNOLÓGICO SUPERIOR DE IXTAPALUCA
INGENIERIA EN SISTEMAS COMPUTACIONALES

Formalización en Prolog de
la Lógica
LENGUAJE PROLOG
Proveniente del francés Programation et Logique, es un
lenguaje de programación lógico e interpretado, bastante
popular en el medio de investigación en Inteligencia Artificial.
Desarrollado en la Universidad de Marsella como una
herramienta práctica para programación lógica.
Desde el punto de vista del usuario, la ventaja principal es la
facilidad para programar, ya que se pueden escribir
rápidamente y con pocos errores, programas claramente
leíbles.
Hecho para representar y utilizar el conocimiento que se tiene
sobre un determinado dominio.
LENGUAJE PROLOG (CONT.)
➲

El conocimiento se representa por un conjunto de relaciones
que describen las propiedades de los objetos y sus
interrelaciones.

➲

Un conjunto de reglas que describa estas propiedades y
estas relaciones es un programa Prolog.

➲

Definición Formal:
Programa Prolog: Conjunto de afirmaciones (hechos y
reglas) representando los conocimientos que poseemos en
un determinado dominio o campo de nuestra competencia.
LA LÓGICA DE PRIMER ORDEN


La lógica de Primer Orden analiza las frases sencillas del
lenguaje (fórmulas atómicas o elementales) reparándolas en
Términos y Predicados. Los términos hacen referencia a los
objetos que intervienen y los predicados a las propiedades o
relaciones entre estos objetos.

PREDICADOS
Se utilizan para expresar propiedades de los objetos,
predicados monádicos, y relaciones entre ellos, predicados
poliádicos. En Prolog los llamaremos hechos.
TIPOS DE PREDICADOS

PREDICADOS MONÁDICOS:
PROPIEDADES

PREDICADOS POLIADICOS: RELACIONES
TÉRMINOS
Los términos pueden ser constantes o variables.
Las constantes se utilizan para dar nombre a objetos
concretos del dominio, dicho de otra manera, representan
individuos conocidos de nuestro Universo.

●
●

Átomos:

Hay dos clases de

constantes:
●

Números:
TIPOS DE CONSTANTES
Átomos: existen tres clases de constantes atómicas:
- Cadenas de letras, dígitos y subrayado (_) empezando por
letra minúscula.
- Cualquier cadena de caracteres encerrada entre comillas
simples (').
- Combinaciones especiales de signos: "?-", ":-", ...
Números: se utilizan para representar números de forma que
se puedan realizar operaciones aritméticas. Dependen del
ordenador y la implementación.
- Enteros: puede utilizarse cualquier entero que el intervalo [223,223-1]
- Reales: decimales en coma flotante, consistentes en al menos
un dígito,
EJEMPLOS
LAS VARIABLES
➲

➲

➲

Las variables se utilizan para representar objetos
cualesquiera del Universo u objetos desconocidos en
ese momento, es decir, son las incógnitas del
problema.
Se diferencian de los átomos en que empiezan siempre
con una letra mayúscula o con el signo de subrayado
(_).
Para trabajar con objetos desconocidos cuya identidad
no nos interesa, podemos utilizar la variable anónima
(_).
VARIABLES (CONT)
➲

➲

Una variable está instanciada cuando existe un objeto
determinado representado por ella. Y está no instanciada
cuando todavía no se sabe lo que representa la variable.
Prolog no soporta asignación destructiva de variables, es
decir, cuando una variable es instanciada su contenido no
puede cambiar.
CONECTIVAS LÓGICAS

La conjunción
La disyunción

Las conectivas que se utilizan
en la Lógica de Primer Orden
son:

La negación
La implicación o
condicional,
CONECTIVAS DE PRIMER ORDEN
➲

➲
➲

La conjunción, “y”, la representaremos poniendo una coma
entre los objetivos “,” y consiste en objetivos separados que
Prolog debe satisfacer, uno después de otro: X , Y
Cuando se le da a Prolog una secuencia de objetivos
separados por comas, intentará satisfacerlos por orden,
Para que se satisfaga la secuencia se tendrán que
satisfacer todos los objetivos.
CONECTIVAS DE PRIMER ORDEN (CONT.)

La disyunción, “o”, tendrá éxito si se cumple alguno de los
objetivos que la componen. Se utiliza un punto y coma “;”
colocado entre los objetivos: X ; Y
CONECTIVAS DE PRIMER ORDEN (CONT.)

La negación lógica no puede ser representada explícitamente
en Prolog, sino que se representa implícitamente por la falta de
aserción : “no”, tendrá éxito si el objetivo X fracasa.
La representamos con el predicado predefinido not o con +:
Not (X) ó + X
CONECTIVAS DE PRIMER ORDEN (CONT.)
La implicación o condicional, sirve para significar que un
hecho depende de un grupo de otros hechos.
En Prolog se usa el símbolo “:-” para representar lo que
llamamos una regla:
cabeza_de_la_regla :- cuerpo_de_la_regla.
PROGRAMACIÓN EN PROLOG
•Hechos
La programación
en Prolog
consiste en:

•Reglas
•Preguntas

COMO SE APRECIA EN LA SIGUIENTE FIGURA
Hechos y Relaciones
12

10

8
Columna 1
Columna 2
Columna 3

6

4

2

0
Fila 1

Fila 2

Fila 3

Fila 4
PROGRAMACIÓN EN PROLOG
(CONT.)
Ejecución del programa: Demostración de un Teorema en
este Universo, es decir, demostración de que una conclusión
se deduce de las premisas (afirmaciones previas).

Un sistema Prolog está basado en un comprobador de
teoremas por resolución para cláusulas de Horn.
La estrategia de resolución

Para la búsqueda de
cláusulas alternativas

resolución de entrada lineal (árbol
de búsqueda estándar).
estrategia de primero hacia abajo
(recorrido del árbol en profundidad).
PREGUNTAS
Las preguntas son las herramientas que tenemos para recuperar la
Información desde Prolog.
Prolog responde “yes” es que ha podido demostrarlo, y si responde “no”
es que no lo ha podido demostrar.
Cuando se hace una pregunta a Prolog, éste efectuará una búsqueda
por toda la Base de Datos intentando encontrar hechos que coincidan
con la pregunta. Dos hechose “coinciden” (se pueden unificar) si sus
predicados son el mismo (se escriben de igual forma) y si cada uno
de los respectivos argumentos son iguales entre sí.
SINTAXIS

➲

La sintaxis de un lenguaje
describe la forma en la que
se nos está permitido juntar
palabras entre sí. Los
programas en Prolog se
construyen a partir de
términos. Un término es una
constante, una variable o una
estructura.

➲

Para escribir un comentario
lo encerraremos entre los
signos /* y */ o desde el
símbolo % hasta el final de
línea.
CARACTERES
➲

Los nombres de constantes y variables se construyen a
partir de cadenas de caracteres. Prolog reconoce dos tipos
de caracteres: los imprimibles y los no imprimibles.
Letras mayúsculas: A, B, C, D … Z
letras minúsculas: a, b, c, d, e … z
Imprimibles

Caracteres

dígitos numéricos: 0, 1, 2, 3 … 9
signos: ! " # $ % & ' ( ) = - ^ | /  { } [ ] _
@+*;:<>,.?

No aparecen en forma de signo en la
No imprimibles pantalla, pero realizan una determinada
acción: nueva línea, retorno de carro, ...
ESTRUCTURAS
➲

Una estructura se escribe en
Prolog especificando su nombre,
y
sus
componentes
(argumentos). Las componentes
están
encerradas
entre
paréntesis y separadas por
comas; el nombre se escribe
justo
antes
de
abrir
el
paréntesis:
Por ejemplo, podemos tener una
estructura con el nombre libro,
que tiene tres componentes: titulo,
autor y año de edición. A su vez el
autor puede ser una estructura
con dos componentes: nombre y
apellido.
OPERADORES
En Prolog están predefinidos los operadores aritméticos y relacionales
típicos, con la precedencia habitual entre ellos:

El orden de evaluación es secuencial.
Expresiones, operaciones aritméticas y operadores relacionales. Not().
Enunciados
Hechos
Reglas
Preguntas
ESTRUCTURAS DE CONTROL
RECURSIÓN
➲

Las definiciones recursivas se encuentran frecuentemente en los
programas Prolog.

➲

Algunos predicados de manejo de listas están definidos
recursivamente, es decir, el cuerpo de la cláusula se llama a sí mismo.
ESTRUCTURAS DE CONTROL (cont.)

➲

Deberemos tener cuidado de
no
escribir
recursiones
circulares (entrada en un bucle
que no terminaría nunca)

➲

Evitar la recursión a izquierdas
(cuando una regla llama a un
objetivo que es esencialmente
equivalente al objetivo original),
que causarían que Prolog no
terminara nunca.
UNIFICACIÓN

➲

La unificación («matching») aplicada junto con la regla de
resolución es lo que nos permite obtener respuestas a las
preguntas formuladas a un programa lógico.

➲

En Prolog consiste en buscar instancias comunes a dos átomos,
uno de los cuales está en la cabeza de una cláusula y el otro en
el cuerpo de otra cláusula.

Prolog intentará hacerlos coincidir (unificarlos) mediante las siguientes
reglas:
REGLAS DE PROLOG PARA UNIFICAR
1. Una variable puede instanciarse con cualquier tipo de término, y
naturalmente con otra variable. Si X es una variable no instanciada, y
si Y está instanciada a cualquier término, entonces X e Y son
iguales, y X quedará instanciada a lo que valga Y. Si ambas están no
instanciadas, el objetivo se satisface y las dos variables quedan
compartidas (cuando una de ellas quede instanciada también lo hará
la otra).
1.

Los números y los átomos sólo serán iguales a sí mismos.
Evidentemente, también se pueden instanciar con una variable.

1. Dos estructuras son iguales si tienen el mismo nombre y el mismo
número de argumentos, y todos y cada uno de estos argumentos son
unificables.
EJEMPLOS
El predicado de igualdad (=) es un operador infijo que intentará
unificar ambas expresiones. Un objetivo con el predicado no igual
(=) se satisface si el = fracasa, y fracasa si el = se satisface.
REEVALUACIÓN
➲

La reevaluación («backtracking») consiste en volver a mirar lo
que se ha hecho e intentar resatisfacer los objetivos buscando una
forma alternativa de hacerlo.

➲

Satisfacer un objetivo: cuando Prolog intenta satisfacer un
objetivo, busca en la Base de Conocimientos desde su comienzo,
y:


Si encuentra un hecho o la cabeza de una regla que pueda unificar con
el objetivo, marca el lugar en la base de conocimientos e instancia
todas las variables previamente no instanciadas que coincidan. Si es
una regla lo encontrado, intentará satisfacer los subobjetivos del
cuerpo de dicha regla.



Si no encuentra ningún hecho o cabeza de regla que unifique, el
objetivo ha fallado, e intentaremos resatisfacer el objetivo anterior.
REEVALUACIÓN (cont.)

➲

Resatisfacer un objetivo: Prolog intentará resatisfacer cada uno de
los subobjetivos por orden inverso, para ello intentará encontrar
una cláusula alternativa para el objetivo, en cuyo caso, se dejan
sin instanciar todas las variables instanciadas al elegir la cláusula
previa. La búsqueda la empezamos desde donde habíamos
dejado el marcador de posición del objetivo.
EL CORTE
El corte permite decirle a Prolog cuales son las opciones previas
que no hace falta que vuelva a considerar en un posible proceso
de reevaluación. Es un mecanismo muy delicado, y que puede
marcar la diferencia entre un programa que funcione y uno que
no funcione. Su utilidad vienen dada por:
- Optimización del tiempo de ejecución: no malgastando tiempo
intentando satisfacer objetivos que de antemano sabemos que
nunca contribuirán a una solución.
- Optimización de memoria: al no tener que registrar puntos de
reevaluación para un examen posterior.
FUENTE BIBLIOGRAFICA

➲

“PROLOG Y EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN”
DEPARTAMENTO DE CIENCIA DE LA COMPUTACIÓN E
INTELIGENCIA ARTIFICIAL
Universidad de Alicante
Faraón Llorens Largo

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

RESUMEN DE LA LÓGICA DE LOS PREDICADOS
RESUMEN DE LA LÓGICA DE LOS PREDICADOSRESUMEN DE LA LÓGICA DE LOS PREDICADOS
RESUMEN DE LA LÓGICA DE LOS PREDICADOS
 
Cálculo de Predicados
Cálculo de PredicadosCálculo de Predicados
Cálculo de Predicados
 
Teoria de conjuntos
Teoria de conjuntosTeoria de conjuntos
Teoria de conjuntos
 
Operadores lógicos.pptx
Operadores lógicos.pptxOperadores lógicos.pptx
Operadores lógicos.pptx
 
Sistemas de ecuaciones lineales (II)
Sistemas de ecuaciones lineales (II)Sistemas de ecuaciones lineales (II)
Sistemas de ecuaciones lineales (II)
 
Función proposicional y cuantificadores
Función proposicional y cuantificadoresFunción proposicional y cuantificadores
Función proposicional y cuantificadores
 
Slideshare Serie de Taylor
Slideshare Serie de TaylorSlideshare Serie de Taylor
Slideshare Serie de Taylor
 
Grafos Y Digrafos
Grafos Y DigrafosGrafos Y Digrafos
Grafos Y Digrafos
 
Conjuntos
ConjuntosConjuntos
Conjuntos
 
definiciones sistema numericos
definiciones sistema numericosdefiniciones sistema numericos
definiciones sistema numericos
 
Funciones trigonometricas con expansion en series
Funciones trigonometricas con expansion en seriesFunciones trigonometricas con expansion en series
Funciones trigonometricas con expansion en series
 
Par ordenado producto cartesiano- Definición De Relaciones
Par ordenado producto cartesiano- Definición De RelacionesPar ordenado producto cartesiano- Definición De Relaciones
Par ordenado producto cartesiano- Definición De Relaciones
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
3.4 Logica de Predicados
3.4 Logica de Predicados3.4 Logica de Predicados
3.4 Logica de Predicados
 
Leyes De Conjuntos
Leyes De ConjuntosLeyes De Conjuntos
Leyes De Conjuntos
 
Conjuntos
ConjuntosConjuntos
Conjuntos
 
Maquinas de estado
Maquinas de estadoMaquinas de estado
Maquinas de estado
 
Codigos bin-alfanumerico
Codigos bin-alfanumericoCodigos bin-alfanumerico
Codigos bin-alfanumerico
 
Basics of graph
Basics of graphBasics of graph
Basics of graph
 
Tema 1 conjuntos
Tema 1   conjuntosTema 1   conjuntos
Tema 1 conjuntos
 

Destacado (20)

Estructuras De Control Prolog
Estructuras De Control PrologEstructuras De Control Prolog
Estructuras De Control Prolog
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
Programacion practica prolog
Programacion practica prologProgramacion practica prolog
Programacion practica prolog
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prolog
 
Listas prolog m_c
Listas prolog m_cListas prolog m_c
Listas prolog m_c
 
Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.
 
Practicas prolog2011 listas
Practicas prolog2011 listasPracticas prolog2011 listas
Practicas prolog2011 listas
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prolog
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
8 reinas
8 reinas8 reinas
8 reinas
 
Prolog cinthya
Prolog cinthyaProlog cinthya
Prolog cinthya
 
Manual lab prolog
Manual lab prologManual lab prolog
Manual lab prolog
 
Prolog
PrologProlog
Prolog
 
Prolog file
Prolog fileProlog file
Prolog file
 
Prolog
PrologProlog
Prolog
 
Minimanualillo swi prolog
Minimanualillo swi prologMinimanualillo swi prolog
Minimanualillo swi prolog
 
Tutorial de prolog
Tutorial de prologTutorial de prolog
Tutorial de prolog
 
Operadores en prolog
Operadores en prologOperadores en prolog
Operadores en prolog
 
Problema de las 8 reinas
Problema de las 8 reinasProblema de las 8 reinas
Problema de las 8 reinas
 
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISPSotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISP
 

Similar a Clase de logica posbc (20)

Prolog2010
Prolog2010Prolog2010
Prolog2010
 
Manual de Prolog
Manual de PrologManual de Prolog
Manual de Prolog
 
Introduccion a prolog
Introduccion a prologIntroduccion a prolog
Introduccion a prolog
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertos
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertos
 
Estructura
Estructura Estructura
Estructura
 
Prolog
PrologProlog
Prolog
 
Prolog
PrologProlog
Prolog
 
Prolog
PrologProlog
Prolog
 
Prolog
PrologProlog
Prolog
 
Prolog
PrologProlog
Prolog
 
Conozcamos a Prolog
Conozcamos a PrologConozcamos a Prolog
Conozcamos a Prolog
 
P r-o-l-o-g-practica01-1204602281352947-2
P r-o-l-o-g-practica01-1204602281352947-2P r-o-l-o-g-practica01-1204602281352947-2
P r-o-l-o-g-practica01-1204602281352947-2
 
Prolog
PrologProlog
Prolog
 
Guia1 pii
Guia1 piiGuia1 pii
Guia1 pii
 
Python 4
Python 4Python 4
Python 4
 
Tema1
Tema1Tema1
Tema1
 
4072954.ppt
4072954.ppt4072954.ppt
4072954.ppt
 
Introducción
IntroducciónIntroducción
Introducción
 
Tutoriales de prolog
Tutoriales de prologTutoriales de prolog
Tutoriales de prolog
 

Último

Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfsandradianelly
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...odalisvelezg
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoYasneidyGonzalez
 
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptMaterial-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptAntonioaraujo810405
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitalesnievesjiesc03
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaYasneidyGonzalez
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxvanessaavasquez212
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETCESAR MIJAEL ESPINOZA SALAZAR
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasansomora123
 
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxMódulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxPabloPazmio14
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezRuben53283
 
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)JonathanCovena1
 
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdfnataliavera27
 
Proceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu RemodelaciónProceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu RemodelaciónDanielGrajeda7
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionyorbravot123
 
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Orientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArteOrientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArteEducaclip
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfJudithRomero51
 

Último (20)

Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptMaterial-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitales
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptx
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestas
 
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxMódulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
 
Proceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu RemodelaciónProceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu Remodelación
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
 
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
 
Orientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArteOrientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArte
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
 
3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico
 

Clase de logica posbc

  • 1. INSTITUTO TECNOLÓGICO SUPERIOR DE IXTAPALUCA INGENIERIA EN SISTEMAS COMPUTACIONALES Formalización en Prolog de la Lógica
  • 2. LENGUAJE PROLOG Proveniente del francés Programation et Logique, es un lenguaje de programación lógico e interpretado, bastante popular en el medio de investigación en Inteligencia Artificial. Desarrollado en la Universidad de Marsella como una herramienta práctica para programación lógica. Desde el punto de vista del usuario, la ventaja principal es la facilidad para programar, ya que se pueden escribir rápidamente y con pocos errores, programas claramente leíbles. Hecho para representar y utilizar el conocimiento que se tiene sobre un determinado dominio.
  • 3. LENGUAJE PROLOG (CONT.) ➲ El conocimiento se representa por un conjunto de relaciones que describen las propiedades de los objetos y sus interrelaciones. ➲ Un conjunto de reglas que describa estas propiedades y estas relaciones es un programa Prolog. ➲ Definición Formal: Programa Prolog: Conjunto de afirmaciones (hechos y reglas) representando los conocimientos que poseemos en un determinado dominio o campo de nuestra competencia.
  • 4. LA LÓGICA DE PRIMER ORDEN  La lógica de Primer Orden analiza las frases sencillas del lenguaje (fórmulas atómicas o elementales) reparándolas en Términos y Predicados. Los términos hacen referencia a los objetos que intervienen y los predicados a las propiedades o relaciones entre estos objetos. PREDICADOS Se utilizan para expresar propiedades de los objetos, predicados monádicos, y relaciones entre ellos, predicados poliádicos. En Prolog los llamaremos hechos.
  • 5. TIPOS DE PREDICADOS PREDICADOS MONÁDICOS: PROPIEDADES PREDICADOS POLIADICOS: RELACIONES
  • 6. TÉRMINOS Los términos pueden ser constantes o variables. Las constantes se utilizan para dar nombre a objetos concretos del dominio, dicho de otra manera, representan individuos conocidos de nuestro Universo. ● ● Átomos: Hay dos clases de constantes: ● Números:
  • 7. TIPOS DE CONSTANTES Átomos: existen tres clases de constantes atómicas: - Cadenas de letras, dígitos y subrayado (_) empezando por letra minúscula. - Cualquier cadena de caracteres encerrada entre comillas simples ('). - Combinaciones especiales de signos: "?-", ":-", ... Números: se utilizan para representar números de forma que se puedan realizar operaciones aritméticas. Dependen del ordenador y la implementación. - Enteros: puede utilizarse cualquier entero que el intervalo [223,223-1] - Reales: decimales en coma flotante, consistentes en al menos un dígito,
  • 9. LAS VARIABLES ➲ ➲ ➲ Las variables se utilizan para representar objetos cualesquiera del Universo u objetos desconocidos en ese momento, es decir, son las incógnitas del problema. Se diferencian de los átomos en que empiezan siempre con una letra mayúscula o con el signo de subrayado (_). Para trabajar con objetos desconocidos cuya identidad no nos interesa, podemos utilizar la variable anónima (_).
  • 10. VARIABLES (CONT) ➲ ➲ Una variable está instanciada cuando existe un objeto determinado representado por ella. Y está no instanciada cuando todavía no se sabe lo que representa la variable. Prolog no soporta asignación destructiva de variables, es decir, cuando una variable es instanciada su contenido no puede cambiar. CONECTIVAS LÓGICAS La conjunción La disyunción Las conectivas que se utilizan en la Lógica de Primer Orden son: La negación La implicación o condicional,
  • 11. CONECTIVAS DE PRIMER ORDEN ➲ ➲ ➲ La conjunción, “y”, la representaremos poniendo una coma entre los objetivos “,” y consiste en objetivos separados que Prolog debe satisfacer, uno después de otro: X , Y Cuando se le da a Prolog una secuencia de objetivos separados por comas, intentará satisfacerlos por orden, Para que se satisfaga la secuencia se tendrán que satisfacer todos los objetivos.
  • 12. CONECTIVAS DE PRIMER ORDEN (CONT.) La disyunción, “o”, tendrá éxito si se cumple alguno de los objetivos que la componen. Se utiliza un punto y coma “;” colocado entre los objetivos: X ; Y
  • 13. CONECTIVAS DE PRIMER ORDEN (CONT.) La negación lógica no puede ser representada explícitamente en Prolog, sino que se representa implícitamente por la falta de aserción : “no”, tendrá éxito si el objetivo X fracasa. La representamos con el predicado predefinido not o con +: Not (X) ó + X
  • 14. CONECTIVAS DE PRIMER ORDEN (CONT.) La implicación o condicional, sirve para significar que un hecho depende de un grupo de otros hechos. En Prolog se usa el símbolo “:-” para representar lo que llamamos una regla: cabeza_de_la_regla :- cuerpo_de_la_regla.
  • 15. PROGRAMACIÓN EN PROLOG •Hechos La programación en Prolog consiste en: •Reglas •Preguntas COMO SE APRECIA EN LA SIGUIENTE FIGURA
  • 16. Hechos y Relaciones 12 10 8 Columna 1 Columna 2 Columna 3 6 4 2 0 Fila 1 Fila 2 Fila 3 Fila 4
  • 17. PROGRAMACIÓN EN PROLOG (CONT.) Ejecución del programa: Demostración de un Teorema en este Universo, es decir, demostración de que una conclusión se deduce de las premisas (afirmaciones previas). Un sistema Prolog está basado en un comprobador de teoremas por resolución para cláusulas de Horn. La estrategia de resolución Para la búsqueda de cláusulas alternativas resolución de entrada lineal (árbol de búsqueda estándar). estrategia de primero hacia abajo (recorrido del árbol en profundidad).
  • 18. PREGUNTAS Las preguntas son las herramientas que tenemos para recuperar la Información desde Prolog. Prolog responde “yes” es que ha podido demostrarlo, y si responde “no” es que no lo ha podido demostrar. Cuando se hace una pregunta a Prolog, éste efectuará una búsqueda por toda la Base de Datos intentando encontrar hechos que coincidan con la pregunta. Dos hechose “coinciden” (se pueden unificar) si sus predicados son el mismo (se escriben de igual forma) y si cada uno de los respectivos argumentos son iguales entre sí.
  • 19. SINTAXIS ➲ La sintaxis de un lenguaje describe la forma en la que se nos está permitido juntar palabras entre sí. Los programas en Prolog se construyen a partir de términos. Un término es una constante, una variable o una estructura. ➲ Para escribir un comentario lo encerraremos entre los signos /* y */ o desde el símbolo % hasta el final de línea.
  • 20. CARACTERES ➲ Los nombres de constantes y variables se construyen a partir de cadenas de caracteres. Prolog reconoce dos tipos de caracteres: los imprimibles y los no imprimibles. Letras mayúsculas: A, B, C, D … Z letras minúsculas: a, b, c, d, e … z Imprimibles Caracteres dígitos numéricos: 0, 1, 2, 3 … 9 signos: ! " # $ % & ' ( ) = - ^ | / { } [ ] _ @+*;:<>,.? No aparecen en forma de signo en la No imprimibles pantalla, pero realizan una determinada acción: nueva línea, retorno de carro, ...
  • 21. ESTRUCTURAS ➲ Una estructura se escribe en Prolog especificando su nombre, y sus componentes (argumentos). Las componentes están encerradas entre paréntesis y separadas por comas; el nombre se escribe justo antes de abrir el paréntesis: Por ejemplo, podemos tener una estructura con el nombre libro, que tiene tres componentes: titulo, autor y año de edición. A su vez el autor puede ser una estructura con dos componentes: nombre y apellido.
  • 22. OPERADORES En Prolog están predefinidos los operadores aritméticos y relacionales típicos, con la precedencia habitual entre ellos: El orden de evaluación es secuencial. Expresiones, operaciones aritméticas y operadores relacionales. Not(). Enunciados Hechos Reglas Preguntas
  • 23. ESTRUCTURAS DE CONTROL RECURSIÓN ➲ Las definiciones recursivas se encuentran frecuentemente en los programas Prolog. ➲ Algunos predicados de manejo de listas están definidos recursivamente, es decir, el cuerpo de la cláusula se llama a sí mismo.
  • 24. ESTRUCTURAS DE CONTROL (cont.) ➲ Deberemos tener cuidado de no escribir recursiones circulares (entrada en un bucle que no terminaría nunca) ➲ Evitar la recursión a izquierdas (cuando una regla llama a un objetivo que es esencialmente equivalente al objetivo original), que causarían que Prolog no terminara nunca.
  • 25. UNIFICACIÓN ➲ La unificación («matching») aplicada junto con la regla de resolución es lo que nos permite obtener respuestas a las preguntas formuladas a un programa lógico. ➲ En Prolog consiste en buscar instancias comunes a dos átomos, uno de los cuales está en la cabeza de una cláusula y el otro en el cuerpo de otra cláusula. Prolog intentará hacerlos coincidir (unificarlos) mediante las siguientes reglas:
  • 26. REGLAS DE PROLOG PARA UNIFICAR 1. Una variable puede instanciarse con cualquier tipo de término, y naturalmente con otra variable. Si X es una variable no instanciada, y si Y está instanciada a cualquier término, entonces X e Y son iguales, y X quedará instanciada a lo que valga Y. Si ambas están no instanciadas, el objetivo se satisface y las dos variables quedan compartidas (cuando una de ellas quede instanciada también lo hará la otra). 1. Los números y los átomos sólo serán iguales a sí mismos. Evidentemente, también se pueden instanciar con una variable. 1. Dos estructuras son iguales si tienen el mismo nombre y el mismo número de argumentos, y todos y cada uno de estos argumentos son unificables.
  • 27. EJEMPLOS El predicado de igualdad (=) es un operador infijo que intentará unificar ambas expresiones. Un objetivo con el predicado no igual (=) se satisface si el = fracasa, y fracasa si el = se satisface.
  • 28. REEVALUACIÓN ➲ La reevaluación («backtracking») consiste en volver a mirar lo que se ha hecho e intentar resatisfacer los objetivos buscando una forma alternativa de hacerlo. ➲ Satisfacer un objetivo: cuando Prolog intenta satisfacer un objetivo, busca en la Base de Conocimientos desde su comienzo, y:  Si encuentra un hecho o la cabeza de una regla que pueda unificar con el objetivo, marca el lugar en la base de conocimientos e instancia todas las variables previamente no instanciadas que coincidan. Si es una regla lo encontrado, intentará satisfacer los subobjetivos del cuerpo de dicha regla.  Si no encuentra ningún hecho o cabeza de regla que unifique, el objetivo ha fallado, e intentaremos resatisfacer el objetivo anterior.
  • 29. REEVALUACIÓN (cont.) ➲ Resatisfacer un objetivo: Prolog intentará resatisfacer cada uno de los subobjetivos por orden inverso, para ello intentará encontrar una cláusula alternativa para el objetivo, en cuyo caso, se dejan sin instanciar todas las variables instanciadas al elegir la cláusula previa. La búsqueda la empezamos desde donde habíamos dejado el marcador de posición del objetivo.
  • 30. EL CORTE El corte permite decirle a Prolog cuales son las opciones previas que no hace falta que vuelva a considerar en un posible proceso de reevaluación. Es un mecanismo muy delicado, y que puede marcar la diferencia entre un programa que funcione y uno que no funcione. Su utilidad vienen dada por: - Optimización del tiempo de ejecución: no malgastando tiempo intentando satisfacer objetivos que de antemano sabemos que nunca contribuirán a una solución. - Optimización de memoria: al no tener que registrar puntos de reevaluación para un examen posterior.
  • 31. FUENTE BIBLIOGRAFICA ➲ “PROLOG Y EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN” DEPARTAMENTO DE CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL Universidad de Alicante Faraón Llorens Largo