Está en la página 1de 37

S ISTEMAS DE R AZONAMIENTO L GICO

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

SISTEMAS DE RAZONAMIENTO LGICO


Inteligencia Artificial

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

2 INDIZACIN, RECUPERACIN Y UNIFICACIN


Las funciones DECIR y PREGUNTAR, en general, pueden realizar complicados razonamientos por medio del encadenamiento hacia adelante y hacia atrs, o mediante la resolucin. En esta seccin nos ocuparemos de dos funciones ms sencillas que las anteriores mediante las que se implanta lo referente a DECIR y PREGUNTAR y que se concentran directamente en la implantacin fsica de la base de conocimientos. Denominaremos a estas funciones como ALMACENAR y RECOGER. Tambin explicaremos como implantar un algoritmo de unificacin, otro componente bsico de los sistemas basados en el conocimiento.

2.1 Implantacin de Oraciones y Trminos


El primer paso para construir un sistema de razonamiento consiste en definir los tipos de datos de las oraciones y los trminos. Lo anterior implica definir tanto la sintaxis de las oraciones (el formato de cmo se interacta con el usuario en el nivel lgico) como la representacin interna en donde el sistema guardar y manejar las oraciones a nivel de implantacin. Para cada aspecto de las oraciones pueden corresponder diversas representaciones internas. Por ejemplo, puede haber una forma que permitir al sistema imprimir oraciones y otra para representar oraciones que se han convertido a su forma de clusula. Nuestro tipo bsico para datos representar la aplicacin de un operador (como un predicado, un signo de funcin o un conector lgico) a una lista de argumentos (como trminos u oraciones). A este tipo general para datos lo denominaremos COMPUESTO. Cuenta con campos para el operador (OP) y argumentos (ARGS). Por ejemplo, sea c el compuesto ; entonces = y = , .

2.2 Guardar y Recoger


Ahora que ya contamos con un tipo de datos para oraciones y trminos, tenemos que guardar un conjunto de oraciones en una base de conocimientos, lo que implica la capacidad de guardarlas de manera que se puedan recuperar de manera eficiente. RECOGER se caracteriza por la localizacin de oraciones en la base de conocimientos que unifican con la consulta, o que por lo menos tienen la misma estructura sintctica. PREGUNTAR tiene a su cargo la estrategia de la inferencia, cuyo resultado final es una serie de solicitudes enviadas a RECOGER. El costo de cmputo de la injerencia esta determinado bsicamente por dos aspectos: la estrategia de bsqueda utilizada por PREGUNTAR y las estructuras de datos utilizadas para implantar RECOGER. La invocacin GUARDAR(BC,S) lo que hace es aadir todos los conjuntos de la oracin S a la base de conocimientos BC. La manera ms sencilla de lograrlo consiste en implantar la base de conocimientos como un arreglo o lista vinculada de coyuntos. Por ejemplo, luego de: DECIR , DECIR , La BC contendr una lista con los elementos: , , ,

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.

2.3 Indizacin Basada en Tablas


EI mtodo ms recomendable consiste en implantar la base de conocimientos como tabla de dispersin.1 Si slo se manejaran oraciones literales de base 2 para implantar GUARDAR, bastara que cuando una determinada P guarde el valor verdadero en la tabla de dispersin con la llave P, y cuando reciba ~P, guardara falso con la llave P. Luego, mediante RECOGER se consultara la tabla y tanto RECOGER como GUARDAR serian 0(l). Este mtodo tiene dos desventajas: no maneja oraciones complejas que no sean las de negacin ni tampoco maneja las variables que puedan contener las oraciones. Por ello, RECOGER no podr localizar "una implicacin cuyo consecuente sea P", como se le requerira en un algoritmo de encadenamiento hacia atrs; tampoco podr localizar Hermano(Ricardo, Juan) cuando se le haga la consulta Hermano(Ricardo. x). La solucin reside en lograr que GUARDAR mantenga una tabla ms compleja. Suponemos que las oraciones se pueden convertir a su forma normal. (Utilizamos la forma normal implicativa). Las llaves para la tabla son signos de predicado y los valores que se guardan en cada llave constaran de cuatro componentes: Una lista de literales positivas correspondientes al signo de predicado. Una lista de literales negativas. Una lista de oraciones en las que el predicado est en la conclusin. Una lista de oraciones en las que el predicado est en la premisa.

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)

Figura 1. Indizacin basada en una tabla correspondiente a un conjunto de oraciones lgicas.

