Sistemas de Razonamiento Lógico

75

Click here to load reader

description

Presentación sobre el tema "Sistemas de Razonamiento Lógico" del curso de Inteligencia Artificial

Transcript of Sistemas de Razonamiento Lógico

Page 1: Sistemas de Razonamiento Lógico

Sistemas de Razonamiento LógicoInteligencia Artificial

Page 2: Sistemas de Razonamiento Lógico

Agenda Introducción Indización, Recuperación y Unificación Sistemas de Programación Lógicos Demostradores de Teoremas Sistemas de Producción por

Encadenamiento hacia Adelante Sistemas de Marco y Redes Semánticas Lógicas para la Descripción Manejo de Retractaciones, Suposiciones

y Explicaciones

Page 3: Sistemas de Razonamiento Lógico

INTRODUCCIÓN

Page 4: Sistemas de Razonamiento Lógico

Tipos de Problemas

Demostradores de teoremas y lenguajes de programación

lógicos

Sistemas de producción

Sistemas de cuadro y redes

semánticas

Sistemas lógicos por descripción

Page 5: Sistemas de Razonamiento Lógico

Tareas a Enfrentar

DECIR

• Incorporar algo nuevo a la BC• Deducir hechos implicados

PREGUNTAR

• Decidir si una consulta está implicada por la BC• Decidir si una consulta está en la BC

Page 6: Sistemas de Razonamiento Lógico

INDIZACIÓN, RECUPERACIÓN Y UNIFICACIÓN

Page 7: Sistemas de Razonamiento Lógico

Implantación de Oraciones y Términos

Ejemplo: Sea c el compuesto P(x) ^ Q(x)OP[c] = ^ ARGS[c] = [P(x), Q(x)]

Definir tipos de oraciones y términos

Sintaxis de oraciones

Representación interna

Page 8: Sistemas de Razonamiento Lógico

Guardar y Recoger

Ejemplo: DECIR(BC, A ^ ~B)DECIR(BC, ~C ^ D)

BC = [A, ~B, ~C, D]

Estrategia de

búsqueda de

PREGUNTAR

Estructuras de

datos de RECOGE

R

Costo de cómputo

de la inferencia

Page 9: Sistemas de Razonamiento Lógico

Indización Basada en Tablas

Lista de literales positivas

Lista de literales negativas

Lista de oraciones en las que el predicado está en la conclusión

Lista de oraciones en las que el predicado está en la premisa

Page 10: Sistemas de Razonamiento Lógico

Indización Basada en Tablas

Ejemplo:Hermano(Ricardo, Juan)

Hermano(Eduardo, Jaime) ^ Hermano(Jaime, Roberto)

~Hermano(Ana, Samuel)

Hermano(x, y) ==>Masculino(x)

Hermano(x, y) ^ Masculino(y) ==> Hermano(y, x)

Masculino(Jaime) ^ Masculino(Eduardo) ^ … ^ ~Masculino(Ana) ^ …

Clave Positivo Negativo Conclusión Premisa

Hermano

Hermano(Ricardo, Juan)Hermano(Ted, Jack)Hermano(Jack, Bobbie)

~Hermano(Ann, Sam)

Hermano(x, y) ^ Masculino(y) => Hermano(y, x)

Hermano(x, y) ^ Masculino(y) => Hermano(y, x)

Hermano(x, y) => Masculino(x)

Masculino

Masculino(Jack)Masculino(Ted)…

~Masculino(Ann)…

Hermano(x, y) => Masculino(x)

Hermano(x, y) ^ Masculino(y) => Hermano(y, x)

Page 11: Sistemas de Razonamiento Lógico

Indización Basada en Árboles

¿Predicado?

¿Primer argumento?

Peruano

43684461

Ejemplo: Peruano(43684461, x)

Page 12: Sistemas de Razonamiento Lógico

Indización Basada en Árboles

Indización Combinada Indización Cruzada

Ejemplo:

Contribuyente(012-34-5678, 02138, 32000, 10)

Consulta:

RECOGER(Contribuyente(p, 02138, i, 10))

2ⁿ índices combinados

Ejemplo:

RECOGER(Contribuyente(p, 02138, 20000, 3))

Rubros:

Contribuyente(_, 02138, _, _)

Contribuyente(_, _, 20000, _)

Contribuyente(_, _, _, 3)

Page 13: Sistemas de Razonamiento Lógico

El Algoritmo de Unificaciónfuncion UNIFICAR(x, y) responde con una sustitución para hacer que x e y sean idénticas, de ser posible UNIFICAR-INTERNO(x, y, {})

funcion UNIFICAR-INTERNO(x, y, θ) responde con una sustitución para que x e y sean idénticas (tomando como base θ). entradas: x, una variable, una constante, una lista o un compuesto y, una variable, una constante, una lista o un compuesto θ, la sustitución que se haya configurado hasta ese momento si θ = falla entonces responder con falla o bien, si x = y entonces responder con θ o bien, si VARIABLE?(x) entonces responder con UNIFICAR-VAR(x, y, θ) o bien, si VARIABLE?(y) entonces responder con UNIFICAR-VAR(x, y, θ) o bien, si COMPUESTO?(x) y COMPUESTO?(y) entonces responder con UNIFICAR-INTERNO(ARGS[x], ARGS[y], UNIFICAR-INTERNO(OP[x], OP[y], θ)) o bien, si LISTA?(x) y LISTA(y) entonces responder con UNIFICAR-INTERNO(REST[x], REST[y], UNIFICAR-INTERNO(PRIMERO[x], PRIMERO[y], θ)) o bien, responder falla

