Sie sind auf Seite 1von 40

Inteligencia Artificial.

-Formas de representación del conocimiento.

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.

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

- 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.

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

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.

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

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?

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

- “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

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

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

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

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.

Mueble

es_un
Persona Silla es_parte_de
Asiento
es_un instancia

Yo propietario Mi-silla cubierta_de Cuero

color

Marrón

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.

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

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.

Animal

es_un es_un
puede
Volar Pájaro Mamífero

es_un es_un
puede
Pingüino Perro Correr

instancia es_un es_un

Victor Sato Pastor

agrada agrada
instancia
Sultán

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?

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

- ¿Quién tiene patrón de color rayado?


- ¿Qué color tiene Jumbo?
- ¿Tiene patas la ameba?

Ser viviente

es_un

Ameba es_un Animal puede Moverse

es_un
tiene cabeza tiene cerebro
Tigre es_un
Animal
Superior tiene
patas
color
es_un
rayado
color Gris
Elefante

instancia instancia

Jumbo Fred

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.

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

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.
Cabeza
Animal
Posee
Superior
Patas

Piel

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.

vocalización Personaje
Español
animado

es_un
es_un vocalización
Yogui oso rugidos

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.

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

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.

Perro Mordedura Cartero

instancia instancia instancia

Sultán M Pedro
agresor víctima

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.

DG Perro Mordedura Cartero

instancia instancia instancia instancia

FORMA
E P M Pedro
∀ agresor víctima

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

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

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.

DG Perro Mordedura Cartero

instancia instancia instancia instancia

E P M Pedro
agresor víctima

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).

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

Juego

es_un

equipo tanteo
Azul Juego_A 17-3
visitante
equipo_local

Rojo

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:

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

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.

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

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.

Dar L

John agente Acción Libro


Å representa el libro
concreto dado a Mary
beneficiario
Mary

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

John Bill

altura altura

A1 mayor A2

72

ƒ 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.

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

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)

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

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

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

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.

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

Frame: mueble

Frame: mesa
Clase: mueble

Frame: mi buró
clase: mesa

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.

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

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)

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

(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.

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

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.

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

- 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

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

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.

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

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.

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

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.

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

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.

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

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

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

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.

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

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.

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

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:

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

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.

∫(x sen x + x )
2
dx integral a resolver

∫ (x sen x + x
2
MEMORIA_ TRAB:= ) dx

∫ x sen x ∫x
2
DMEM_ TRAB:= { dx , dx } descomposición

MEM_ TRABj := ∫ x sen x dx


DMEM_ TRAB:= { ∫ x dx }
2

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

Se selecciona la regla de integración por partes.


D:= - x cos x + ∫ cos x dx
DD:= { - x cos x, ∫ cos x dx }

∫ cos x ∫x
2
DMEM_ TRAB:= { - x cos x, dx, dx } nueva descomposición

MEM_ TRABj := ∫ cos x dx

∫x
2
DMEM_ TRAB:= { - x cos x, dx }
D:= sen x
DD:= { sen x }
DMEM_ TRAB:= { sen x, − x cos x, ∫x
2
dx }

MEM_ TRABj := ∫x
2
dx
DMEM_ TRAB:= { sen x, − x cos x }
x3
D:=
3
x3
DD:= { }
3
x3
DMEM_ TRAB:= { , sen x, − x cos x }
3
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.

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

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 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.

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

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.

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

ENMESA(x): el bloque está colocado directamente sobre la mesa.


BRAZOVACIO: el brazo del robot está vacío.

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

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

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:

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

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

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

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

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

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

60

Das könnte Ihnen auch gefallen