2.4 Indizacin Basada en rboles


La indizacin basada en tablas es ideal cuando son varios los signos de predicado y slo unas cuantas clusulas por signo. Sin embargo, hay aplicaciones en las que son muchas las clusulas por signa de predicado. Por ejemplo, en el caso de una base de conocimientos, como la de la Oficina de Censos de Estados Unidos en donde se utilizan los nmeros de afiliacin al seguro social para representar a las personas, la consulta Hermano(012-34-5678, x) implicara una bsqueda a travs de millones de literales Hermano. Para que la bsqueda pueda ser eficiente, es necesario indizar tanto argumentos como los signos de predicado mismos. Una forma de hacerlo sera modificar la entrada de la tabla correspondiente a Hermano de manera que cada entrada sea una tabla por s misma, indizada por e1 primer argumento, en vez de hacerlo mediante una lista. Para responder a la consulta Hermano(012-34-5678, x), consultamos primero 1a tabla de predicado en el sitio correspondiente a Hermano, y luego buscamos tal entrada en 012-34-5678. Ambas consultas consumen una pequea cantidad de tiempo, por lo que la completa realizacin de RECOGER es eficiente. Podemos concebir el procedimiento de bsqueda de la coincidencia de una literal como a ir bajando por un rbol, en donde la rama en cada punto es determinada por el signo en el punto correspondiente de la oracin de consulta (Figura 2). La indizacin basada en rbol es una forma de la indizacin combinada, en tanto que bsicamente elabora una llave combinada a partir de los signos de predicado y de argumento de la consulta. Desafortunadamente, no es de mucha ayuda cuando uno

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.

2.5 El Algoritmo de Unificacin


Sabemos cmo combinar dos aseveraciones como Conoce(Juan, x) Odia(Juan, x) Conoce(Juan, Juana) para inferir Odia(Juan, Juana). La llave de esta inferencia Modus Ponens consiste en unificar Conoce(Juan, x) y Conoce(Juan, Juana). Esta unificacin da como resultado la sustitucin {x/Juana}, que se aplica a Odia(Juan, x) para producir la solucin Odia(Juan, Juana). Hemos visto cmo, al emplear juiciosamente la indizacin, es posible disminuir la cantidad de invocaciones al algoritmo de unificacin; aun as, dicha cantidad puede todava seguir siendo bastante grande. Por ello es necesario que los algoritmos de

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.

3 SISTEMAS DE PROGRAMACIN LGICOS


Nuestra atencin pasar ahora de los detalles de la implantacin de una base de conocimientos a la comparacin de las diversas maneras de construir y utilizar tal base de conocimientos. Empezaremos por la programacin lgica. Hemos visto que el mtodo declarativo ofrece muchas ventajas para la construccin de sistemas inteligentes. La programacion lgica se esfuerza porque todas las tareas de programacin cuenten con estas ventajas. Todo computo puede considerarse como un proceso en que se hacen explicitas las consecuencias de haber escogido un determinado programa para una maquina en especial y de haber proporcionado ciertas entradas. La programacin lgica considera al programa y a sus entradas como aseveraciones lgicas acerca del mundo, y al procedimiento de hacer explcitas las consecuencias como un proceso de inferencia. La relacin entre lgica y algoritmo esta resumida en la ecuacin de Robert Kowalski: Algoritmo = Lgica + Control Los lenguajes de programacin permiten escribir algoritmos al complementar las oraciones lgicas con informacin para control del procedimiento de inferencia. Prolog ha sido hasta ahora el lenguaje de programacin lgica que ms se ha utilizado para lo anterior. Sus usuarios ascienden a cientos de miles. Se le utiliza fundamentalmente como un lenguaje rpido para elaborar prototipos y en tareas donde hay que manejar signos, como en el diseo de compiladores y en el anlisis gramatical del lenguaje natural. Tambin se le ha utilizado en el diseo de aplicaciones de sistemas expertos en las reas legal, financiera y otras.

3.1 El Lenguaje Prolog


En cuanto base de conocimientos lgica, el programa Prolog tiene las siguientes caractersticas: El programa consta de una secuencia de oraciones, que guardan una relacin implcita de coyuncin. Todas las variables tienen cuantificacin universal implcita 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 atmicas, o bien una implicacin que no tiene antecedentes negados y un consecuente atmico.

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.

3.3 Compilacin de Programas Lgicos


