SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
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
SillaPersona
Asiento
es_un
es_parte_de
Mi-sillaYo 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ájaroVolar
Pingüino
es_un
Mamífero
puede
es_un
Perro
agrada
Correr
agrada
es_un
Pastor
Sultán
instancia
instancia
SatoVictor
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
AnimalAmeba
Tigre
es_un Moversepuede
es_un
es_un
Animal
Superior
tiene
tiene
cabeza
patas
cerebrotiene
color
rayado
es_un
Elefante Griscolor
Jumbo Fred
instanciainstancia
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 PedroM
agresor víctima
instancia instancia instancia
FORMA
∀
DG Perro Mordedura Cartero
instancia instancia instancia instancia
PedroP ME
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
PedroP ME
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 tanteoequipo
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.
( ) integralx 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
x
x
x x x x dx
x dx
x x x
x
x
cos cos
cos cos
cos cos
cos
cos
sen
sen
sen cos
sen cos
∫
∫
∫ ∫
∫
∫
∫
∫
=
−
=
−
2
2
2
2
3
3
j
j
3
3
3
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

Más contenido relacionado

La actualidad más candente

3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptxRam Vazquez
 
Gestion del almacenamiento secundario
Gestion del almacenamiento secundarioGestion del almacenamiento secundario
Gestion del almacenamiento secundarioMarielita Carlos
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialJuank Grifin
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaHéctor Estigarribia
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Redes neuronales multicapa y monocapa
Redes neuronales multicapa y monocapaRedes neuronales multicapa y monocapa
Redes neuronales multicapa y monocapaLevy GT
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtrackingWilmer Quintero
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificialwarrionet
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Cuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en iaCuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en iayorlys oropeza
 
CARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCCARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCltguevara
 
Guiones o scripts en la representación del conocimiento
Guiones o scripts en la representación del conocimientoGuiones o scripts en la representación del conocimiento
Guiones o scripts en la representación del conocimientoFacultad de Ciencias y Sistemas
 

La actualidad más candente (20)

Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
 
3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx
 
Gestion del almacenamiento secundario
Gestion del almacenamiento secundarioGestion del almacenamiento secundario
Gestion del almacenamiento secundario
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
Agentes Lógicos
Agentes LógicosAgentes Lógicos
Agentes Lógicos
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Redes neuronales multicapa y monocapa
Redes neuronales multicapa y monocapaRedes neuronales multicapa y monocapa
Redes neuronales multicapa y monocapa
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtracking
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificial
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Cuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en iaCuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en ia
 
Agente inteligente
Agente inteligenteAgente inteligente
Agente inteligente
 
CARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCCARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UC
 
Guiones o scripts en la representación del conocimiento
Guiones o scripts en la representación del conocimientoGuiones o scripts en la representación del conocimiento
Guiones o scripts en la representación del conocimiento
 
Problema de las 8 reinas
Problema de las 8 reinasProblema de las 8 reinas
Problema de las 8 reinas
 

Similar a Representacion del conocimiento inteligencia artificial

Modelos de Inteligencia Artificial
Modelos de Inteligencia ArtificialModelos de Inteligencia Artificial
Modelos de Inteligencia ArtificialHugo Banda
 
inteligencia artificial
inteligencia artificial inteligencia artificial
inteligencia artificial Isaias Ventura
 
Mecanismo de representación del conocimiento artificial
Mecanismo de representación del conocimiento artificial Mecanismo de representación del conocimiento artificial
Mecanismo de representación del conocimiento artificial GerimarAndrade
 
Representación del Conocimiento
Representación del ConocimientoRepresentación del Conocimiento
Representación del ConocimientoHernán Salazar
 
1. representación el conocimiento
1. representación el conocimiento1. representación el conocimiento
1. representación el conocimientonorma8avila
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificialAriel Medina
 
3 . Representación del conocimiento y razonamiento
3 . Representación del conocimiento y razonamiento3 . Representación del conocimiento y razonamiento
3 . Representación del conocimiento y razonamientoHumberto Chalate Jorge
 
Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3K Reyes
 
CONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICACONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICAdavid smith
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificialsandrairua
 
Unidad 1. determinación del tipo de distribución que presenta un proceso esto...
Unidad 1. determinación del tipo de distribución que presenta un proceso esto...Unidad 1. determinación del tipo de distribución que presenta un proceso esto...
Unidad 1. determinación del tipo de distribución que presenta un proceso esto...PEDRO LARA MALDONADO
 
Representación del Conocimiento en la I.A
Representación del Conocimiento en la I.ARepresentación del Conocimiento en la I.A
Representación del Conocimiento en la I.AxTabuux
 
