Site hosted by Angelfire.com: Build your free website today!

Atrás Principal Arriba Siguiente

Parte III

Sistemas de razonamiento lógico

El razonamiento automático es el proceso de extraer conclusiones (“teoremas”) a partir de información (“axiomas”) donde se trata de reconocer patrones comunes entre los axiomas. A medida que las computadoras se vuelven más poderosas y los programadores más entendidos en avances de la lógica, se pueden automatizar con buen éxito una colección mayor de tareas de razonamiento.

Los sistemas de razonamiento automático se los clasifica en cuatro grupos:

Indización, Recuperación y Unificación

Almacenar y Recoger son dos funciones sencillas que se concentran en la implantación física de la base de conocimientos.

Para construir un sistema de razonamiento hay que definir los tipos de datos de las oraciones y los términos, es decir definir la sintaxis de las oraciones y la representación interna en donde el sistema guardará y manejará las oraciones a nivel de implantación.

Recoger se utiliza para la localización de oraciones en la Base de conocimientos que unifican con la consulta, o que por lo menos tienen la misma estructura sintáctica. Guardar(BC, S) lo que hace es añadir todos los conjuntos de la oración S a la base de conocimientos BC. Recoger(BC, Q) tiene que recorrer todos los elementos de la base de conocimientos, uno a la vez, hasta dar con un conjunto que coincida con Q, o hasta llegar al final.

Indización basada en tablas: La base de conocimientos se debe implantar como una tabla de dispersión. Esto tiene dos desventajas: no maneja oraciones complejas que no sean las de negación ni tampoco maneja variables que puedan contener oraciones.

Indización basada en árboles: es una forma de la indización combinada, donde elabora una llave combinada a partir de los signos de predicado y de argumento de la consulta. Aunque no es de mucha ayuda cuando uno de los signos de la secuencia es una variable, puesto que necesario recorrer cada una de las ramas.

Indización cruzada: se indizan entradas en diversos sitios, cuando se hace uan consulta, la recuperación se realiza en la parte que ofrece más posibilidades.

Unificación: Es un algoritmo en tiempo lineal que retorna el unificador más general, la lista de sustitución más corta que consigue que haya acuerdo entre dos literales. Aunque en general no hay un único unificador, por lo menos retorna uno que es de longitud mínima. Una variable no puede ser reemplazada por un término que ya contiene dicha variable, por ejemplo es ilegal x/f(x). Se debe realizar esa verificación en el seudo-código antes de las llamadas recursivas.

Sistemas de programación lógicos

La programación lógica considera al programa y a sus entradas como aseveraciones lógicas acerca del mundo, y al procedimiento de hacer explícitas las consecuencias como un proceso de inferencia.

        Algoritmo = Lógica + Control

Los lenguajes de programación permiten escribir algoritmos al completar las oraciones lógicas con información para control del procedimiento de inferencia. Prolog es el lenguaje de programación lógica que más se ha utilizado.

Sistemas Prolog (PROgramación LOGica)

Demostradores de Teoremas

Estos se diferencian de los lenguajes de programación lógica por dos aspectos:

Al preparar un problema para someterlo a Otter, se debe divir el conocimiento como sigue:

El demostrador de problemas OTTER opera mediante la resolución continua de un elemento del conjunto de apoyo comparándolo con uno de los axiomas utilizables. A diferencia del Prolog, utiliza una modalidad de búsqueda preferente por el mejor. Su función heurística determina el "peso" de cada una de las cláusulas y da preferencia a las más ligeras.

En cada paso, Otter desplaza la cláusula má ligera del conjunto de apoyo a la lista de lo utilizable, y añade a ésta algunas consecuencias inmediatas de la resolución de la cláusula más ligera. Otter se interrumpe cuando se topa con una refutación o cuando ya no quedan cláusulas en el conjunto de apoyo.

Los verificadores de teoremas ayudan hasta cierto punto en el caso de problemas de semidecibilidad, porque permite cancelar una consulta (por que consume mucho tiempo) y probar otro método. También puede operar como verificador de demostraciones.

Un razonador socrático es un demostrador de teoremas cuya función PREGUNTAR esta incompleta, pero llega a la solución planteando las preguntas adecuadas.

Los demostradores de teoremas se utilizan en problemas relacionados con la verificación y síntesis tanto de hardware (los axiomas describen las interacciones entre las señales y elementos del circuito) como de software (los axiomas definen las propiedades de los elementos sintácticos del lenguaje de programación).

Sistemas de producción por encadenamiento hacia adelante

En el encadenamiento hacia adelante no existen consultas, por lo que se aplica a la base de conocimientos reglas de inferencia, lo que produce nuevas aseveraciones. Este procedimiento se repite indefinidamente, o hasta que se logra satisfacer cierto criterio de paro. 

Un sistema de producción típico se caracteriza por:

Fase de cotejo: la unificación enfrenta el problema del cotejo de un par de literales, cada una de las cuales puede contener variables.

Cotejo Significa comparación...