Atenindose a las directrices de la subseccin anterior, es posible obtener un razonablemente eficiente intrprete de Prolog. Sin embargo, la interpretacin de programas en cualquier lenguaje, Prolog incluido, necesariamente resulta ms lento que la ejecucin de cdigo compilado. La razn es que el intrprete se comporta siempre como si nunca hubiese visto el programa antes. El intrprete de Prolog debe recuperar las base de datos para encontrar oraciones que satisfagan la meta y un anlisis de la estructura de la oracin para decidir que submetas generar. Toda la parte medular, para trabajo pesado, de la programacin de Prolog se realiza mediante cdigo compilado. La gran ventaja de la compilacin es que cuando llega el momento de ejecutar el procedimiento de inferencia, se utilizan rutinas de inferencia especficamente diseadas para las oraciones de la base de conocimientos. Prolog bsicamente lo que hace es generar un demostrador de teoremas en miniatura para cada predicado diferente, con lo que se elimina mucho del exceso de interpretacin. Tambin permite la codificacin abierta de la rutina de unificacin por cada invocacin distinta, lo que ahorra el tener que analizar explcitamente la estructura de los trminos. El conjunto de instrucciones de las computadoras actuales resulta muy pobre en relacin con la semntica en Prolog, por lo que la mayora de los compiladores de Prolog realizan una compilacin en un lenguaje intermedio en vez de hacerlo directamente en lenguaje de mquina. El lenguaje intermedio ms popular es el Warren Abstract Machine, o WAM, nombrado as en honor de David H.D. Warren, uno de los autores de la implantacin del primer compilador Prolog. El WAN es un conjunto de instrucciones abstractas utilizable en Prolog, y que se puede interpretar o traducir a lenguaje de mquina. Existen otros compiladores que traduce Prolog a un lenguaje de alto nivel tal como Lisp o C, y utilizan dicho compilador para traducir a lenguaje de mquina. Por ejemplo, la definicin del predicado Miembro se compilara como el cdigo mostrado en la figura siguiente: Hay varios puntos que conviene aclarar: En vez de tener que buscar en la base de conocimientos clausulas Miembro, las clausulas quedan incorporadas en el procedimiento y las inferencias se efectan tan solo con invocar el procedimiento. Como se menciono anteriormente, las vinculaciones de la variable en curso se guardan en una pista. Durante el primer paso del procedimiento se guarda el estado actual de la pista, de manera que si llegara a fallar la primera clausula,

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.

3.4 Otros Lenguajes de Programacin


Si bien Prolog es la norma aceptada en la programacin lgica, existen muchos otros sistemas bastante tiles que bsicamente lo que hacen es ampliar de una u otra manera el modelo fundamental de Prolog. Resulta obvio emprender la exploracin de Prolog a travs del paralelismo de Prolog a travs 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

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.

3.5 Recursos Avanzados de Control


