40
Inteligencia Artificial. -Formas de representación del conocimiento. 21 CAPITULO II: FORMAS DE REPRESENTACIÓN DEL CONOCIMIENTO. Como analizamos en el capítulo anterior, los programas inteligentes se basan en el conocimiento. Por tanto, es necesario estudiar cómo realizar el almacenamiento del mismo, determinando cuál será su forma de representación. Para realizar el almacenamiento del conocimiento se determina su representación, lo cual no es más que el proceso de estructurar el conocimiento sobre un problema de manera que sea más fácil de resolver. En este capítulo se analizan algunas de las técnicas para realizar esta representación, es decir se mostrarán los diferentes tipos de Formas de Representación del Conocimiento más utilizados en la práctica, como las Redes Semánticas, la Lógica, los Frames, Scripts, Reglas de Producción y Strips; además de sus características generales y de cómo se razona con ellas, es decir, cómo afrontar la implementación de las mismas en la programación de sistemas de I.A. 2.1. Definición de Forma de Representación del Conocimiento. Llamamos Forma de Representación del Conocimiento (F.R.C.) a la notación usada para representar el mismo, es decir la manera en que se almacena. En los primeros intentos de escritura de programas que permitiesen interfaces en lenguaje natural, se hizo obvia la necesidad de una manera para representar una gran colección de hechos estructurados de forma compleja. Consideremos la cantidad de conocimiento que debe usarse para permitir que un programa “comprenda” el siguiente texto sencillo: “Juan decidió visitar a Guillermo. Condujo hasta su casa, pero vio que todas las luces estaban apagadas, por lo que, en vez de ello, fue al cine.” Y contestar preguntas como las siguientes: ¿Vio Juan a Guillermo?, ¿Qué casa estaba oscura?, ¿Quién fue al cine?. El problema de la comprensión de un texto en lenguaje natural es difícil por la gran cantidad de conocimiento que debe representarse y manipularse. Por un lado está el conocimiento perteneciente a la interfaz del programa y por otro el conocimiento sobre la sintaxis y vocabulario del lenguaje mismo. Es útil separar estos dos aspectos tanto como sea posible, pues ambos son muy difíciles. Las representaciones que estudiaremos pueden usarse tanto en sistemas que tratan con entradas en lenguaje natural como en aquellos que no lo hacen. No existe actualmente una F.R.C. general, capaz de ser usada con éxito en todo tipo de aplicación. Ante un problema de un dominio específico es necesario realizar la selección de la F.R.C. más adecuada a dicho problema. Para realizar esta selección debemos tener en cuenta los siguientes criterios: - Debe describir los hechos importantes acerca del dominio del problema y exponer las restricciones de manera natural, reflejando la estructura de los objetos, los hechos y las relaciones entre ellos. - El conocimiento almacenado debe ser completo (expresar todo lo necesario) y conciso (expresar los hechos de forma eficiente). - Debe suprimir detalles, manteniendo sólo los hechos necesarios.

CAPITULO II: FORMAS DE REPRESENTACIÓN DEL …roa.ult.edu.cu/bitstream/123456789/236/1/CAP2IA.pdf · Inteligencia Artificial. -Formas de representación del conocimiento. 21 CAPITULO

Embed Size (px)

Citation preview

Inteligencia Artificial. -Formas de representación del conocimiento.

21

CAPITULO II: FORMAS DE REPRESENTACIÓN DEL CONOCIMIENTO. Como analizamos en el capítulo anterior, los programas inteligentes se basan en el conocimiento. Por tanto, es necesario estudiar cómo realizar el almacenamiento del mismo, determinando cuál será su forma de representación. Para realizar el almacenamiento del conocimiento se determina su representación, lo cual no es más que el proceso de estructurar el conocimiento sobre un problema de manera que sea más fácil de resolver. En este capítulo se analizan algunas de las técnicas para realizar esta representación, es decir se mostrarán los diferentes tipos de Formas de Representación del Conocimiento más utilizados en la práctica, como las Redes Semánticas, la Lógica, los Frames, Scripts, Reglas de Producción y Strips; además de sus características generales y de cómo se razona con ellas, es decir, cómo afrontar la implementación de las mismas en la programación de sistemas de I.A.

2.1. Definición de Forma de Representación del Conocimiento. Llamamos Forma de Representación del Conocimiento (F.R.C.) a la notación usada para representar el mismo, es decir la manera en que se almacena. En los primeros intentos de escritura de programas que permitiesen interfaces en lenguaje natural, se hizo obvia la necesidad de una manera para representar una gran colección de hechos estructurados de forma compleja. Consideremos la cantidad de conocimiento que debe usarse para permitir que un programa “comprenda” el siguiente texto sencillo: “Juan decidió visitar a Guillermo. Condujo hasta su casa, pero vio que todas las luces estaban apagadas, por lo que, en vez de ello, fue al cine.” Y contestar preguntas como las siguientes: ¿Vio Juan a Guillermo?, ¿Qué casa estaba oscura?, ¿Quién fue al cine?. El problema de la comprensión de un texto en lenguaje natural es difícil por la gran cantidad de conocimiento que debe representarse y manipularse. Por un lado está el conocimiento perteneciente a la interfaz del programa y por otro el conocimiento sobre la sintaxis y vocabulario del lenguaje mismo. Es útil separar estos dos aspectos tanto como sea posible, pues ambos son muy difíciles. Las representaciones que estudiaremos pueden usarse tanto en sistemas que tratan con entradas en lenguaje natural como en aquellos que no lo hacen. No existe actualmente una F.R.C. general, capaz de ser usada con éxito en todo tipo de aplicación. Ante un problema de un dominio específico es necesario realizar la selección de la F.R.C. más adecuada a dicho problema. Para realizar esta selección debemos tener en cuenta los siguientes criterios: - Debe describir los hechos importantes acerca del dominio del problema y exponer las

restricciones de manera natural, reflejando la estructura de los objetos, los hechos y las relaciones entre ellos.

- El conocimiento almacenado debe ser completo (expresar todo lo necesario) y conciso (expresar los hechos de forma eficiente).

- Debe suprimir detalles, manteniendo sólo los hechos necesarios.

Inteligencia Artificial. -Formas de representación del conocimiento.

22

- El conocimiento almacenado debe ser transparente, o sea, comprendido con facilidad. - Debe facilitar el cálculo, o sea, que almacene y recupere información rápidamente. - Debe ser manipulable por una computadora. - Debe aceptar conocimiento empírico, teórico o heurístico, y combinar el conocimiento

declarativo con el procedural, de acuerdo a los requerimientos de la aplicación.

2.2. Clasificación de las formas de representación del conocimiento. Las F.R.C. pueden clasificarse en: Declarativas: Donde la mayor parte del conocimiento se representa como una colección estática de hechos junto con un pequeño conjunto de procedimientos generales para manipularlos. Ejemplos de ellas son: - Lógica (Proposicional, Cálculo de predicados, No Monotónica, etc.). - Redes semánticas (Semantic Networks). - Marcos o armazones (Frames). - Guiones (Scripts). Procedurales: Donde la mayor parte del conocimiento se representa como procedimientos para usarlo. - Reglas de producción. - Strips. Las F.R.C. declarativas tienen las siguientes ventajas:

- Cada hecho sólo necesita almacenarse una vez, sin importar el número de maneras diferentes en que pueda usarse.

- Es fácil añadir nuevos hechos al sistema sin cambiar los otros hechos ni los procedimientos pequeños.

Como ventajas de las F.R.C. procedurales podemos señalar:

- Es fácil representar el conocimiento sobre cómo hacer cosas. - Es fácil representar el conocimiento que no encaja bien en muchos esquemas

declarativos simples, como por ejemplo razonamientos por defecto y probabilísticos. - Es fácil representar conocimiento heurístico de cómo realizar las cosas

eficientemente.

2.3. La lógica como Forma de Representación del Conocimiento. La F.R.C. más antigua es, precisamente, la lógica. El formalismo lógico es muy atractivo, pues ofrece un mecanismo potente para derivar nuevos conocimientos a partir de hechos conocidos: la deducción matemática. Analicemos, en primer lugar, el uso de la lógica proposicional como forma de representar la clase del conocimiento acerca del mundo real, que puede necesitar un sistema de I.A.

2.3.1. Lógica proposicional.

Inteligencia Artificial. -Formas de representación del conocimiento.

23

Una de las estructuras más importantes de nuestro pensamiento es la proposición. Los procesos de pensamiento más importantes asociadas a ella son las operaciones proposicionales y la deducción proposicional. La parte de la lógica que estudia las operaciones proposicionales y la deducción proposicional se denomina Lógica o Cálculo Proposicional. A las proposiciones se le asocian los valores veritativos 1, para verdadero y 0, para falso. Las operaciones proposicionales principales, presentes en nuestro pensamiento, son la negación, la conjunción, la disyunción, la condicional y la bicondicional. Estas determinan el valor veritativo de una proposición en términos de los valores veritativos de sus proposiciones componentes. Los hechos del mundo real pueden representarse fácilmente mediante el uso de proposiciones, como se muestra en la figura 2.1. Es de noche. esnoche Está haciendo sol. haciendosol Si es de noche, entonces no está haciendo sol. esnoche ⇒ ¬ haciendosol

Fig. 2.1. Algunos hechos simples en el cálculo proposicional. En el cálculo proposicional se definen las fórmulas bien formadas (fbf). La interpretación de una fbf no es más que una asignación de valores veritativos a las variables proposicionales que ocurren en ella. El estudio de los procesos de deducción lógica de proposiciones es un objetivo central de la lógica. Ellos consisten en el establecimiento de la verdad de una proposición, partiendo de la verdad de otras proposiciones. La demostración en sí, está constituida por una sucesión ordenada de proposiciones, cada una de las cuales constituye un paso de la demostración. Cada paso debe estar lógicamente justificado. Los métodos de justificación lógica están constituidos por las reglas de inferencia. Ejemplos de éstas son: el modus ponens, introducción de la conjunción y de la disyunción, prueba del contrarrecíproco y reducción al absurdo. Para una profundización del estudio del cálculo proposicional consulte [Gar90]. Como hemos visto, la lógica proposicional está dotada de una determinada capacidad expresiva (fbf) e inferencial (deducción), resultando muy atractiva por lo sencillo de su manipulación. Consideremos ahora la siguiente inferencia clásica: Todos los hombres son mortales. Sócrates es un hombre. Sócrates es un mortal. Tratemos de demostrar la validez de esta simple inferencia a partir del cálculo proposicional. El esfuerzo resultará en vano, pues se trata, desde el punto de vista proposicional, de tres proposiciones elementales donde no es posible expresar la cuantificación.

Inteligencia Artificial. -Formas de representación del conocimiento.

24

Por lo tanto, el cálculo proposicional no constituye un estudio completo de las formas expresivas e inferenciales que son fundamentales, tanto en el lenguaje natural como en el matemático. Nos vemos precisados entonces, al empleo de un cálculo de mayor capacidad expresiva e inferencial.

2.3.2. Cálculo de predicados.

El estudio de las propiedades operatorias de los operadores lógicos de cuantificación universal, ∀( ), y existencial, ∃( ), se lleva a cabo en la parte de la lógica conocida con el nombre de Cálculo de Predicados. En la lógica de predicados podemos representar los hechos del mundo real como declaraciones escritas como fbf. Un ejemplo de esto se muestra en la figura 2.2.

