Está en la página 1de 5

TECNOLÓGICO NACIONAL DE

MEXICO

INSTITUTO TECNOLÓGICO DE
PACHUCA

Investigación

“Unidad 4: Modelo de Programación Lógica, subtemas 4.1,


4.2, 4.3 y 4.5”

Presenta:
González Blancas Jesús Abimelec

Mayo 2020.

Ing. Sistemas Computacionales.

Programación Lógica y Funcional.

Docente: Carlos Eduardo Maggi Natale


Tabla de Contenidos ii

Introducción .....................................................................................................................................1

Semántica de los programas lógicos ................................................................................................1

Representación clausada del conocimiento .....................................................................................2

Espacios de búsqueda ......................................................................................................................3


1

Introducción

Una forma de razonar para resolver problemas en matemáticas se fundamenta en


la lógica de primer orden. El conocimiento básico de las matemáticas se puede
representar en la lógica en forma de axiomas, a los cuales se añaden reglas formales para
deducir cosas verdaderas (teoremas) a partir de los axiomas. Gracias al trabajo de algunos
matemáticos de finales del siglo pasado y principios de éste, se encontró la manera de
automatizar computacionalmente el razonamiento lógico, particularmente para un
conjunto significativo de la lógica de primer orden, que permitió que la lógica
matemática diera origen a otros tipos de lenguajes de programación, conocidos como
lenguajes lógicos.

También se conoce a estos lenguajes como lenguajes declarativos, porque todo lo


que el programador tiene que hacer para solucionar un problema es describirlo vía
axiomas y reglas de deducción. En los lenguajes lógicos se utiliza el formalismo de la
lógica de primer orden para representar el conocimiento sobre un problema y para hacer
preguntas que, si se demuestra que se pueden deducir a partir del conocimiento dado en
forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Así se
encuentran soluciones a problemas formulados como preguntas. Con base en la
información expresada dentro de la lógica de primer orden, se formulan las preguntas
sobre el dominio del problema y el intérprete del lenguaje lógico trata de encontrar la
respuesta automáticamente.

El conocimiento sobre el problema se expresa en forma de predicados (axiomas)


que establecen relaciones sobre los símbolos que representan los datos del dominio del
problema. Este concepto de programación lógica está ligado históricamente a un lenguaje
llamado Prolog, que proviene de PROgrammation en LOGique (programación en lógica),
que fue el primer lenguaje de programación lógico y el más conocido y utilizado.

Semántica de los programas lógicos

La semántica lógica, se encarga del análisis de los problemas lógicos de


significación. Paro esto estudia (paréntesis, cuantificados, etc.), las variables y constantes,
los predicados y las reglas. El programa prolog se compone de unos hechos (datos) y un
conjunto de reglas, es decir, relaciones entre objetos de la base de datos. Prolog tiene una
2

sintaxis y semántica simples. Solo busca relaciones entre los objetos creados. Las
variables y las listas, que son estructuras básicas.

Dentro de Prolog, se tienen que considerar aspectos importantes, los cuales nos
dicen que:

- Comentarios van entre /**/

En los Objetos de Datos hay diferentes tipos de datos primitivos: variables y constantes.

• Enteros
• Reales
• Caracteres

Los identificadores con minúscula representan hechos, los que van con mayúsculas
variables.

Tipos de datos estructurados:

• Átomos: Constantes y variables de cadena.


• Listas, representadas entre [].

Tipos definidos por el usuario. Las reglas para definir relaciones pueden actuar como
tipos de usuario.

Representación Clausada del Conocimiento

Representación del conocimiento es un término comúnmente usado para referirse


a representaciones pensadas para el procesamiento por ordenadores modernos, y en
particular, para representaciones compuestas por objetos explícitos y de afirmaciones
sobre ellos. Representar el conocimiento en una forma explicita como esta permite a los
ordenadores sacar conclusiones de conocimiento previamente almacenado.

El pasaje a forma clausal se puede realizar aplicando cinco reglas. Eliminar


implicaciones, desplazar negaciones hacia interior de la sentencia (sobre las
conjunciones, disyunciones y cuantificadores) hasta quedar delante de fórmulas átomicas.
Desplazar las disyunciones hacia el interior de la sentencia (sobre las conjunciones y
cuantificadores) hasta quedar conectado únicamente literales.

Desplazar disyunciones: para desplazar las disyunciones al interior de las


sentencias de tal forma que conecten literales (átomos o átomos negados). Eliminación de
3

cuantificadores existenciales: La eliminación de un cuantificador existencial introduce


una sentencia que no es equivalente, que implica la sentencia original pero no es
implicada por esta. Expresar las disyunciones como cláusulas (en forma conjuntiva).

Características

• Los objetos y relaciones importantes deben aparecer explícitamente y de forma


conjunta.
• Las restricciones inherentes al problema se muestran, pero no los detallas
irrelevantes.
• La representación debe ser transparente: se entiende lo que se dice.
• Completa y concisa: Están representados con eficacia todos los objetos y
relaciones.
• Rápidos y computables: Se pueden almacenar y recuperar la información con
rapidez y se pueden crear mediante un procedimiento ya existente.
• Partes léxica: Determina qué símbolos están permitidos en el vocabulario de la
representación.

Espacios de Búsqueda

Cuando se resuelve un problema, se busca la mejor solución entre un conjunto de


posibles soluciones. Al conjunto de todas las posibles soluciones a un problema concreto
se llama espacio de búsqueda. Cada punto en el espacio de búsqueda representa una
posible solución.

Cada posible solución se le puede asociar un fitness o un valor que indicará cómo
de buena es la solución para el problema. Un algoritmo genético (AG) devolverá la mejor
solución de entre todas las posibles que tenga en un momento dado. Existen muchos
métodos que usan para buscar una solución válida, pero no necesariamente obtienen la
mejor solución. Algunos de estos métodos son los algoritmos de escalada, backtracking o
vuelta atrás. Búsqueda a ciegas y los algoritmos genéticos. Las soluciones que encuentran
estos tipos de búsqueda suelen ser buenas soluciones, pero no siempre encuentran la
óptima. En optimización, espacio de búsqueda se refiere al dominio de la función a ser
optimizada. En el caso de algoritmos de búsqueda, que manejan espacios discretos, se
refiere al conjunto de todas las posibles soluciones candidata a un problema.

También podría gustarte