Professional Documents
Culture Documents
R AZONAMIENTO L ÓGICO
Inteligencia Artificial
Contenido
1 Introducción.......................................................................................................................... 3
2 Indización, Recuperación y Unificación .............................................................................. 5
2.1 Implantación de Oraciones y Términos ...................................................................... 5
2.2 Guardar y Recoger ....................................................................................................... 5
2.3 Indización Basada en Tablas ....................................................................................... 6
2.4 Indización Basada en Árboles ..................................................................................... 7
2.5 El Algoritmo de Unificación ........................................................................................ 9
3 Sistemas de Programación Lógicos ................................................................................... 10
3.1 El Lenguaje Prolog ..................................................................................................... 10
3.2 Implantación .............................................................................................................. 11
3.3 Compilación de Programas Lógicos .......................................................................... 13
3.4 Otros Lenguajes de Programación ............................................................................ 14
3.5 Recursos Avanzados de Control ................................................................................ 15
4 Demostradores de Teoremas ............................................................................................. 17
4.1 Diseño de un Verificador de Teoremas ..................................................................... 17
4.2 Ampliación de Prolog ................................................................................................. 18
4.3 Los Verificadores de Teoremas como Auxiliares ...................................................... 19
4.4 Aplicaciones Prácticas de los Demostradores de Teoremas .................................... 20
5 Sistemas de Producción por Encadenamiento Hacia Adelante ...................................... 21
5.1 Fase de Cotejo ............................................................................................................ 22
5.2 Fase de Solución de Conflictos .................................................................................. 23
5.3 Aplicaciones Prácticas de los Sistemas de Producción ............................................ 23
6 Sistemas de Marco y Redes Semánticas ........................................................................... 24
6.1 Sintaxis y Semántica de las Redes Semánticas ....................................................... 25
6.2 Herencia con Excepciones.......................................................................................... 26
6.3 Herencia Múltiple ...................................................................................................... 27
6.4 Herencia y Cambio ..................................................................................................... 28
6.5 Implantación de Redes Semánticas .......................................................................... 29
6.6 Expresividad de las Redes Semánticas .................................................................... 31
7 Lógicas para la Descripción ............................................................................................... 31
7.1 Aplicaciones Prácticas de las Lógicas de Descripción .............................................. 33
8 Manejo de Retractaciones, Suposiciones y Explicaciones ............................................... 33
9 Resumen ............................................................................................................................. 36
10 Bibliografía y Linkografía ................................................................................................. 36
1
24-3-2009
TABLA DE FIGURAS
Figura 1. Indización basada en una tabla correspondiente a un conjunto de oraciones
lógicas. .......................................................................................................................................... 7
Figura 2. Una indización basada en árbol organiza la base de conocimiento en una serie
anidada de embrolladas tablas.. ................................................................................................. 8
Figura 3. El algoritmo de unificación. ........................................................................................ 9
Figura 4. Pseudocódigo que representa el resultado obtenido al compilar el predicado de
Miembro ...................................................................................................................................... 14
Figura 5. Bosquejo del demostrador de teoremas OTTER.. .................................................... 18
Figura 6. Una red rete. .............................................................................................................. 23
Figura 7. Red basada en marco y traducción de esta a lógica de primer orden.. ................... 26
Figura 8. Tipos de vínculos en las redes semánticas y su respectivo significado .................. 27
Figura 9. Ejemplo de inferencias conflictivas de rutas de herencia múltiples. ..................... 28
Figura 10. Rutinas básicas para verificación de herencia y relación en una sencilla red
semántica libre de excepciones.. ............................................¡Error! Marcador no definido.
Figura 11. Sintaxis de las descripciones de un subconjunto del lenguaje CLASSIC. ........... 32
2
24-3-2009
1 INTRODUCCIÓN
Se ha mencionado anteriormente lo conveniente que es construir agentes que
funcionen como sistemas de razonamiento: sistemas que representen explícitamente el
conocimiento y puedan efectuar razonamientos sobre éste. La principal ventaja de
estos sistemas es su alto grade de modularidad. Es posible independizar la estructura
de control del conocimiento, con lo que cada porción del conocimiento mantiene total
independencia entre sí. La anterior facilita experimentar con el sistema y modificarlo,
haciendo a este más fácil explicar sus funciones a otro agente y también, como veremos
en la parte 6, facilita el autoaprendizaje del sistema.
En este capítulo se pasará de las palabras a los hechos, por decirlo de alguna forma, y
hablaremos de los diversos procedimientos para poner en práctica estas funciones en
un sistema real y eficiente. Los sistemas de razonamiento automático vienen en
diversos colores y sabores, cada uno diseñado específicamente para diversos tipos de
problemas. Se les clasifica en cuatro grupos principales:
3
24-3-2009
En este capítulo veremos cómo implantar cada uno de los cuatro tipos de sistemas
anteriores y cómo enfrentar cada una de las siguientes tareas:
4
24-3-2009
DECIR 𝐵𝐶, 𝐴 ∧∼ 𝐵
DECIR 𝐵𝐶, ∼ 𝐶 ∧ 𝐷
𝐴, ∼ 𝐵, ∼ 𝐶, 𝐷
5
24-3-2009
Este método tiene dos desventajas: no maneja oraciones complejas que no sean las de
negación ni tampoco maneja las variables que puedan contener las oraciones. Por
ello, RECOGER no podrá localizar "una implicación cuyo consecuente sea P", como se
le requeriría en un algoritmo de encadenamiento hacia atrás; tampoco podrá localizar
Hermano(Ricardo, Juan) cuando se le haga la consulta ∃𝑥 Hermano(Ricardo. x).
La solución reside en lograr que GUARDAR mantenga una tabla más compleja.
Suponemos que las oraciones se pueden convertir a su forma normal. (Utilizamos la
forma normal implicativa). Las llaves para la tabla son signos de predicado y los
valores que se guardan en cada llave constaran de cuatro componentes:
Hermano(Ricardo, Juan)
Hermano(Eduardo, Jaime) ∧ Hermano(Jaime, Roberto)
~Hermano(Ana, Samuel)
Hermano(x, y) ⟹ Masculino(x)
Hermano(x, y) ∧ Masculino(y) ⟹ Hermano(y, x)
Masculino(Jaime) ∧ Masculino(Eduardo) ∧ … ∧ ~Masculino(Ana) ∧ …
1 Las tablas de dispersión son estructuras de datos para guardar y recuperar información que se indica por medio
de llaves fijas. Para efectos prácticos, se considera que en la tabla de dispersión los tiempos de almacenamiento y
recuperación son constantes, aún cuando en dicha tabla exista una gran cantidad de elementos.
2 Recuérdese que las literales de base no tienen variables. Pueden ser oraciones atómicas como Hermano(Ricardo,
Juan) o una oración atómica negada como ~Hermano(Ana, Victoria).
6
24-3-2009
Como en la lógica de primer orden el predicado de una consulta siempre está fijo, el
sencillo recurso de dividir la base de conocimientos por predicado permite disminuir
considerablemente el costo de la recuperación. Pero, ¿por qué detenerse en el
predicado?
Para que la búsqueda pueda ser eficiente, es necesario indizar tanto argumentos
como los signos de predicado mismos. Una forma de hacerlo sería modificar la
entrada de la tabla correspondiente a Hermano de manera que cada entrada sea una
tabla por sí misma, indizada por e1 primer argumento, en vez de hacerlo mediante
una lista. Para responder a la consulta Hermano(012-34-5678, x), consultamos
primero 1a tabla de predicado en el sitio correspondiente a Hermano, y luego
buscamos tal entrada en 012-34-5678. Ambas consultas consumen una pequeña
cantidad de tiempo, por lo que la completa realización de RECOGER es eficiente.
Podemos concebir el procedimiento de búsqueda de la coincidencia de una literal
como a ir bajando por un árbol, en donde la rama en cada punto es determinada por
el signo en el punto correspondiente de la oración de consulta (Figura 2).
7
24-3-2009
de los signos de la secuencia es una variable, puesto que en tal caso es necesario
recorrer cada una de las ramas. Sup6ngase que nuestra base de conocimiento censal
tiene como predicado Contribuyente con cuatro argumentos: persona, c6digo postal,
ingreso neto redondeado al valor de millar más cercano y numere de dependientes.
Por ejemplo:
Supóngase que deseamos localizar todas aquellas personas con código postal 02138
que tienen exactamente 10 dependientes:
Existen decenas de miles de personas con ese código postal y cientos de miles de
personas que tienen 10 dependientes, pero posiblemente sólo unos cuantos reúnan
ambas características. Para localizarlos, sin excesivo esfuerzo, necesitamos de un
índice combinado que se base tanto en el segundo como en el cuarto argumentos. Si
tuviéramos que revisar todos los posibles conjuntos de posiciones de variables,
tendríamos 2n índices combinados, en donde n es la cantidad de posiciones de signo
en las oraciones que se están almacenando. Cuando en las oraciones existen términos
complejos, n crece enormemente. Hasta cierto punto, la memoria adicional necesaria
para los índices y el trabajo extra que GUARDAR debe hacer pesan más que los
beneficios. Podemos adoptar una política fija, como sería la de mantener índices sólo
para las llaves que están formadas por un predicado además del argumento
respectivo, o decidirnos por usar una política de adaptación que produzca índices que
satisfagan las demandas del tipo de consulta que está siendo formulada.
¿Predicado?
Hermano
¿Primer
argumento?
012-34-5678
Figura 2. Una indización basada en árbol organiza la base de conocimiento en una serie
anidada de embrolladas tablas. Cada nodo del árbol es una confusa tabla indizada por el valor
correspondiente a una determinada posición de oración.
8
24-3-2009
funcion UNIFICAR(x, y) responde con una sustitución para hacer que x e y sean
idénticas, de ser posible
UNIFICAR-INTERNO(x, y, {})
Conoce(Juan, x) ⟹ Odia(Juan, x)
Conoce(Juan, Juana)
para inferir Odia(Juan, Juana). La llave de esta inferencia Modus Ponens consiste en
unificar Conoce(Juan, x) y Conoce(Juan, Juana). Esta unificación da como resultado
la sustitución {x/Juana}, que se aplica a Odia(Juan, x) para producir la solución
Odia(Juan, Juana).
9
24-3-2009
Hemos visto que el método declarativo ofrece muchas ventajas para la construcción de
sistemas inteligentes. La programacion lógica se esfuerza porque todas las tareas de
programación cuenten con estas ventajas. Todo computo puede considerarse como un
proceso en que se hacen explicitas las consecuencias de haber escogido un determinado
programa para una maquina en especial y de haber proporcionado ciertas entradas. La
programación lógica considera al programa y a sus entradas como aseveraciones
lógicas acerca del mundo, y al procedimiento de hacer explícitas las consecuencias como
un proceso de inferencia. La relación entre lógica y algoritmo esta resumida en la
ecuación de Robert Kowalski:
10
24-3-2009
3.2 Implantación
Los diseñadores de Prolog realizaron su implantación con el fin de contar con un
modelo sencillo y de rápida ejecución:
Todas las inferencias se realizan por encadenamiento hacia atrás, con búsqueda
preferente por profundidad. Es decir cuando en el proceso de demostración de
3 Conviene advertir que de proporcionársele los axiomas correspondientes a la adición, estas metas se pueden
resolver con el programa Prolog, mediante la inferencia.
11
24-3-2009
una oración se tope con un callejón sin salida, Prolog retrocederá al paso
inmediato anterior que ofrezca opciones.
El orden de búsqueda a través de los conjuntos de un antecedente es siempre de
izquierda a derecha, y las clausulas de la base de conocimientos se aplican en
orden, de la primera a la ultima.
La verificación de ocurrencia se omite en la rutina de unificación.
Miembro (loc(X,X),[loc(1,1),loc(2,1),loc(2,2)])?
Da como resultado que el usuario tenga ante sí una salida de dos piezas, “X=1” y
“X=2”.
12
24-3-2009
13
24-3-2009
procedimiento MIEMBRO(elemento, lista, continuacion)
pista APUNTADOR-PISTA-GLOBAL()
si UNIFICAR([elemento/NUEVA-VARIABLE()],lista) entonces
LLAMAR(continuación)
RESTABLECER-PISTA(pista)
resto NUEVA-VARIABLE()
si UNIFICAR(lista, [NUEVA-VARIABLE()|resto]) entonces
MIEMBRO(elemento, resto, continuacion)
14
24-3-2009
Sea mediante Prolog o PRL, esta definición puede servir para confirmar
𝑇𝑟𝑖𝑎𝑛𝑔𝑢𝑙𝑜(3, 4, 5) produce la vinculación especificada por la restricción 𝑥 > 1 ∧ 𝑥 < 9 ;
Si se hubiera hecho en Prolog, la consulta habría fallado.
El cómputo de esta consulta podría resultar costoso, puesto que hay que enumerar
todos los pares de ingreso de las personas, luego recoger el cónyuge correspondiente a
cada persona (excepto en el caso de los que no están casados, o dar varias vueltas
15
24-3-2009
cuando alguien ha estado casado varias veces) y por ultimo buscar en las personas
cuya ocupación ha sido la de presidente. Para responder con eficiencia a consultas
conjuntivas como ésta, muchas veces es mejor dedicar previamente cierto tiempo a
reorganizar los coyuntos, lo que disimulara el tiempo necesario de cómputo. En el
caso de esta consulta, sería mejor ordenarla como sigue:
Se obtendría la misma respuesta, pero sin ninguna regresión, suponiendo que los
predicados Ocupación y Casado se están indizando mediante su respectivo segundo
argumento.
Mediante la técnica de salto reversivo se evita tener que hacer repeticiones inútiles.
En este problema en particular, mediante el salto reversivo se retrocede dos pasos
hasta llegar a Residente (p, poblado) y se genera una nueva vinculación para p. El
determinar donde dar el salto reversivo durante la compilación no es difícil para un
compilador que conserva información sobre el flujo de datos. A veces, además del
salto reversivo a un sitio razonable, el sistema guarda la combinación de variables
que causaron el ir a un callejón sin salida, con el fin de no repetirlas nuevamente en
otra rama de la búsqueda. A lo anterior se le conoce como reversión dirigida por
dependencia. En la práctica, la cantidad que implica el almacenamiento de todos los
callejones sin salida resulta excesivamente grande, como en el caso de la búsqueda
heurística, muchas veces la memoria es una restricción más importante que la del
tiempo. En la práctica, son más los sistemas de salto reversivo que los sistemas
dirigidos por dependencia.
16
24-3-2009
4 DEMOSTRADORES DE TEOREMAS
Los demostradores de teoremas (conocidos también como razonadores automatizados)
se diferencian en dos aspectos de los lenguajes de programación lógica. En primer
lugar, la mayoría de los lenguajes de programación lógicos sólo manejan clausulas de
Horn, en tanto que los demostradores de teoremas si aceptan la lógica de primer orden.
En segundo lugar, los programas de Prolog combinan lógica y control. El que un
programador escoja entre escribir 𝐴 ⟸ 𝐵 ∧ 𝐶 en vez de 𝐴 ⟸ 𝐶 ∧ 𝐵 afectará la ejecución
del programa. En el caso de los demostradores de teoremas, el usuario puede utilizar
cualquiera de las 2 anteriores, o alguna como −𝐵 ⟸ 𝐶 ∧ −𝐴 y todos los resultados
serán exactamente los mismos. Pero para funcionar eficientemente, los demostradores
de teoremas necesitan todavía controlar la información para operar eficientemente, no
es parte de la representación del conocimiento mismo. Buena parte del trabajo de
investigación en los demostradores de teoremas se concentra en hallar estrategias de
control de utilidad general. Se habló de tres estrategias genéricas; preferencia por la
unidad, resolución de entrada lineal y conjunto de apoyo.
17
24-3-2009
procedimiento OTTER(sos, usable)
entradas: sos, un conjunto de apoyo –clausulas que definen el problema
(una variable global)
usable, conocimiento previo potencialmente relevante al problema
repetir
clausula el miembro mas ligero de sos
mover clausula de sos a usable
PROCESS(INFER(clausula, usable), sos)
hasta sos = [] o ha sido encontrada una refutación
Figura 5. Bosquejo del demostrador de teoremas OTTER. El control heurístico se utiliza para
elegir la cláusula más "ligera", y también en la función FILTRAR para evitar tomar en cuenta
cláusulas que no son interesantes.
18
24-3-2009
La principal desventaja de DTTP es que el usuario tiene que renunciar a todo control
sobre la búsqueda de soluciones. El sistema utiliza las reglas de inferencia, tanto en
su forma original como en su forma contrapositiva. Esto podría dar lugar a búsquedas
no intuitivas. Por ejemplo, supongamos que tenemos la regla:
𝑓 𝑥, 𝑦 = 𝑓 𝑎, 𝑏 ⟸ 𝑥 = 𝑎 ∧ (𝑦 = 𝑏)
En cuanto regla de Prolog, lo anterior sería una forma razonable para demostrar que
dos términos f son idénticos. Pero en el caso de DTTP se generaría también lo
contrapositivo:
𝑥 ≠ 𝑎 ⇐ 𝑓 𝑥, 𝑦 ≠ 𝑓 𝑎, 𝑏 ∧ (𝑦 = 𝑏)
19
24-3-2009
la relación entre la estrategia para definir qué hay que hacer y entre el pedir al
demostrador de teoremas que se ocupe de los detalles. Esto es de ayuda hasta cierto
punto en el caso de problemas de semidecidibilidad, pues permite al supervisor
cancelar una consulta y probar otro método en caso de que dicha consulta esté
consumiendo demasiado tiempo. El demostrador de teoremas también puede operar
como verificador de demostraciones, en donde un humano propone la demostración en
función de una serie de pasos muy amplios; cada una de las inferencias necesarias
para demostrar que cada paso es sólido quedan a cargo del sistema.
La síntesis formal de los algoritmos fue una de las primeras aplicaciones de los
demostradores de teoremas, como lo bosquejara Cordell Green, quien se apoyó en las
ideas previamente propuestas por Simon. La idea consiste en demostrar un teorema a
efecto de que "existe un programa p que satisface cierta especificación". Si se ha
restringido la demostración para que sea constructiva, es posible extratar el
20
24-3-2009
problema. No obstante que aún no se cuenta con una síntesis deductiva, como se
llama, para la programación de propósito general, la síntesis deductiva guiada a
mano ha producido buenos resultados en el diseño de diversos algoritmos nuevos y
complejos. La síntesis de programas de propósito especial es también un área activa
de investigación. En el área de la síntesis de hardware, el demostrador de teoremas
AURA también se ha aplicado al diseño de circuitos más compactos que todos los
diseños anteriores. En el caso de muchos diseños de circuitos, basta con la lógica
proporcional, ya que el conjunto de proposiciones de interés está limitado por el
conjunto de elementos del circuito. Ahora es técnica establecida la aplicación de la
inferencia proposicional para la síntesis del hardware, y se le utiliza en muchas
aplicaciones de gran escala.
21
24-3-2009
Una de las ventajas más obvias de la red rete es que elimina la duplicación en las
reglas. Las tres reglas empiezan por una conjunción de A y B, y la red permite
compartir esa parte. La segunda ventaja de las redes rete es el poder eliminar con el
tiempo la duplicación. La mayoría de los sistemas de producción efectúan sólo unos
cuantos cambios a la base de conocimientos durante cada uno de los ciclos. Es decir,
la mayoría de las pruebas que se efectúen en el ciclo t + 1 producirán el mismo
resultado que en el ciclo t. La red rete se modifica después de una incorporación o una
eliminación, pero sí los cambios son muy pocos, el costo de cada actualización resulta
pequeño en comparación con la tarea de mantener completamente actualizado el
indizado de la información. La red representa pues el estado intermedio que se
guarda en el proceso de probar la satisfacción de un conjunto de conyuntos. En este
caso, el incorporar D(2) producirá la activación de la regla “añadir E”, pero no tiene
efecto alguno en el resto de la red. Por otra parte, el incorporar o eliminar una A
tendrá un efecto mayor, efecto que debe propagarse en gran parte de la red.
22
24-3-2009
D A=D añadir E
A B A=B C añadir D
E borrar A
Figura 6. Una red rete. Los círculos representan las pruebas de predicado. El cuadrado que
contiene, por ejemplo A = B, representa la restricción de que las soluciones de las pruebas A y
B deben ser iguales. Los rectángulos son acciones.
23
24-3-2009
Además del atractivo de esos bonitos diagramas nodo-vínculo, las redes semánticas
han tenido aceptación por la misma razón que Prolog se usa más que los
demostradores de teoremas de lógica de primer orden: porque el modelo de ejecución de
la mayoría de los formalismos de la red semántica es muy sencillo. Aunque un,
programador llegue a construir una red muy grande, aún así puede hacerse una buena
idea de qué consultas pueden ser eficientes, puesto que (a) es fácil visualizar los pasos
que se darán en el procedimiento de inferencia y (b) porque el lenguaje de la consulta
es tan sencillo que impide formular consultas complicadas. Posiblemente ésta sea la
razón de que muchos de los investigadores pioneros en la ontología del sentido común
sintieron más confianza de trabajar con sus teorías mediante el método de la red
semántica.
5 Existen algunos problemas relacionados con el manejo de las excepciones, aunque, con un poco de cuidado, a
éstas también se les puede encontrar una solución.
24
24-3-2009
𝑆𝑢𝑏𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜
𝐺𝑎𝑡𝑜𝑠 𝑀𝑎𝑚𝑖𝑓𝑒𝑟𝑜𝑠
para afirmar que los gatos son mamíferos. Desde luego, se trata de una forma sencilla
de expresar la oración lógica 𝐺𝑎𝑡𝑜𝑠 ⊂ 𝑀𝑎𝑚𝑖𝑓𝑒𝑟𝑜𝑠, pero cuando las redes semánticas
se utilizaron por vez primera en IA (alrededor de 1961). Este tipo de expresión no
gozaba de aceptación generalizada; se pensaba que para utilizar la lógica era
necesario escribir:
∀ 𝑥 𝐺𝑎𝑡𝑜(𝑥) ⟹ 𝑀𝑎𝑚𝑖𝑓𝑒𝑟𝑜𝑠(𝑥)
6 En muchos sistemas, el nombre EsUn se asigna tanto al subconjunto como a las vinculaciones para indicar
pertenencia a un conjunto, al igual de cómo se emplea en español: “un gato es un mamífero” y “Fifi es un gato”. Lo
anterior da lugar a la producción de incongruencias, como lo señaló Drew McDermott en su artículo “Artificial
Intelligence Meets Natural Stupidity” (“La Inteligencia Artificial se encuentra con la tontería natural”). Para
algunos sistemas fue imposible diferenciar entre las propiedades de los miembros de una categoría determinada y
las propiedades de la categoría como un todo.
7 Porque aseveraciones como A 𝐵 son tan frecuentes, hemos empleado la abreviación Rel(R, A, B) como azúcar
25
24-3-2009
emplean algoritmos de propósito especial para recorrer los vínculos. y por ello puede
ser más rápido que la inferencia lógica general.
Figura 7. Red basada en marco y traducción de esta a lógica de primer orden. Los nombres de
relación que aparecen dentro de las cajas corresponden a las relaciones que se aplican a todos
los miembros del conjunto de objetos.
26
24-3-2009
Una forma intuitiva de manejar la herencia con excepciones seria recorriendo los
vinculas de un diagrama, pero también es posible y muy instructivo definir la
semántica correspondiente mediante lógica de primer orden. El primer paso en una
traducción lógica consiste en reificar las relaciones: una relación R se convierte en
un objeto, no en un predicado. Es decir, Rel(R, A, B) es simplemente una oración
atómica común, no la abreviación de una oración compleja. Significa también que ya
no es posible escribir R(x. B), puesto que R es un objeto, no un predicado. Mediante
Val(R, xB) indicamos que el equivalente de una relación R(x, B) está expresado de
manera explícita en la red semántica y que SeCumple(R, x, B) significa que es posible
inferir R(x, B). Podemos así definir SeCumple para decir que una relación R se
cumple en x y en b si existe un predicado explícito Val, o si existe una Rel en alguna
clase padre p de la cual x es un elemento, y no existe Rel ni tampoco una clase i
interpuesta. (Se considera que existe una clase i interpuesta si x es un elemento de i y
si i es un sub. conjunto de p.) Es decir:
∀ 𝑟, 𝑥, 𝑏 𝑆𝑒 𝑐𝑢𝑚𝑝𝑙𝑒 𝑟, 𝑥, 𝑏 ⟺
𝑉𝑎𝑙 𝑟, 𝑥, 𝑏 ∀(∃ 𝑝 , 𝑥 ∈ 𝑝 ⋀ 𝑅𝑒𝑙 𝑟, 𝑝, 𝑏 ⋀ ∼ 𝑅𝑒𝐼𝑛𝑡𝑒𝑟𝑣𝑖𝑒𝑛𝑒(𝑥, 𝑝, 𝑟) )
∀ 𝑥, 𝑝, 𝑟 𝑆𝑒 𝑐𝑢𝑚𝑝𝑙𝑒 𝑥, 𝑝, 𝑟 ⟺
∃ 𝑖 𝑄𝑢𝑒𝐼𝑛𝑡𝑒𝑟𝑣𝑖𝑒𝑛𝑒 𝑥, 𝑖, 𝑝 ⋀ ∃ 𝑏 ′ 𝑅𝑒𝑙 𝑟, 𝑖, 𝑏′
∀ 𝑎, 𝑖, 𝑝 𝐼𝑛𝑡𝑒𝑟𝑣𝑖𝑒𝑛𝑒 𝑥, 𝑖, 𝑝 ⟺ 𝑥 ∈ 𝑖 ⋀(𝑖 ⊂ 𝑝)
27
24-3-2009
rutas. En algunos casos esto opera sin mayor problema. Por ejemplo, algunas
personas podrían pertenecer tanto a las categorías de Multimillonario como a la de
JugadorDePolo, en cuyo caso podemos inferir que son ricos y que pueden montar un
caballo.
Sin embargo, puede suceder que dos rutas de herencia produzcan respuestas
conflictivas. En la Figura 9 se muestra un ejemplo de una dificultad semejante. Opus
es un pingüino, por lo que sólo "emite" graznidos. Opus es un personaje de una tira
cómica, por lo tanto habla en español.8 En la sencilla traducción lógica presentada
antes, podríamos haber inferido las dos conclusiones, las que, con el apropiado
conocimiento de base, nos habría hecho llegar a una contradicción. Sin información
adicional que indique cierta preferencia por una ruta, no hay manera de resolver el
conflicto.
𝑆𝑖 𝐵𝐶 ⊢ 𝑃 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝐵𝐶 ∧ 𝑆 ⊢ 𝑃
8 Al ejemplo clásico de conflicto por herencia múltiple se le conoce como “diamante de Nixon”. El conflicto surge
porque Richard Nixon era un cuáquero (por lo tano, pacifista) y republicano (por lo tanto, no es pacifista). Por las
controversias a que puede dar lugar este ejemplo, evitaremos trabajar con este ejemplo. Para otro ejemplo común
se utiliza un pájaro de nombre Tweety (Gorjeador), del que cuanto menos se diga, mejor.
28
24-3-2009
sistemas prácticos ha sido menor que la de otros métodos, por lo que no nos
referiremos a dichos trabajos en este capítulo.
𝐷𝐸𝐶𝐼𝑅(𝐵𝐶, ∀ 𝑟, 𝑎, 𝑏 𝑅𝑒𝑙(𝑟, 𝑎, 𝑏) ⟺ ⋯ )
En donde los puntos suspensivos (…...) representan todas las Rel posibles. Así que
para incorporar Rel(Piernas, Gatos, 3), sería necesario eliminar la anterior
aseveración de equivalencia y sustituirla por una nueva. Una vez codificada la base
de conocimientos al haber eliminado una oración de ella (no sólo por la adición de una
nueva) no es de sorprender la no monotonía resultante. En la sección 8 se hablará de
las maneras de implantar RETRACTAR.
Cada uno de los cuatro campos-REL está organizado en una tabla indizada por la
relación. Mediante la función CONSULTA (llave, tabla) encontramos el valor
𝐴𝑚𝑖𝑔𝑜
asociado con una llave de la tabla. Por ejemplo si tenemos los vínculos Memo y
𝐴𝑚𝑖𝑔𝑜
Esteban, entonces CONSULTAR (Amigo, RELS-SALIDA( opus) producirá el
conjunto {Memo, Esteban}.
29
24-3-2009
funcion MIEMBRO?(elemento, categoria) devuelve Verdadero o Falso
por cada c de MEMBRESIAS[elemento] hacer
si SUBCONJUNTO?(c, categoria) entonces devolver Verdadero
devolver Falso
Figura 10. Rutinas básicas para verificación de herencia y relación en una sencilla red
semántica libre de excepciones. Nótese que la función MIEMBRO? aquí se define para que
opere en nodos de red semánticos, en tanto que la función MIEMBRO es una utilería que opera
en conjuntos.
El código se puede ampliar con otras funciones para dar respuesta a otras preguntas.
Un problema que surge en este caso es que es muy fácil dejarse llevar por las
estructuras de datos y olvidar su semántica fundamental. Por ejemplo, definimos una
función CANTIDAD–DE–SUBTIPOS, mediante la cual se obtiene la longitud de la
lista de la ranura SUBS. En el caso de la Figura 7. CANTIDAD–DE–
SUBTIPOS(Animal) = 2. Aunque ésta sea la respuesta a la pregunta del usuario, su
estatus lógico es dudoso. En primer lugar, es muy probable que haya especies de
animales que no estén representadas en la base de conocimientos. Segundo, es posible
que algunos nodos estén denotando el mismo objeto. Quizás Perro y Dog sean dos
nodos entre los que exista un vínculo de igualdad. ¿Se les debe considerar como dos o
uno? Por último, ¿Perro-Con-Orejas-Negras es un tipo de animal? ¿Y Perro-En-Mi-
Cuadra-EI-Jueves-Pasado? Aunque no resulta difícil responder a estas preguntas con
base en lo que está guardado en la base de conocimientos, es preferible contar con
una semántica clara, pues de esta manera las respuestas dadas a las preguntas se
refieren al mundo no al estado actual de la representación interna.
30
24-3-2009
¿Qué nos pueden ofrecer las redes semánticas a cambio de la falta de expresividad?
Se van mencionado ya dos ventajas: son capaces de capturar la información de
herencia de manera modular; además, su sencillez facilita mucho su comprensión. La
tercera ventaja es su eficiencia: puesto que la inferencia se efectúa al seguir vínculos,
en vez de recuperar oraciones de una base de conocimientos y realizar unificaciones,
necesitan de sólo unos cuantos ciclos de máquina por paso de inferencia. Pero si
observamos el tipo de cálculos realizados por los programas Prolog, nos daremos
cuenta de que no hay mucha diferencia. Un programa Prolog compilado para un
conjunto de oraciones de subconjunto y de membrecía de conjunto, combinadas con
las propiedades generales de las categorías, realizan los mismos cálculos de una red
semántica.
El lenguaje CLASSIC es un ejemplo típico de una lógica de descripción. En la Figura 11. Sintaxis
de las descripciones de un subconjunto del lenguaje CLASSIC.
31
24-3-2009
Concepto → Objeto | NombredeConcepto
| Y(Concepto, ...)
| Todo(NombrePapel, Concepto)
| PorLoMenos(NumeroEntero, NombrePapel)
| CuantoMas(NumeroEntero, NombrePapel)
| Llena(NombrePapel, NombreIndividual)
| MismoQue(Ruta, Ruta)
| UnoDe(NombreIndividual, ...)
En principio, lo anterior parecería hasta que uno se da cuenta que entraña dos
consecuencias: los problemas difíciles no se pueden formular, o ¡requieren de
descripciones de varias extensiones exponenciales! A pesar de lo anterior, los
resultados obtenidos en la tratabilidad arrojan luz sobre qué tipos de estructuras
causan problemas, y esto ayuda al usuario a comprender el comportamiento de las
9 Observe que el lenguaje no nos permite limitarnos a afirmar que un concepto o una categoría es subconjunto de
otro. Lo anterior es deliberado; la subsuposición entre categorías debe obtenerse a partir de ciertos aspectos de las
descripciones de las categorías. De no ser así, seguramente algo está faltando en las descripciones.
32
24-3-2009
33
24-3-2009
34
24-3-2009
conocimientos justo las oraciones para las que Pi es la parte requerida de todas las
justificaciones. Así, si la única justificación de una oración Q fuese {Pi, Pi Q} se le
elimina; si tuviera además la justificación {Pi, Pi V R Q} también se eliminaría; pero
si también tuviera la justificación {R, Pi V R Q}; entonces se conservaría.
Los SMVJ fueron el primer tipo de SMV, pero el tipo más popular es el SMVS, o
sistema de mantenimiento de la verdad basado en suposiciones. La diferencia reside en
que SMVJ representa un estado consistente del mundo a la vez. El mantener la
justificación le permitirá a usted pasar rápidamente de un estado a otro, efectuando
solo unas cuantas retractaciones y aseveraciones, pero representando solo un estado a
la vez. Un SMVS representa todos los estados que se han considerado,
simultáneamente. Mientras que un SMVJ se limita a etiquetar cada una de las
oraciones como dentro o fuera, el SMVS lleva el control, por cada oración, de qué
suposiciones harán que la oración sea verdadera. Es decir, cada oración tiene una
etiqueta que está formada por un conjunto de suposiciones. La oración se cumple sólo
en aquellos casos en los que todas las suposiciones de uno de los conjuntos de
suposición se cumplen.
35
24-3-2009
9 RESUMEN
Este trabajo ha servido para establecer la conexión entre los fundamentos conceptuales
de la representación del conocimiento y el razonamiento, y el mundo práctico de los
sistemas de razonamiento reales. Se pone énfasis en el hecho de que una auténtica
comprensión de estos sistemas sólo se puede lograr cuando se trabaja con ellos.
Se han explicado las técnicas de implantación y las características de los cuatro tipos
más importantes de sistemas de razonamiento lógico:
10 BIBLIOGRAFÍA Y LINKOGRAFÍA
BIBLIOGRAFÍA
Russell, S., & Norvig, P. (2004). Inteligencia Artificial: Un Enfoque Moderno.
Madrid: Prentice Hall.
LINKOGRAFÍA
http://es.wikipedia.org/wiki/Razonamiento_automatizado
http://www.mitecnologico.com/Main/SistemasDeRazonamientoLogico
http://www.angelfire.com/falcon/popikpe/cap_diez.htm
36