Sultán es un perro. perro(Sultán) Los humanos son hombres o mujeres. ∀(x) [humano(x) ⇒ (hombre(x) ∨ mujer(x))] Todos los hombres tienen una madre. ∀(x) ∃(y) madre(y,x) Fig. 2.2. Algunos hechos simples en el Cálculo de Predicados.

Con la aparición de las funciones proposicionales y la cuantificación, es decir, fórmulas con variables libres y ligadas que toman valores en un dominio o universo de discurso dado, el concepto de interpretación en el cálculo de predicados se define a partir de cómo se interpreta cada elemento que conforma su alfabeto. La principal motivación para elegir una lógica como F.R.C. es que se dispone de una forma sencilla, y buena, de razonar sobre ese conocimiento. La determinación de la validez de una fórmula en el cálculo proposicional es directa, aunque puede ser intratable computacionalmente. Sin embargo, en el cálculo de predicados no existe un algoritmo para determinar la validez de una fórmula, por lo que el cálculo de predicados es indecidible. No obstante, existe un pseudoalgoritmo compuesto por dos procedimientos: unificación y resolución, que permiten determinar si una fórmula es un teorema de la teoría, si realmente lo es. Pero no existe ninguna garantía de que el proceso se detenga si no es un teorema. Este resultado negativo tiene poco efecto directo en una ciencia como la I.A. que busca métodos positivos para realizar sus propósitos. A pesar de la indecibilidad del cálculo de predicados, éste puede servir aún como forma útil de representar y manipular algunas clases de conocimiento que podrían necesitar los sistemas de I.A.

Para un estudio más detallado del cálculo de predicados puede consultar [Gar90]. Desafortunadamente, la lógica de predicados no proporciona una buena forma de representar y manipular determinado tipo de información, como por ejemplo:

- “Hoy hace mucho calor”. ¿Cómo pueden representarse los grados relativos de calor?

Inteligencia Artificial. -Formas de representación del conocimiento.

25

- “La gente de cabello rubio suele tener los ojos azules”. ¿Cómo puede representarse la cantidad de certeza?

- “Si no hay evidencia de lo contrario, suponga que todos los adultos que encuentra saben leer”. ¿Cómo podemos representar que un hecho debería inferirse de la ausencia de otro?

- “Es mejor tener más piezas en el tablero de las que tiene el oponente”. ¿Cómo podemos representar esta clase de información heurística?

Al empleo de la lógica en el procesamiento automatizado del conocimiento se le hacen las siguientes críticas:

- Que la lógica no es lo bastante expresiva. - Que la lógica no puede tratar conocimiento incompleto, incierto, impreciso e

inconsistente. - Que los algoritmos para manipular conocimiento, obtenidos de la lógica son

ineficientes.

Tales críticas se deben, en gran parte, a una concepción errónea de que la lógica abarca solamente la lógica clásica (proposicional y de predicados). Este no es el caso. Hay muchas otras lógicas, la mayoría de las cuales fueron diseñadas específicamente para superar ciertas deficiencias de la lógica clásica. Entre ellas están:

- lógica de clases múltiples. - lógica de situación. - lógica no monotónica. - lógica de valores múltiples. - lógica borrosa. - lógica modal. - lógica temporal. - lógica epistemológica. - lógica de orden superior. - lógica intensional.

Un análisis sobre de cada una de estas lógicas puede verse en [BDSE]. Analicemos sólo una de ellas. 2.3.3. Lógica no monotónica.

A diferencia de la lógica monotónica, en la no monotónica la adición de un aserto a una teoría puede invalidar conclusiones obtenidas anteriormente. El razonamiento no monotónico es apropiado en las siguientes cirscunstancias: - Cuando el conocimiento es incompleto, pues deben hacerse suposiciones por defecto

que pueden invalidarse cuando se disponga de más conocimiento. Veamos el siguiente ejemplo de razonamiento por defecto:

“Tití es un pájaro. Pedro dejó la ventana de la habitación abierta y Tití ha escapado. Tití no puede volar porque tiene las alas recortadas.” Inicialmente supusimos que:

[Tití es un pájaro ∧ no se sabe que no puede volar] ⇒ Tití puede volar

Inteligencia Artificial. -Formas de representación del conocimiento.

26

Por tanto, el conjunto de creencias hasta este momento es: Tití es un pájaro ∀(x)[(x es un pájaro ∧ no se sabe que x no puede volar) ⇒ x puede volar] Tití puede volar

Al informarse de que Tití no puede volar, se rectifica la creencia obtenida. El conjunto de creencias ahora es:

Tití es un pájaro ∀(x) [x es un pájaro ∧ no se sabe que x no puede volar] ⇒ puede volar Tití no puede volar

- Cuando el universo del discurso está cambiante.

No se ocupa del razonamiento por defecto en presencia de conocimiento incompleto, sino del razonamiento con conocimiento no actualizado.

- En la resolución de problemas donde se realicen suposiciones temporales. En muchos problemas prácticos se hacen suposiciones temporales que le permiten al

hombre alcanzar una solución “posible”. Estas suposiciones serán validadas o anuladas posteriormente. Por ejemplo: para celebrar una reunión con los estudiantes, primero se hace una suposición de un día y una sesión. Todas las consecuencias que se derivarían de la realización de la reunión ese día se suponen temporalmente, hasta determinar la hora concreta. Luego, se comprueba el horario de los estudiantes y de los que deben asistir a dicha reunión para determinar la hora.

Como hemos visto en esta sección, los métodos para representar el conocimiento usando los formalismos lógicos son muy útiles para representar hechos simples. Su principal ventaja es que pueden combinarse con mecanismos de inferencia potentes y sencillos, tales como la deducción y resolución, que facilitan el razonamiento con los hechos. Pero los objetos de esas representaciones son tan simples que no pueden describir con facilidad la mayor parte de la compleja estructura del mundo. En la resolución de problemas cuya naturaleza es deductiva es aconsejable usar la lógica simbólica. Sin embargo, la mayoría de los problemas reales son de naturaleza inductiva. Es necesario entonces, estudiar otras F.R.C más complejas.

2.4. Redes semánticas.

Las redes semánticas fueron introducidas por Ross Quillian (1968) en su tesis de Ph.D. Se diseñaron originalmente como una forma de representar los significados de las palabras en idioma inglés.

2.4.1. Planteamiento de un problema.

En la práctica, nos encontramos con problemas donde es necesario representar el conocimiento a través de los conceptos, sus rasgos y las relaciones que pueden establecerse entre ellos. Por ejemplo, ¿cómo representar todo el conocimiento acerca del concepto de silla?. El concepto de silla está caracterizado por un conjunto de rasgos como que es un mueble, que tiene asiento, etc. Además existen otros conceptos que pueden considerarse como especializaciones de él, tal es el caso de una silla concreta, la cual a su vez tiene

Inteligencia Artificial. -Formas de representación del conocimiento.

27

propietario, color, está cubierta de un determinado material y posee, además, los rasgos del concepto de silla. Esta relación entre conceptos puede complicarse tanto como se desee ampliar el dominio de conocimiento y no constituye una organización jerárquica. El problema radica entonces, en definir una F.R.C. adecuada para este tipo de conocimiento.

2.4.2. Definición.

Una red semántica consiste de puntos llamados nodos, conectados por enlaces llamados arcos que describen las relaciones entre los nodos. Los nodos representan objetos, conceptos, eventos, acciones o atributos. Los arcos pueden definirse de varias formas, dependiendo de la clase de conocimiento representado, por ejemplo, arcos comunes usados para representar jerarquías son esun y partede. La forma de representar una red semántica es un grafo orientado cuyos arcos son etiqueteados con los nombres de las relaciones. Veamos en la figura 2.3 la red semántica que describe el problema inicial.

Fig. 2.3. Red semántica que describe el concepto de silla.

Analicemos otro ejemplo. Supongamos que tenemos el siguiente conocimiento expresado a través de los siguientes hechos:

1) Víctor es un pingüino. 2) Todos los pingüinos son pájaros. 3) Todos los pájaros son animales. 4) Todos los mamíferos son animales. 5) Todos los perros son mamíferos. 6) Sultán es un sato. 7) Todos los satos son perros. 8) Una raza de perro es el pastor. 9) A Víctor le agrada Sultán y a Sultán le agrada Víctor. 10) Un pájaro puede volar. 11) Un perro puede correr.

Mueble

Silla Persona Asiento

es_un

es_parte_de

Mi-silla Yo propietario

es_un

Cuero

Marrón

color

instancia

cubierta_de

Inteligencia Artificial. -Formas de representación del conocimiento.

28

Como podemos ver los hechos 2, 3, 4, 5, 7 y 8 encierran relaciones del tipo esun. Los hechos 10 y 11 son relaciones de propiedad. El 1 y el 6 reflejan instancias de un concepto y el hecho 9 encierra relaciones entre individuos. Vea la red semántica que representa este conocimiento en la figura 2.4.

Fig. 2.4. Un ejemplo de red semántica

Como hemos visto todo programa Prolog compuesto por hechos puede ser llevado a una red semántica. Luego veremos cómo llevar las reglas (con cuantificadores).

2.4.3. Características generales. La representación del conocimiento en una red semántica es tan fascinante y potente como compleja. Las redes se caracterizan por:

- El conocimiento se representa por nodos en un grafo no jerárquico, por lo que todos los nodos tienen la misma importancia y cualquiera puede ser usado como punto de partida.

- Los nodos están organizados de modo que tipos similares de conocimiento son adyacentes.

- Las relaciones establecidas por los conceptos de un tipo dado son heredadas a través de la jerarquía por todos los subtipos. Ej: en la red semántica de la fig. 2.5, elefante hereda características de animal superior (es un animal, tiene cabeza y patas).

Una vez construida la red semántica, ella puede ser usada en la solución de problemas. Por ejemplo, la red semántica de la figura 2.5 puede responder a las siguientes preguntas: - ¿Puede moverse Fred?

puede

Animal

es_un

Pájaro Volar

Pingüino

es_un

Mamíferopuede

es_un

Perro

agrada

Correr

agrada

es_un

Pastor

Sultán

instancia

instancia

Sato Victor

es_un es_un

Inteligencia Artificial. -Formas de representación del conocimiento.

29

- ¿Quién tiene patrón de color rayado? - ¿Qué color tiene Jumbo? - ¿Tiene patas la ameba?

Fig. 2.5. Un ejemplo de red semántica.

Cada transición de un nodo a otro incrementa la similaridad, en cada paso de un nodo a otro se analizan todos los nodos adyacentes para ver cual ofrece más evidencia. La mayoría de los modelos de redes usan una lista de índices que ayudan a seleccionar el nodo de entrada en la red para cada situación. En el peor caso la búsqueda en la red degenera como si se buscara en una lista. Las relaciones es-un, parte-de, y otras permiten heredar información. Un sistema de redes semánticas típico tiene un conjunto de procedimientos para la manipulación de las estructuras (añadir y eliminar nodos y enlaces), y para atravesar el grafo en varias formas. También permite al usuario construir su propio procedimiento de búsqueda. La significación de representar una red semántica como un grafo etiquetado dirigido es que permite realizar ciertas clases de inferencias usando simplemente técnicas de búsqueda en grafos; esta representación permite otras clases de inferencias, como por ejemplo, preguntar cómo están relacionados dos nodos y responder encontrando un camino en el grafo entre ellos. Un concepto importante es la herencia de relaciones. Asumamos que la relación R se cumple para los objetos A y B (A R B) y la relación S para (B S C). ¿Hay relación entre los objetos A y C? Esto dependerá de lo que representen las relaciones R y S. Ej: Se puede inferir que: Fred tiene cabeza pues Fred instancia elefante es_un animal_superior tiene cabeza.