función UNIFICAR-VAR(var, x, θ) responde con una sustitución entradas: var, una variable x, cualquier expresión θ, la sustitución construida hasta ese momento si {var/val} θ entonces responder con UNIFICAR-INTERVALO(val, x, θ) o bien, si {x/val} θ entonces responder con UNIFICAR-INTERNO(var, val, θ) o bien, si var esta presente en alguna parte de x /* verificar */ entonces responder con falla o bien, responder con sumar {x/var} a θ

Page 14: Sistemas de Razonamiento Lógico

SISTEMAS DE PROGRAMACIÓN LÓGICOS

Page 15: Sistemas de Razonamiento Lógico

Sistemas de Programación Lógicos La programacion 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.

La relación entre lógica y algoritmo esta resumida en la ecuación de Robert Kowalski:

Algoritmo = Lógica + Control Los lenguajes de programacion permiten escribir algoritmos al

complementar las oraciones lógicas con información para control del procedimiento de inferencia.

Prolog ha sido hasta ahora el lenguaje de programacion lógica que más se ha utilizado para lo anterior. Sus usuarios ascienden a cientos de miles. Se le utiliza fundamentalmente como un lenguaje rápido para elaborar prototipos y en tareas donde hay que manejar signos, como en el diseño de compiladores y en el análisis gramatical del lenguaje natural. También se le ha utilizado en el diseño de aplicaciones de sistemas expertos en las áreas legal, financiera y otras.

Page 16: Sistemas de Razonamiento Lógico

El Lenguaje PrologEn cuanto base de conocimientos lógica, el programa Prolog tiene las siguientes características: El programa consta de una secuencia de oraciones, que guardan

una relación implícita de coyuncion. Todas las variables tienen cuantificación universal implícita y cuando las variables aparecen en oraciones distintas se consideran como diferentes.

Se aceptan únicamente oraciones en forma de clausula de Horm. Es decir, las oraciones son atómicas, o bien una implicación que no tiene antecedentes negados y un consecuente atómico.

Los términos pueden ser signos de constante, variables o términos funcionales.

En una consulta puede haber conjunciones, disyunciones, variables y términos funcionales.

En vez de utilizar antecedentes negados en sus implicaciones, en Prolog se emplea un operador de negación como falla: una meta no P se considera demostrada si el sistema no logra demostrar P.

Page 17: Sistemas de Razonamiento Lógico

El Lenguaje Prolog Se cuenta con una gran cantidad de predicados

incorporados para aritmética, de entrada/salida y diversas funciones del sistema y de la base de conocimientos. En la notación de Prolog ,la meta X es 4+3 se alcanza cuando X se vincula a 7. Por el contrario, no es posible demostrar la meta 5 es X+Y, puesto que las funciones integradas no tienen facultad para la resolución arbitraria de ecuaciones.

El siguiente es un ejemplo del empleo del programa Prolog en la relación Miembro, expresados ambos en notación normal de lógica de primer orden y en formato que utiliza Prolog:

Page 18: Sistemas de Razonamiento Lógico

El Lenguaje Prolog Representación correspondiente a Prolog el consecuente o cabeza,

esta del lado izquierdo; los antecedentes o cuerpo, a la derecha. Una clausula en Prolog se leería como “Para demostrar (la cabeza), demuestre (el cuerpo)”.

Con el fin de mantener este tipo de lectura intuitiva junto con nuestra notación lógica, nos comprometeremos a escribir las clausulas de Prolog empleando una implicación en sentido izquierdo. Por ejemplo, la segunda clausula de la definición de Miembro se convierte en:

La definición de Miembro puede servir para responder a diversos tipos de consultas. Puede utilizarse para confirmar que es verdadera. Además puede enumerar los tres valores de x que hagan verdadera a . También pueden buscar el valor de x tal que es verdadera. También puede servir para enumerar las listas para las cuales es verdadera.

Page 19: Sistemas de Razonamiento Lógico

Implantación Los diseñadores de Prolog realizaron su implantación con el

fin de contar con un modelo sencillo y de rápida ejecución: Todas las inferencias se realizan por encadenamiento hacia atrás,

con búsqueda preferente por profundidad. Es decir cuando en el proceso de demostración de una oración se tope con un callejón sin salida, Prolog retrocederá al paso inmediato anterior que ofrezca opciones.

El orden de búsqueda a través de los conjuntos de un antecedente es siempre de izquierda a derecha, y las clausulas de la base de conocimientos se aplican en orden, de la primera a la ultima.

La verificación de ocurrencia se omite en la rutina de unificación.

Aunque la omisión de la verificación de ocurrencia podría restar confiabilidad a Prolog, en la practica los errores se producen muy rara vez. El empleo de la búsqueda preferente por profundidad no permite a Prolog ser completo, debido a las rutas infinitas que crean las oraciones circulares.