Representacion del Conocimiento
Representacion del ConocimientoRepresentacion del Conocimiento
Representacion del Conocimientoandrestorr3
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificialAlejita Linda
 
El conocimiento en inteligencia artificial
El conocimiento en inteligencia artificialEl conocimiento en inteligencia artificial
El conocimiento en inteligencia artificialEmilio Ardila
 

Similar a Representacion del conocimiento inteligencia artificial (20)

Representación del Conocimiento
Representación del ConocimientoRepresentación del Conocimiento
Representación del Conocimiento
 
Modelos de Inteligencia Artificial
Modelos de Inteligencia ArtificialModelos de Inteligencia Artificial
Modelos de Inteligencia Artificial
 
inteligencia artificial
inteligencia artificial inteligencia artificial
inteligencia artificial
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Mecanismo de representación del conocimiento artificial
Mecanismo de representación del conocimiento artificial Mecanismo de representación del conocimiento artificial
Mecanismo de representación del conocimiento artificial
 
Representación del Conocimiento
Representación del ConocimientoRepresentación del Conocimiento
Representación del Conocimiento
 
1. representación el conocimiento
1. representación el conocimiento1. representación el conocimiento
1. representación el conocimiento
 
TRABAJO FINAL
TRABAJO FINALTRABAJO FINAL
TRABAJO FINAL
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
3 . Representación del conocimiento y razonamiento
3 . Representación del conocimiento y razonamiento3 . Representación del conocimiento y razonamiento
3 . Representación del conocimiento y razonamiento
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
 
Magdalena ortiz
Magdalena ortizMagdalena ortiz
Magdalena ortiz
 
Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3
 
CONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICACONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICA
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
Unidad 1. determinación del tipo de distribución que presenta un proceso esto...
Unidad 1. determinación del tipo de distribución que presenta un proceso esto...Unidad 1. determinación del tipo de distribución que presenta un proceso esto...
Unidad 1. determinación del tipo de distribución que presenta un proceso esto...
 
Representación del Conocimiento en la I.A
Representación del Conocimiento en la I.ARepresentación del Conocimiento en la I.A
Representación del Conocimiento en la I.A
 
Representacion del Conocimiento
Representacion del ConocimientoRepresentacion del Conocimiento
Representacion del Conocimiento
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
El conocimiento en inteligencia artificial
El conocimiento en inteligencia artificialEl conocimiento en inteligencia artificial
El conocimiento en inteligencia artificial
 

Último

libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMcespitiacardales
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 

Último (10)

libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 

Representacion del conocimiento inteligencia artificial

  • 1. 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.
  • 2. 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.
  • 3. 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.
  • 4. 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?
  • 5. 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
  • 6. 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
  • 7. 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 SillaPersona Asiento es_un es_parte_de Mi-sillaYo propietario es_un Cuero Marrón color instancia cubierta_de
  • 8. 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ájaroVolar Pingüino es_un Mamífero puede es_un Perro agrada Correr agrada es_un Pastor Sultán instancia instancia SatoVictor es_un es_un
  • 9. 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 AnimalAmeba Tigre es_un Moversepuede es_un es_un Animal Superior tiene tiene cabeza patas cerebrotiene color rayado es_un Elefante Griscolor Jumbo Fred instanciainstancia
  • 10. 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
  • 11. 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 PedroM agresor víctima instancia instancia instancia FORMA ∀ DG Perro Mordedura Cartero instancia instancia instancia instancia PedroP ME agresor víctima
  • 12. 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 PedroP ME agresor víctima
  • 13. 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 tanteoequipo visitante es_un Juego Juego_A 17-3 equipo_local
  • 14. 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.
  • 15. 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
  • 16. 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)
  • 17. 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
  • 18. 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.
  • 19. 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
  • 20. 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)
  • 21. 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.
  • 22. 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.
  • 23. 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
  • 24. 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.
  • 25. 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.
  • 26. 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.
  • 27. 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.
  • 28. 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
  • 29. 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.
  • 30. 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.
  • 31. 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:
  • 32. 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. ( ) integralx 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
  • 33. 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 x x x x x x dx x dx x x x x x cos cos cos cos cos cos cos cos sen sen sen cos sen cos ∫ ∫ ∫ ∫ ∫ ∫ ∫ ∫ = − = − 2 2 2 2 3 3 j j 3 3 3 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.
  • 34. 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.
  • 35. 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.
  • 36. 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
  • 37. 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:
  • 38. 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
  • 39. 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
  • 40. 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