Ser viviente

es_un

Animal Ameba

Tigre

es_un Moverse puede

es_un

es_un

Animal Superior

tiene

tiene

cabeza

patas

cerebro tiene

color

rayado es_un

Elefante Gris color

Jumbo Fred

instancia instancia

Inteligencia Artificial. -Formas de representación del conocimiento.

30

Pero: Sam casado con Kare es una mujer. Un caso particular de herencia de relaciones es la transitividad.

Si A R B R C ¿Se cumple A R C? No. Ej: Sam le_gusta Kare le_gusta Pepe. Aspectos a tener en cuenta en el razonamiento. - Procedimiento de añadir y eliminar nodos y arcos. - Mecanismo de recorrido en el grafo teniendo en cuenta las relaciones heredadas y

transitivas. - Selección del nodo punto de partida. La cantidad de detalle que puede incluir la red depende del tipo de problema que debe ser resuelto. Si se requiere un estudio más detallado puede agregarse a la red más información, mediante la inclusión de nuevos arcos o nodos. Un ejemplo puede verlo en la figura 2.6.

Fig. 2.6. Un ejemplo de red semántica ampliada.

Hay que tener cuidado cuando un objeto hereda propiedades de varias rutas. Ej de red conflictiva.

Fig. 2.7. Un ejemplo de red semántica conflictiva. Sin información adicional no hay manera de resolver el conflicto. ¿Yogui habla o hace rugidos? En la próxima sección estudiaremos cómo implementar una red semántica para que pueda responder a las preguntas anteriores.

2.4.4. Redes semánticas particionadas.

Animal Superior Posee

Piel

Cabeza

Patas

Personaje animado Español

Yogui oso rugidos

es_un

es_un

vocalización

vocalización

Inteligencia Artificial. -Formas de representación del conocimiento.

31

La representación del conocimiento usando redes semánticas presenta el problema de cómo manejar la cuantificación. Una forma de resolverlo es particionar la red semántica en espacios, cada uno de los cuales se corresponde con el ambiente de una o varias variables. Gary Hendrix, introduce el concepto de red semántica particionada agrupando conjuntos de nodos y arcos que especifican espacios que diferencian las relaciones existentes entre los objetos. Los nodos pueden estar relacionados aún cuando pertenezcan a espacios diferentes. Supongamos se tiene el siguiente conocimiento:

“Sultán es un perro y Pedro, un cartero. Sultán mordió a Pedro”. y se quiere representar en una red semántica. Esto puede hacerse usando una única red (figura 2.8). El nodo M representa una mordedura concreta.

Fig. 2.8. Red semántica correspondiente a “Sultán mordió a Pedro”.

Supongamos ahora que se tiene lo siguiente: “Todos los perros han mordido a Pedro”.

En el cálculo de predicados puede expresarse así:

∀(P)[Perro(P) ⇒ Mordedura(P,Pedro)]

Para representar este hecho, necesitamos cuantificar universalmente la variable P. Esto puede hacerse usando la red semántica particionada mostrada en la figura 2.9. El nodo E es un elemento del conjunto de declaraciones generales DG. En este conjunto cada elemento tiene como atributos: FORMA que indica la relación afirmada y tantas conexiones como variables cuantificadas universalmente existan. Las restantes variables que se encuentran en la FORMA se suponen cuantificadas existencialmente.

Fig. 2.9. Red semántica particionada correspondiente a “Todos los perros han mordido a Pedro.”

Perro Mordedura Cartero

Sultán Pedro M agresor víctima

instancia instancia instancia

FORMA

DG Perro Mordedura Cartero

instancia instancia instancia instancia

Pedro

P M E agresor víctima

Inteligencia Artificial. -Formas de representación del conocimiento.

32

Si tenemos: “Todos los perros han mordido a un cartero”. o su fórmula equivalente: ∀(P) [Perro(P) ⇒ ∃(C) (Cartero(C) ∧ Mordedura(P,C))] se obtendría la red semántica particionada de la figura 2.10. Note cómo el cartero C se incluye ahora en FORMA, pues en este caso no es un cartero concreto sino que es una variable cuantificada existencialmente. Las redes semánticas particionadas se usan, además de para representar la cuantificación, en la comprensión del lenguaje natural. Fig. 2.10. Red semántica particionada correspondiente a “Todos los perros han

mordido a un cartero”.

2.4.5. Manipulación del conocimiento representado. Naturalmente, las redes semánticas no pueden representarse en la forma vista anteriormente en el interior de un programa. En vez de ello, se representan usualmente por medio de alguna estructura de memoria atributo-valor. Por ejemplo en el lenguaje PROLOG se representan las relaciones como predicados binarios: esun(silla,mueble), cubiertade(misilla,cuero), etc. Una vez expresado el conocimiento como un programa PROLOG, se usan el principio de resolución SLD y la búsqueda primero en profundidad, propios del lenguaje, para resolver problemas usando dicho conocimiento. A su vez, el conocimiento expresado en los predicados de un programa PROLOG puede representarse por medio de redes semánticas. Ejemplos:

- hombre(marcos). puede escribirse como esun(marcos,hombre) y representarse como tal.

- tanteo(rojo, azul, [17,3]). puede lograrse creando un nodo adicional J para representar un juego específico y relacionando con él a cada uno de los tres elementos del hecho PROLOG. (Ver figura 2.11).

DG Perro Mordedura Cartero

instancia instancia instancia instancia

Pedro P M E agresor víctima

Inteligencia Artificial. -Formas de representación del conocimiento.

33

Fig. 2.11. Representación de un hecho PROLOG mediante una red semántica Si quisiéramos representar una red semántica en LISP, lo haríamos fácilmente mediante el uso de las listas de propiedades de los átomos, donde cada nodo sería un átomo, los arcos serían propiedades y los nodos en los otros extremos de los arcos serían los valores. Podríamos representar en LISP la red semántica de la figura 2.3 como se muestra en la figura 2.12.

ATOMO LISTA DE PROPIEDADES Silla ((esun Mueble)) Mi_silla ((esun Silla) (color Marrón) (cubiertade Cuero) (propietario Yo)) Yo ((esun Persona)) Asiento ((espartede Silla)) Fig. 2.12. Representación en LISP de una red semántica.

Un sistema basado en redes semánticas debe tener un conjunto de procedimientos para manipular las estructuras de datos (añadir nuevos nodos y arcos) y para extraer información (recorrido y búsqueda). Este sistema debe ser capaz de contestar preguntas como: si una clase es subclase de otra (ejemplo:¿un perro es un pájaro?), si un objeto dado posee cierta propiedad (ejemplo:¿puede un pingüino volar?), permitiendo, por supuesto, la herencia de propiedades. En un lenguaje procedural, para poder contestar a estas preguntas, es necesario implementar la red semántica en una estructura de datos que permita el acceso a los nodos y el análisis de sus arcos. Pudiera pensarse en usar listas enlazadas, arreglos, árboles de búsqueda balanceados, pero éstos no nos permitirían el acceso directo a los nodos, lo que restaría eficiencia. Esta dificultad pudiera eliminarse usando una tabla hash cuyas entradas serían los nodos de la red. Estos nodos podrían ser, por ejemplo, clases de objetos compuestos del nombre del nodo y de un apuntador a la lista de sus arcos. Esta lista puede estar formada por objetos consistentes en el nombre de la relación, el apuntador al nodo relacionado mediante ella y el apuntador al próximo elemento de la lista. Conjuntamente con esto, sería necesario implementar la función hash y métodos para resolver las colisiones entre los nodos en la tabla. Para contestar a una pregunta, se determinaría el nodo a tomar como punto de partida y se explorarían sus enlaces para ver si se tiene conocimiento de la pregunta en cuestión. Una propuesta de declaraciones en Turbo Pascal para las estructuras de datos sería:

Rojo

Azul tanteo equipo

visitante

es_un

Juego

Juego_A 17-3

equipo_local

Inteligencia Artificial. -Formas de representación del conocimiento.

34

const Maxnodos = 100; {Máximo número de nodos permitidos} type IndiceNodo = 1..MaxNodos; Cadena30 = string[30]; PNodo = ^TNodo; PArco = ^TArco; TArco = object nombre: Cadena30; nodo : PNodo; prox : PArco; {...} end; TNodo = object nomobj: Cadena30; arcos : PArco; procedure explora; {Explora sus arcos} {...} end; THash = object tabla: array[IndiceNodo] of PNodo; function indhash(nombre:Cadena30):PNodo; {Devuelve el apuntador al nodo en la tabla hash sin colisión} procedure insertanodo(nodo:PNodo); {...} end;

Ahora tenemos el siguiente problema: ¿cómo podemos responder si un objeto es subclase de otro?, o sea, ¿cómo podemos heredar propiedades?. Si entre los nodos hay un arco directo no hay problema. Si no existiera dicho arco, hay que implementar un procedimiento de búsqueda a través de esa relación. Por ejemplo, para determinar si Nodo1 está relacionado mediante R con Nodo2, siendo R una relación heredable:

1) Generar una cola formada por Nodo1 y todos los nodos relacionados con él mediante R.

2) Si la cola está vacía entonces TERMINAR y RETORNAR NO. 3) a) Nodo:= primer nodo de la cola. b) Remover a Nodo de la cola. c) Si Nodo = Nodo2 entonces TERMINAR y RETORNAR SI. d) Adicionar a la cola todos los nodos relacionados mediante R con No-do. e) Ir al paso 2).

2.4.6. Criterios sobre el dominio de aplicación. En sus inicios (finales de los años 50 e inicios de los 60), las redes semánticas fueron utilizadas en sistemas de traducción automática. El primero de ellos, se desarrolló en la Universidad de Cambridge donde se definió un diccionario conceptual de 15000 entradas a partir de 100 tipos de conceptos primitivos. Las redes semánticas han sido utilizadas además, en: En el procesamiento (comprensión) del lenguaje natural.

Inteligencia Artificial. -Formas de representación del conocimiento.

35

Las redes semánticas son útiles para representar los contenidos de una oración declarativa típica. Ej: Jonh le dio el libro a Mary.

agente beneficiario Ej: John es más alto que Bill y mide 72 cm.

altura altura

mayor La programación y aprendizaje automáticos. Para sintetizar respuestas. Memoria asociativa

Se han empleado, además, en programas de aplicación de la I.A., tales como, PROSPECTOR, el cual es un sistema experto en Geología Mineral. Por sus características, las redes semánticas han sido propuestas como un mecanismo para simular algunas de las propiedades asociativas de la memoria humana.

2.5. Marcos o armazones (Frames). La representación del conocimiento mediante marcos fue propuesta por Marvin Minsky en 1974 en su artículo “A framework for representing knowledge”.

2.5.1. Planteamiento de un problema.

Dar

John

Mary

Acción

L

Libro representa el libro concreto dado a Mary

John Bill

A1 A2

72

Inteligencia Artificial. -Formas de representación del conocimiento.

36

En un taller de reparación de automóviles se lleva un control de los vehículos que asisten al taller. La información que se almacena sobre cada vehículo incluye el tipo de vehículo, su chapa, el tipo de motor (gasolina o petróleo), la provincia, el tipo de propiedad (privada o estatal), la cantidad de ruedas, el número de veces que ha asistido al taller y la fecha de la última reparación. Se desea automatizar la manipulación de esta información, por lo que se hace necesario almacenarla de alguna manera. La forma más fácil es hacerlo mediante un fichero, pero esto presenta las siguientes deficiencias:

- En muchos artículos algunos campos tienen igual valor. Ejemplo: en el atributo número de ruedas siempre se tienen los valores 2, 3, 4, 6, 8, 10 ó 12, y el tipo de motor tiene sólo dos valores posibles.

- Existen campos redundantes, pues ellos pueden ser calculados a partir de otros. Ejemplo: la provincia puede ser determinada a partir de la chapa.

- No es posible definir en el mismo fichero, conjuntamente con el campo, la validación del mismo. Ejemplo: a partir del tipo de motor y la fecha en que el taller comenzó a dar mantenimiento a esa clase de motor, se pudiera validar la fecha de la última reparación.

Se necesita una F.R.C. que sea capaz de:

- reducir la cantidad de información almacenada (por ejemplo para este caso: agrupar los vehículos de acuerdo a los valores posibles para algunos atributos),

- validar el valor de los atributos, - calcular dinámicamente el valor de un atributo cuando éste se necesite, - modificar directamente el valor de un atributo cuando se asigne un nuevo valor

a otro (por ejemplo, cuando se actualice el valor de la última fecha de reparación, se debe incrementar automáticamente el número de veces que el vehículo ha sido atendido),

- etc. Hasta el momento, ninguna de las F.R.C. estudiadas cumple estos requisitos.

2.5.2. Definición. Un marco es una estructura de datos compleja que contiene información acerca de un objeto. La información almacenada en el marco se distribuye en diferentes campos llamados ranuras o aspectos y cada una de ellas contiene la información sobre un atributo del objeto o un apuntador a otro marco.

Ejemplos: 1- Marco: Empleado Nombre Edad (entre 16 y 65) Piernas (2 por defecto) Ocupación 2- Marco: Hombre de familia Nombre Edad (entre 16 y 120) Estado civil (genérico: casado)

Inteligencia Artificial. -Formas de representación del conocimiento.

37

Cónyuge (Apuntador al marco Mujer de familia)

Se denomina ejemplificación de un marco a uno con sus ranuras llenas.

Ejemplos de ejemplificaciones de los marcos anteriores son: 1- Marco: Empleado Nombre: Jesús López Edad: 32 Piernas: 2 Ocupación: Programador 2- Marco: Hombre de familia Nombre: Jesús López Edad: 32 Estado civil: casado Cónyuge: (Apuntador a la ejemplificación para Mujer de familia de Mariela Pérez)

Podemos ver entonces al marco como una clase de entidades y a una ejemplificación de él como una entidad particular (objeto). Note que una manera natural de programar los marcos es a través de objetos. Ralación Frame - Programación Orientada a Objetos (POO): Tantos los marcos como la POO proponen organizar el conocimiento en términos de objetos, pero en los marcos se hace más énfasis en la representación (las ranuras y sus facetas) mientras que la POO hace un mayor énfasis en el cálculo (pase de mensajes). La representación orientada a objetos se distingue también por el hecho de que los objetos se comunican entre sí a través de los mensajes. Los dos formalismos pueden ser combinados en el sentido que un frame puede ser visto como una clase de objeto en el cual las ranuras son tópicos acerca de los que se pueden enviar mensajes y las facetas son tipos de mensajes (el contenido de una faceta es un método para responder el mensaje).

A cada ranura se le puede asociar varios tipos de información, llamados facetas de la ranura, entre las cuales están:

Valor: almacena el valor para la ranura. Ejemplo: la ranura Nombre de los marcos Empleado y Hombre de familia. Valor por defecto: contiene un valor inicial o valores usados comúnmente para la faceta Valor. Ejemplo: la mayoría de las personas empleadas poseen dos piernas y salvo se conozca otra cosa, se puede pensar como normal tal afirmación. Usualmente se utilizan valores por defecto cuando no se dispone de conocimiento de lo contrario. En ocasiones el valor por defecto se puede usar como el valor inicial de la faceta Valor. Genérico: Es una propiedad asociada a una clase de entidades, de tal forma que cada entidad de la clase posee esa propiedad. Ejemplo: Casado en el marco Hombre de familia. Restricciones: contiene un conjunto de expresiones lógicas que tienen que ser verdaderas para el valor almacenado en la faceta Valor. Ejemplo: la ranura Edad en el marco Empleado. Las restricciones a analizar pueden ser más complejas y pueden referirse a valores de otras ranuras del marco actual o incluso de otro marco. Ejemplo: supongamos que al marco Empleado le agregamos una ranura Sexo y que

Inteligencia Artificial. -Formas de representación del conocimiento.

38

hacemos las consideraciones laborales en nuestro país. La condición de la edad va a depender, entonces, de si es hombre o mujer el empleado. Procedimiento: contiene un procedimiento para calcular el valor que debe ser almacenado en la faceta Valor. Demon: contiene un procedimiento que se ejecuta automáticamente cuando se cambia el valor almacenado en la faceta Valor. Es importante pues permite mantener la consistencia interna de la información. Ejemplos:

- Un demon asociado a la ranura Edad del marco Empleado que se activará si se trata de rellenar con un valor fuera del rango de 16 a 65. El demon puede pedir explicación al usuario de la causa de la violación y actuar según la explicación dada.

- Al rellenarse la ranura de Estado civil en Hombre de familia con el valor casado, se puede activar un demon que ejemplifique otro marco de Mujer de familia para el cónyuge.

Tanto los procedimientos como los demons son escritos, normalmente, como programas en lenguajes procedurales de alto nivel. Explicación: almacena documentación sobre la ranura.

Hemos mencionado 7 facetas de una ranura. No necesariamente, cada ranura debe tenerlas todas. Eso depende de cada problema en particular. En general, se puede plantear que la información almacenada usando como F.R.C. a los marcos tiene cuatro niveles de detalle: el marco, las ranuras del marco, las facetas de cada ranura y el valor almacenado en cada faceta.

2.5.3. Características generales. Los marcos pueden ser organizados en una jerarquía, para lo cual es suficiente incluir en ellos una o más ranuras que contengan un enlace al marco padre en la jerarquía, del cual él es una instancia. Una manera sencilla de lograr este enlace es colocar el nombre del marco padre en una ranura que podemos llamar, por ejemplo, Padre. Cada marco padre define una clase. Todos los marcos de una clase comparten la información almacenada en el marco padre. Esta información común es almacenada en ranuras llamadas ranuras propias del marco. Además, cada clase puede especificar un conjunto de ranuras que tienen que ser evaluadas en cada instancia de la clase. A ellas se les denomina ranuras miembros. Esta estructura jerárquica permite compartir información a través de la herencia. Un ejemplo de una jerarquía de marcos puede verse en la figura 2.11. El marco Mesa hereda todas las características contenidas en las ranuras del marco Mueble y además tiene sus características propias. Lo mismo ocurre con el marco Mi buró. Note cómo la ranura Padre sirve para indicar el marco padre en la jerarquía.

A través del establecimiento de una jerarquía de marcos es que se puede compartir información por varias entidades, sin necesidad de tener que repetirla.

Inteligencia Artificial. -Formas de representación del conocimiento.

39

Frame: mueble

Frame: mesa

Frame: mi buró

Fig. 2.11. Un ejemplo de una jerarquía de marcos.

2.5.4. Manipulación del conocimiento representado. En muchas aplicaciones que utilizan marcos, el tipo de una entidad no siempre es conocido. Por ejemplo: podríamos conocer el nombre, edad y disposición de una familia, pero ignorar si la entidad corresponde a un padre de familia, madre de familia, soltero o soltera. El sistema debe tratar entonces, de encontrar el marco que empareje con las propiedades conocidas de esa entidad. A este proceso de búsqueda se le denomina emparejamiento. Los sistemas de marcos se utilizan a menudo como componentes de sistemas de reconocimiento de patrones. Ej: un sistema de frame podría constar de un conjunto de frames para representar cada una de las letras del alfabeto, descritas por la cantidad de líneas rectas, arcos, esquinas, etc. El reconocimiento de patrones implica el empare-jamiento de un conjunto de valores asociados a una entidad con los valores requeridos para rellenar los slots de un marco. En algunos casos puede no encontrarse un emparejamiento exacto. Los valores de algunas ranuras pueden no conocerse o estar fuera de los límites establecidos. En estos casos es necesario encontrar el mejor emparejamiento. La selección de un marco candidato se realiza de varias formas: de manera arbitraria, comenzando por la parte superior de la jerarquía, utilizando información contextual, etc. Cuando se ha seleccionado el candidato, el sistema se ejemplifica rellenando el mayor número posible de ranuras, usando la información conocida. Pudiera incluso pedirse infomación adicional para intentar rellenar más ranuras. Posteriormente, se calcula un valor de emparejamiento que indica su grado de idoneidad. Podría ser, por ejemplo, 1 si se han llenado todas las ranuras, 0.5 para la mitad o el grado de idoneidad podría calcularse según la importancia de la ranura. Si este valor calculado es suficientemente alto para la aplicación concreta (mayor que cierto valor prefijado para dicha aplicación), el sistema no seguirá buscando más marcos candidatos. De lo contrario, continúa la búsqueda de un mejor candidato.

Clase: mueble

clase: mesa

Inteligencia Artificial. -Formas de representación del conocimiento.

40

Los sistemas de marcos deberían tener las siguientes propiedades deseables: - Ser capaz de identificar eficazmente los predecesores y la descendencia de un marco

dado. - Permitir al usuario entrar fácilmente un valor de cualquier marco en todo momento. - Iniciar, donde sea apropiado, la ejemplificación de otros marcos. Por ejemplo: al

ejemplificar el marco Persona con el valor casado para la ranura Estado civil, debe iniciarse la ejemplificación del marco para el cónyuge.

- Responder rápidamente ante una inconsistencia. - Permitir el razonamiento analógico. - Permitir al usuario fijar el valor de emparejamiento deseado.

Aspectos en el razonamiento - Búsquedas de los frames candidatos. - Función para determinar el grado de emparejamiento. - Selección del frame de mayor emparejamiento. Una posible implementación de marcos en LISP puede desarrollarse a través de las listas de asociación. La ventaja es que ellas pueden ser fácilmente extendibles usando las primitivas CONS y APPEND. Anidando listas de asociación obtenemos una posible forma de representar los marcos, según se muestra en la figura 2.12. Note que en el nivel superior aparece el nombre del marco y sus ranuras. Cada ranura, a su vez, tiene la forma de una lista de asociación, donde la clave es el nombre de la ranura y los valores de asociación son las facetas, las cuales vuelven a tener la misma estructura, esta vez con clave nombre de la faceta y, como valores de asociación, los valores de la faceta.

( <nombmarco> (<ranura1> (<faceta1> <valor1> <valor2> ... ) (<faceta2> <valor1> <valor2> ... ) ... ) (<ranura2> (<faceta1> <valor1> <valor2> ... ) (<faceta2> <valor1> <valor2> ... ) ... ) ... )

Fig. 2.12. Una implementación en LISP de los marcos.

En la figura 2.13 se muestra la ejemplificación del marco Empleado usando la implementación en LISP explicada anteriormente.

( Jesus-Lopez ( Es-un (Valor Empleado) ) ( Nombre (Valor Jesus Lopez) ) ( Edad (Valor 32)

Inteligencia Artificial. -Formas de representación del conocimiento.

41

(Condicion CHEQUEO-EDAD) ) ; CHEQUEO-EDAD es una función que chequea el rango de la edad.

( Piernas (Valor-por-defecto 2) ) ( Ocupacion (Valor Programador) ) )