Regresando a nuestra base de conocimientos censal, tomemos por ejemplo la consulta Cul es el ingreso de la esposa del presidente Lo anterior se expresara en Prolog de la manera siguiente: (, ) (, ) (, ) El cmputo de esta consulta podra resultar costoso, puesto que hay que enumerar todos los pares de ingreso de las personas, luego recoger el cnyuge correspondiente a cada persona (excepto en el caso de los que no estn casados, o dar varias vueltas

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.

4.1 Diseo de un Verificador de Teoremas


En esta seccin hablaremos del demostrador de teoremas OTTER (Organized Technique for Theorem proving and Effective Research; Tcnicas organizadas para la demostracin de teoremas e investigacin efectiva), con atencin especial a su estrategia y control. Al preparar un problema para someterlo a OTTER, el usuario debe dividir el conocimiento cuatro partes: Un conjunto de clusulas conocido como conjunto de apoyo (o cda), que defiende los hechos importantes relacionados con el problema. En cada paso de resolucin se resuelve un miembro del conjunto de apoyo en relacin con otro axioma, por lo que la bsqueda se enfoca al conjunto de apoyo. Un conjunto de axiomas utilizables que no pertenezcan al conjunto de apoyo. Ofrecen conocimiento de apoyo relacionado con el rea del problema. El lmite entre qu se considera parte del problema (y por lo tanto en cda) y qu es fondo de apoyo (y por lo tanto en los axiomas utilizables) depender de lo que decide el usuario. Un conjunto de ecuaciones conocido como reelaboraciones o demoduladores. Si bien los demoduladores son ecuaciones, siempre se aplican de izquierda a derecha. Por lo tanto, definen una forma cannica para simplificacin de trminos. Por ejemplo, el demodulador + 0 = afirma que todos los trminos que tengan la forma + 0 deben desplazarse por el trmino . 17

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.

4.2 Ampliacin de Prolog


Otra forma de construir un demostrador de teoremas consiste en empezar por un compilador de Prolog y ampliarlo hasta convertirlo en un slido y completo razonador de lgica de primer orden. Justamente fue ste el mtodo adoptado en el Demostrador

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.

4.3 Los Verificadores de Teoremas como Auxiliares


Hasta ahora, hemos concebido un sistema de razonamiento como un agente independiente que tiene que tomar decisiones y actuar por s mismo. Otra aplicacin de los demostradores de teoremas es como auxiliares, para dar consejo, por ejemplo, a un matemtico. En este caso, el matemtico acta como un supervisor que establece

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.

4.4 Aplicaciones Prcticas de los Demostradores de Teoremas


Los demostradores de teoremas han producido novedosos descubrimientos matemticos. El programa SAM (Semi Automated Mathematics; matemticas semiautomatizadas) fue el primero que demostr una premisa de la teora de la retculas. Mediante el programa AURA se ha dado respuesta a preguntas abiertas en diversas reas de las matemticas. El demostrador de teoremas de Boyer - Moore se ha utilizado y ampliado durante muchos aos. Lo emple Natarajan Shankar para producir la primera y totalmente rigurosa demostracin formal del teorema de Incompletez de Gdel. El programa OTTER es uno de los demostradores de teoremas ms slidos; se le ha utilizado para resolver diversas preguntas abiertas en lgica de combinaciones y alcanza aproximadamente 2000 ILPS en una estacin de trabajo modelo 1990. Los demostradores de teoremas se utilizan en problemas relacionados con la verificacin y sntesis tanto de hardware como software, pues en ambos dominios es posible contar con formas de hacer axiomas correctos. En el caso del software, mediante los axiomas se definen las propiedades de todos los elementos sintcticos del lenguaje de programacin. (El razonamiento acerca de programas es muy semejante al razonamiento sobre acciones en los clculos de situacin). La verificacin de un algoritmo se realiza demostrando que sus salidas cumplen con las especificaciones de todas las entradas. De esta forma es como se han verificado el algoritmo pblico RSA de cifrado de llaves y el algoritmo de cotejo de cadenas de Boyer - Moore. En el caso de hardware, los axiomas describen las interacciones que tienen lugar entre seales y elementos de circuito. Mediante AURA se verific el diseo de un sumador de 16 bits. Con los razonadores lgicos diseados especialmente para la verificacin sern revisado CPU completas, incluidas sus caractersticas de sincronizacin. El demostrador de teoremas MRS se ha utilizado para diagnosticar sistemas de cmputo utilizando especificaciones estructurales y conductuales. La sntesis formal de los algoritmos fue una de las primeras aplicaciones de los demostradores de teoremas, como lo bosquejara Cordell Green, quien se apoy en las ideas previamente propuestas por Simon. La idea consiste en demostrar un teorema a efecto de que "existe un programa p que satisface cierta especificacin". Si se ha restringido la demostracin para que sea constructiva, es posible extratar el

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.

5 SISTEMAS DE PRODUCCIN POR ENCADENAMIENTO HACIA ADELANTE


Prolog y la mayora de los lenguajes de programacin tienen encadenamiento haca atrs. Una vez que se plantea una consulta, realizan la bsqueda para una demostracin constructiva que establezca alguna sustitucin que satisfaga la consulta. Una alternativa es el mtodo de encadenamiento haca adelante, en el cual no existen consultas. En vez de ello, 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 diseo de un agente: en cada ciclo, se incorporan las percepciones a la base de conocimientos y se ejecuta el encadenamiento haca adelante, el cual elige qu accin realizar de acuerdo con un conjunto de reglas condicin accin. Tericamente, sera imposible implantar un sistema de produccin mediante el demostrador de teoremas, y para ellos utilizara la resolucin para efectuar el encadenamiento haca adelante en una base de conocimientos completa de primer orden. Sin embargo, un lenguaje ms restringido permitira mayor eficiencia puesto que el factor de ramificacin se reduce. Un sistema de produccin tpico se caracterizara por lo siguiente: El sistema mantiene una base de conocimiento conocida como memoria de trabajo. En ella se guarda un conjunto de literales positivas que no tienen variables. El sistema mantiene tambin una memoria de reglas independiente. Esta contiene un conjunto de reglas de inferencia de la forma 1 2 1 2 , en donde las son literales y las son acciones que se emprenden cuando todas las se satisfacen. Entre las acciones permitidas estn el aadir y eliminar elementos de la memoria de trabajo, as como algunas otras (tales como la impresin de un valor). En cada ciclo, el sistema calcula el subconjunto de reglas cuyo lado izquierdo se satisface con el contenido actual de la memoria de trabajo. A lo anterior se le conoce como fase de cotejo. El sistema decide entonces cul de la reglas se va a ejecutar. A esto se le conoce como fase de resolucin de conflictos. El paso final de cada ciclo consiste en ejecutar la(s) accin(es) de la(s) regla(s) elegida(s). A esto se le conoce como fase de actuacin.

21

24-3-2009

5.1 Fase de Cotejo


La unificacin enfrenta el problema del cotejo de un par de literales, cada una de las cuales puede contener variables. La unificacin podra servir como mtodo directo de implantacin de un sistema de produccin de encadenamiento haca adelante, sin embargo, resulta poco eficiente. Si en la memoria de trabajo hay w elementos y r reglas, cada una de stas con n elementos en el lado izquierdo, y para resolver el problema se necesitan c ciclos, entonces el algoritmo de cotejo intuitivo debe realizar w.r.n.c unificaciones. En un sistema experto simple puede haber w = 100, r = 200, n = 5, c = 1000, por lo que estamos hablando de cien millones de unificaciones. El algoritmo rete4 empleado en el sistema de produccin OPS 5 fue el primero en abordar seriamente este problema. Para comprender en qu consiste, utilicemos el siguiente ejemplo. Supongamos que tenemos la siguiente memoria de reglas: () () () aadir () () () () aadir E() () () () borrar () Y la siguiente memoria de trabajo: {A(1), A(2), B(2), B(3), B(4), C(5)} El algoritmo rete lo que hace primero es compilar la memoria de reglas en la red mostrada en la Figura 6. En este diagrama, los nodos circulares representan ocasiones en que se han recogido (no unificaciones) en la memoria de trabajo. El nodo A, se recogen y guardan los elementos de la memoria de trabajo A(1), A(2). Los nodos cuadrados indican unificaciones. De las seis posibles combinaciones A x B en el nodo A = B, slo A(2) y B(2) satisface la unificacin. Por ltimo, las cajas rectangulares indican acciones. En la memoria inicial de trabajo, la regla Sumar D es la nica que aplica, lo que da por resultado la incorporacin de la oracin D(2) a la memoria de trabajo. Una de las ventajas ms obvias de la red rete es que elimina la duplicacin en las reglas. Las tres reglas empiezan por una conjuncin de A y B, y la red permite compartir esa parte. La segunda ventaja de las redes rete es el poder eliminar con el tiempo la duplicacin. La mayora de los sistemas de produccin efectan slo unos cuantos cambios a la base de conocimientos durante cada uno de los ciclos. Es decir, la mayora de las pruebas que se efecten en el ciclo t + 1 producirn el mismo resultado que en el ciclo t. La red rete se modifica despus de una incorporacin o una eliminacin, pero s los cambios son muy pocos, el costo de cada actualizacin resulta pequeo en comparacin con la tarea de mantener completamente actualizado el indizado de la informacin. La red representa pues el estado intermedio que se guarda en el proceso de probar la satisfaccin de un conjunto de conyuntos. En este caso, el incorporar D(2) producir la activacin de la regla aadir E, pero no tiene efecto alguno en el resto de la red. Por otra parte, el incorporar o eliminar una A tendr un efecto mayor, efecto que debe propagarse en gran parte de la red.

Rete es red en latn.

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.

5.2 Fase de Solucin de Conflictos


En algunos sistemas de produccin se ejecutan todas las reglas que pasan la fase del cotejo. En otros sistemas de produccin tales reglas se consideran slo como sugerencias; la fase de resolucin de conflictos sirve para decidir cul de las sugerencias se va a aceptar. A esta fase se le puede considerar como la estrategia de control. Alguna de las estrategias que sean utilizados son las siguientes: No duplicacin: No aplique dos veces la misma regla a los mismos argumentos. Novedad: Prefiera aquellas reglas que se refieren a elementos de la memoria de trabajo de reciente creacin. Especificidad: D preferencia a aquellas reglas que sean ms especficas. Por ejemplo, la segunda de las dos reglas siguientes es la que se preferira: Mamfero(x) aadir Piernas(x,4) Mamfero(x) Humano(x) aadir Piernas(x,2) Prioridad de operacin: Prefiera aquellas acciones que tienen mayor prioridad, segn lo especificado por cierto sistema de calificacin. Por ejemplo, la segunda de las reglas siguientes posiblemente es la que tenga ms alta prioridad: TableroDeControl(p) Polvoso(p) Accin(Desempolvar(p)) TableroDeControl(p) LmparaDeFusinEncendida(p) Accin(Evacuar)

5.3 Aplicaciones Prcticas de los Sistemas de Produccin


Los sistemas de produccin basados en el encadenamiento haca adelante constituyen los fundamentos de buena parte de los primeros trabajos en IA. En particular, el sistema XCON (originalmente denominado R1) se construy utilizando una arquitectura para sistema de produccin (basada en reglas). XCON contiene varios miles de reglas que sirve para disear las configuraciones de los componentes de computadoras para los clientes de Digital Equipment Corporation. Fue uno de los primeros innegables xitos comerciales del naciente campo de los sistemas expertos. Son muchos los sistemas que se han construido utilizando la misma tecnologa bsica, y que sea implantado con el lenguaje propsito general OPS 5. Se ha invertido mucho trabajo en el diseo de algoritmos de cotejo para lenguajes de sistemas de

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.

6 SISTEMAS DE MARCO Y REDES SEMNTICAS


En 1896, siete aos despus de que Peano creara lo que actualmente es la notacin normalizada de la lgica de primer orden, Charles Peirce propuso una notacin grfica denominada grficas existenciales, a las que se refiri como "la lgica del futuro", Se inici as el prolongado debate entre los partidarios de la "lgica" y los de las "redes semnticas", Desafortunadamente, este debate trajo consigo el perder de vista la unidad bsica de este campo. Actualmente se acepta que toda red semntica o sistema de cuadro tambin puede definirse como oraciones de una lgica, y la mayora est de acuerdo en que sta sea la lgica de primer orden. 5 Lo importante en todo lenguaje de representacin reside en la comprensin de la semntica y en la teora de la demostracin; los detalles de la sintaxis son menos importantes. El que en lenguaje se utilicen cadenas Onadas y vnculos, y el que se le llame red semntica o lgica, es irrelevante para su significado o para su implantacin. Aclarado lo anterior, agregaremos que el formato de un lenguaje puede tener un efecto significativo en cuanto a claridad para un lector humano. La comprensin de algunas cosas se facilita mediante la notacin grfica; algunas otras son ms 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. Algunos sistemas, como el sistema CYC cuenta con los dos tipos de interfaces. Adems del atractivo de esos bonitos diagramas nodo-vnculo, las redes semnticas han tenido aceptacin por la misma razn que Prolog se usa ms que los demostradores de teoremas de lgica de primer orden: porque el modelo de ejecucin de la mayora de los formalismos de la red semntica es muy sencillo. Aunque un, programador llegue a construir una red muy grande, an as puede hacerse una buena idea de qu consultas pueden ser eficientes, puesto que (a) es fcil visualizar los pasos que se darn en el procedimiento de inferencia y (b) porque el lenguaje de la consulta es tan sencillo que impide formular consultas complicadas. Posiblemente sta sea la razn de que muchos de los investigadores pioneros en la ontologa del sentido comn sintieron ms confianza de trabajar con sus teoras mediante el mtodo de la red semntica.

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

6.1 Sintaxis y Semntica de las Redes Semnticas


En las redes semnticas la atencin est puesta en las categoras de los objetos y las relaciones que existen entre stos. En ellas es muy natural establecer vnculos como:

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

era una expresin ms benevolente.6

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

, de Opus a Pinginos a Pjaros, y concluyendo as que los pjaros tienen

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

, podemos ver que se necesitan por lo menos otros tres

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.

6.2 Herencia con Excepciones


Como vimos en el capitulo anterior, las clases naturales estn llenas de excepciones. En el diagrama de la Figura 7 se afirma que los mamferos tienen cuatro piernas, pero tambin se afirma que los murcilagos, que lambien son mamferos, tienen dos piernas. De acuerdo con la semntica lgica directa, lo anterior es una contradiccin. Para resolver el problema, se modifica la traduccin semntica 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 relacin R con B a menos que exista una A' para lo cual Rel(R, A,. B'). De esta manera, en la Figura 7 se afirmar, sin dar lugar a contradicciones, que los murcilagos tienen dos piernas, no cuatro. Observe que Rel(R, A, B) ya no significa que todas las A estn relacionadas con B mediante R;sino que B es el valor por omisin de la relacin R para los miembros de A; pero los valores por omisin pueden resultar invalidados por alguna otra informacin.

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

