4.- Modelo de Programación Lógica
4.1- Introducción al modelo de programación
lógica.
La Programación Lógica estudia el uso de la lógica para el planteamiento de problemas y el control sobre las reglas de inferencia para alcanzar la solución automática.
La Programación Lógica, junto con la funcional, forma parte de lo que se conoce como Programación Declarativa, es decir la programación consiste en indicar como resolver un problema mediante sentencias, en la Programación Lógica, se trabaja en una forma descriptiva, estableciendo relaciones entre entidades, indicando no como, sino que hacer, entonces se dice que la idea esencial de la Programación Lógica es
Programa= lógica + control
Lógica (programador): hechos y reglas para representar conocimiento
Control (interprete): deducción lógica para dar respuestas (soluciones)
La programación lógica intenta resolver lo siguiente:
Dado un problema S, saber si la afirmación A es solución o no del problema o en qué casos lo es. Además queremos que los métodos sean implantados en maquinas de forma que la resolución del problema se haga de forma automática.
La programación lógica: construye base de conocimientos mediante reglas y hechos
Regla: implicación o inferencia lógica que deduce nuevo conocimiento, la regla permite definir nuevas relaciones a partir de otras ya existentes.
también se usan
Son predicados predefinidos en PROLOG para las operaciones matemáticas básicas.
Su sintaxis depende de la posición que ocupen, pudiendo ser infijos o prefijos.
Por ejemplo el operador suma (“+”), podemos encontrarlo en forma prefija ‘+(2,5)’ o bien infija, ‘2 + 5’.
También dispone de predicados de igualdad y desigualdad.
X = Y igual
X \= Y distinto
X < Y menor
X > Y mayor
X =< Y menor o igual
X >= Y mayor o igual
Ejemplo:
Semántica de los programas lógicos
• Semántica proviene de un vocablo griego que puede traducirse como “significativo”. Se trata de aquello perteneciente o relativo a la significación de las palabras . Por extensión, se conoce como semántica al estudio del significado de los signos lingüísticos y de sus combinaciones.
• La semántica lógica, por otra parte, se encarga del análisis de los problemas lógicos de significación. Para esto estudia los signos (paréntesis, cuantificados, etc.) las variables y constantes, los predicados y las reglas
Características
• Una tarea de la semántica es investigar las condiciones de verdad de los enunciados.
• La semántica formal se ocupa únicamente de los aspectos formales o estructurales de las condiciones de verdad.
• Un enunciado complejo será verdadero o falso en función de la forma en que estén dispuestos los enunciados simples que lo componen.
• Esta forma viene dada por la disposición de las conectivas dentro del enunciado
.
EJEMPLO:
• Una tarea de la semántica es investigar las condiciones de verdad de los enunciados.
• La semántica formal se ocupa únicamente de los aspectos formales o estructurales
de las condiciones de verdad.
• Un enunciado complejo será verdadero o falso en función de la forma en que estén dispuestos los enunciados simples que lo componen.
• Esta forma viene dada por la disposición de las conectivas dentro del enunciado.
Alternativas para capturar la semántica de los programas lógicos.
Semántica operacional
Semántica declarativa
Semántica de punto fijo
4.2.- Semántica de los programas lógicos.
La semántica lógica, se encarga de los problemas lógicos de significación.
Donde se utiliza los signos de paréntesis, cuantificados, las variables y constantes de los predicados y las reglas.
Donde se utiliza los signos de paréntesis, cuantificados, las variables y constantes de los predicados y las reglas.
Se manejan cinco reglas:
Desplazar Disyunciones: Para desplazar desplazar las disyunciones al interior de las sentencias de tal forma que conecten las literales
Eliminación de 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
Se manejan cinco reglas:
Expresar las disyunciones como clausulas (en forma normal conjuntiva)
Características
• Los objetos y las relaciones importantes deben aparecer explícitamente y de forma conjunta
• Las restricciones inherentes al problema se muestran pero no los detalles 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
• Partes de una presentación: léxica que están determinados símbolos en el vocabulario.
Desplazar Disyunciones: Para desplazar desplazar las disyunciones al interior de las sentencias de tal forma que conecten las literales
Eliminación de 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
Se manejan cinco reglas:
Expresar las disyunciones como clausulas (en forma normal conjuntiva)
Características
• Los objetos y las relaciones importantes deben aparecer explícitamente y de forma conjunta
• Las restricciones inherentes al problema se muestran pero no los detalles 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
• Partes de una presentación: léxica que están determinados símbolos en el vocabulario.
Consulta de una base de cláusulas
Las clausulas contienen la especificación o implementación del conjunto de hechos y reglas que componen el programa. Dicha sección se encabeza con la palabra CAUSES
Una clausula puede ser:
Un hecho: por ejemplo padre (Juan, María)
Una secuencia de cláusulas que definen un predicado se denomina procedimiento
Clausula1
Clausula 2
…
Clausula N
Si una misma variable aparece en dos clausulas diferentes, entonces son variables diferentes pero con el mismo nombre. El ámbito de visibilidad de las variables es una única clausula
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 se le llama espacios 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 indicara como de una buena es la solución para el problema. Un algoritmo genético (AG) devolverá la mejor solución de entre todas las posibilidades que tenga en un momento dado.
En la optimización, espacio de búsqueda se refiere al dominio de la función a ser optimizada, en caso de los algoritmos de búsqueda, que maneja espacios discretos, se refiere al conjunto de todas las posibles soluciones candidatas a un problema.
En optimización, espacio de búsqueda se refiere al dominio de la función a ser optimizada. En el caso de los algoritmos de búsqueda, que maneja espacios discretos, se refiere al conjuntos de todas las posibles soluciones candidatas a un problema.
Fijada una regla de cálculo, los distintos cálculos posibles para un programa constituido por una cuestión Q y una base de conocimientos P se pueden representar gráficamente mediante un árbol de búsqueda caracterizado por:
Su raíz, etiqueta con la cuestión Q o primer resolvente:
Y los demás nodos etiquetados con los resolventes producidos por pasos de resolución.
Para cada nodo etiquetado con un resolvente no vacío, si A es la fórmula que selecciona la regla de cálculo, existirán tantos descendientes como clausulas con cabecera coincidente con A existan en el procedimientos de definición del correspondiente predicado.
Los nodos etiquetados con resolventes vacíos no tienen descendientes.
Las distintas reglas de búsqueda representan distintas formas de recorrido de los árboles de búsqueda.
Estas cláusulas deben representar todo el conocimiento necesario para resolver el problema.
Soluciones
Hechos
Reglas
Consultas
Comentarios
Publicar un comentario