Fig. 2.13. Ejemplificación en LISP del marco Empleado.

La implementación de las funciones necesarias para la manipulación del conocimiento representado en los marcos, según esta propuesta, debe incluir el acceso a los valores de las ranuras, el manejo de cada tipo de faceta, la inclusión de nuevos datos, la herencia de propiedades, entre otras. Para un análisis más detallado de estas implementaciones puede consultar [GCL84]. Si quisiéramos implementar los marcos en un lenguaje procedural como Turbo Pascal podríamos usar las estructuras de datos siguientes:

const MaxRanuras = 50; {Máximo número de ranuras permitidas} type IndiceRanuras = 1..MaxRanuras; TipoFaceta = (valordefecto, generico, condicion, proced, demons, explicacion); Cadena30 = string[30]; PFaceta = ^TFaceta; TFaceta = object prox: PFaceta; case tipo: TipoFaceta of valordefecto,generico: (valini:TipoDato); condicion,proced,demons: (funcion:ApTipoFunc); explicacion: (expl:string); {...} end; PRanura = ^TRanura; TRanura = object nombre: Cadena30; valor: TipoDato; facetas: PFaceta; {métodos que permitan llenar la ranura, tomar el valor de una ranura, asignarle facetas, entre otros} end; PMarco = ^TMarco; TMarco = object nombre: Cadena30; ranuras: array[IndiceRanuras] of PRanura; procedure insertaranura(nomb:Cadena30); function devuelveranura(indice:IndiceRanura):PRanura; {...} end; TipoDato es un objeto abstracto que representa el tipo de dato del valor de una ranura y ApTipoFunc es un puntero a una función o procedimiento, en dependencia de los requerimientos de la aplicación concreta.

Inteligencia Artificial. -Formas de representación del conocimiento.

42

Un sistema de marcos organizado jerárquicamente debe permitir la herencia de propiedades. La herencia es un proceso de inferencia que permite deducir información implícita, que no está explícitamente representada en el marco en cuestión. Supongamos que se tiene un objeto Obj y el nombre de una propiedad (ranura) P y se desea saber el valor de esa propiedad o error si no la tiene. Para ello, podríamos realizar lo siguiente:

1) Generar una cola compuesta por Obj. 2) Si la cola está vacía, entonces TERMINAR y RETORNAR ERROR. 3) a) X:= primer elemento de la cola. b) Remover a X de la cola.

c) Si X tiene una ranura de nombre P, entonces TERMINAR y RETORNAR EL VALOR.

d) Adicionar a la cola todos los objetos que son padres de X en la jerarquía. e) Ir al paso 2).

2.5.5. Criterios sobre el dominio de aplicación. Los frames deben ser usados donde sea necesario tener descripciones estructurales complejas para describir adecuadamente el dominio de la aplicación, pues un frame ofrece una representación estructurada de un objeto o una clase de objetos. Los frames son buenos para almacenar el conocimiento sobre los elementos de un dominio de aplicación que tienen una descripción estereotipada. Los frames son especialmente fuertes para permitir que la información común se almacene de modo compartido para múltiples frames. Sin embargo, ellos no ofrecen directamente facilidades para describir cómo se usará el conocimiento almacenado. Cuando se tiene un conocimiento jerárquico, la FRC más adecuada son los frames por permitir la herencia de propiedades. Los marcos son útiles para:

- Inferir hechos no observados sobre situaciones nuevas. Cuando se hace un emparejamiento entre una entidad y un marco, el sistema es capaz de inferir la existencia de una entidad del tipo representado por ese marco, conjuntamente con sus características, incluyendo tanto las propiedades genéricas como los valores por defecto. Por ejemplo: un programa con acceso a un marco Habitación podría inferir la existencia en ella de una puerta, aunque no se halla hablado explícitamente de ella, pues este hecho está incluido en ese marco. La certidumbre con la que esta inferencia puede hacerse, está relacionada con el valor de emparejamiento calculado, como se explicó en la sección 2.5.4.

- Verificación de inconsistencias y omisiones en un cuerpo de conocimiento. Un ejemplo de verificación de inconsistencias es el siguiente: si se dice que una persona es un empleado, pero se sabe que tiene 3 años de edad, entonces esta información puede utilizarse para señalar la posibilidad de un error, pues no se corresponde con las restricciones para la ranura Edad del marco Empleado. Por otro lado, si una situación concreta, que parece corresponder en casi todas las ranuras con un marco dado, se aleja en una de ellas, es probable que corresponda a un aspecto importante y deberíamos actuar ante ella. Ejemplo: si se supone que una silla tiene 4 patas y una silla concreta tiene sólo 3, la misma podría necesitar un arreglo.

Inteligencia Artificial. -Formas de representación del conocimiento.

43

- Realizar inferencias por analogía. Ejemplo: si se ha dicho al sistema que “la persona Pepe es como una concretera” y la ejemplificación de la concretera en el marco Vehículo tiene en la ranura del peso un valor muy alto, entonces el sistema puede utilizar un razonamiento analógico y colocar un valor relativamente alto en la ranura del peso del marco Persona cuando se ejemplifique para Pepe.

Los marcos tienen las siguientes ventajas:

- El agrupamiento de propiedades en un conjunto de entidades se realiza de forma natural, en el sentido de que las personas están familiarizadas con este enfoque.

- La estructura en marcos permite realizar una taxonomía del conocimiento. - Incluyen el tratamiento de valores por defecto y propiedades genéricas. - Se puede representar fácilmente tanto el conocimiento declarativo como el

procedural. - Permiten el razonamiento por analogía.

Sin embargo, tienen la desventaja de que, por el momento, no existe una teoría formal de marcos, lo que trae como consecuencia que los mecanismos para la inferencia y verificación de consistencia no se basan en una semántica bien definida. Esta F.R.C. ha sido utilizada en tareas de predicción y monitoreo. Por otro lado, ha dado buenos resultados en problemas de tipo constructivo tales como el diseño. Los sistemas de marcos se han utilizado, además, como componentes de sistemas de reconocimiento de patrones. Ejemplo: un sistema de marcos podría constar de un conjunto de marcos para representar cada una de las letras del alfabeto, descritas por la cantidad de líneas rectas, arcos, esquinas, etc. El reconocimiento de patrones implica, entonces, el emparejamiento de un conjunto de valores asociados a una entidad con los valores requeridos para rellenar las ranuras de un marco. Se han desarrollado lenguajes que permiten al usuario construir sistemas de marcos, tales como el FRL (Frame Representation Language) desarrollado por R.B. Roberts y P. Goldstein en el M.I.T. en 1977, el OWL (One World Language) desarrollado por Szolovits y otros en 1977 y el KRL (Knowledge Representation Language) desarrollado por Bobrow y Winograd en 1977 y 1979. Ejemplos de sistemas basados en marcos son: UNITS (Smith y Friedland, 1980) para su aplicación en biología molecular, el WHEEZE (Smith y Clayton, 1980) que realiza diagnósticos médicos de la función pulmonar y AM (Lenat, 1982) para crear automáticamente nuevos conceptos matemáticos. El dominio de aplicación del sistema AM son los números naturales y los teoremas, tales como la factorización y el producto de números primos. Cada marco del sistema representa un concepto matemático. La función principal de AM es completar las ranuras de los marcos para descubrir un nuevo concepto.

2.6. Guiones (Scripts). Los guiones fueron desarrollados por Schank y Abelson en 1977.

2.6.1. Planteamiento de un problema. Una gran parte del conocimiento usado en el proceso de razonamiento cotidiano es fijo y bien conocido. Este se basa en la exposición de situaciones típicas, ritualizadas e

Inteligencia Artificial. -Formas de representación del conocimiento.

44

invariantes, a lo que se le denomina conocimiento estereotipado. Un ejemplo de aplicación de este tipo de conocimiento, muy usado actualmente con el empleo de la computadora, es la generación de historietas, animados, etc. La actuación de cada uno de los sujetos que intervienen en estos materiales contiene un volumen considerable de este tipo de conocimiento. El problema radica, entonces, en la representación de todos los elementos (sujetos, objetos y acciones) que intervienen en estas secuencias de eventos estereotipados.

2.6.2. Definición. Los guiones son estructuras de datos complejas designadas para almacenar el conocimiento sobre una secuencia estereotipada de acciones. Este conocimiento abarca los sujetos que intervienen en estas acciones, los eventos que la forman, el orden en que se desarrollan éstos, el papel que desempeña cada sujeto en los eventos, etc. Un guión es una F.R.C. similar a un marco, pero en lugar de describir un objeto, el guión describe una secuencia de eventos o acontecimientos que ocurren comúnmente. Los guiones están compuestos por un conjunto de ranuras que contienen toda la información necesaria sobre las acciones que se describen. Estas ranuras son:

- Sitio (Setting): es el lugar donde ocurren los eventos. - Sujetos (Roles): son los sujetos que actúan en los eventos descritos. - Objetos (Props): son los objetos que aparecen en los eventos descritos. - Condiciones (Conditions): son las condiciones que deben cumplirse antes de que los eventos se realicen.

- Escenas (Scenes): describen los eventos. - Resultados (Results): son condiciones que existen una vez concluidos los eventos.

2.6.3. Características generales. El conocimiento estereotipado que se desea representar está compuesto por varias escenas. Se le denomina escena al conjunto de episodios que describe cómo ocurre una actividad importante. Un episodio es una cadena de eventos que, generalmente, ocurren en un mismo lugar y en una secuencia determinada. Por ejemplo: la escena “viajar en ómnibus” está compuesta por los episodios “montar al ómnibus”, “pagar el ómnibus” y “llegar al destino”. A su vez, el episodio “pagar el ómnibus” se compone de los eventos “sacar el dinero”, “echar el dinero en la alcancía” y “ubicarse en un lugar del ómnibus”. Un ejemplo de un guión típico es la visita a un restaurante.

GUION RESTAURANTE Sitio: Restaurante de autoservicio y su contorno. Sujetos: Cliente (C), Dependiente (D), Cajero (J). Objetos: Contadora, bandeja, comida, dinero. Condición: C tiene hambre, C tiene dinero. Escena 1: “Entrada al restaurante” - C entra al restaurante. - C se pone en cola ante la contadora. - C lee el menú en la pared y decide qué pedir.

Inteligencia Artificial. -Formas de representación del conocimiento.

45

El episodio “C entra al restaurante” puede estar formado por los eventos “abrir la puerta” y “dirigirse a la línea de servicio”. Escena 2: “Tomar los alimentos” - C toma la bandeja vacía. - C le pide a D los alimentos. - D coloca los alimentos en la bandeja. - C le paga a J. Escena 3: “Comer los alimentos” - C toma la bandeja con los alimentos. - C coloca la bandeja en una mesa vacía. - C ingiere los alimentos. Escena 4: “Salida del restaurante” - C se levanta de la mesa. - C abandona el restaurante. Resultados: C no tiene hambre, C tiene menos dinero, C está satisfecho o no, C

está demasiado lleno.

Otro Script puede representar las actividades que se desarrollan en el metro. GUIÓN METRO Sitio: El metro y su contorno. Sujetos: Patrón (PAT), Cajero (CAJ), Conductor (COND), Maquinista (MAQ),

Pasajero (PAS). Objetos: Moneda (MON), Boletín (BOL), Asiento en la estación (ASIE), Coche