Figura 8. Tipos de vnculos en las redes semnticas y su respectivo significado

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: , , , , , , , , , , , , . , , , , , , { , , , , , , . }

6.3 Herencia Mltiple


En algunos sistemas de redes semnticas existe la herencia mltiple, es decir, cuando un objeto pertenece a ms de una categora, y por tanto, hereda propiedades de varias

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.

Figura 9. Ejemplo de inferencias conflictivas de rutas de herencia mltiples.

6.4 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 lgica de primer orden se valen de DECIR para incorporar una nueva oracin a la base de conocimientos y, adems, se cuenta con la propiedad de la mono tonicidad: si P se deduce de BC, entonces tambin se aumenta por DECIR(BC,S). Es decir: La herencia que no tiene excepciones se considera no monotnica: en la red semntica de la Figura 7 se deduce que Memo tiene cuatro piernas; pero, si se incorpora la nueva aseveracin Rel(Piernas. Galos. 3), ya no se cumple que Memo tiene cuatro piernas. Hay dos mtodos para resolver lo anterior. Primero, cambiar de lgica de primer orden a lgica no monotnica, que explcitamente maneja valores por omisin. En la lgica monotnica se puede afirmar que una proposicin P debe ser considerada como verdadera hasta que mediante evidencia adicional se demuestre que P es falsa. Si bien se ha llevado a cabo bastante trabajo terico en esta rea, la repercusin que hasta el momento ha ejercido en los

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.

