SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacionLuis Peralta
 
Lambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de JavaLambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de JavaAlexis Lopez
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contextoVerónica Es'Loo
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
Lenguaje de programación: Pascal
Lenguaje de programación: PascalLenguaje de programación: Pascal
Lenguaje de programación: PascalCarola511
 
Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Andres Rivero
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseintDon Augusto
 
Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos ForRichard Robalino
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y forMiguel Angel Peña
 
Reglas Para Cuantificadores
Reglas Para CuantificadoresReglas Para Cuantificadores
Reglas Para Cuantificadoresrafael felix
 
Java 8 introducción a expresiones lambdas y api stream
Java 8  introducción a expresiones lambdas y api streamJava 8  introducción a expresiones lambdas y api stream
Java 8 introducción a expresiones lambdas y api streamEudris Cabrera
 

Mais procurados (20)

Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
Lambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de JavaLambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de Java
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Fundamentos de Programacion - Unidad 2 Algoritmos
Fundamentos de Programacion - Unidad 2 AlgoritmosFundamentos de Programacion - Unidad 2 Algoritmos
Fundamentos de Programacion - Unidad 2 Algoritmos
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Programación 1: arreglos en C
Programación 1: arreglos en CProgramación 1: arreglos en C
Programación 1: arreglos en C
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Presentación poo
Presentación pooPresentación poo
Presentación poo
 
Lenguaje de programación: Pascal
Lenguaje de programación: PascalLenguaje de programación: Pascal
Lenguaje de programación: Pascal
 
Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
 
Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos For
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y for
 
Layouts en Android Studio
Layouts en Android StudioLayouts en Android Studio
Layouts en Android Studio
 
Reglas Para Cuantificadores
Reglas Para CuantificadoresReglas Para Cuantificadores
Reglas Para Cuantificadores
 
Java 8 introducción a expresiones lambdas y api stream
Java 8  introducción a expresiones lambdas y api streamJava 8  introducción a expresiones lambdas y api stream
Java 8 introducción a expresiones lambdas y api stream
 

Destaque (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
 

Semelhante 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

1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...Ars Erótica
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 

Último (20)

Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 

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