Page 20: Sistemas de Razonamiento Lógico

Implantación Los programadores deberán tener presente las grande ventajas de

Prolog es que el modelo de ejecución es lo suficientemente sencillo como para que un programador con la capacitación necesaria pueda incorporar información de control y producir así un programa eficiente.

La ejecución de un programa Prolog se realiza de dos maneras: por interpretación y por compilación.

La primera consiste en que en vez de construir la lista de todas las respuestas posibles para cada submeta, antes de proceder con la siguiente, los intérpretes de Prolog generan una respuesta y una “promesa” para generar el resto una vez que la respuesta en cuestión haya sido explorada totalmente. A esta promesa se le denomina punto de elección. Una vez que la búsqueda preferente por profundidad concluye su exploración de las posibles soluciones aportadas por la respuesta en cuestión y retrocede al punto de elección, este se expande para producir así una nueva respuesta para la submeta y el nuevo punto de elección.

Esta manera de proceder permite ahorrar tiempo y espacio.

Page 21: Sistemas de Razonamiento Lógico

La Segunda La Sencilla implantación del ENACADENAMIENTO-HACIA-ATRÁS

invierte bastante tiempo en la generación de sustituciones y en aplicarlas a las listas de consulta. Prolog elimina la necesidad de un tipo de datos de sustitución al implementar variables lógicas capaces de recordar su vinculación actual. En todo instante, las variables de un programa están vinculadas o desvinculadas a cierto valor. En conjunto, tales variables y valores definen de manera implícita una sustitución.

Desde luego, se produce solo una sustitución a la vez, pero no necesitamos más. La sustitución es la correcta para la ruta actual en el árbol de búsqueda. La ampliación de la ruta solo puede añadir nuevas vinculaciones de variables, puesto que si se intentara añadir una vinculación distinta a una variable que ya este vinculada, dará como resultado una falla en la unificación. Si llegara a fallar una ruta de la búsqueda, Prolog retrocederá a un punto de elección previo, y posiblemente allí deba desvincular algunas variables. Para ello, es necesario que lleve un registro de todas las variables vinculadas en una pila que se conoce con el nombre de pista.

Page 22: Sistemas de Razonamiento Lógico

Compilación de Programas Lógicos Toda la parte medular, para trabajo pesado, de la

programación de Prolog se realiza mediante código compilado. La gran ventaja de la compilación es que cuando llega el momento de ejecutar el procedimiento de inferencia, se utilizan rutinas de inferencia específicamente diseñadas para las oraciones de la base de conocimientos. Prolog básicamente lo que hace es generar un demostrador de teoremas en miniatura para cada predicado diferente, con lo que se elimina mucho del exceso de interpretación. También permite la codificación abierta de la rutina de unificación por cada invocación distinta, lo que ahorra el tener que analizar explícitamente la estructura de los términos.

Page 23: Sistemas de Razonamiento Lógico

Otros Lenguajes de Programación Lógica Si bien Prolog es la norma aceptada en la programación lógica, existen

muchos otros sistemas bastante útiles que básicamente lo que hacen es ampliar de una u otra manera el modelo fundamental de Prolog.

Resulta obvio emprender la exploración de Prolog a través del paralelismo de Prolog a través del paralelismo. La primera, conocida como paralelismo-O, surge de la posibilidad de que una meta unifique con diversas y diferentes literales e implicaciones de la base de conocimientos. Cada una de ellas produce una rama independiente en el espacio de búsqueda y es susceptible de generar una solución potencial; todas estas ramas pueden ser resueltas en paralelo. La segunda, conocida como paralelismo-Y, proviene de la posibilidad de resolver cada uno de los coyuntos del cuerpo de una implicación en paralelo. El paralelismo Y es mas difícil de lograr, puesto que las soluciones de toda la conjución exigen la vinculación consistente de todas las variables. Cada rama conjuntiva debe comunicarse con las otras ramas para garantizar asi una solución global.

Son muchos los proyectos que han tenido éxito en el logro de cierto grado de inferencia paralela, pero el mas avanzado quizá sea el proyecto PIM (Parallel Interfence Machine, Maquina de inferencia paralela), parte del proyecto Sistemas de Computo Quinta Generación, de Japón. PIM ha logrado alcanzar velocidades de hasta 64 millones de ILPS.

Page 24: Sistemas de Razonamiento Lógico

Recursos Avanzados de Control Regresando a nuestra base de conocimientos censal, tomemos por

ejemplo la consulta “¿Cuál es el ingreso de la esposa del presidente” Lo anterior se expresaría en Prolog de la manera siguiente:

Ingreso(s, i) ^ Casado(s, p) ^ Ocupación (p, Presidente) El cómputo de esta consulta podría resultar costoso, puesto que hay

que enumerar todos los pares de ingreso de las personas, luego recoger el cónyuge correspondiente a cada persona (excepto en el caso de los que no están casados, o dar varias vueltas cuando alguien ha estado casado varias veces) y por ultimo buscar en las personas cuya ocupación ha sido la de presidente. Para responder con eficiencia a consultas conjuntivas como ésta, muchas veces es mejor dedicar previamente cierto tiempo a reorganizar los coyuntos, lo que disimulara el tiempo necesario de cómputo. En el caso de esta consulta, seria mejor ordenarla como sigue:

Ocupación (p, Presidente) ^ Casado(s, p) ^ Ingreso(s, i) Se obtendría la misma respuesta, pero sin ninguna regresión,

suponiendo que los predicados Ocupación y Casado se están indizando mediante su respectivo segundo argumento.

Page 25: Sistemas de Razonamiento Lógico

Recursos Avanzados de Control Este procedimiento de reordenamiento es un ejemplo de

meta razonamiento, o del razonamiento acerca del razonamiento. Como en el caso de la búsqueda por satisfacción de restricciones, la heurística que estamos empleando para la ordenación de los coyuntos consiste en colocar en primer lugar aquellos con más restricciones. En este caso es evidente que solo una p satisface Ocupación (p, Presidente), pero no siempre es igual de fácil anticipadamente predecir cuantas soluciones habrá para un predicado. Y, aun si lo fuera, no seria practico probar todas las n. Permutaciones de una conjunción de n lugares, cuando tal n es grande. Lenguajes como MRS permite al programador escribir meta reglas para decidir que coyuntos son los que hay que probar primero. Por ejemplo el usuario podría definir una regla en donde se afirme que la meta que implica menos variables es la que debe probarse primero.

Page 26: Sistemas de Razonamiento Lógico

Recursos Avanzados de Control En algunos sistemas, en vez de reordenar los coyuntos, se

modifica la manera como se efectúa la reversión. Por ejemplo, si se desea encontrar a todas aquellas personas x que vengan de un mismo poblado en calidad de presidente. Un ordenamiento ineficiente de esta consulta seria:Residente (p, ciudad) ^ Residente(x, ciudad) ^ Ocupación (p,

Presidente)

En Prolog se intentaría resolver lo anterior mediante la enumeración de todos los residentes p de cualquier población, luego enumerar todos los residentes c de dicha población y luego verificar si p es el presidente. Cuando la meta Ocupación (p, Presidente) falla, Prolog regresa al punto de elección mas reciente, que es la meta Residente(x, población). A esto se le conoce como reversión cronológica; si bien es sencilla, a veces resulta ineficiente. Es evidente que el generar una nueva x de nada servirá para que p ¡se convierta en presidente!

Page 27: Sistemas de Razonamiento Lógico

Recursos Avanzados de Control Mediante la técnica de salto reversivo se evita tener que

hacer repeticiones inútiles. En este problema en particular, mediante el salto reversivo se retrocede dos pasos hasta llegar a Residente (p, poblado) y se genera una nueva vinculación para p. El determinar donde dar el salto reversivo durante la compilación no es difícil para un compilador que conserva información sobre el flujo de datos. A veces, además del salto reversivo a un sitio razonable, el sistema guarda la combinación de variables que causaron el ir a un callejón sin salida, con el fin de no repetirlas nuevamente en otra rama de la búsqueda. A lo anterior se le conoce como reversión dirigida por dependencia. En la práctica, la cantidad que implica el almacenamiento de todos los callejones sin salida resulta excesivamente grande, como en el caso de la búsqueda heurística, muchas veces la memoria es una restricción más importante que la del tiempo. En la practica, son mas los sistemas de salto reversivo que los sistemas dirigidos por dependencia.

Page 28: Sistemas de Razonamiento Lógico

DEMOSTRADORES DE TEOREMAS

Page 29: Sistemas de Razonamiento Lógico

Demostradores de Teoremas Los demostradores de teoremas (conocidos

también como razonadores automatizados) se diferencian en dos aspectos de los lenguajes de programación lógica. En primer lugar, la mayoría de los lenguajes de programación lógicos sólo manejan clausulas de Horn, en tanto que los demostradores de teoremas si aceptan la lógica de primer orden. En segundo lugar, los programas de Prolog combinan lógica y control. El que un programador escoja entre escribir A B ^ C en vez de, A C ^ B afectará la ejecución del programa. En el caso de los demostradores de teoremas, el usuario puede utilizar cualquiera de las 2 anteriores y los resultados serán exactamente los mismos.

Page 30: Sistemas de Razonamiento Lógico

Diseño de un Verificador de Teoremas (OTTER)

Un conjunto de cláusulas conocido como conjunto de apoyo.

Un conjunto de axiomas utilizables que no pertenezcan al conjunto de apoyo.

Un conjunto de ecuaciones conocido como reelaboraciones o demoduladores.

Un conjunto de parámetros y cláusulas que definen la estrategia de control.

OTTER opera mediante la resolución continua de un elemento del conjunto de apoyo comparándolo con uno de los axiomas utilizables.

Page 31: Sistemas de Razonamiento Lógico

Algoritmo (OTTER)procedimiento OTTER(sos, usable) entradas: sos, un conjunto de apoyo –clausulas que definen el problema (una variable global) usable, conocimiento previo potencialmente relevante al problema repetir clausula el miembro mas ligero de sos mover clausula de sos a usable PROCESS(INFER(clausula, usable), sos) hasta sos = [] o ha sido encontrada una refutación

