Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas de Razonamiento Logico
Sistemas de Razonamiento Logico
Inteligencia Artificial
Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica 24/03/2009
24-3-2009
Contenido
1 2 Introduccin.......................................................................................................................... 3 Indizacin, Recuperacin y Unificacin .............................................................................. 5 2.1 2.2 2.3 2.4 2.5 3 Implantacin de Oraciones y Trminos ...................................................................... 5 Guardar y Recoger ....................................................................................................... 5 Indizacin Basada en Tablas ....................................................................................... 6 Indizacin Basada en rboles ..................................................................................... 7 El Algoritmo de Unificacin ........................................................................................ 9
Sistemas de Programacin Lgicos ................................................................................... 10 3.1 3.2 3.3 3.4 3.5 El Lenguaje Prolog ..................................................................................................... 10 Implantacin .............................................................................................................. 11 Compilacin de Programas Lgicos .......................................................................... 13 Otros Lenguajes de Programacin ............................................................................ 14 Recursos Avanzados de Control ................................................................................ 15
Demostradores de Teoremas ............................................................................................. 17 4.1 4.2 4.3 4.4 Diseo de un Verificador de Teoremas ..................................................................... 17 Ampliacin de Prolog ................................................................................................. 18 Los Verificadores de Teoremas como Auxiliares ...................................................... 19 Aplicaciones Prcticas de los Demostradores de Teoremas .................................... 20
Sistemas de Produccin por Encadenamiento Hacia Adelante ...................................... 21 5.1 5.2 5.3 Fase de Cotejo ............................................................................................................ 22 Fase de Solucin de Conflictos .................................................................................. 23 Aplicaciones Prcticas de los Sistemas de Produccin ............................................ 23
Sistemas de Marco y Redes Semnticas ........................................................................... 24 6.1 6.2 6.3 6.4 6.5 6.6 Sintaxis y Semntica de las Redes Semnticas ....................................................... 25 Herencia con Excepciones.......................................................................................... 26 Herencia Mltiple ...................................................................................................... 27 Herencia y Cambio ..................................................................................................... 28 Implantacin de Redes Semnticas .......................................................................... 29 Expresividad de las Redes Semnticas .................................................................... 31
Lgicas para la Descripcin ............................................................................................... 31 7.1 Aplicaciones Prcticas de las Lgicas de Descripcin .............................................. 33
8 9 10
Manejo de Retractaciones, Suposiciones y Explicaciones ............................................... 33 Resumen ............................................................................................................................. 36 Bibliografa y Linkografa ................................................................................................. 36
24-3-2009
TABLA DE FIGURAS
Figura 1. Indizacin basada en una tabla correspondiente a un conjunto de oraciones lgicas. .......................................................................................................................................... 7 Figura 2. Una indizacin basada en rbol organiza la base de conocimiento en una serie anidada de embrolladas tablas.. ................................................................................................. 8 Figura 3. El algoritmo de unificacin. ........................................................................................ 9 Figura 4. Pseudocdigo que representa el resultado obtenido al compilar el predicado de Miembro ...................................................................................................................................... 14 Figura 5. Bosquejo del demostrador de teoremas OTTER.. .................................................... 18 Figura 6. Una red rete. .............................................................................................................. 23 Figura 7. Red basada en marco y traduccin de esta a lgica de primer orden.. ................... 26 Figura 8. Tipos de vnculos en las redes semnticas y su respectivo significado .................. 27 Figura 9. Ejemplo de inferencias conflictivas de rutas de herencia mltiples. ..................... 28 Figura 10. Rutinas bsicas para verificacin de herencia y relacin en una sencilla red semntica libre de excepciones.. ............................................Error! Marcador no definido. Figura 11. Sintaxis de las descripciones de un subconjunto del lenguaje CLASSIC. ........... 32
24-3-2009
1 INTRODUCCIN
Se ha mencionado anteriormente lo conveniente que es construir agentes que funcionen como sistemas de razonamiento: sistemas que representen explcitamente el conocimiento y puedan efectuar razonamientos sobre ste. La principal ventaja de estos sistemas es su alto grade de modularidad. Es posible independizar la estructura de control del conocimiento, con lo que cada porcin del conocimiento mantiene total independencia entre s. La anterior facilita experimentar con el sistema y modificarlo, haciendo a este ms fcil explicar sus funciones a otro agente y tambin, como veremos en la parte 6, facilita el autoaprendizaje del sistema. En este captulo se pasar de las palabras a los hechos, por decirlo de alguna forma, y hablaremos de los diversos procedimientos para poner en prctica estas funciones en un sistema real y eficiente. Los sistemas de razonamiento automtico vienen en diversos colores y sabores, cada uno diseado especficamente para diversos tipos de problemas. Se les clasifica en cuatro grupos principales: Demostradores de teoremas y lenguajes de programacin 1gicos: En los demostradores de teoremas se utiliza la resolucin (o algn otro procedimiento de inferencia completa) para demostrar oraciones expresadas en lgica de primer orden total, frecuentemente en trabajos de razonamiento matemtico y de tipo cientfico. Tambin se les emplea para responder preguntas: la demostracin de una oracin que contiene variables sirve como respuesta a una pregunta debido a que concretiza las variables. Los lenguajes de programacin lgicos se caracterizan por restringir la lgica, lo que impide el manejo completo de la negacin, la disyuncin y/o la igualdad. Por lo general utilizan el encadenamiento hacia atrs, y a veces pueden incluir algunas caractersticas no lgicas de los lenguajes de programacin (por ejemplo, entrada y salida). Ejemplos de demostradores de teoremas son: SAM, AURA. OTTER. Ejemplos de los lenguajes de programacin 1gica son: Prolog, MRS, LIFE. Sistemas de produccin: Al igual que en el caso de los lenguajes de programacin, estos sistemas utilizan la implicacin como elemento primario de la representacin. El consecuente de cada implicacin se interpreta como recomendacin de la accin, y no como mera conclusin lgica. Entre las acciones figuran inserciones y eliminaciones de la base de conocimientos as como entrada y salida. Los sistemas de producci6n funcionan con una estructura de control de encadenamiento hacia adelante. Algunos de ellos cuentan con un mecanismo de resolucin de conflictos para decidir qu accin emprender cuando son varias las que se recomienda realizar. Ejemplos: OPS-5, CLIPS, SOAR. Sistemas de cuadro y redes semnticas: En estos sistemas se aplica la metfora de que los objetos son nodos en una grfica, de que estos nodos se organizan de acuerdo con una estructura taxonmica y de que los vnculos que existen entre los nodos representan relaciones binarias. En los sistemas de cuadro, las relaciones binarias se consideren como ranuras de un cuadro que se llenan mediante otra; en cambio, en las redes semnticas, se consideran como flechas
24-3-2009 entre un nodo y otro. De la eleccin entre la metfora del cuadro y la metfora de la red semntica depender que el dibujo de las redes resultantes se realice como cajas de nido o como grficas, aunque el significado e implantacin de ambos tipos de sistemas pueda ser idntico. En este captulo al hablar de una "red semntica" se quiere decir "red semntica o sistema de cuadro". Ejemplos de los sistemas de cuadro: OWL, FRAIL, KODIAK. Ejemplos de redes semnticas: SNEPS, NETL, Grficas Conceptuales. Sistemas lgicos por descripcin: Estos sistemas son la consecuencia de la evolucin de las redes semnticas, al ser presionadas para formalizar el significado de las redes, sin dejar de poner nfasis en la estructura taxonmica como principio rector. La idea consiste en emplear como medio de expresin y de razonamiento las definiciones complejas de objetos y clases, as como sus relaciones entre ellos. La lgica de la descripcin se conoce a veces como lgica terminolgica, debido a la atencin puesta en la definicin de trminos. Los trabajos ms recientes se han enfocado al compromiso entre la expresividad del lenguaje y la complejidad para el computo de ciertas operaciones. Ejemplos: KLONE, CLASSIC, LOOM. En este captulo veremos cmo implantar cada uno de los cuatro tipos de sistemas anteriores y cmo enfrentar cada una de las siguientes tareas: 1. Incorporar algo nuevo a la base de conocimientos, sea esto una percepcin, o un hecho deducido mediante la inferencia. A esta funcin se le designa como DECIR. 2. Dados una base de conocimientos y un nuevo hecho, deducir algunos de los hechos implicados por la conjuncin de la base de conocimientos y del nuevo hecho. En un sistema de encadenamiento hacia adelante, lo anterior forma parte de DECIR. 3. Decidir si una consulta est implicada por la base de conocimientos. A esta funcin la designamos como PREGUNTAR. Cada versin de PREGUNTAR da resultados distintos, que pueden ir desde simplemente confirmar que la consulta s est implicada hasta producir un conjunto de todas las posibles sustituciones que validan la consulta. 4. Decidir si una consulta esta almacenada explcitamente en la base de conocimientos: una versin restringida de PREGUNTAR. 5. Quitar una oracin de la base de conocimientos. Es importante diferenciar entre corregir una oracin que se ha demostrado ser falsa, olvidarse de una oracin que ya no es til (quizs porque slo tuvo importancia en el pasado) y actualizar la base de conocimientos para reflejar un cambio en el mundo, al tiempo que se conserva el recuerdo de cmo era el mundo en el pasado (En algunos sistemas es posible establecer esta diferencia; otros dependen del ingeniero de conocimiento para que las cosas marchen bien.) Todos los sistemas basados en el conocimiento recurren a la operacin fundamental de recuperar oraciones que satisfagan ciertas condiciones, por ejemplo, buscar una oracin atmica que logre la unificacin mediante una consulta, o encontrar una implicacin, que tenga una oracin atmica determinada como una de sus premisas. Empezaremos, pues, por las tcnicas que permiten mantener una base de conocimientos en una forma tal que apoye la recuperacin eficiente.
24-3-2009
24-3-2009 La invocacin RECOGER(BC,Q) tiene que recorrer todos los elementos de la base de conocimientos, uno a la vez, hasta que logre dar can un conjunto que coincida con Q, o hasta llegar al final. De esta forma, RECOGER emplea un tiempo O(n) en un elemento n de la BC. GUARDAR emplea un tiempo O(l) para aadir un conjunto a la BC, pero si queremos estar seguros de que no se aadir ninguna duplicacin, entonces GUARDAR ser tambin O(n). Lo anterior no resulta prctico cuando lo que se desea es realizar inferencias serias.
Por ejemplo, en la base de conocimiento 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) La tabla de la base de conocimientos sera como la mostrada en la Figura 1. Suponga que ahora formulamos la consulta PREGUNTAR(BC, Hermano(Jaime, Eduardo))
Las tablas de dispersin son estructuras de datos para guardar y recuperar informacin que se indica por medio de llaves fijas. Para efectos prcticos, se considera que en la tabla de dispersin los tiempos de almacenamiento y recuperacin son constantes, an cuando en dicha tabla exista una gran cantidad de elementos. 2 Recurdese que las literales de base no tienen variables. Pueden ser oraciones atmicas como Hermano(Ricardo, Juan) o una oracin atmica negada como ~Hermano(Ana, Victoria).
24-3-2009 y que PREGUNTAR utiliza el encadenamiento hacia atrs. Lo primero sera invocar RECOGER para encontrar una literal positiva que coincida con la consulta. Como eso no funciona, se invoca RECOGER para localizar una implicacin en la que Hermano sea el consecuente. ste es encontrado y luego de aplicar la sustitucin adecuada, el antecedente se convierte ahora en la nueva meta, y se reanuda el procedimiento. Como en la lgica de primer orden el predicado de una consulta siempre est fijo, el sencillo recurso de dividir la base de conocimientos por predicado permite disminuir considerablemente el costo de la recuperacin. Pero, por qu detenerse en el predicado? Clave Hermano Positivo Hermano(Ricardo, Juan) Hermano(Ted, Jack) Hermano(Jack, Bobbie) Negativo ~Hermano(Ann, Sam) Conclusin Hermano(x, y) Masculino(y) Hermano(y, x) Premisa Hermano(x, y) Masculino(y) Hermano(y, x) Hermano(x, y) Masculino(x) Hermano(x, y) Masculino(y) Hermano(y, x)
Masculino
Masculino(Jack) Masculino(Ted)
~Masculino(Ann)
Hermano(x, y) Masculino(x)
24-3-2009 de los signos de la secuencia es una variable, puesto que en tal caso es necesario recorrer cada una de las ramas. Sup6ngase que nuestra base de conocimiento censal tiene como predicado Contribuyente con cuatro argumentos: persona, c6digo postal, ingreso neto redondeado al valor de millar ms cercano y numere de dependientes. Por ejemplo: Contribuyente(012-34-5678, 02138, 32000, 10) Supngase que deseamos localizar todas aquellas personas con cdigo postal 02138 que tienen exactamente 10 dependientes: RECOGER(Contribuyente(p, 02138, i, 10)) Existen decenas de miles de personas con ese cdigo postal y cientos de miles de personas que tienen 10 dependientes, pero posiblemente slo unos cuantos renan ambas caractersticas. Para localizarlos, sin excesivo esfuerzo, necesitamos de un ndice combinado que se base tanto en el segundo como en el cuarto argumentos. Si tuviramos que revisar todos los posibles conjuntos de posiciones de variables, tendramos 2n ndices combinados, en donde n es la cantidad de posiciones de signo en las oraciones que se estn almacenando. Cuando en las oraciones existen trminos complejos, n crece enormemente. Hasta cierto punto, la memoria adicional necesaria para los ndices y el trabajo extra que GUARDAR debe hacer pesan ms que los beneficios. Podemos adoptar una poltica fija, como sera la de mantener ndices slo para las llaves que estn formadas por un predicado adems del argumento respectivo, o decidirnos por usar una poltica de adaptacin que produzca ndices que satisfagan las demandas del tipo de consulta que est siendo formulada.
Predicado?
Hermano
012-34-5678
Primer argumento?
Figura 2. Una indizacin basada en rbol organiza la base de conocimiento en una serie anidada de embrolladas tablas. Cada nodo del rbol es una confusa tabla indizada por el valor correspondiente a una determinada posicin de oracin.
En la estrategia de indizacin cruzada se indizan entradas en diversos sitios; cuando se hace una consulta, la recuperacin se realiza en la parte que ofrece ms posibilidades. Supngase que tenemos la consulta RECOGER(Contribuyente(p, 02138, 20000, 3)) y los cuatro tipos de ndices disponibles en Contribuyente, adems, separadamente, las cuatro posiciones del argumento. Una oracin correspondiente a la consulta ser indicada bajo el rubro Contribuyente(_, 02138, _, _), Contribuyente(_, _, 20000, _) y
24-3-2009 funcion UNIFICAR(x, y) responde con una sustitucin para hacer que x e y sean idnticas, de ser posible UNIFICAR-INTERNO(x, y, {})
funcion UNIFICAR-INTERNO(x, y, ) responde con una sustitucin para que x e y sean idnticas (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 sustitucin 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
funcin UNIFICAR-VAR(var, x, ) responde con una sustitucin entradas: var, una variable x, cualquier expresin , la sustitucin construida hasta ese momento si {var/val} entonces responder con UNIFICAR-INTERVALO(val, x, ) o bien, si {x/val} entonces responder 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
Figura 3. El algoritmo de unificacin. El algoritmo compara las estructuras de las entradas, elemento por elemento. La sustitucin , que es el argumento de UNIFICAR-INTERNO, se construye sobre la marcha y sirve para asegurarse de que comparaciones posteriores sean consistentes con las vinculaciones que se hubieran establecido previamente.
Contribuyente(_, _, _, 3). Por lo general, lo mejor es buscar a travs de la menor de este grupo de oraciones.
24-3-2009 unificacin sean eficientes. El algoritmo que se muestra en la Figura 3 tiene una sencillez razonable. Explora una y otra vez dos expresiones simultneamente; sobre la marcha va construyendo un unificador, pero falla si en algn momento se encuentra con dos puntos de la estructura que no coincidan. Desafortunadamente, uno de sus pasos es costoso. La verificacin de ocurrencia consume un tiempo que corresponde linealmente al tamao de la expresin que se est revisando; adems, se efecta por cada variable encontrada. Resulta as que la complejidad temporal del algoritmo es O(n2) veces el tamao de las expresiones que se desea unificar. Ms adelante veremos cmo lograr que estos algoritmos sean ms eficientes, al eliminar la necesidad de representaciones explicitas de las sustituciones. En la seccin 3.4 veremos cmo ampliar la unificacin de manera que nos permita manejar ms informacin adems de la de igualdad.
10
24-3-2009 Los trminos pueden ser signos de constante, variables o trminos funcionales. En una consulta puede haber conjunciones, disyunciones, variables y trminos funcionales. En vez de utilizar antecedentes negados en sus implicaciones, en Prolog se emplea un operador de negacin como falla: una meta no P se considera demostrada si el sistema no logra demostrar P. Todos los trminos diferentes desde el punto de vista sintctico se considera como que refieren a objetos diferentes. Es decir, no es posible afirmar que A=B o que A=F(x), en donde A es una constante. Es posible afirmar que x=B o que x=F(y), en donde x es una variable. Se cuenta con una gran cantidad de predicados incorporados para aritmtica, de entrada/salida y diversas funciones del sistema y de la base de conocimientos. Las literales que hacen uso de estos predicados se demuestran mediante la ejecucin del cdigo en vez de hacerlo por inferencia adicional. En la notacin de Prolog (Donde los nombre en maysculas representas variables), 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 resolucin arbitraria de ecuaciones3. El siguiente es un ejemplo del empleo del programa Prolog en la relacin Miembro, expresados ambos en notacin normal de lgica de primer orden y en formato que utiliza Prolog: , , , , , => , , [| . , [| , .
Como ya se dijo en captulos anteriores, en la representacin correspondiente a Prolog el consecuente o cabeza, est del lado izquierdo; los antecedentes o cuerpo, a la derecha. Una clausula en Prolog se leera como Para demostrar (la cabeza), demuestre (el cuerpo). Con el fin de mantener este tipo de lectura intuitiva junto con nuestra notacin lgica, nos comprometeremos a escribir las clausulas de Prolog empleando una implicacin en sentido izquierdo. Por ejemplo, la segunda clausula de la definicin de Miembro se convierte en: , <= , .
La definicin de Miembro puede servir para responder a diversos tipos de consultas. Puede utilizarse para confirmar que 2, [1,2,3] es verdadera. Adems puede enumerar los tres valores de x que hagan verdadera a , [1,2,3] . Tambin pueden buscar el valor de x tal que 2, [1, , 3] es verdadera. Tambin puede servir para enumerar las listas para las cuales , es verdadera.
3.2 Implantacin
Los diseadores de Prolog realizaron su implantacin con el fin de contar con un modelo sencillo y de rpida ejecucin: Todas las inferencias se realizan por encadenamiento hacia atrs, con bsqueda preferente por profundidad. Es decir cuando en el proceso de demostracin de
Conviene advertir que de proporcionrsele los axiomas correspondientes a la adicin, estas metas se pueden resolver con el programa Prolog, mediante la inferencia.
11
24-3-2009 una oracin se tope con un callejn sin salida, Prolog retroceder al paso inmediato anterior que ofrezca opciones. El orden de bsqueda a travs 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 verificacin de ocurrencia se omite en la rutina de unificacin. Aunque la omisin de la verificacin de ocurrencia podra restar confiabilidad a Prolog, en la prctica los errores se producen muy rara vez. El empleo de la bsqueda preferente por profundidad no permite a Prolog ser completo, debido a las rutas infinitas que crean las oraciones circulares. Los programadores debern tener presente las grande ventajas de Prolog es que el modelo de ejecucin es lo suficientemente sencillo como para que un programador con la capacitacin necesaria pueda incorporar informacin de control y producir as un programa eficiente. Como en el caso de nuestro algoritmo de ENACXEDNAMIENTO-HACIA-ATRS, Prolog encuentra todas las soluciones correspondientes a una consulta, pero no las agrupa en un conjunto, ms bien toca al programa del usuario decidir lo que har con cada solucin conforme esta es enumerada. Lo ms comn es imprimir las respuestas. De hecho, el nivel superior de Prolog realiza lo anterior de manera automtica. Una consulta como por ejemplo: Miembro (loc(X,X),[loc(1,1),loc(2,1),loc(2,2)])? Da como resultado que el usuario tenga ante s una salida de dos piezas, X=1 y X=2. La ejecucin de un programa Prolog se realiza de dos maneras: por interpretacin y por compilacin. De esta ltima se hablara en la seccin siguiente. La interpretacin consiste bsicamente en la ejecucin del algoritmo de ENCADENAMIENTO-HACIAATRS, en donde el programa es la base de conocimientos. Lo de bsicamente es debido a que los interpretadores de Prolog cuentan con diversas mejoras diseadas para lograr un mximo de velocidad. Aqu consideraremos solo dos. 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 intrpretes de Prolog generan una respuesta y una promesa para generar el resto una vez que la respuesta en cuestin haya sido explorada totalmente. A esta promesa se le denomina punto de eleccin. Una vez que la bsqueda preferente por profundidad concluye su exploracin de las posibles soluciones aportadas por la respuesta en cuestin y retrocede al punto de eleccin, este se expande para producir as una nueva respuesta para la submeta y el nuevo punto de eleccin. Esta manera de proceder permite ahorrar tiempo y espacio. Constituye tambin un interfaz muy sencillo para la depuracin, puesto que en todo momento solo se trabaja con una sola ruta de solucin. Segunda. La Sencilla implantacin del ENACADENAMIENTO-HACIA-ATRS invierte bastante tiempo en la generacin de sustituciones y en aplicarlas a las listas de consulta. Prolog elimina la necesidad de un tipo de datos de sustitucin al implementar variables lgicas capaces de recordar su vinculacin actual. En todo instante, las variables de un programa estn vinculadas o desvinculadas a cierto valor. En conjunto, tales variables y valores definen de manera implcita una 12
24-3-2009 sustitucin. Desde luego, se produce solo una sustitucin a la vez, pero no necesitamos ms. La sustitucin es la correcta para la ruta actual en el rbol de bsqueda. La ampliacin de la ruta solo puede aadir nuevas vinculaciones de variables, puesto que si se intentara aadir una vinculacin distinta a una variable que ya est vinculada, dar como resultado una falla en la unificacin. Si llegara a fallar una ruta de la bsqueda, Prolog retroceder a un punto de eleccin 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. Conforme se va vinculando cada nueva variable mediante UNIFICARVAR, la variable se va empujando a la pila de la pista. Cuando falla una meta y es el momento de retroceder a un punto de eleccin previo, se produce la desvinculacin de cada una de las variables al tiempo que se le retira de la pista.
13
procedimiento MIEMBRO(elemento, lista, continuacion) pista APUNTADOR-PISTA-GLOBAL() si UNIFICAR([elemento/NUEVA-VARIABLE()],lista) entonces LLAMAR(continuacin) RESTABLECER-PISTA(pista) resto NUEVA-VARIABLE() si UNIFICAR(lista, [NUEVA-VARIABLE()|resto]) entonces MIEMBRO(elemento, resto, continuacion)
24-3-2009
Figura 4. Pseudocdigo que representa el resultado obtenido al compilar el predicado de Miembro. La funcin NUEVA-VARIABLE produce una nueva variable, diferente de todas las que se hayan usado hasta ese momento. El procedimiento LLAMAR (continuacin) sigue la ejecucin con la continuidad especificada
tal estado de pista pueda recuperarse mediante RESTAURAR-PISTA. La accin anterior cancelara todas las vinculaciones generadas por la primera invocacin de UNIFICAR. La parte ms engaosa es el empleo de continuaciones para implantar puntos de eleccin. Podra considerarse la continuacin como si se empaquetaran un procedimiento y una lista de argumentos, los que en conjunto definen lo que debe hacerse a continuacin cada vez que se alcanza la meta actual. No basta con regresar de un procedimiento como Miembro cuando se alcance la meta, puesto que es posible lograrla de diversas maneras, y es necesario explorar cada una de ellas. El argumento de continuacin sirve para resolver este problema, puesto que se puede invocar cada vez que se alcance la meta. En el cdigo Miembro, si elemento unifica con el primer elemento de la lista, entonces el predicado Miembro ha tenido xito. Entonces LLAMAMOS (invocamos) la continuacin, con las vinculaciones correspondientes en la pista, para ahora realizar lo que proceda. Por ejemplo, si la invocacin a Miembro proviniese de un nivel superior, la continuacin imprimir las vinculaciones de las variables. Antes del trabajo de Warren sobre la compilacin de la inferencia en Prolog, la programacin lgica resultaba excesivamente lenta para su uso generalizado. Los compiladores diseados por Warren y otros permiti a Prolog alcanzar velocidades de hasta 50000 ILPS (inferencias lgicas por segundo en estaciones de trabajo promedio modelo 1990. En fechas ms recientes, la aplicacin de la moderna tecnologa de compilacin, incluidos inferencia de tipo, codificacin abierta y anlisis de flujo de datos entre procedimientos ha permitido a Prolog alcanzar velocidades de varios millones de ILPS, lo que hace competir con C en cuanto a diversos aspectos estndar. Desde luego que el hecho de poder escribir un planificador o un analizador de lenguaje natural en unas cuantas decenas de lneas de Prolog, hacen que este sea ms preferible que C en la realizacin de los prototipos de gran parte de los proyectos de investigacin de IA de escala reducida.
14
24-3-2009 independiente en el espacio de bsqueda y es susceptible de generar una solucin 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 implicacin en paralelo. El paralelismo Y es ms difcil de lograr, puesto que las soluciones de toda la conjuncin exigen la vinculacin consistente de todas las variables. Cada rama conjuntiva debe comunicarse con las otras ramas para garantizar as una solucin global. Son muchos los proyectos que han tenido xito en el logro de cierto grado de inferencia paralela, pero el ms avanzado quiz sea el proyecto PIM (Parallel Interfence Machine, Maquina de inferencia paralela), parte del proyecto Sistemas de Computo Quinta Generacin, de Japn. PIM ha logrado alcanzar velocidades de hasta 64 millones de ILPS. No solo se puede acelerar a Prolog, sino tambin enriquecerlo, al generalizar el concepto de la vinculacin de una variable. Las variables lgicas de Prolog son muy tiles porque permiten al programador generar la solucin parcial de un problema, dejando desvinculadas algunas variables y proporcionando posteriormente los valores correspondientes a dichas variables. Desafortunadamente no existe una forma para que Prolog especifique las restricciones de los valores: por ejemplo, afirmar que < 3, y posteriormente, durante el cmputo, calcular el valor exacto de X. El formalismo de la programacin lgica por restriccin (PLR) amplia los conceptos de variable y unificacin con el fin de poder incorporar tales restricciones. Considere la definicin siguiente de un triangulo, que se basa en la longitud de cada uno de sus tres lados: , , > 0 > 0 > 0 + > + > + > Sea mediante Prolog o PRL, esta definicin puede servir para confirmar (3, 4, 5) produce la vinculacin especificada por la restriccin > 1 < 9 ; Si se hubiera hecho en Prolog, la consulta habra fallado. As como se imponen restricciones aritmticas a las variables, tambin se pueden emplear restricciones lgicas. Por ejemplo, imponer el que una variable determinada se refiera a una Persona. En Prolog normal, lo anterior solo se puede hacer insertando el coyunto Persona (p) al cuerpo de una clausula. Luego, cuando se utilice la clausula, el sistema intentara resolver la parte restante de la clausula teniendo a p vinculado con cada una de las distintas personas de la base de conocimientos. En el caso de lenguajes como Login y Life, la implantacin de literales que contienen predicados de tipo, como es el caso de Persona, se hace en calidad de restricciones. Por lo tanto, () significa sencillamente que la variable p est restringida a ser una persona; no generara vinculaciones alternas para p. El empleo de tipos simplifica los programas, y el de restricciones acelera su ejecucin.
15
24-3-2009 cuando alguien ha estado casado varias veces) y por ultimo buscar en las personas cuya ocupacin 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 cmputo. En el caso de esta consulta, sera mejor ordenarla como sigue: (, ) (, ) (, ) Se obtendra la misma respuesta, pero sin ninguna regresin, suponiendo que los predicados Ocupacin y Casado se estn indizando mediante su respectivo segundo argumento. Este procedimiento de reordenamiento es un ejemplo de meta razonamiento, o del razonamiento acerca del razonamiento. Como en el caso de la bsqueda por satisfaccin de restricciones, la heurstica que estamos empleando para la ordenacin de los coyuntos consiste en colocar en primer lugar aquellos con ms restricciones. En este caso es evidente que solo una p satisface Ocupacin (p, Presidente), pero no siempre es igual de fcil anticipadamente predecir cuantas soluciones habr para un predicado. Y, aun si lo fuera, no sera practico probar todas las n. Permutaciones de una conjuncin 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 podra definir una regla en donde se afirme que la meta que implica menos variables es la que debe probarse primero. En algunos sistemas, en vez de reordenar los coyuntos, se modifica la manera como se efecta la reversin. 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: (, ) (, ) (, ) En Prolog se intentara resolver lo anterior mediante la enumeracin de todos los residentes p de cualquier poblacin, luego enumerar todos los residentes c de dicha poblacin y luego verificar si p es el presidente. Cuando la meta Ocupacin (p, Presidente) falla, Prolog regresa al punto de eleccin ms reciente, que es la meta Residente(x, poblacin). A esto se le conoce como reversin cronolgica; 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! Mediante la tcnica de salto reversivo se evita tener que hacer repeticiones intiles. En este problema en particular, mediante el salto reversivo se retrocede dos pasos hasta llegar a Residente (p, poblado) y se genera una nueva vinculacin para p. El determinar donde dar el salto reversivo durante la compilacin no es difcil para un compilador que conserva informacin sobre el flujo de datos. A veces, adems del salto reversivo a un sitio razonable, el sistema guarda la combinacin de variables que causaron el ir a un callejn sin salida, con el fin de no repetirlas nuevamente en otra rama de la bsqueda. A lo anterior se le conoce como reversin dirigida por dependencia. En la prctica, la cantidad que implica el almacenamiento de todos los callejones sin salida resulta excesivamente grande, como en el caso de la bsqueda heurstica, muchas veces la memoria es una restriccin ms importante que la del tiempo. En la prctica, son ms los sistemas de salto reversivo que los sistemas dirigidos por dependencia.
16
24-3-2009 El ultimo tipo de meta razonamiento es el ms complicado; consiste en la capacidad de recordar una inferencia previamente calculada, en vez de calcularla de nuevo. Esto es muy importante, pues la mayora de los sistemas de razonamiento lgico reciben una serie de consultas relacionadas entre s. Por ejemplo, un agente basado en la lgica PREGUNTA con frecuencia a su base de conocimientos: y ahora, que debo hacer? Para responder esta pregunta se necesita de submetas semejantes o idnticas a las respondidas poco antes. El agente podra ir guardando todas las conclusiones que pueda demostrar, pero esto llegara a consumir toda la memoria. Debe haber un criterio que permita decidir qu conclusiones vale la pena guardar y cuales hay que ignorar, sea porque volverlas a calcular no sea difcil o porque no hay muchas probabilidades de que se vuelvan a plantear.
4 DEMOSTRADORES DE TEOREMAS
Los demostradores de teoremas (conocidos tambin como razonadores automatizados) se diferencian en dos aspectos de los lenguajes de programacin lgica. En primer lugar, la mayora de los lenguajes de programacin lgicos slo manejan clausulas de Horn, en tanto que los demostradores de teoremas si aceptan la lgica de primer orden. En segundo lugar, los programas de Prolog combinan lgica y control. El que un programador escoja entre escribir en vez de afectar la ejecucin del programa. En el caso de los demostradores de teoremas, el usuario puede utilizar cualquiera de las 2 anteriores, o alguna como y todos los resultados sern exactamente los mismos. Pero para funcionar eficientemente, los demostradores de teoremas necesitan todava controlar la informacin para operar eficientemente, no es parte de la representacin del conocimiento mismo. Buena parte del trabajo de investigacin en los demostradores de teoremas se concentra en hallar estrategias de control de utilidad general. Se habl de tres estrategias genricas; preferencia por la unidad, resolucin de entrada lineal y conjunto de apoyo.
24-3-2009 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 refutacin
funcion INFER(clausula, usable) devuelve clausulas resolver clausula con cada miembro de usable devuelve la clausula resultante despus de aplicar FILTER
procedimiento PROCESS(clausula, sos) para cada clausula en clausulas hacer clausula SIMPLIFY(clausula) intercalar literales idnticas descartar clausula si esta es una tautologa sos [clausula | sos] si clausula no tiene literales entonces se ha encontrado una refutacin si clausula tiene una literal entonces buscar una unidad de refutacin fin
Figura 5. Bosquejo del demostrador de teoremas OTTER. El control heurstico se utiliza para elegir la clusula ms "ligera", y tambin en la funcin FILTRAR para evitar tomar en cuenta clusulas que no son interesantes.
Un conjunto de parmetros y clusulas que definen la estrategia de control. En particular, el usuario especifica la funcin heurstica que sirve para controlar la bsqueda y la funcin de filtrado que elimina algunas submetas por considerarlas sin relevancia. OTTER opera mediante la resolucin continua de un elemento del conjunto de apoyo comparndolo con uno de los axiomas utilizables. A diferencia de Prolog, utiliza una modalidad de bsqueda preferente por lo mejor. Su funcin heurstica determina el "peso" de cada una de las clusulas, y da preferencia a las ms ligeras. Qu tipo de heurstica se utilizar exactamente, depende del usuario; pero, por lo general, el peso de una clusula se correlaciona con su tamao y/o dificultad. Las clusulas unitarias generalmente se consideran como muy ligeras, tanto que la bsqueda puede ser vista como una generalizacin de la estrategia de preferencia por la unidad. En cada uno de los pasos, OTTER desplaza la clusula "ms ligera" del conjunto de apoyo a la lista de lo utilizable, y aade a sta algunas consecuencias inmediatas de la resolucin de la clusula ms ligera con elemento de la lista utilizable. OTTER se interrumpe cuando topa con una refutacin o cuando ya no quedan clusulas en el conjunto de apoyo. El algoritmo se muestra con ms detalle en la Figura 5.
18
24-3-2009 de Teoremas con Tecnologa Prolog, DTTP (Prolog Technology Theorem Prover, PTTP). En DTTP son cinco los cambios ms importantes que se efectuaron a Prolog para devolverle integridad y expresividad. La verificacin de ocurrencia se devolvi a la rutina de unificacin con el fin de hacerla ms slida. La bsqueda preferente por profundidad se sustituye por una bsqueda de profundizacin iterativa. Queda as completa la estrategia de bsqueda y slo implica ms tiempo en un factor constante. Aceptar y literales negadas (como P(x)). En la implantacin hay dos rutinas distintas, una para demostrar P y otra para demostrar P. Una clusula que conste de n tomos se guarda en n reglas distintas. Por ejemplo, tambin se puede guardar como y tambin como . la tcnica anterior, conocida como fijacin, significa que slo se requiere unificar la meta actual con la cabeza de cada una de las clusulas, y an as permite el adecuado manejo de la negacin. La inferencia se completa (incluso en clusulas que no sean de Horn) por la adicin de la regla de resolucin de entrada lineal: si la meta actual se unifica con la negacin de una de las metas de la pila, se puede considerar que la meta est resuelta. Se trata de un razonamiento por contradiccin. Supngase qu estamos tratando de demostrar P y que la meta actual es P. Equivale a decir que , lo cual enlaza P. No obstante lo anterior, DTTP no pierde aquellas propiedades que dotan a Prolog de su rapidez. Las unificaciones se siguen efectuando por modificacin directa de las variables, la desvinculacin se efecta resolviendo la pista durante la reversin. La estrategia de bsqueda sigue basada en la resolucin de la entrada, lo que significa que toda resolucin se realiza por referencia a una de las clusulas dadas en el planteo original del problema (no es una clusula derivada). Esto permite compilar todas las clusulas en el planteo original del problema. La principal desventaja de DTTP es que el usuario tiene que renunciar a todo control sobre la bsqueda de soluciones. El sistema utiliza las reglas de inferencia, tanto en su forma original como en su forma contrapositiva. Esto podra dar lugar a bsquedas no intuitivas. Por ejemplo, supongamos que tenemos la regla: , = , = ( = )
En cuanto regla de Prolog, lo anterior sera una forma razonable para demostrar que dos trminos f son idnticos. Pero en el caso de DTTP se generara tambin lo contrapositivo: , , ( = )
Al parecer, se trata de una manera en donde se desperdician recursos para demostrar que algunos de dos trminos, x y a, son diferentes.
19
24-3-2009 la relacin entre la estrategia para definir qu hay que hacer y entre el pedir al demostrador de teoremas que se ocupe de los detalles. Esto es de ayuda hasta cierto punto en el caso de problemas de semidecidibilidad, pues permite al supervisor cancelar una consulta y probar otro mtodo en caso de que dicha consulta est consumiendo demasiado tiempo. El demostrador de teoremas tambin puede operar como verificador de demostraciones, en donde un humano propone la demostracin en funcin de una serie de pasos muy amplios; cada una de las inferencias necesarias para demostrar que cada paso es slido quedan a cargo del sistema. Un razonador socrtico es un demostrador de teoremas cuya funcin PREGUNTAR est incompleta, pero que siempre logra llegar a la solucin si se le plantea una serie de preguntas adecuadas. Es decir, los razonadores socrticos son buenos auxiliares, siempre y cuando est presente un supervisor que efecte la serie de invocaciones correcta a PREGUNTAR. ONTIC es un ejemplo de sistema de razonamiento socrtico en las matemticas.
20
24-3-2009 problema. No obstante que an no se cuenta con una sntesis deductiva, como se llama, para la programacin de propsito general, la sntesis deductiva guiada a mano ha producido buenos resultados en el diseo de diversos algoritmos nuevos y complejos. La sntesis de programas de propsito especial es tambin un rea activa de investigacin. En el rea de la sntesis de hardware, el demostrador de teoremas AURA tambin se ha aplicado al diseo de circuitos ms compactos que todos los diseos anteriores. En el caso de muchos diseos de circuitos, basta con la lgica proporcional, ya que el conjunto de proposiciones de inters est limitado por el conjunto de elementos del circuito. Ahora es tcnica establecida la aplicacin de la inferencia proposicional para la sntesis del hardware, y se le utiliza en muchas aplicaciones de gran escala.
21
24-3-2009
22
24-3-2009
A=D
aadir E
A
A(1), A(2)
B
B(2), B(3), B(4)
A=B
C
C(5)
aadir D D(2)
A(2) B(2)
borrar A
Figura 6. Una red rete. Los crculos representan las pruebas de predicado. El cuadrado que contiene, por ejemplo A = B, representa la restriccin de que las soluciones de las pruebas A y B deben ser iguales. Los rectngulos son acciones.
23
24-3-2009 produccin, como ya hemos visto; se ha probado tambin realizar implantaciones en hardware paralelo. Los sistemas de produccin gozan tambin de gran aceptacin en las arquitecturas cognoscitivas, es decir, modelo de razonamiento humano, como son ACT y SOAR. En estos sistemas, la memoria de trabajo del sistema imita la memoria humana de corto plazo, y las producciones forman parte de la memoria de largo plazo. Tanto ACT como SOAR cuentan con complejos mecanismos para la resolucin de conflictos y para guardar los resultados de costosos razonamientos en forma de nuevas producciones, las que pueden utilizarse para evitar el razonamiento en situaciones futuras.
Existen algunos problemas relacionados con el manejo de las excepciones, aunque, con un poco de cuidado, a stas tambin se les puede encontrar una solucin.
24
24-3-2009
para afirmar que los gatos son mamferos. Desde luego, se trata de una forma sencilla de expresar la oracin lgica , pero cuando las redes semnticas se utilizaron por vez primera en IA (alrededor de 1961). Este tipo de expresin no gozaba de aceptacin generalizada; se pensaba que para utilizar la lgica era necesario escribir: () () y que produca una respetuosa intimidacin. Se consideraba tambin que no daba lugar a excepciones, en tanto que
Ahora se reconoce que la semntica es ms importante que la notacin. En la figura 10.7se ofrece un ejemplo de una red basada en marco tpica, y una traduccin de la red en lgica de primer orden. Esta red puede servir para responder a la pregunta: "Cuntas piernas tiene Opus?"; siguiendo la cadena de vnculos que van de
dos piernas. El anterior es un ejemplo de herencia. Esto es muy sencillo, pero qu sucede, por ejemplo, cuando hay dos cadenas diferentes para dos nmeros distintos de piernas? Es irnico, pero las redes semnticas a veces adolecen de una semntica clara. Muchas veces el usuario tiene que inducir la semntica de un lenguaje a partir del comportamiento del programa que lo implant. Por ello, los usuarios tienden a considerar las redes semnticas a nivel de implantacin, no a nivel lgico o a nivel de conocimiento. Para definir la semntica de lenguaje de red semntica sencilla es necesario proponer los equivalentes en lgica de primer orden de las aseveraciones que se hagan en el lenguaje de red. Primero se define la versin en donde no hay excepciones. Adems de los vnculos
vnculos: uno para expresar que entre dos objetos, A y B, existe una relacin R; otro para afirmar que R se cumple en todos los elementos de la clase A y del objeto B; y otro ms que afirme que R se cumple en todos los elementos de A y algn elemento de B. En la Figura 8 se presenta un resumen de los cinco tipos de vnculo estndar 7. Conviene aclarar que un demostrador de teoremas o un lenguaje de programacin lgica es capaz de utilizar las traducciones lgicas de los vnculos para efectuar una herencia mediante inferencia lgica comn. En un sistema de red semntica se
En muchos sistemas, el nombre EsUn se asigna tanto al subconjunto como a las vinculaciones para indicar pertenencia a un conjunto, al igual de cmo se emplea en espaol: un gato es un mamfero y Fifi es un gato. Lo anterior da lugar a la produccin de incongruencias, como lo seal Drew McDermott en su artculo Artificial Intelligence Meets Natural Stupidity (La Inteligencia Artificial se encuentra con la tontera natural). Para algunos sistemas fue imposible diferenciar entre las propiedades de los miembros de una categora determinada y las propiedades de la categora como un todo. 7 Porque aseveraciones como A son tan frecuentes, hemos empleado la abreviacin Rel(R, A, B) como azcar sintctica para realizar la traduccin lgica ().
25
24-3-2009 emplean algoritmos de propsito especial para recorrer los vnculos. y por ello puede ser ms rpido que la inferencia lgica general.
Figura 7. Red basada en marco y traduccin de esta a lgica de primer orden. Los nombres de relacin que aparecen dentro de las cajas corresponden a las relaciones que se aplican a todos los miembros del conjunto de objetos.
26
24-3-2009 Una forma intuitiva de manejar la herencia con excepciones seria recorriendo los vinculas de un diagrama, pero tambin es posible y muy instructivo definir la semntica correspondiente mediante lgica de primer orden. El primer paso en una traduccin lgica consiste en reificar las relaciones: una relacin R se convierte en un objeto, no en un predicado. Es decir, Rel(R, A, B) es simplemente una oracin atmica comn, no la abreviacin de una oracin compleja. Significa tambin que ya no es posible escribir R(x. B), puesto que R es un objeto, no un predicado. Mediante Val(R, xB) indicamos que el equivalente de una relacin R(x, B) est expresado de manera explcita en la red semntica y que SeCumple(R, x, B) significa que es posible inferir R(x, B). Podemos as definir SeCumple para decir que una relacin R se cumple en x y en b si existe un predicado explcito Val, o si existe una Rel en alguna clase padre p de la cual x es un elemento, y no existe Rel ni tampoco una clase i interpuesta. (Se considera que existe una clase i interpuesta si x es un elemento de i y si i es un sub. conjunto de p.) Es decir: , , , , , , ( , , , (, , ) ) , , , , , , , , , , , , ( ) Tipo de vinculo
Semntica , , , (, )
Ejemplo
12 2 2
Ntese que el smbolo significa el subconjunto correspondiente (por ejemplo. Significa que si i es un subconjunto de p y que no es igual a p). El paso siguiente consiste en reconocer que es importante no slo saber qu relaciones existen en Rel y Val, sino tambin qu relaciones no existen. Supngase que estamos tratando de encontrar la n que satisface SeCumple(Piernas, Opus, n). Conocemos Rel(Piernas, Pjaro, 2) y sabemos que Opus es un pjaro; sin embargo, la definicin de SeCumple no basta para inferir algo, a menos que podamos demostrar que no existe Rel(Piernas, i, b) correspondiente a i =Pinginos o cualquier otra categora interpuesta. Si la base de conocimiento contiene nicamente tomos positivos de Rel (es decir, Rel(Piernas, Pjaros, 2) y Rel(Moscas, Pjaros,T), entonces no podemos hacer nada. Por lo tanto en una traduccin de una red semntica como la de la Figura 7 debern estar presentes oraciones en las que se afirme que las relaciones Rel y Val mostradas son las nicas vlidas: , , , , , , , , , , , , . , , , , , , { , , , , , , . }
27
24-3-2009 rutas. En algunos casos esto opera sin mayor problema. Por ejemplo, algunas personas podran pertenecer tanto a las categoras 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 la Figura 9 se muestra un ejemplo de una dificultad semejante. Opus es un pingino, por lo que slo "emite" graznidos. Opus es un personaje de una tira cmica, por lo tanto habla en espaol.8 En la sencilla traduccin lgica presentada antes, podramos haber inferido las dos conclusiones, las que, con el apropiado conocimiento de base, nos habra hecho llegar a una contradiccin. Sin informacin adicional que indique cierta preferencia por una ruta, no hay manera de resolver el conflicto.
Al ejemplo clsico de conflicto por herencia mltiple se le conoce como diamante de Nixon. El conflicto surge porque Richard Nixon era un cuquero (por lo tano, pacifista) y republicano (por lo tanto, no es pacifista). Por las controversias a que puede dar lugar este ejemplo, evitaremos trabajar con este ejemplo. Para otro ejemplo comn se utiliza un pjaro de nombre Tweety (Gorjeador), del que cuanto menos se diga, mejor.
28
24-3-2009 sistemas prcticos ha sido menor que la de otros mtodos, por lo que no nos referiremos a dichos trabajos en este captulo. Segundo, manejar la incorporacin de una nueva aseveracin como RETRACTAR seguida de DECIR. Considerando cmo se ha definido Rel, lo anterior tiene sentido. No se formulan aseveraciones de la forma DECIR(BC,REL(R, A, 8)). En vez de ello, se hace una aseveracin equivalente amplia, como la siguiente: (, , , (, , ) ) En donde los puntos suspensivos (...) representan todas las Rel posibles. As que para incorporar Rel(Piernas, Gatos, 3), sera necesario eliminar la anterior aseveracin de equivalencia y sustituirla por una nueva. Una vez codificada la base de conocimientos al haber eliminado una oracin de ella (no slo por la adicin de una nueva) no es de sorprender la no monotona resultante. En la seccin 8 se hablar de las maneras de implantar RETRACTAR.
Memo y
conjunto {Memo, Esteban}. El cdigo de la Error! No se encuentra el origen de la referencia. implanta todo lo necesario con el fin de PREGUNTAR a la red qu subconjunto, membreca u otras relaciones son las que prevalecen entre dos objetos. Cada una de las funciones sencillamente va recorriendo los vnculos que corresponda hasta encontrar lo que busca, o hasta que sale de los vnculos. El cdigo no puede manejar vnculos encerrados dos veces en caja, ni tampoco las excepciones. Por otra parte, no se muestra el cdigo que DICE a la red acerca de las nuevas relaciones, puesto que es muy directo.
29
24-3-2009 funcion MIEMBRO?(elemento, categoria) devuelve Verdadero o Falso por cada c de MEMBRESIAS[elemento] hacer si SUBCONJUNTO?(c, categoria) entonces devolver Verdadero devolver Falso
funcion SUBCONJUNTO?(sub, super) devuelve Verdadero o Falso si sub = super entonces devolver Verdadero por cada c de SUPERS[sub] hacer si SUBCONJUNTO?(c, super) entonces devolver Verdadero devolver Falso
funcin RELACIONADOCON?(fuente, relacin, destino) devuelve Verdadero o Falso si la relacin aparece en RELSSALIDA(fuente) entonces devolver MIEMBRO([relacin, destino], RELSSALIDA(nodo)) o bien, por cada c de MEMBRESIAS(fuente) hacer si TODO-RELACIONADO-CON?(c, relacin, destino) entonces devolver Verdadero fin devolver Falso
funcion TODO-RELACIONADO-CON?(fuente, relacin, destino) devuelve Verdadero o Falso si la relacin aparece en TODAS-RELSSALIDA(fuente) entonces devolver MIEMBRO([relacin, destino], TODAS-RELSSALIDA(nodo)) o bien, por cada c de SUPERS(categoria) hacer si TODO-RELACIONADO-CON?(c, relacin, destino) entonces devolver Verdadero fin devolver Falso
Figura 10. Rutinas bsicas para verificacin de herencia y relacin en una sencilla red semntica libre de excepciones. Ntese que la funcin MIEMBRO? aqu se define para que opere en nodos de red semnticos, en tanto que la funcin MIEMBRO es una utilera que opera en conjuntos.
El cdigo se puede ampliar con otras funciones para dar respuesta a otras preguntas. Un problema que surge en este caso es que es muy fcil dejarse llevar por las estructuras de datos y olvidar su semntica fundamental. Por ejemplo, definimos una funcin CANTIDADDESUBTIPOS, mediante la cual se obtiene la longitud de la lista de la ranura SUBS. En el caso de la Figura 7. CANTIDADDE SUBTIPOS(Animal) = 2. Aunque sta sea la respuesta a la pregunta del usuario, su estatus lgico es dudoso. En primer lugar, es muy probable que haya especies de animales que no estn representadas en la base de conocimientos. Segundo, es posible que algunos nodos estn denotando el mismo objeto. Quizs Perro y Dog sean dos nodos entre los que exista un vnculo de igualdad. Se les debe considerar como dos o uno? Por ltimo, Perro-Con-Orejas-Negras es un tipo de animal? Y Perro-En-MiCuadra-EI-Jueves-Pasado? Aunque no resulta difcil responder a estas preguntas con base en lo que est guardado en la base de conocimientos, es preferible contar con una semntica clara, pues de esta manera las respuestas dadas a las preguntas se refieren al mundo no al estado actual de la representacin interna.
30
24-3-2009
31
Concepto | | | | | | |
Objeto | NombredeConcepto Y(Concepto, ...) Todo(NombrePapel, Concepto) PorLoMenos(NumeroEntero, NombrePapel) CuantoMas(NumeroEntero, NombrePapel) Llena(NombrePapel, NombreIndividual) MismoQue(Ruta, Ruta) UnoDe(NombreIndividual, ...)
24-3-2009
Ruta [NombrePapel, ...] se muestra la sintaxis de la descripcin de CLASSIC. 9 Por ejemplo, para expresar que los solteros son adultos que no estn casados, escribiramos: = (, , )
Figura 11. Sintaxis de las descripciones de un subconjunto del lenguaje CLASSIC.
El equivalente de lo anterior en lgica de primer orden seria: Observe que la lgica de la descripcin realmente permite efectuar operaciones lgicas directas en los predicados, en vez de tener que crear primero oraciones que se unen mediante conectores. Toda descripcin en CLASSIC se puede expresar mediante lgica de primer orden, pero algunas descripciones resultan ms directas expresadas en CLASSIC. Por ejemplo, para describir el conjunto de hombres que por lo menos tengan tres hijos, estn desempleados y cuya esposa es doctora, y que adems tengan como mximo dos hijas, ambas profesoras de fsica o qumica escribamos: (, (3, ), (2, ), (, (, , (, ))), (, (, (, , ))) Quizs el aspecto ms importante de la lgica de descripciones sea el nfasis que se pone en la tratabilidad de la inferencia. Los problemas se resuelven mediante su descripcin y cuestionando si se le puede subsumir mediante una de varias categoras posibles de solucin. En los sistemas promedio de lgica de primer orden, muchas veces es imposible predecir cul va a ser el tiempo necesario para hallar la solucin. Frecuentemente se deja al usuario disear la representacin que permita evitar aquellos conjuntos de oraciones que probablemente sean las causantes de que el sistema emplee varias semanas en resolver un problema. El nfasis en la lgica de descripciones, por otra parte, es garantizar que la prueba de subsuposicin pueda ser resuelta en un tiempo que sea una funcin polinmica del tamao de la descripcin del problema. El lenguaje CLASSIC satisface esta condicin y, hasta la fecha, es el lenguaje ms completo que es capaz de hacerlo. En principio, lo anterior parecera hasta que uno se da cuenta que entraa dos consecuencias: los problemas difciles no se pueden formular, o requieren de descripciones de varias extensiones exponenciales! A pesar de lo anterior, los resultados obtenidos en la tratabilidad arrojan luz sobre qu tipos de estructuras causan problemas, y esto ayuda al usuario a comprender el comportamiento de las
9
Observe que el lenguaje no nos permite limitarnos a afirmar que un concepto o una categora es subconjunto de otro. Lo anterior es deliberado; la subsuposicin entre categoras debe obtenerse a partir de ciertos aspectos de las descripciones de las categoras. De no ser as, seguramente algo est faltando en las descripciones.
32
24-3-2009 diversas representaciones. Por ejemplo, la lgica de descripciones por lo general carece de la negacin y de la disyuncin. Ambas fuerzan a los sistemas lgicos de primer orden a producir anlisis de cada caso de tipo exponencial si es que se desea garantizar la completez. Por la misma razn se les ha excluido de Prolog. CLASSIC acepto solo una variable limitada de la disyuncin, las estructuras SatisfaceQue y UnaDe, que permiten aplicar la disyuncin en unos individuos especficamente designados, pero no en las descripciones. En el caso de las descripciones disyuntivas, las definiciones anidadas dan lugar fcilmente a una cantidad exponencial de rutas alternas, en las que una categora subsuma a otra.
33
24-3-2009 El mtodo ms sencillo de mantenimiento de la verdad consiste en el empleo de la reversin cronolgica. En este mtodo se lleva un control del orden en el que se incorporan las oraciones a la base de conocimientos numerndoles de P1 a Pn. Al invocar RETRACTAR (Pi) el sistema regresa al estado justo antes de que se incorporara Pi. Si as se desea, se puede incorporar de nuevo las oraciones de la P i+1 a la Pn. Este procedimiento es sencillo y garantiza la consistencia de la base de conocimientos, pero tambin implica que la retraccin sea O(n), en donde n es el tamao de la base de conocimientos. Sera preferible un mtodo ms eficiente, en el que no fuera necesario duplicar todo el trabajo que implica ir de Pi+1 a Pn. 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 ms eficiente la retractacin (y en algunas otras operaciones). Un sistema SMV realizar cuatro importantes funciones. La primera consiste en que permite la reversin controlada por dependencia, lo que posibilita evitar la ineficiencia de la reversin cronolgica. Una segunda e igualmente importante funcin es ofrecer explicaciones de las proposiciones. Una demostracin es un tipo de explicacin, si se pregunta Explique por qu considera que P es verdad, la prueba de P ser una buena explicacin. Si no es posible dar una demostracin, una buena explicacin sera aquella en la que figuran suposiciones. Por ejemplo, si preguntamos Explique por qu no arranca el carro, quizs no haya evidencias suficientes para demostrar nada, pero una buena explicacin sera: 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 elctrico. Tcnicamente, la explicacin E de una oracin P se define como una conjunto de oraciones tales que E implique a P. Las oraciones de E deben ser ciertas (es decir, estn en la base de conocimientos) o se sabe que son suposiciones que el solucionador de problemas ha hecho. Para evitar que toda la base de conocimientos sea una explicacin, insistiremos en que E sea mnima, es decir, que no haya un subconjunto de E que tambin sea una explicacin. La capacidad para manejar suposiciones y explicaciones es crucial para la tercera funcin de un SMV: el razonamiento por omisin. En un sistema taxonmico que puede manejar excepciones, el decir que Opus es un pingino no sanciona la inferencia irrefutable de que Opus tiene dos piernas, puesto que toda informacin adicional sobre Opus invalidara la creencia deducida. Un SMV puede deducir la explicacin de que Opus, en cuanto que es un pingino, tiene dos piernas siempre y cuando no sea un pingino anormal. En este caso, la falta de anormalidad se convierte en suposicin explicita. Por ltimo, los SMV ayudan a manejar las inconsistencias. Si la incorporacin de P a la base de conocimientos produce una contradiccin lgica, un SMV es til para sealar la explicacin de lo que es la contradiccin. Existen diversos tipos de SMV. El ms sencillo es el sistema de mantenimiento de la verdad basado en la justificacin o SMVJ. En este caso, en cada una de las oraciones de la base de conocimientos se indica cual justificacin identifica las oraciones a partir de la cual la primera se infiri, si es que existen. Por ejemplo si Q se infiere mediante Modus Ponens de P, el conjunto de oraciones {P, P Q} servira de justificacin de la oracin Q. Algunas oraciones tienen ms de una justificacin. stas sirven para efectuar retractaciones selectivas. Si luego de incorporar Pi a travs de Pn, obtendremos la invocacin de RETRACTAR (Pi), y el SMVJ eliminar de la base de
34
24-3-2009 conocimientos justo las oraciones para las que Pi es la parte requerida de todas las justificaciones. As, si la nica justificacin de una oracin Q fuese {Pi, Pi Q} se le elimina; si tuviera adems la justificacin {Pi, Pi V R Q} tambin se eliminara; pero si tambin tuviera la justificacin {R, Pi V R Q}; entonces se conservara.
En la mayora de las implantaciones de SMVJ, se supone que las oraciones consideradas una vez, posiblemente se vuelvan a tomar en consideracin. Por ello, en vez de eliminar la oracin de la base de conocimientos cuando pierde su justificacin, lo nico que se hace es marcar la oracin como fuera de la base de conocimientos. Si una aseveracin posterior le devuelve la justificacin, marcamos la oracin como que nuevamente est dentro. De esta manera, los SMVJ, supondremos primero (es decir, 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 oracin que representa el hecho de que el carro no arranca se etiquetar como fuera. Ahora podemos decir una explicacin al SMVJ. Por otra parte, si resultase que las suposiciones hechas no fuesen suficientes (es decir, si no producen un el carro no arranca estado dentro), debemos retractar las suposiciones originales y formular otras nuevas. Todava tenemos pendiente un problema de bsqueda: el SMV solo hace parte del trabajo. Los SMVJ fueron el primer tipo de SMV, pero el tipo ms popular es el SMVS, o sistema de mantenimiento de la verdad basado en suposiciones. La diferencia reside en que SMVJ representa un estado consistente del mundo a la vez. El mantener la justificacin le permitir a usted pasar rpidamente de un estado a otro, efectuando solo unas cuantas retractaciones y aseveraciones, pero representando solo un estado a la vez. Un SMVS representa todos los estados que se han considerado, simultneamente. Mientras que un SMVJ se limita a etiquetar cada una de las oraciones como dentro o fuera, el SMVS lleva el control, por cada oracin, de qu suposiciones harn que la oracin sea verdadera. Es decir, cada oracin tiene una etiqueta que est formada por un conjunto de suposiciones. La oracin se cumple slo en aquellos casos en los que todas las suposiciones de uno de los conjuntos de suposicin se cumplen. Para resolver problemas mediante SMVS, se pueden hacer suposiciones (como Pi o combustible en el auto) en el orden que prefiramos. En vez de retractar las suposiciones cuando falla una lnea de razonamiento, solo afirmamos todas las suposiciones que nos interesen, incluso si unas contradicen a otras. Luego procedemos a verificar una oracin en particular para definir las condiciones en las que si se cumple. Por ejemplo, la etiqueta en la oracin Q sera {{Pi}, {R}}, lo que significa que Q es verdad bajo el supuesto de que Pi es verdad o bajo el supuesto de que R es verdad. Una oracin en la que uno de sus conjuntos de supuestos sea un conjunto vacio, necesariamente es verdadera; verdadera por no tener ninguna suposicin. Por otra parte, una oracin que no tenga conjuntos de suposicin sencillamente es falsa. Los algoritmos empleados en la implantacin de los sistemas de mantenimiento de la verdad son un poco complicados y no hablaremos de ellos aqu. La complejidad de cmputo del problema de mantenimiento de la verdad es por lo menos tan grande como la inferencia proposicional, es decir, de dificultad NP. Por ello, no es de esperar que el mantenimiento de la verdad sea una panacea (excepto en problemas pequeos y triviales). Pero cuando se utiliza con cuidado (por ejemplo, cuando existe la opcin
35
24-3-2009 respaldada por un conocimiento acerca de lo que es un hecho que no es posible retractar), un SMV puede ser parte importante de un sistema lgico.
9 RESUMEN
Este trabajo ha servido para establecer la conexin entre los fundamentos conceptuales de la representacin del conocimiento y el razonamiento, y el mundo prctico de los sistemas de razonamiento reales. Se pone nfasis en el hecho de que una autntica comprensin de estos sistemas slo se puede lograr cuando se trabaja con ellos. Se han explicado las tcnicas de implantacin y las caractersticas de los cuatro tipos ms importantes de sistemas de razonamiento lgico: Sistemas de programacin lgica y demostradores de teoremas. Sistemas de produccin Redes semnticas Lgicas de descripcin
Hemos visto que existe un compromiso entre la expresividad de un sistema y su eficiencia. La compilacin puede ayudar a elevar la eficiencia al aprovechar el hecho de que el conjunto de oraciones se determina por adelantado. La facilidad de uso se favorece mediante una semntica clara para el lenguaje de representacin y simplificando el modelo de ejecucin de manera que el usuario pueda hacerse una buena idea de los clculos necesarios para realiza una inferencia.
10 BIBLIOGRAFA Y LINKOGRAFA
BIBLIOGRAFA
Russell, S., & Norvig, P. (2004). Inteligencia Artificial: Un Enfoque Moderno. Madrid: Prentice Hall.
LINKOGRAFA
http://es.wikipedia.org/wiki/Razonamiento_automatizado http://www.mitecnologico.com/Main/SistemasDeRazonamientoLogico http://www.angelfire.com/falcon/popikpe/cap_diez.htm
36