6.5 Implantacin de Redes Semnticas


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 programacin lgica, lo que en algunos casos es la mejor opcin. Sin embargo, en el caso de redes cuya semntica es sencilla, es posible utilizar una implantacin ms directa. El nodo de una red se representa mediante una estructura de datos, en la que hay campos para las conexiones taxonmicas bsicas: de qu categoras se es miembro, qu elementos contiene, cules son los subconjuntos y supraconjuntos inmediatos. Tambin cuenta con campos para otras relaciones en las que participa. Los campos RELS-ENTRADA y RELS-SALIDA se ocupan de vnculos comunes (no encajonados), en tanto que los campos TODAS-LAS- RELS-ENTRADA y TODAS-LAS-RELS-SALlDA se ocupan de los vnculos encajonados. La siguiente es la definicin del tipo de datos de los nodos: tipo de datos NODOSEMIRED componentes: NOMBRE, MIEMBROS, ELEMENTOS, SUPERS, SUBS, RELSENTRADA, RELSSALIDA, TODASRELSENRADA, TODASRELSSALIDA Cada uno de los cuatro campos-REL est organizado en una tabla indizada por la relacin. Mediante la funcin CONSULTA (llave, tabla) encontramos el valor asociado con una llave de la tabla. Por ejemplo si tenemos los vnculos