funcion INFER(clausula, usable) devuelve clausulas resolver clausula con cada miembro de usable devuelve la clausula resultante después de aplicar FILTER

procedimiento PROCESS(clausula, sos) para cada clausula en clausulas hacer clausula SIMPLIFY(clausula) intercalar literales idénticas descartar clausula si esta es una tautología sos [clausula | sos] si clausula no tiene literales entonces se ha encontrado una refutación si clausula tiene una literal entonces buscar una unidad de refutación fin

Page 32: Sistemas de Razonamiento Lógico

Ampliación de Prolog En el DTTP son cinco los cambios más

importantes que se efectuaron a Prolog para devolverle integridad y expresividad. La verificación de ocurrencia se devolvió a la rutina

de unificación con el fin de hacerla más sólida. La búsqueda preferente por profundidad se sustituye

por una búsqueda de profundización iterativa. Aceptar y literales negadas. Una cláusula que conste de n átomos se guarda en n

reglas distintas. La inferencia se completa por la adición de la regla

de resolución de entrada lineal, se trata de un razonamiento por contradicción.

Page 33: Sistemas de Razonamiento Lógico

Aplicaciones Prácticas SAM AURA BOYER – MOORE OTTER

Page 34: Sistemas de Razonamiento Lógico

SISTEMAS DE PRODUCCIÓN POR ENCADENAMIENTO HACIA ADELANTE

Page 35: Sistemas de Razonamiento Lógico

Sistemas de Producción por Encadenamiento Hacia Adelante Se aplica a la base de conocimientos

reglas de inferencia, lo que producen nuevas aseveraciones. Éste procedimiento se repite indefinidamente, o hasta que se logra satisfacer cierto criterio de paro. Éste procedimiento es adecuado en el diseño de un agente: en cada ciclo, se incorporan las percepciones a la base de conocimientos y se ejecuta el encadenamiento hacía adelante, el cual elige qué acción realizar de acuerdo con un conjunto de reglas condición – acción.

Page 36: Sistemas de Razonamiento Lógico

Características de un Sistema de Producción El sistema mantiene una base de conocimiento

conocida como memoria de trabajo. El sistema mantiene también una memoria de

reglas independiente. En cada ciclo, el sistema calcula el subconjunto

de reglas cuyo lado izquierdo se satisface con el contenido actual de la memoria de trabajo.

El sistema decide entonces cuál de la reglas se va a ejecutar.

El paso final de cada ciclo consiste en ejecutar las acciones de las reglas elegidas.

Page 37: Sistemas de Razonamiento Lógico

Fase de Cotejo La unificación enfrenta el problema del cotejo de un

par de literales, cada una de las cuales puede contener variables.

El algoritmo rete empleado en el sistema de producción OPS – 5 fue el primero en abordar seriamente este problema.

Supongamos que tenemos la siguiente memoria de reglas:

Y la siguiente memoria de trabajo:{A(1), A(2), B(2), B(3), B(4), C(5)}

Page 38: Sistemas de Razonamiento Lógico

Fase de Cotejo

Una de las ventajas más obvias de la red rete es que elimina la duplicación en las reglas. Las tres reglas empiezan por una conjunción de A y B, y la red permite compartir esa parte.

Page 39: Sistemas de Razonamiento Lógico

Fase de Solución de Conflictos Alguna de las estrategias que sean

utilizados son la siguiente: No duplicación Novedad Especificidad Prioridad de operación

Aplicaciones prácticas XCON ACT SOAR

Page 40: Sistemas de Razonamiento Lógico

SISTEMAS DE MARCO Y REDES SEMÁNTICAS

Page 41: Sistemas de Razonamiento Lógico

Sistemas de Marco y Redes Semánticas Actualmente se acepta que toda red semántica o

sistema de cuadro también puede definirse como oraciones de una lógica, y la mayoría está de acuerdo en que ésta sea la lógica de primer orden. 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; los detalles de la sintaxis son menos importantes.

El que en lenguaje se utilicen cadenas Onadas y vínculos, y el que se le llame red semántica o lógica, es irrelevante para su significado o para su implantación.

Page 42: Sistemas de Razonamiento Lógico

Sistemas de Marco y Redes Semánticas La comprensión de algunas cosas se facilita

mediante la notación gráfica; algunas otras son más claras cuando aparecen como cadenas de caracteres. Afortunadamente , no es necesario decidirse en definitiva por una u otra; el profesional en IA diestro es capaz de traducir en ambos sentidos las notaciones y elige aquella que mejor se adapta a sus necesidades del momento; lo que no puede es obtener intuiciones de otras notaciones.

Page 43: Sistemas de Razonamiento Lógico

Sistemas de Marco y Redes SemánticasAdemás del atractivo de esos bonitos diagramas nodo-vinculo, las redes semánticas han tenido aceptación por la misma razón que Prolog se usa más que los demostradores de teoremas de lógica de primer orden: porque el modelo de ejecución de la mayoría de los formalismos de la red semántica es muy sencillo. Aunque un, programador llegue a construir una red muy grande, aún así puede hacerse una buena idea de qué consultas pueden ser eficientes, puesto que : Es fácil visualizar los pasos que se darán en el

