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.
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.

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.


4.3.- Representación clausada del conocimiento

Es una disyunción de cualquier número de fórmulas atómicas afirmadas o negadas.
Estas cláusulas deben representar todo el conocimiento necesario para resolver el problema. 

Tipos de Cláusula:
Solución
Soluciones
Hechos
Reglas 
Consultas

4.4- Espacio 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.

Entonces parece que buscar una solución se reduce a buscar un valor extremo (mínimo o máximo) en el espacio de búsqueda. A veces el espacio de búsqueda puede ser bien definido, pero en la mayoría de las ocasiones sólo se conocen algunos puntos en el espacio de búsqueda. Cuando se usa un AG las posibles soluciones generan otras a medida que el genético evoluciona.

La resolución de un problema puede expresarse como la busqueda del extremo de una función Aquí resolvemos ese problema, este es un algorítmo genético que calcula el máximo de una función. La gráfica representa un espacio de busqueda y las líneas verticales son posibles soluciones. La línea roja es el mejor individuo de la población y las verdes el resto.

Pulsa el botón Empezar para que el genético comience, el botón Parar detendrá la ejecución, en el botón Paso a Paso se ejecutará un único paso creando una nueva población y el botón Reiniciar creará una nueva población inicial.
El problema estriba en que la búsqueda puede ser muy compleja por diversas razones, como por ejemplo no saber dónde buscar una solución o dónde empezar a buscarla. Existen muchos métodos que se 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.

Comentarios

Entradas populares de este blog

3.- Programación Lógica

2.- Modelo de Programación Funcional

1.- Conceptos Fundamentales