(COCH), Tren, Asiento en el coche (ASIC). Condición: PAS necesita viajar o PAS quiere pasear. Las escenas pricipales del Script $METRO son: "entrar en la estación y esperar en la plataforma", "entrar al tren y llegar al destino" y "abandonar la estación de destino". Resultados: PAS llegó a su destino.

2.6.4. Manipulación del conocimiento representado. Un guión puede ser activado emparejando su nombre, sus condiciones, objetos, sitio o alguna combinación de ellos. A los guiones que sirven para invocar a otros guiones se les llama guiones iniciadores. Existen cuatro tipos de guiones iniciadores, los cuales son:

a) invocación por precondición (PH o Precondition Header): se invoca a un guión cuando se menciona una de sus condiciones. Ejemplo: La expresión “Juan tiene hambre” es un PH para el guión Restaurante.

b) invocación como instrumento (IH o Instrumental Header): cuando un guión puede ser interpretado como instrumento para invocar a otros guiones. Ejemplo: Del texto “Juan tomó el metro para ir al restaurante” se podrían invocar el guión Metro o el guión Restaurante. Primeramente se invocaría al guión Restaurante, pues el guión Metro constituye un IH, es decir, el metro es un instrumento para llegar al restaurante. Una estrategia apropiada es almacenar un puntero al guión Metro, de forma que pueda accederse a él más tarde si es necesario.

Inteligencia Artificial. -Formas de representación del conocimiento.

46

c) invocación como local (LH o Local Header): se invoca a un guión cuando se menciona el sitio donde ocurren sus acontecimientos. Ejemplo: La oración “Juan fue al cine Cuba” es un LH para invocar al guión Cine.

d) invocación directa (DH o Direct Header): se hace una alusión directa a un guión concreto. Es la primera que se chequea si ocurre. Ejemplo: En el texto “Juan realizó un paseo en metro” el guión Metro es un DH.

Al implementar las invocaciones es útil exigir que una situación concreta tenga, al menos, dos guiones iniciadores. Con esto se evitan invocaciones innecesarias. Los guiones pueden representarse a través de un sistema de marcos. El guión en sí, es un marco cuyas ranuras son el sitio, los sujetos, los objetos, las condiciones, las escenas y los resultados. Las ranuras correspondientes a las escenas contienen apuntadores a otros marcos, que recogen la información particular de las escenas.

2.6.5. Criterios sobre el dominio de aplicación. Los guiones están diseñados para almacenar situaciones en las cuales el comportamiento de los sujetos actuantes está tan estilizado, que raramente surge la necesidad de analizar un plan. Ellos son útiles para: - Predecir acontecimientos que no se han observado explícitamente.

Supongamos, por ejemplo, la siguiente historia: “Juan fue para el restaurante ano-che. Pidió un bistec. Al pagarlo, notó que se le acabó el dinero. Corrió a casa porque había empezado a llover”. Ante la pregunta ¿Cenó Juan anoche?, un programa, usando el guión Restaurante podría responder que sí. A pesar de no decirse explícitamente, esto es posible, pues todos los acontecimientos de la historia corresponden a la secuencia de eventos descritos por el guión y por tanto, el programa podría inferir que la secuencia entera ha ocurrido normalmente.

- Proporcionar una forma de construir una interpretación única y coherente a partir de una colección de observaciones. Consideremos, por ejemplo, la siguiente historia: “Juan salió a almorzar. Se puso en cola. El dependiente le dio los alimentos y él se fue para una mesa a comérselos”. Consideremos ahora la pregunta: ¿Por qué el dependiente le dio los alimentos?. El guión proporciona dos respuestas posibles:

⋅ Porque Juan le pidió los alimentos. (Se obtiene retrocediendo en la cadena causal de eventos del guión Restaurante).

⋅ Para que Juan le pagara los alimentos al cajero. (Se obtiene avanzando en la cadena causal para encontrar qué acontecimiento permite la acción del dependiente).

- Centrar la atención sobre acontecimientos inusuales. Consideremos, por ejemplo, la siguiente historia: “Juan fue a un restaurante. Se puso en cola. Miró el menú y no le gustó. Se puso bravo y salió”. La parte importante es el lugar donde esta historia se aparta de la secuencia de acontecimientos esperada en un restaurante. Juan no se puso bravo porque se puso en cola. Se puso bravo porque no le gustó el menú. Una vez que se interrumpe el guión, éste no puede usarse para predecir otros acontecimientos. Sin embargo, sí pueden predecirse los acontecidos antes de la interrupción.

Inteligencia Artificial. -Formas de representación del conocimiento.

47

Los guiones están designados para almacenar situaciones en las cuales el comportamiento de los sujetos actuantes está tan estilizado que raramente surge la necesidad de analizar un plan. Como los SCRIPTS permiten describir la secuencia de eventos que definen una situación estereotipada, ellos son útiles en la predicción de lo que sucederá en cierta situación aún sin observar algunos eventos. Esta F.R.C. ha sido utilizada en aplicaciones para el procesamiento del lenguaje natural y en la representación, procesamiento y generación de historietas. Ejemplos de sistemas basados en guiones son: SAM (Cullingford, 1981) para comprender artículos de periódicos e IPP (Lebowitz, 1980) orientado a los problemas de integración de analizadores sintácticos de lenguaje natural y a la actualización de la memoria.

2.7. Reglas de producción.

Las reglas de producción fueron introducidas en 1943 por Post. Las reglas de producción son la FRC más popular, y para la cual se han desarrollado más herramientas comerciales.

2.7.1. Planteamiento de un problema. Una de las principales preocupaciones del personal médico y paramédico en una Unidad de Cuidados Intensivos en cualquier hospital es el diagnóstico de enfermedades y la selección de la conducta terapéutica. La realización rápida y certera, tanto del diagnóstico como del tratamiento, implica, en primer lugar, la posible eliminación de la afección, con lo que se salvaría la vida del paciente y, por otro lado, la reducción de los costos en la utilización de los medicamentos y del equipamiento. Para la realización del diagnóstico y del tratamiento, el médico utiliza los conocimientos recogidos en los libros de Medicina y la experiencia adquirida en sus años de trabajo. Todo este conocimiento tiene la forma de condiciones necesarias para que esté presente una determinada enfermedad, así como para aplicar un tratamiento específico. El problema radica, entonces, en cómo representar este conocimiento.

2.7.2. Definición. Una regla de producción consta de un par ordenado (A,B), representado en el cálculo proposicional como A ⇒ B, donde A representa el antecedente y B el consecuente de la regla. Una regla de producción se interpreta de la siguiente manera: si se satisface el antecedente, entonces se cumple el consecuente. Esta manera de interpretar una regla permite considerarla como una unidad relativamente independiente de conocimiento. Las reglas de producción pueden adoptar varias formas:

a) Si condición P entonces conclusión C. b) Si situación S entonces acción A.

Inteligencia Artificial. -Formas de representación del conocimiento.

48

c) Si condición C1 entonces no condición C2.

Los antecedentes de las reglas, independientemente de la forma que éstas adopten, pueden ser simples o compuestos. Los compuestos se forman uniendo varias condiciones simples por medio de las conectivas lógicas. Algunos ejemplos de reglas de producción son:

- Si el paciente tiene manchas rojas y fiebre y está en edad escolar, entonces tiene varicela.

- Si un animal tiene los ojos enfocados hacia delante y tiene dientes y tiene garras, entonces es un carnívoro.

- Si el paciente tiene fiebre menor de 38° y no padece de gastritis, entonces adminístrele una aspirina.

- Si la temperatura del horno es mayor que 120°C o es menor que 70°C, entonces ajustar válvula de presión.

- Si el análisis de la glicemia es normal, entonces no hay riesgo de hipoglicemia. - Si el automóvil no arranca y llega combustible a los cilindros, entonces el sistema

de inyección no está funcionando correctamente.

Como puede verse, los dos primeros ejemplos corresponden al caso a), los ejemplos tercero y cuarto, corresponden al caso b) y los dos últimos, al caso c).

2.7.3 Criterios sobre el dominio de aplicación Las reglas pueden ser comprendidas fácilmente y tienen suficiente fuerza expresiva para: - representar reglas de inferencia dependientes del dominio - representar especificaciones de comportamiento - almacenar el conocimiento que pueda ser expresado como heurística experimental - expresar conocimiento orientado a un objetivo - expresar relaciones causales

Las reglas de producción han sido utilizadas con éxito como FRC para tareas de diagnóstico, diseño (configuración de computadoras), planificación, problemas deductivos, etc. Pero son inadecuadas para: definir términos, describir objetos y describir relaciones estáticas entre objetos.

2.7.4. Manipulación del conocimiento representado. Sistemas de producción En 1943, Post propuso los sistemas de producción (sistemas basados en reglas) como un mecanismo computacional de carácter general. Se usan para la manipulación del conocimiento representado en reglas de producción. Un S.P. consta de tres componentes básicos:

a) Base de datos (B.D.). Es la componente principal del S.P. Se utiliza como memoria de trabajo, pues en ella se almacenan los datos iniciales e intermedios, obtenidos de la aplicación de las reglas, para el logro del objetivo propuesto.

b) Conjunto de reglas. Las reglas de producción operan sobre la memoria de trabajo. Cada regla tiene una condición que es o no satisfecha por los datos de la B.D. Típicamente una regla

Inteligencia Artificial. -Formas de representación del conocimiento.

49

tiene una parte izquierda, la cual tiene que ser verdadera de acuerdo a la información existente en la memoria de trabajo para poder usarla, y una parte derecha, que realiza acciones o actúa sobre la memoria de trabajo, añadiendo nuevos hechos a la B.D. El que la parte izquierda de una regla se satisfaga puede establecerse por referencia a la B.D. y/o preguntando al usuario del sistema de producción.

c) Intérprete. Tiene como función llevar a cabo el proceso de inferencia. Este último comprende las siguientes tareas:

- Seleccionar las reglas a aplicar. - Verificar de entre estas reglas, cuáles se satisfacen. - Ejecutar las acciones especificadas por estas reglas.

En un esquema clásico se recorren todas las reglas buscando una a aplicar. Cuando se encuentra tal regla, se aplica, lo cual en muchos casos provoca cambios en la B.D. El conjunto de reglas se sigue recorriendo hasta que se soluciona el problema (se alcanza el objetivo) o no es posible invocar más reglas, constituyendo ésta la condición de terminación. El procedimiento básico de un intérprete puede ser representado así:

1) MEMORIA_TRAB := Base de Datos inicial 2) Mientras que MEMORIA_TRAB no satisfaga la condición de terminación:

a) Seleccionar alguna regla R, del conjunto de reglas que puedan ser aplicadas.

b) MEMORIA_TRAB:= MEMORIA_TRAB ∪ Resultados de aplicar R.

Para la selección de las reglas se usan varias estrategias: encadenamiento hacia delante, encadenamiento hacia atrás, entre otras, las cuales serán estudiadas en el capítulo siguiente. Se le llama estrategia de control a seleccionar las reglas y mantener la historia de la secuencia de reglas ya aplicadas. En la mayoría de las aplicaciones la información de que dispone la estrategia de control no es suficiente para permitir seleccionar la regla más apropiada. La dificultad surge cuando en el conjunto de reglas de producción hay más de una regla cuya precondición se satisface, en este caso ¿cuál se debe seleccionar?. A esto se le llama estrategia de resolución de conflictos. La estrategia de solución de conflictos puede usar diferentes criterios: usar la regla más específica, usar la regla más recientemente usada, usar la regla menos recientemente usada. Por ejemplo, suponga que se seleccionaron las siguientes reglas:

- Si una inversión desciende de su valor en libros, entonces congelar la inversión hasta su recuperación.

- Si una inversión desciende de su valor en libros, entonces liquidarla. Como se observa, los antecedentes de ambas son el mismo. La estrategia de resolución de conflictos debe decidir cuál de las dos aplicar. Existen diversas estrategias: establecer orden en los datos, clasificar las reglas por prioridad de ejecución, ejecutar la regla más recientemente instanciada o la última y aplicar meta-reglas. Métodos para la selección de reglas de producción: • Búsqueda a través de todas comparando los antecedentes.

Inteligencia Artificial. -Formas de representación del conocimiento.

50

Desventajas: Ineficiencia y número grande de reglas. • Indexación. Ej: en el ajedrez podría hacerse una tabla hash que agrupe con el mismo

índice todas las reglas que describan un aposición dada del tablero. Pero este emparejamiento sencillo le quita generalidad a las reglas.

Desventajas: Compromiso entre facilidad al escribir las reglas y emparejamiento simple. Ej: Prolog indexa las reglas por los predicados que contiene.

• Cuando en las reglas no aparecen descripciones exactas de situaciones particulares (emparejamiento con variables) se desata un complejo proceso de búsqueda. Ej: similitud estructural en las reglas: reglas que comparten antecedentes comunes se almacenan juntas y la unificación se hace una sola vez.

felino(x) ^ mamífero(x) ^ tiene_manchas(x) leopardo(x) felino(x) ^ mamífero(x) ^ tiene_rayas(x) tigre(x)

• Cuando las condiciones de una regla no están descritas explícitamente en el estado actual, se requiere emparejamiento complejo y aproximado. Ej: reconocimiento del habla, donde el nudo de fondo y las diferencias en el modo de hablar de una persona implican variabilidad física en la señal y p.t. emparejamiento aproximado.

Ej: ELIZA (Weizenbaum 1966) uno de los primeros programas de IA que simula el comportamiento de un sicólogo. Empareja los antecedentes de la regla con la última sentencia del usuario y genera una respuesta utilizando el lado derecho. Ej. Mi hermano se preocupa por mí.

Dos respuestas: - ¿Quién más de tu familia se preocupa por tí? - Cuéntame algo más de tu familia.

Mi {miembro de familia} es Y ¿Quién más de tu familia es Y? X {miembro de familia} Y Cuéntame algo más acerca de tu familia.

Además tiene reglas para cuando no empareje con ninguna. Ej: Háblame más de eso. Las reglas no emparejan sentencias completas, sólo partes de ellas.

Resolución de conflictos. • Preferencias basadas en reglas

- Considerando el orden: seleccionar la 1ra que aparece (Prolog) u otro. - Dar prioridad a las reglas especiales por encima de las generales. Se detecta que una

es más general si tiene la precondición de la otra y algo más ó si tiene las mismas precondiciones pero con más ocurrencias de variables.

• Preferencias basadas en objetos: ordenar las reglas según la importancia de los objetos emparejados. Ej: ELIZA contenía algunas palabras claves con su importancia (todo el mundo (1), yo (2),....).

Antes: Yo sé que todo el mundo se ríe de mí..... en vez de responder lo que encuentra por yo: dice saber que todo el mundo se ríe de usted, contesta por todo el mundo ¿está pensando en alguien en particular?

• Preferencias basadas en estados. Se aplican todas las reglas y se evalúan los nuevos estados mediante una heurística seleccionando el mejor.

Para mejorar la búsqueda se usan reglas de control las cuales se exploran antes que las otras. Estas contienen conocimientos acerca de qué estados son preferibles, qué reglas aplicar en una situación dada, el orden de los subobjetivos, etc. Ej: - Dados A y P las reglas donde no aparece x son inútiles. - Si un subobjetivo contiene lijar y pintar debe hacerse primero lijar. Al conocimiento de control se le llama metaconocimiento metareglas.

Inteligencia Artificial. -Formas de representación del conocimiento.

51

Sea el siguiente sistema de diagnóstico de averías de un automóvil, representado en reglas de producción:

R1: Si el motor no gira y la batería no está descargada, entonces pedir al usuario que compruebe el motor de arranque.

R2: Si no hay chispa, entonces pedir al usuario que compruebe los puntos esenciales del encendido.

R3: Si el motor gira y no arranca, entonces pedir al usuario que compruebe el encendido.

R4: Si el motor no gira, entonces pedir al usuario que compruebe la batería. R5: Si la batería está descargada, entonces pedir al usuario que cargue la batería y

pruebe nuevamente. ...... Rn: ...

Supongamos que el intérprete de reglas recorre éstas buscando una, cuyo antecedente sea satisfecho por la B.D., y entonces ejecuta el consecuente de tal regla. Si el consecuente pide alguna información al usuario, entonces se genera un mensaje adecuado para que el usuario haga las comprobaciones necesarias y la B.D. se nutre de los resultados de tales comprobaciones. Supongamos, además, que para la base de reglas anterior en la B.D. se encuentra el hecho “el motor no gira”. El intérprete recorre las reglas y reconoce que tal hecho concuerda con el antecedente de R4. Al ejecutar el consecuente pide información al usuario: ¿La batería está descargada (S/N)?. Si la respuesta es negativa, entonces se incorpora como nuevo hecho a la B.D. que la batería no está descargada. La B.D. actual es entonces:

“el motor no gira” “la batería no está descargada”

Supóngase que el intérprete sigue su recorrido a partir de R5,...,Rn,R1,... para encontrar la primera regla satisfecha por la B.D. (en este caso R1). El proceso continúa hasta que se ejecute una regla con una "salida" o bien la B.D. permanezca sin cambios a través de un ciclo (recorrido) completo. Una dificultad con esta F.R.C. es que si bien a medida que crece el número de reglas crece el conocimiento del sistema, también se hace más difícil la búsqueda. Una solución parcial a este problema es descomponer la B.D. inicial en varias subbases que puedan ser procesadas de manera independiente. Además de descomponer la B.D. es necesario descomponer, por supuesto, la condición de terminación en varias subcondiciones, una para cada subbase. Un caso especial de esta descomposición es expresarla como una conjunción de las subcondiciones componentes. Los sistemas de producción que pueden descomponer su B.D. y la condición de terminación reciben el nombre de Sistemas de Producción Descomponibles.

El procedimiento básico para un S.P. descomponible es el siguiente:

1) MEM_TRAB := Base de Datos inicial 2) DMEM_TRAB:= {MEM_TRABi} (* Conjunto de las subbases en que se

descompuso la B.D. inicial *) 3) Mientras que existan elementos de DMEM_TRAB que no satisfagan la

condición de terminación:

Inteligencia Artificial. -Formas de representación del conocimiento.

52

a) Seleccionar j tal que MEM_TRABj no satisface condición de termi-nación.

b) DMEM_TRAB:= DMEM_TRAB \ {MEM_TRABj} c) Seleccionar una regla R que pueda ser aplicada a MEM_TRABj. d) D:= Resultado de aplicar R a MEM_TRABj

e) DD:= {Di} (* Descomposición de D *) f) DMEM_TRAB:= DMEM_TRAB ∪ DD

Analicemos mediante un ejemplo cómo funciona este procedimiento. Supongamos que nuestro problema consiste calcular la integral simbólica de una determinada función matemática. La B.D. inicial está constituida, entonces, por la expresión que se desea integrar y la condición de terminación sería que en ella no aparezca el símbolo de integral. El conjunto de reglas estará formado por las reglas del Análisis Matemático para la integración, tales como, la regla de la suma, integración por partes, reglas de sustitución, etc, así como las reglas de integración de las funciones primitivas. ( ) integral

x x x dx

x x x dx

sen

( sen )

+

+

2

2

a resolver

MEMORIA_ TRAB:=

DMEM_ TRAB:= posición

MEM_ TRAB :

{ } descom

DMEM_ TRAB:= { }

x x dx x dx

x x dx

x dx

sen ,

sen

∫ ∫∫∫

=

2

2

j

Inteligencia Artificial. -Formas de representación del conocimiento.

53

Se selecciona la regla de integración por partes

D:= -

DD:= { -

-

MEM_ TRAB :

MEM_ TRAB :

.

+

, }

DMEM_ TRAB:= { , , } nueva descomposición

DMEM_ TRAB:= { - , }

D:=

DD:= { }

DMEM_ TRAB:= { , , }

DMEM_ TRAB:= { , }

D:=

DD:= {

x x x dx

x x x dx

x x x dx x dx

x dx

x x x dx

xx

x x x x dx

x dx

x x xx

x

cos cos

cos cos

cos cos

cos

cos

sensen

sen cos

sen cos

∫∫

∫ ∫∫

∫∫

=

=

2

2

2

2

3

3

j

j

3

33

3

}

DMEM_ TRAB:= {

, , }x x x xsen cos−

Todos los elementos de DMEM_TRAB cumplen la condición de terminación.

2.7.4. Criterios sobre el dominio de aplicación. Las reglas de producción son la F.R.C. más popular, y para la cual se han desarrollado más herramientas comerciales. Como F.R.C., las reglas de producción han sido utilizadas exitosamente en tareas como el diagnóstico médico y de fallas, la planificación, el diseño, la solución de problemas de pronóstico, configuración de computadoras, por sólo mencionar algunas. Sin embargo, las reglas de producción son inadecuadas para la definición de términos, la descripción de objetos, así como de relaciones estáticas entre ellos. Los S.P. tienen como propiedades fundamentales las siguientes:

- Modularidad: Cada regla de producción constituye una unidad de conoci-miento pequeña y relativamente independiente.

- Incrementalidad: Se pueden añadir nuevas reglas de producción sin alterar las existentes.

- Modificabilidad: Es fácil modificar las reglas existentes. - El crecimiento del conocimiento del sistema es directamente propor-cional a la

cantidad de reglas del mismo. - Transparencia: Constan de un mecanismo de explicación que permite, en cada

momento, justificar la solución encontrada. - Refinamiento: El conocimiento almacenado puede ser constantemente re-

finado.

Inteligencia Artificial. -Formas de representación del conocimiento.

54

2.8. Strips. Este formalismo fue desarrollado a finales de la década del 60 para el subsistema de planificación del robot SHAKEY.

2.8.1. Planteamiento de un problema. En este epígrafe trataremos un problema clásico: el mundo de bloques. Este problema puede plantearse de la siguiente manera: Hay una superficie plana sobre la cual pueden colocarse bloques. Existe cierto número de bloques cúbicos, todos del mismo tamaño. Pueden apilarse uno encima del otro. Hay un brazo de robot que puede manipular los bloques. El brazo del robot sólo puede sostener un bloque a la vez. Cada bloque puede tener como máximo un único bloque encima de él, no entendiendo por esto que no pueda tener 3 bloques: uno encima del segundo y el segundo encima del tercero. Supongamos que se tiene sobre una mesa, una distribución inicial de tres bloques, como se muestra en la figura 2.14. Se desea elaborar un sistema que determine la secuencia de acciones a realizar por el brazo del robot para transformar dicha distribución en la mostrada en la figura 2.15. A B A B C C Fig. 2.14. Distribución inicial Fig. 2.15. Distribución deseada

2.8.2. Definición. La planificación es la generación de una secuencia de acciones o programa de acción para un agente, como por ejemplo el brazo de un robot. Estas acciones cambian de un estado del universo sobre el que se desarrolla la planificación a otro. Al igual que en las reglas de producción, los STRIPS transforman la descripción de un estado en otra. Un strip está compuesto por:

- Condiciones (Precondición): son los enunciados que deben cumplirse en un estado dado para poder ejecutar una acción expresada mediante una regla determinada.

- Lista de literales a ser eliminados (Suprimir): contiene los enunciados que dejan de ser válidos al aplicarse dicha regla.

- Lista de literales a ser añadidos (Añadir): contiene los enunciados que se hacen válidos en el nuevo estado una vez aplicada dicha regla.

Cualquier enunciado que no esté incluido en las listas Suprimir o Añadir de un strip se supone que no queda afectado por él. Esto significa que, al especificar cada strip, no necesitamos considerar los aspectos del dominio que no se relacionan con él.

Inteligencia Artificial. -Formas de representación del conocimiento.

55

Naturalmente, debe usarse algún otro mecanismo distinto de la simple demostración de teoremas para calcular las descripciones completas de los estados después de haber realizado las acciones. La esencia de esta F.R.C. es: Si la acción A transforma el estado S1 en el estado S2, entonces una proposición P es verdadera en el estado S2, si y sólo si P está en la lista Añadir de A o P es verdadera en S1 y no está en la lista Suprimir de A.

Analicemos el ejemplo del mundo de bloques, planteado anteriormente. Para transformar la distribución inicial (figura 2.14) en la deseada (figura 2.15) se necesitan definir una serie de acciones:

COGER(x): Coger el bloque x que está encima de la mesa y sostenerlo. Para

ello, el bloque x debe estar encima de la mesa, el brazo del robot debe estar vacío y el bloque x no debe tener ningún bloque encima.

DEJAR(x): Dejar el bloque x encima de la mesa. Para ello, el brazo del robot debe estar sosteniendo al bloque x.

APILAR(x,y): Colocar el bloque x encima del bloque y. Para ello, el brazo del robot debe estar sosteniendo al bloque x y encima de y no debe existir ningún bloque.

DESAPILAR(x,y): Quitar el bloque x de encima del bloque y. Para ello, el bloque x debe estar encima del bloque y, el brazo del robot debe estar vacío y el bloque x no debe tener bloques encima.

Estas acciones se representan por medio de las siguientes reglas STRIPS:

COGER(x) Precondición: ENMESA(x) ∧ BRAZOVACIO ∧ DESPEJADO(x) Suprimir: ENMESA(x) ∧ BRAZOVACIO Añadir: SOSTENIDO(x)

DEJAR(x) Precondición: SOSTENIDO(x)

Suprimir: SOSTENIDO(x) Añadir: ENMESA(x) ∧ BRAZOVACIO

APILAR(x,y) Precondición: DESPEJADO(y) ∧ SOSTENIDO(x) Suprimir: DESPEJADO(y) ∧ SOSTENIDO(x) Añadir: ENCIMA(x,y) ∧ BRAZOVACIO

DESAPILAR(x,y) Precondición: ENCIMA(x,y) ∧ DESPEJADO(x) ∧ BRAZOVACIO Suprimir: ENCIMA(x,y) ∧ BRAZOVACIO Añadir: SOSTENIDO(x) ∧ DESPEJADO(y)

Las tres componentes de cada regla STRIP se definen usando algunos predicados básicos. Para este universo los predicados básicos más frecuentes son: DESPEJADO(x): el bloque x no tiene bloques encima. SOSTENIDO(x): el brazo del robot está sosteniendo al bloque x. ENCIMA(x,y): el bloque x está encima del bloque y.

Inteligencia Artificial. -Formas de representación del conocimiento.

56

ENMESA(x): el bloque está colocado directamente sobre la mesa. BRAZOVACIO: el brazo del robot está vacío.

B A C

Fig. 2.16. Estado que resulta de aplicar COGER(B) al estado de la Fig. 2.14.

El estado de la distribución inicial mostrada en la figura 2.14 puede describirse

como: ENMESA(A) ∧ ENMESA(B) ∧ ENMESA(C) ∧ BRAZOVACIO ∧ DESPEJADO(A) ∧ DESPEJADO(B) ∧ DESPEJADO (C)

Al aplicar la regla COGER(x) y sustituyendo a x por B se obtiene el estado que se muestra en la figura 2.16, el cual puede describirse como: ENMESA(A) ∧ ENMESA(C) ∧ DESPEJADO(A) ∧ DESPEJADO(B) ∧ DESPEJADO(C) ∧ SOSTENIDO(B)

2.8.3. Manipulación del conocimiento representado. Un sistema de planificación ha logrado encontrar una solución a un problema cuando ha hallado una secuencia de operadores que transforman el estado inicial en el estado meta. Esto se hace mediante un emparejamiento directo de las descripciones de los estados y la forma en que puede resolverse depende de la manera en que se representen las descripciones de los estados. Para esto se usan las F.R.C. estudiadas anteriormente o una combinación de ellas. Una F.R.C. muy usada es la lógica de predicados por los mecanismos deductivos que facilita. Para ver si el predicado P(x) se satisface en el estado inicial, preguntamos si podemos demostrar P(x) a partir de los asertos que describe el estado inicial y de los axiomas que definen el modelo del mundo. Por ejemplo: si el brazo del robot está sosteniendo algún bloque, entonces no está vacío. Si se construye esta prueba, el proceso de resolución termina. Si no, se propone una secuencia de operadores que puedan resolver el problema. Esto se hace de la misma manera, tratando de demostrar P(x) a partir los axiomas y de la descripción de los estados que se derivaron aplicando los operadores STRIPS. El lenguaje ideal para implementar la solución de este problema usando esta F.R.C. es, entonces, el PROLOG. El problema del mundo de bloques planteado pudiera, también, implementarse utilizando el lenguaje LISP. Para ver detalles de esta implementación, consulte [GCL84]. Un sistema de planificación debe poder notar cuándo está explorando un camino que nunca puede conducir a solución o que, al menos, parece improbable. Esto se hace podando cualquier camino que conduzca a un estado desde el cual no puede alcanzarse el estado meta. Por ejemplo, supongamos un suministro de pinturas

Inteligencia Artificial. -Formas de representación del conocimiento.

57

blanca, rosada y roja. Queremos pintar una habitación de forma que las paredes sean de color rojo claro y el techo blanco. Podríamos producir pintura rojo claro, mezclando el rojo con el blanco, pero entonces no se podría pintar el techo. Por tanto este enfoque debe abandonarse y mezclar la roja con la rosada. También se pueden podar caminos que, aunque no impiden una solución, no nos llevan más cerca de la solución que el lugar desde donde empezaron.

2.8.4. Criterios sobre el dominio de aplicación. Esta F.R.C. es muy usada en el diseño de sistemas de planificación. Los primeros sistemas de este tipo fueron escritos en lenguajes diseñados al efecto, como por ejemplo: PLANNER y CONNIVER en 1972 y POPLER en 1973. El primer planificador escrito en PROLOG fue WARPLAN en 1974 que incluía, entre los dominios de problemas que resolvía, el mundo de bloques. En muchos otros casos han sido utilizados lenguajes típicos de I.A. A pesar de esto, esta F.R.C. no es apropiada para resolver determinado tipo de problemas, pues presentan las siguientes limitaciones:

- No se pueden crear o destruir objetos del universo fácilmente. - Las acciones no se pueden aplicar a la vez sobre objetos diferentes, sólo a cada

objeto individualmente.

EJERCICIOS PROPUESTOS 1- Para cada uno de los siguientes conjuntos de frases, indicar el formalismo que facilite mejor la representación del conocimiento dado en ellas para responder a la cuestión propuesta. Explicar brevemente la elección. a) Los bombones son caramelos. Los diabéticos no deberían tomar azúcar. Guillermo es diabético. ¿Debería Guillermo comer bombones? b) Al ir al cine, usualmente se compra una entrada, se da la entrada al encargado y

luego se va a encontrar un asiento. Se compran palomitas antes de ir al asiento. Al finalizar la película se abandona el cine. Juan fue al cine. ¿Compró Juan una entrada? 2- Suponga que tiene un programa PROLOG en el cual ha representado la información de la figura 2.17. ¿Qué conocimiento adicional debería incluir para hacer que las propiedades puedan heredarse hacia los niveles más bajos de la jerarquía?. Por ejemplo, ¿cómo podría responder a la cuestión de si el rabo es parte del pastor?. 3- Represente en una red semántica el conocimiento expresado a través de los siguientes hechos:

Inteligencia Artificial. -Formas de representación del conocimiento.

58

a) Todos los animales son seres vivos. b) Todos los animales pueden moverse. c) Las amebas son animales. d) Todos los animales superiores son animales. e) Todos los animales superiores tienen cabeza y tienen patas. f) La cabeza de los animales superiores tiene cerebro. g) Los tigres son animales superiores. h) Los tigres tienen color rayado. i) Los elefantes son animales superiores. j) Todos los elefantes son de color gris. k) Federico es un elefante. l) Jumbo es un elefante. 4- Represente el siguiente conocimiento por medio de una red semántica: “Un petrobono es un tipo de emisión. Las emisiones pertenecen al mercado de dinero, así como a los valores de renta fija. Por otra parte, este tipo de emisión posee diversos valores como: valor nominal, valor de compra y valor de venta.” 5- Construir un marco que sea apropiado para almacenar datos acerca de estudiantes en un sistema de registros de estudiantes. Tratar de incorporar distintas facetas. 6- Construir un marco que almacene la información correspondiente al problema planteado en la sección 2.5.1. 7- Construir un guión para ir al cine. 8- Construir un guión para la secuencia de acontecimientos implicados en la matrícula y graduación de un curso de computación. Ser vivo esun

Inteligencia Artificial. -Formas de representación del conocimiento.

59

Animal esun esun Animal compañía Ganado esun esun Perro Gato esun esun Pastor Sato Perro espartede espartede Cabeza Rabo espartede espartede Orejas Ojos

Fig. 2.17. Información contenida en un programa PROLOG mediante hechos. 9- Dado el conocimiento expresado en la figura 2.18, represéntelo usando la F.R.C. más adecuada.

Persona

estudiante trabajador

empleado directivo

Inteligencia Artificial. -Formas de representación del conocimiento.

60

Fig. 2.18. Conocimiento jerárquico sobre la clasificación de una persona.

10- Dada la siguiente base de conocimientos expresada en reglas de producción, analizar la respuesta que daría a las siguientes preguntas, suponiendo que el intérprete de reglas siempre analiza partiendo de la primera regla que aparece. R1: Si X es un animal, entonces X es un ser viviente. R2: Si X es un animal, entonces X puede moverse. R3: Si X es un animal superior, entonces X es un animal. R4: Si X es un animal y X tiene cabeza y X tiene patas, entonces X es un animal superior. R5: Si X es un animal superior, entonces X tiene cabeza. R6: Si X tiene cabeza, entonces X tiene cerebro. R7: Si X es un elefante o X es un tigre, entonces X es un animal superior. R8: Si X es un tigre, entonces X tiene patrón rayado. R9: Si X es un elefante, entonces X es gris. Inicialmente la Base de Datos contiene los hechos: Jumbo es un elefante. Federico es un elefante. Preguntas: a) ¿Federico tiene cerebro? b) ¿Es el elefante de color verde?

Bibliografía 1. IA, E. Rich, pág. 213-234 2. Crash course in AI and ES, Louis E. Frenzel, pág.37-40 3. Modelos Computacionales Avanzados. Rafael Bello, pág. 80, 88-90 4. Bases de Datos y Sistemas Expertos, Tomo II, pág. 500-507