procedimiento de inferencia y Porque el lenguaje de la consulta es tan sencillo

que impide formular consultas complicadas.

Page 44: Sistemas de Razonamiento Lógico

Sintaxis y Semántica de las Redes SemánticasEn las redes semánticas la atención está puesta en las categorías de los objetos y las relaciones que existen entre éstos. En ellas es muy natural establecer vínculos como:

Para afirmar que los gatos son mamíferos. Desde luego, se trata de una forma sencilla de expresar la oración lógica

Pero cuando las redes semánticas se utilizaron por vez primera en IA (alrededor de 1961). Este tipo de expresión no gozaba de aceptación generalizada; se pensaba que para utilizar la lógica era necesario escribir:

Page 45: Sistemas de Razonamiento Lógico

Sintaxis y Semántica de las Redes Semánticas Y que producía una respetuosa intimidación.

Se consideraba también que no daba lugar a excepciones, en tanto que era una expresión más benevolente.

Ahora se reconoce que la semántica es más importante que la notación.

En la figura siguiente diapositiva se ofrece un ejemplo de una red basada en marco típica, y una traducción de la red en lógica de primer orden. Esta red puede servir para responder a la pregunta:

"¿Cuántas piernas tiene Opus?“.

Page 46: Sistemas de Razonamiento Lógico

Herencia con Excepciones

Pájaros 2

T

Piernas

Moscas

Mamíferos

Piernas 4

Pingüinos

Moscas F

Gatos

Murciélagos 2

T

Piernas

Moscas

Opus

Nombre: Opus

Amigo

Memo

Nombre: Bill

Amigo

Pat

Nombre: Pat

Animales T

F

Vivo

Moscas

Sub

Conju

nto Sub

Conjunto

Sub

C

onju

nto

Sub

C

onju

nto Sub

Conjunto

Mie

mbr

o

Mie

mbr

o

Mie

mbr

o

(a)Una base de conocimientos basada en marco

(b) Traducción o lógica de primer orden

Page 47: Sistemas de Razonamiento Lógico

Herencia con Excepciones

Como vimos en el capitulo anterior, las clases naturales están llenas de excepciones. En la figura pasada(base de conocimientos basadas en cuadro) se afirma que los mamíferos tienen cuatro piernas, pero también se afirma que los murciélagos, que lambien son mamíferos, tienen dos piernas. De acuerdo con la semántica lógica directa, lo anterior es una contradicción.

Para resolver el problema, se modifica la traducción semántica de un vinculo R que está dentro de una caja, de A a B para indicar así que todos los miembros de A deben tener una relación R con B a menos que exista una A' para lo cual Rel(R, A’, B').

De esta manera, en la figura pasada se afirmará, sin dar lugar a contradicciones, que los murciélagos tienen dos piernas, no cuatro. Observe que Rel(R, A, B) ya no significa que todas las A están relacionadas con B mediante R;sino que B es el valor por omisión de la relación R para los miembros de A; pero los valores por omisión pueden resultar invalidados por alguna otra información.

Page 48: Sistemas de Razonamiento Lógico

Tipos de Vínculos Estándar

Tipo de Vínculo Semántica Ejemplo

Tipos de vínculos en las redes semánticas y su respectivo significado

Page 49: Sistemas de Razonamiento Lógico

Herencia Múltiple

En algunos sistemas de redes semánticas existe la herencia múltiple, es decir, cuando un objeto pertenece a más de una categoría, y por tanto, hereda propiedades de varias rutas. En algunos casos esto opera sin mayor problema. Por ejemplo, algunas personas podrían pertenecer tanto a las categorías de Multimillonario como a la de JugadorDePolo, en cuyo caso podemos inferir que son ricos y que pueden montar un caballo. Sin embargo, puede suceder que dos rutas de herencia produzcan respuestas conflictivas. En siguiente figura se muestra un ejemplo de una dificultad semejante.

Page 50: Sistemas de Razonamiento Lógico

Herencia Múltiple

Opus es un pingüino, por lo que sólo "emite" graznidos. Opus es un personaje de una tira cómica, por lo tanto habla en español. En la sencilla traducción lógica presentada antes, podríamos haber inferido las dos conclusiones, las que, con el apropiado conocimiento de base, nos habría hecho llegar a una contradicción. Sin información adicional que indique cierta preferencia por una ruta, no hay manera de resolver el conflicto.

Animado

Lenguaje verbal

Vocalización Personaje de la tira cómica

Pingüino

Opus

Graznidos

Sub

Conju

nto

Sub Conjunto

Miem

broM

iem

bro

Vocalización

Page 51: Sistemas de Razonamiento Lógico

Herencia y Cambio Las bases de conocimiento no son de mucha utilidad para los agentes

a menos que exista la posibilidad de ampliarlas. Los sistemas basados en la lógica de primer orden se valen de DECIR para incorporar una nueva oración a la base de conocimientos y, además, se cuenta con la propiedad dela mono tonicidad: si P se deduce de BC, entonces también se aumenta por DECIR(BC,S). Es decir:

La herencia que no tiene excepciones se considera no monotónica. en la red semántica de la que hemos visto se deduce que Memo tiene cuatro piernas; pero, si se incorpora la nueva aseveración Rel(Piernas. Gatos. 3), ya no se cumple que Memo tiene cuatro piernas. Hay dos métodos para resolver lo anterior. Primero, cambiar de lógica de primer orden a lógica no monotónica, que explícitamente maneja valores por omisión. En la lógica monotónica se puede afirmar que una proposición P debe ser considerada como verdadera hasta que mediante evidencia adicional se demuestre que P es falsa.

Page 52: Sistemas de Razonamiento Lógico

Implantación de Redes Semánticas Una vez definido el significado de nuestras redes,

podemos proceder a implantar la red. Desde luego que es posible implantarla mediante un demostrador de teoremas o con un lenguaje de programación lógica, lo que en algunos casos es la mejor opción. Sin embargo, en el caso de redes cuya semántica es sencilla, es posible utilizar una implantación más directa. El nodo de una red se representa mediante una estructura de datos, en la que hay campos para las conexiones taxonómicas básicas: de qué categorías se es miembro, qué elementos contiene, cuáles son los subconjuntos y supraconjunlos inmediatos. También cuenta con campos para otras relaciones en las que participa.

Page 53: Sistemas de Razonamiento Lógico

Expresividad de las Redes Semánticas Las redes de las que hemos hablado hasta

ahora están excesivamente limitadas en cuanto a su expresividad. Por ejemplo, no es posible representar una negación (Opus no anda en bicicleta), una disyunción (Opus aparece tanto en el Times como en el Dispatch), ni una cuantificación (todos los amigos de Opus son personajes de tira cómica). Este tipo de construcciones son fundamentales en muchos dominios.

Page 54: Sistemas de Razonamiento Lógico

¿Qué nos pueden ofrecer las redes semánticas a cambio de la falta de expresividad? Son capaces de capturar la información de herencia de

manera modular; además, su sencillez facilita mucho su comprensión. La tercera ventaja es su eficiencia: puesto que la inferencia se efectúa al seguir vínculos, en vez de recuperar oraciones de una base de conocimientos y realizar unificaciones, necesitan de sólo unos cuantos ciclos de máquina por paso de inferencia. Pero si observamos el tipo de cálculos realizados por los programas Prolog, nos daremos cuenta de que no hay mucha diferencia. Un programa Prolog compilado para un conjunto de oraciones de subconjunto y de membrecía de conjunto, combinadas con las propiedades generales de las categorías, realizan los mismos cálculos de una red semántica.

Page 55: Sistemas de Razonamiento Lógico

LÓGICAS PARA LA DESCRIPCIÓN

Page 56: Sistemas de Razonamiento Lógico

Lógicas para la Descripción

Subsuposición

Clasificación

Están diseñadas para concentrarse en categorías y sus definiciones. Constituyen un medio modernamente complejo para definir categorías en función de relaciones existentes, con mucha mayor expresividad de los lenguajes de red semánticos típicos.

Principales Tareas:

Page 57: Sistemas de Razonamiento Lógico

Lógicas para la Descripción

El lenguaje CLASSIC es un ejemplo típico de una lógica de descripción

Page 58: Sistemas de Razonamiento Lógico

Lógicas para la Descripción Por ejemplo, para expresar que los solteros

son adultos que no están casados, escribiríamos:

El equivalente de lo anterior en lógica de primer orden seria:

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

Page 59: Sistemas de Razonamiento Lógico

Lógicas para la Descripción En CLASSIC, para describir el conjunto de

hombres que por lo menos tengan tres hijos, estén desempleados y cuya esposa es doctora, y que además tengan como máximo dos hijas, ambas profesoras de física o química escribíamos:

Y(Hombre, PorLoMenos(3, Hijos), CuantoMas(2, Hijas)),

Todos(Hijo, Y(Desempleado, Casado, Todos(Esposa, Doctora))),

Todos(Hija, Y(Profesora, Satisface(Departamento, Fisica, Quimica)))

Page 60: Sistemas de Razonamiento Lógico

Lógicas para la Descripción El énfasis en la lógica de descripciones,

es garantizar que la prueba de subsuposición pueda ser resuelta en un tiempo que sea una función polinómica del tamaño de la descripción del problema.El lenguaje CLASSIC satisface

esta condición y hasta la fecha, es el lenguaje mas completo que

es capaz de hacerlo.

Page 61: Sistemas de Razonamiento Lógico

Aplicaciones Práctica de la Lógicas de Descripción

Administración Financiera

Interfaces de Bases de Datos

Sistemas de Información de Software

A la gradual ampliación de la clase de lenguajes tratables y una mejor comprensión de qué tipo de estructuras causan la intratabilidad, la eficiencia LD de sistemas lógicos ha mejorado notablemente.

Page 62: Sistemas de Razonamiento Lógico

MANEJO DE RETRACTACIONES, SUPOSICIONES Y EXPLICACIONES

Page 63: Sistemas de Razonamiento Lógico

Manejo de Retractaciones, Suposiciones y Explicaciones La mayoría de los sistemas de

razonamiento lógico, independientemente de cómo se les haya implantado, guardan relación con RETRACTAR.