El hecho y la condición (simple) cotejan si:

El algoritmo Rete

Memoria de Trabajo WM = {A(1), A(2), B(2), B(3), B(4), C(5)} 
A(x) B(y) D(x) => sumar E(x)
A(x) B(x) C(y) => sumar D(x)
A(x) B(x) E(z) => borrar A(x)



Una red “Rete"

Una de las ventajas de la red Rete es que elimina la duplicación en la reglas. Esta red se modifica luego de uan incorporación o una eliminación.

La fase de solución de conflictos sirve para decidir cuál de las sugerencias se va a aceptar,  a esta fase se la puede considerar como la estrategia de control. Algunas de las estrategias son:

Sistemas de marco y redes semánticas

Toda red semántica o sistema de marco también puede definirse como oraciones de una lógica, lo importante en todo lenguaje de representación reside en la comprensión de la semántica y en la teoría de la demostración.


Sintaxis y semántica de las redes semánticas: en las redes semánticas lo importante esta basado en las categorías de los objetos y las relaciones. Para definir la semántica de estas redes es necesario proponer los equivalentes en lógica de primer orden  de las aseveraciones que se hagan en el lenguaje de la red. Para esto se debe definir la versión en donde no hay excepciones y vínculos (para expresar que hay una relación R entre dos objetos A y B; otro para afirmar que R se cumple en todos los elementos de la claase A y el objeto B; y que se afirme que R se cumple en todos los elementos de A y algún elemento de B). Estos vínculos son recorridos a través de algoritmos de propósito especial dentro de éstas redes.

Herencia con excepciones: una forma de manejar este tipo de herencia sería recorriendo los vínculos de un diagrama, pero también es posible definir la semántica correspondiente mediante lógica de primer orden. El primer paso en una traducción lógica consiste en reificar las relaciones: una relación R se convierte en un objeto, no en un predicado.

Herencia múltiple: es cuando un objeto pertence a más de una categoría, y por tanto hereda propiedades de varias rutas. En algunos casos esto opera sin mayor problema, pero puede suceder que dos rutas de herencia produzcan respuestan conflictivas por lo que sin información adicional que indica cierta preferencia por una ruta, no hay manera de resolver el conflicto.

Herencia y cambio: los sistemas basados en la lógica de primer orden se valen de DECIR para incorporar una nueva oración a la BC y además cuenta con la propiedad de monotonicidad: si P se deduce de BC, entonces también se aumenta por DECIR(BC, S). En cambio la herencia que no tiene excepciones se considera no monotónica, para resolver esto hay dos métodos:

Implantación de redes semánticas: se pueden implantar redes a través de un demostrador de teoremas o con un lenguaje de programación lógica. El nodo de una red se representa mediante una estructura de datos, en la que hay campos para las conexiones taxonómicas básicas y también cuenta con campos para otras relaciones en las que participa.

Expresividad de las redes semánticas: en algunas de éstas de amplia la notación de manera que puedan trabajar con lógica de primer orden. Esto conlleva a tres ventajas: son capaces de capturar información de herencia de manera modular; su sencillez facilita mucho su comprensión y su eficiencia puesto que la inferencia se efectúa al seguir vínculos, en vez de recuperar oraciones de una BC y realizar unificaciones, necesitan de sólo unos cuantos ciclos de máquina por paso de inferencia.

Lógicas para la descripción

Están diseñadas para concentrarse en categorías y sus definiciones cuyas principales tareas de inferencia son la subsuposición (verificar que una categoría sea subconjunto de otra con base en sus definiciones) y la clasificación (verificar que un objeto pertenezca a una categoría).

Esta lógica permite efectuar operaciones lógicas directas en los predicados, en vez de tener que crear primero oraciones que se unen mediante conectores.

Quizás el aspecto más importante de la lógica de descripciones sea el énfasis que se pone en la tratabilidad de la inferencia. Los problemas se resuelven mediante su descripción y cuestionando si se le puede subsimir mediante una de varias categorías posibles de solución.

Manejo de retractaciones, suposiciones y explicaciones

Al procedimiento que lleva un control de qué proposiciones adicionales hay que retractar se lo conoce como mantenimiento de la verdad (en este método se lleva el control del orden en el que se incorporan las oraciones a la BC y garantiza la consistencia de esta última).

Un sistema de mantenimiento de la verdad o SMV es un programa que lleva el control de las dependencias presentes entre las oraciones con el fin de hacer más eficiente la retractación. Este sistema realiza cuatro funciones importantes:

Existen diversos tipos de SMV. El más sencillo es el sistema de mantenimiento de la verdad basado en la justificación o SMVJ, en este caso en cada una de las oraciones de la BC se indica cuál justificación identifica las oraciones a partir de la primera que se infirió, si es que existen.

El tipo más popular es el SMVS, o sistema de mantenimiento de la verdad basado en suposiciones, este representa todos los estados que se han considerado y lleva el control, por cada oración, de qué suposiciones harán que la oración sea verdadera.