Memo y

Esteban, entonces CONSULTAR (Amigo, RELS-SALIDA( opus) producir el

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

6.6 Expresividad de las Redes Semnticas


Las redes de las que hemos hablado hasta ahora estn excesivamente limitadas en cuanto a su expresividad. Por ejemplo, no es posible representar una negacin (Opus no anda en bicicleta), una disyuncin (Opus aparece tanto en el Times como en el Dispatch), ni una cuantificacin (todos los amigos de Opus son personajes de tira cmica). Este tipo de construcciones son fundamentales en muchos dominios. En algunas redes semnticas se ampla la notacin de manera que puedan trabajar con lgica de primer orden. Es lo que se hizo en las grficas existenciales de Peirce, redes semnticas fragmentadas (Hendrix, 1975) y en SNEPS (Shapiro,1979). En un mtodo de uso ms frecuente se conservan las limitaciones en cuanto a expresividad y para cubrir los vacios se utiliza la vinculacin al procedimiento. sta es una tcnica en la que una funcin escrita en lenguaje de programacin se guarda en calidad de valor de una determinada relacin y sirve para responder las invocaciones PREGUNTAR correspondientes a dicha relacin (a veces, tambin se invoca DECIR). Qu nos pueden ofrecer las redes semnticas a cambio de la falta de expresividad? Se van mencionado ya dos ventajas: son capaces de capturar la informacin de herencia de manera modular; adems, su sencillez facilita mucho su comprensin. La tercera ventaja es su eficiencia: puesto que la inferencia se efecta al seguir vnculos, en vez de recuperar oraciones de una base de conocimientos y realizar unificaciones, necesitan de slo unos cuantos ciclos de mquina por paso de inferencia. Pero si observamos el tipo de clculos 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 membreca de conjunto, combinadas con las propiedades generales de las categoras, realizan los mismos clculos de una red semntica.

7 LGICAS PARA LA DESCRIPCIN


La sintaxis de la lgica de primer orden est hecha para facilitar algo acerca de los objetos. Las lgicas de descripcin estn diseadas para concentrarse en categoras y sus definiciones. Constituyen un medio modernamente complejo para definir categoras en funcin de relaciones existentes, con mucha mayor expresividad de los lenguajes de red semnticos tpicos. Las principales tareas de inferencia son la subsuposicin (verificar que una categora sea subconjunto de otra con base en sus definiciones) y la clasificacin (verificar que un objeto pertenezca a una categora). En algunas lgicas de descripcin, los objetos se consideran adems como categoras definidas por la descripcin del objeto y (supuestamente) constituidas exclusivamente por un solo miembro. Esta manera de considerar a la representacin constituye un importante distanciamiento del punto de vista centrado en el objeto, ms compatible con la sintaxis de la lgica de primer orden.
El lenguaje CLASSIC es un ejemplo tpico de una lgica de descripcin. En la Figura 11. Sintaxis de las descripciones de un subconjunto del lenguaje CLASSIC.

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.

7.1 Aplicaciones Prcticas de las Lgicas de Descripcin


Puesto que anan una clara semntica a operaciones lgicas sencillas, las lgicas por descripcin han gozado de mucha popularidad en las comunidades de IA, tanto la terica como la prctica. Entre las aplicaciones figura la administracin financiera, las interfaces de bases de datos y los sistemas de informacin de software. Gracias a la gradual ampliacin de la clase de lenguajes tratables y a una mejor comprensin de qu tipo de estructuras causan la intratabilidad, la eficiencia de la descripcin de los sistemas lgicos ha mejorado notablemente desde la dcada pasada.

8 MANEJO DE RETRACTACIONES, SUPOSICIONES Y EXPLICACIONES


Hasta ahora se ha hablado mucho de DECIR y PREGUNTAR, pero muy poco de RETRACTAR. La mayora de los sistemas de razonamiento lgico, independientemente de cmo se les haya implantado, guardan relacin con RETRACTAR. Como hemos visto, existen tres motivos para retractar una oracin. Puede ser que un hecho haya perdido su importancia y deseamos eliminarlo y as liberar espacio para otros fines. Puede ser que el sistema est llevando un control del estado actual del mundo (y no le importe lo que haya sucedido en el pasado) y que el mundo est evolucionando. O puede ser que el sistema d por sentado (o concluya) que un hecho fue verdad, pero ahora se desea suponer (o concluye) que en realidad es falso. En cualquier caso, deseamos tener capacidad para retractar una oracin de la base de conocimientos sin introducir inconsistencia alguna, y tambin deseamos que la interaccin con la base de conocimientos en cuanto un todo sea eficiente (el ciclo de invocaciones a DECIR, PREGUNTAR y RETRACTAR). No se necesita mucha experiencia para ver en donde est el problema. Primero, es importante diferenciar entre RETRACTAR(BC, P) y DECIR (BC, ~P). Suponiendo que en la base de conocimientos est ya P, el introducir mediante DECIR a ~P nos permitir concluir tanto P como ~P, en tanto que la eliminacin de P utilizando RETRACTAR nos permitir concluir ni P ni ~P. En segundo lugar, si el sistema realiza algn encadenamiento hacia delante, RETRACTAR tiene ms trabajo que realizar. Supngase que a la base de conocimientos se le dijo P y que P Q, y se utiliz parar inferir Q e incorporarla a la base de conocimientos. Entonces RETRACTAR(BC, P) deber eliminar tanto a P como a Q para mantener la consistencia de la base de conocimientos. Sin embargo, si existe alguna otra razn independiente para creer Q (quiz se asever tanto R como R Q), entonces no ser necesario eliminar Q. 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.

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

También podría gustarte