Deseamos tener capacidad para retractar una oración de la BC sin introducir inconsistencia alguna, y que la interacción con la BC sea eficiente.

Page 64: Sistemas de Razonamiento Lógico

Manejo de Retractaciones, Suposiciones y Explicaciones Primero, es importante diferenciar entre

RETRACTAR (BC, P) y DECIR (BC, ~P). En segundo lugar, si el sistema realiza

algún encadenamiento hacia delante, RETRACTAR tiene más trabajo que realizar.

Al procedimiento que consiste en llevar un control de qué proposiciones adicionales hay que retractar cuando se retracta P se le conoce como mantenimiento de la verdad.

Page 65: Sistemas de Razonamiento Lógico

Sistema de mantenimiento de la verdad (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.

Un sistema SMV realiza 4 funciones:Primero: Permite la reversión controlada por dependencia

Segundo: Ofrecer explicaciones de las proposiciones.

Page 66: Sistemas de Razonamiento Lógico

Sistema de mantenimiento de la verdad (SMV) Si se pregunta “Explique por qué considera

que P es verdad”, la prueba de P será una buena explicación.

Por ejemplo, Si preguntamos: “Explique por qué no arranca el carro”.

Una buena explicación sería: “Si damos por hecho que el auto tiene combustible, que éste llega a los cilindros, entonces la ausencia de actividad que se ha observado demuestra que debe haber una falla en el sistema eléctrico”.

Page 67: Sistemas de Razonamiento Lógico

Sistema de mantenimiento de la verdad (SMV)

El decir que Opus es un pingüino no sanciona la inferencia irrefutable de que Opus tiene dos piernas, puesto que toda información adicional sobre Opus invalidaría la creencia deducida.

Un SMV puede deducir la explicación de que Opus, en cuanto que es un pingüino, tiene dos piernas siempre y cuando no sea un pingüino anormal.

Tercero: el razonamiento por omisión

Page 68: Sistemas de Razonamiento Lógico

Sistema de mantenimiento de la verdad (SMV) Los SMV ayudan a manejar las

inconsistencias. Si la incorporación de P a la BC produce una contradicción lógica, un SMV es útil para señalar la explicación de lo que es la contradicción.

Existen diversos tipos de SMV: El más sencillo es el sistema de

mantenimiento de la verdad basado en la justificación o SMVJ.

Page 69: Sistemas de Razonamiento Lógico

Sistema de Mantenimiento de la Verdad Basado en la Justificación (SMVJ) En cada una de las oraciones de la BC

se indica cual justificación identifica las oraciones a partir de la cual la primera se infirió, si es que existen.

Ejemplo si Q se infiere mediante Modus Ponens de P, el conjunto de oraciones {P, P Q} serviría de justificación de la oración Q.

Page 70: Sistemas de Razonamiento Lógico

Sistema de Mantenimiento de la Verdad Basado en la Justificación (SMVJ) En la mayoría de las implantaciones de

SMVJ, se supone que las oraciones consideradas una vez, posiblemente se vuelvan a tomar en consideración.

En vez de eliminar la oración de la BC cuando pierde su justificación, se marca la oración como fuera de la BC.

Si una aseveración posterior le devuelve la justificación, marcamos la oración como dentro.

Page 71: Sistemas de Razonamiento Lógico

Sistema de Mantenimiento de la Verdad Basado en la Justificación (SMVJ) Así, supondremos primero (aseveramos)

que el auto tiene combustible y que llega a los cilindros. A estas oraciones se les etiquetará como dentro. Suponiendo que se cuenta con el conocimiento de base adecuado, la oración que representa el hecho de que el carro no arranca se etiquetará como fuera.

Ahora podemos decir una explicación al SMVJ.

Page 72: Sistemas de Razonamiento Lógico

Sistema de Mantenimiento de la Verdad Basado en Suposiciones (SMVS) El tipo más popular es el SMVS

(sistema de mantenimiento de la verdad basado en suposiciones)

La diferencia reside en que SMVJ representa un estado consistente del mundo a la vez.

SMVS representa todos los estados que se han considerado, simultáneamente.

Page 73: Sistemas de Razonamiento Lógico

Sistema de Mantenimiento de la Verdad Basado en Suposiciones (SMVS) Mientras que un SMVJ etiqueta cada una

de las oraciones como dentro o fuera, el SMVS lleva el control, por cada oración, de qué suposiciones harán que la oración sea verdadera.

Para resolver problemas mediante SMVS, se pueden hacer suposiciones (como Pi o “combustible en el auto”) en el orden que prefiramos.

Page 74: Sistemas de Razonamiento Lógico

Sistema de Mantenimiento de la Verdad Basado en Suposiciones (SMVS) En vez de retractar las suposiciones cuando

falla una línea de razonamiento, solo afirmamos todas las suposiciones que nos interesen, incluso si unas contradicen a otras.

Luego procedemos a verificar una oración en particular para definir las condiciones en las que si se cumple.

Una oración en la que uno de sus conjuntos de supuestos sea un conjunto vacio es verdadera; por no tener ninguna suposición. Una oración que no tenga conjuntos de suposición es falsa.

Page 75: Sistemas de Razonamiento Lógico

Gracias … totales!!!