2. Agenda
Introducción
Indización, Recuperación y Unificación
Sistemas de Programación Lógicos
Demostradores de Teoremas
Sistemas de Producción por Encadenamiento
hacia Adelante
Sistemas de Marco y Redes Semánticas
Lógicas para la Descripción
Manejo de Retractaciones, Suposiciones y
Explicaciones
3.
4. Tipos de Problemas
Demostradores de
teoremas y Sistemas de
producción
lenguajes de
programación lógicos
Sistemas de cuadro y Sistemas lógicos por
redes semánticas descripción
5. Tareas a Enfrentar
DECIR
• Incorporar algo nuevo a la BC
• Deducir hechos implicados
PREGUNTAR
• Decidir si una consulta está implicada por
la BC
• Decidir si una consulta está en la BC
6.
7. Implantación deOraciones y Términos
Sintaxis de Representación
oraciones interna
Definir
tipos de
oraciones
y términos
Ejemplo: Sea c el compuesto P(x) ^ Q(x)
OP[c] = ^ ARGS[c] = [P(x), Q(x)]
8. Guardar y Recoger
Estrategia de
búsqueda de
PREGUNTAR
Costo de
cómputo
de la
inferencia
Estructuras
de datos de
RECOGER
Ejemplo: DECIR(BC, A ^ ~B)
DECIR(BC, ~C ^ D)
BC = [A, ~B, ~C, D]
13. El Algoritmo deUnificación
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, {})
funcion UNIFICAR-INTERNO(x, y, θ) responde con una sustitución para que x e y
sean idénticas (tomando como base θ).
entradas: x, una variable, una constante, una lista o un compuesto
y, una variable, una constante, una lista o un compuesto
θ, la sustitución que se haya configurado hasta ese momento
si θ = falla entonces responder con falla
o bien, si x = y entonces responder con θ
o bien, si VARIABLE?(x) entonces responder con UNIFICAR-VAR(x, y, θ)
o bien, si VARIABLE?(y) entonces responder con UNIFICAR-VAR(x, y, θ)
o bien, si COMPUESTO?(x) y COMPUESTO?(y) entonces responder con
UNIFICAR-INTERNO(ARGS[x], ARGS[y], UNIFICAR-INTERNO(OP[x], OP[y], θ))
o bien, si LISTA?(x) y LISTA(y) entonces responder con
UNIFICAR-INTERNO(REST[x], REST[y], UNIFICAR-INTERNO(PRIMERO[x],
PRIMERO[y], θ))
o bien, responder falla
función UNIFICAR-VAR(var, x, θ) responde con una sustitución
entradas: var, una variable
x, cualquier expresión
θ, la sustitución construida hasta ese momento
si {var/val} θ entonces responder con UNIFICAR-INTERVALO(val, x, θ)
o bien, si {x/val} θ entonces responder con UNIFICAR-INTERNO(var, val, θ)
o bien, si var esta presente en alguna parte de x /* verificar */
entonces responder con falla
o bien, responder con sumar {x/var} a θ
14.
15. Sistemas de Programación Lógicos
La programacion 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:
Algoritmo = Lógica + Control
Los lenguajes de programacion permiten escribir algoritmos al
complementar las oraciones lógicas con información para control del
procedimiento de inferencia.
Prolog ha sido hasta ahora el lenguaje de programacion lógica que
más se ha utilizado para lo anterior. Sus usuarios ascienden a cientos
de miles. Se le utiliza fundamentalmente como un lenguaje rápido
para elaborar prototipos y en tareas donde hay que manejar
signos, como en el diseño de compiladores y en el análisis gramatical
del lenguaje natural. También se le ha utilizado en el diseño de
aplicaciones de sistemas expertos en las áreas legal, financiera y
otras.
16. El Lenguaje Prolog
En cuanto base de conocimientos lógica, el programa
Prolog tiene las siguientes características:
El programa consta de una secuencia de oraciones, que guardan una
relación implícita de coyuncion. Todas las variables tienen
cuantificación universal implícita y cuando las variables aparecen en
oraciones distintas se consideran como diferentes.
Se aceptan únicamente oraciones en forma de clausula de Horm. Es
decir, las oraciones son atómicas, o bien una implicación que no tiene
antecedentes negados y un consecuente atómico.
Los términos pueden ser signos de constante, variables o términos
funcionales.
En una consulta puede haber conjunciones, disyunciones, variables y
términos funcionales.
En vez de utilizar antecedentes negados en sus implicaciones, en
Prolog se emplea un operador de negación como falla: una meta no P
se considera demostrada si el sistema no logra demostrar P.
17. El Lenguaje Prolog
Se cuenta con una gran cantidad de predicados incorporados
para aritmética, de entrada/salida y diversas funciones del
sistema y de la base de conocimientos. En la notación de
Prolog ,la meta X es 4+3 se alcanza cuando X se vincula a 7.
Por el contrario, no es posible demostrar la meta 5 es X+Y,
puesto que las funciones integradas no tienen facultad para la
resolución arbitraria de ecuaciones.
El siguiente es un ejemplo del empleo del programa Prolog en
la relación Miembro, expresados ambos en notación normal
de lógica de primer orden y en formato que utiliza Prolog:
18. El Lenguaje Prolog
Representación correspondiente a Prolog el consecuente o cabeza, esta
del lado izquierdo; los antecedentes o cuerpo, a la derecha. Una clausula
en Prolog se leería como “Para demostrar (la cabeza), demuestre (el
cuerpo)”.
Con el fin de mantener este tipo de lectura intuitiva junto con nuestra
notación lógica, nos comprometeremos a escribir las clausulas de Prolog
empleando una implicación en sentido izquierdo. Por ejemplo, la segunda
clausula de la definición de Miembro se convierte en:
La definición de Miembro puede servir para responder a diversos tipos de
consultas. Puede utilizarse para confirmar que es verdadera. Además
puede enumerar los tres valores de x que hagan verdadera a . También
pueden buscar el valor de x tal que es verdadera. También puede servir
para enumerar las listas para las cuales es verdadera.
19. 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 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.
Aunque la omisión de la verificación de ocurrencia podría restar
confiabilidad a Prolog, en la practica los errores se producen
muy rara vez. El empleo de la búsqueda preferente por
profundidad no permite a Prolog ser completo, debido a las
rutas infinitas que crean las oraciones circulares.
20. Implantación
Los programadores deberán tener presente las grande ventajas de
Prolog es que el modelo de ejecución es lo suficientemente sencillo
como para que un programador con la capacitación necesaria pueda
incorporar información de control y producir así un programa
eficiente.
La ejecución de un programa Prolog se realiza de dos maneras: por
interpretación y por compilación.
La primera consiste en que en vez de construir la lista de todas las
respuestas posibles para cada submeta, antes de proceder con la
siguiente, los intérpretes de Prolog generan una respuesta y una
“promesa” para generar el resto una vez que la respuesta en cuestión
haya sido explorada totalmente. A esta promesa se le denomina punto
de elección. Una vez que la búsqueda preferente por profundidad
concluye su exploración de las posibles soluciones aportadas por la
respuesta en cuestión y retrocede al punto de elección, este se
expande para producir así una nueva respuesta para la submeta y el
nuevo punto de elección.
Esta manera de proceder permite ahorrar tiempo y espacio.
21. La Segunda
La Sencilla implantación del ENACADENAMIENTO-HACIA-ATRÁS
invierte bastante tiempo en la generación de sustituciones y en
aplicarlas a las listas de consulta. Prolog elimina la necesidad de un
tipo de datos de sustitución al implementar variables lógicas capaces
de recordar su vinculación actual. En todo instante, las variables de un
programa están vinculadas o desvinculadas a cierto valor. En
conjunto, tales variables y valores definen de manera implícita una
sustitución.
Desde luego, se produce solo una sustitución a la vez, pero no
necesitamos más. La sustitución es la correcta para la ruta actual en el
árbol de búsqueda. La ampliación de la ruta solo puede añadir nuevas
vinculaciones de variables, puesto que si se intentara añadir una
vinculación distinta a una variable que ya este vinculada, dará como
resultado una falla en la unificación. Si llegara a fallar una ruta de la
búsqueda, Prolog retrocederá a un punto de elección previo, y
posiblemente allí deba desvincular algunas variables. Para ello, es
necesario que lleve un registro de todas las variables vinculadas en
una pila que se conoce con el nombre de pista.
22. Compilación de Programas Lógicos
Toda la parte medular, para trabajo pesado, de la
programación de Prolog se realiza mediante código
compilado. La gran ventaja de la compilación es que
cuando llega el momento de ejecutar el
procedimiento de inferencia, se utilizan rutinas de
inferencia específicamente diseñadas para las
oraciones de la base de conocimientos. Prolog
básicamente lo que hace es generar un demostrador
de teoremas en miniatura para cada predicado
diferente, con lo que se elimina mucho del exceso de
interpretación. También permite la codificación
abierta de la rutina de unificación por cada
invocación distinta, lo que ahorra el tener que
analizar explícitamente la estructura de los términos.
23. Otros Lenguajes de Programación Lógica
Si bien Prolog es la norma aceptada en la programación lógica, existen
muchos otros sistemas bastante útiles que básicamente lo que hacen es
ampliar de una u otra manera el modelo fundamental de Prolog.
Resulta obvio emprender la exploración de Prolog a través del paralelismo de
Prolog a través del paralelismo. La primera, conocida como paralelismo-
O, surge de la posibilidad de que una meta unifique con diversas y diferentes
literales e implicaciones de la base de conocimientos. Cada una de ellas
produce una rama independiente en el espacio de búsqueda y es susceptible
de generar una solución potencial; todas estas ramas pueden ser resueltas en
paralelo. La segunda, conocida como paralelismo-Y, proviene de la posibilidad
de resolver cada uno de los coyuntos del cuerpo de una implicación en
paralelo. El paralelismo Y es mas difícil de lograr, puesto que las soluciones de
toda la conjución exigen la vinculación consistente de todas las variables. Cada
rama conjuntiva debe comunicarse con las otras ramas para garantizar asi una
solución global.
Son muchos los proyectos que han tenido éxito en el logro de cierto grado de
inferencia paralela, pero el mas avanzado quizá sea el proyecto PIM (Parallel
Interfence Machine, Maquina de inferencia paralela), parte del proyecto
Sistemas de Computo Quinta Generación, de Japón. PIM ha logrado alcanzar
velocidades de hasta 64 millones de ILPS.
24. Recursos Avanzados deControl
Regresando a nuestra base de conocimientos censal, tomemos por
ejemplo la consulta “¿Cuál es el ingreso de la esposa del presidente” Lo
anterior se expresaría en Prolog de la manera siguiente:
Ingreso(s, i) ^ Casado(s, p) ^ Ocupación (p, Presidente)
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 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, seria mejor ordenarla como sigue:
Ocupación (p, Presidente) ^ Casado(s, p) ^ Ingreso(s, i)
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.
25. Recursos Avanzados deControl
Este procedimiento de reordenamiento es un ejemplo de meta
razonamiento, o del razonamiento acerca del razonamiento.
Como en el caso de la búsqueda por satisfacción de
restricciones, la heurística que estamos empleando para la
ordenación de los coyuntos consiste en colocar en primer lugar
aquellos con más restricciones. En este caso es evidente que
solo una p satisface Ocupación (p, Presidente), pero no siempre
es igual de fácil anticipadamente predecir cuantas soluciones
habrá para un predicado. Y, aun si lo fuera, no seria practico
probar todas las n. Permutaciones de una conjunción de n
lugares, cuando tal n es grande. Lenguajes como MRS permite
al programador escribir meta reglas para decidir que coyuntos
son los que hay que probar primero. Por ejemplo el usuario
podría definir una regla en donde se afirme que la meta que
implica menos variables es la que debe probarse primero.
26. Recursos Avanzados deControl
En algunos sistemas, en vez de reordenar los coyuntos, se
modifica la manera como se efectúa la reversión. Por ejemplo, si
se desea encontrar a todas aquellas personas x que vengan de
un mismo poblado en calidad de presidente. Un ordenamiento
ineficiente de esta consulta seria:
Residente (p, ciudad) ^ Residente(x, ciudad) ^ Ocupación (p, Presidente)
En Prolog se intentaría resolver lo anterior mediante la
enumeración de todos los residentes p de cualquier población,
luego enumerar todos los residentes c de dicha población y
luego verificar si p es el presidente. Cuando la meta Ocupación
(p, Presidente) falla, Prolog regresa al punto de elección mas
reciente, que es la meta Residente(x, población). A esto se le
conoce como reversión cronológica; si bien es sencilla, a veces
resulta ineficiente. Es evidente que el generar una nueva x de
nada servirá para que p ¡se convierta en presidente!
27. Recursos Avanzados deControl
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 practica, son
mas los sistemas de salto reversivo que los sistemas dirigidos
por dependencia.
28.
29. Demostradores deTeoremas
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
A B ^ C en vez de, A C ^ B afectará la ejecución
del programa. En el caso de los demostradores de
teoremas, el usuario puede utilizar cualquiera de las 2
anteriores y los resultados serán exactamente los
mismos.
30. Diseño de un Verificador deTeoremas (OTTER)
Un conjunto de cláusulas conocido como conjunto de
apoyo.
Un conjunto de axiomas utilizables que no pertenezcan
al conjunto de apoyo.
Un conjunto de ecuaciones conocido como
reelaboraciones o demoduladores.
Un conjunto de parámetros y cláusulas que definen la
estrategia de control.
OTTER opera mediante la resolución continua de
un elemento del conjunto de apoyo
comparándolo con uno de los axiomas utilizables.
31. Algoritmo (OTTER)
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
funcion INFER(clausula, usable) devuelve clausulas
resolver clausula con cada miembro de usable
devuelve la clausula resultante después de aplicar FILTER
procedimiento PROCESS(clausula, sos)
para cada clausula en clausulas hacer
clausula SIMPLIFY(clausula)
intercalar literales idénticas
descartar clausula si esta es una tautología
sos [clausula | sos]
si clausula no tiene literales entonces
se ha encontrado una refutación
si clausula tiene una literal entonces
buscar una unidad de refutación
fin
32. Ampliación de Prolog
En el DTTP son cinco los cambios más importantes
que se efectuaron a Prolog para devolverle integridad
y expresividad.
La verificación de ocurrencia se devolvió a la rutina de
unificación con el fin de hacerla más sólida.
La búsqueda preferente por profundidad se sustituye por
una búsqueda de profundización iterativa.
Aceptar y literales negadas.
Una cláusula que conste de n átomos se guarda en n reglas
distintas.
La inferencia se completa por la adición de la regla de
resolución de entrada lineal, se trata de un razonamiento
por contradicción.
35. Sistemas de Producción por
Encadenamiento Hacia Adelante
Se aplica a la base de conocimientos reglas de
inferencia, lo que producen nuevas
aseveraciones. Éste procedimiento se repite
indefinidamente, o hasta que se logra satisfacer
cierto criterio de paro. Éste procedimiento es
adecuado en el diseño de un agente: en cada
ciclo, se incorporan las percepciones a la base de
conocimientos y se ejecuta el encadenamiento
hacía adelante, el cual elige qué acción realizar de
acuerdo con un conjunto de reglas condición –
acción.
36. Características de un Sistema de Producción
El sistema mantiene una base de conocimiento
conocida como memoria de trabajo.
El sistema mantiene también una memoria de
reglas independiente.
En cada ciclo, el sistema calcula el subconjunto de
reglas cuyo lado izquierdo se satisface con el
contenido actual de la memoria de trabajo.
El sistema decide entonces cuál de la reglas se va
a ejecutar.
El paso final de cada ciclo consiste en ejecutar las
acciones de las reglas elegidas.
37. Fase deCotejo
La unificación enfrenta el problema del cotejo de un par
de literales, cada una de las cuales puede contener
variables.
El algoritmo rete empleado en el sistema de producción
OPS – 5 fue el primero en abordar seriamente este
problema.
Supongamos que tenemos la siguiente memoria de
reglas:
Y la siguiente memoria de trabajo:
{A(1), A(2), B(2), B(3), B(4), C(5)}
38. Fase deCotejo
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.
39. Fase deSolución deConflictos
Alguna de las estrategias que sean utilizados son
la siguiente:
No duplicación
Novedad
Especificidad
Prioridad de operación
Aplicaciones prácticas
XCON
ACT
SOAR
40.
41. Sistemas de Marco y Redes Semánticas
Actualmente se acepta que toda red semántica o
sistema de cuadro también puede definirse como
oraciones de una lógica, y la mayoría está de acuerdo
en que ésta sea la lógica de primer orden. Lo
importante en todo lenguaje de representación
reside en la comprensión de la semántica y en la
teoría de la demostración; los detalles de la sintaxis
son menos importantes.
El que en lenguaje se utilicen cadenas Onadas y
vínculos, y el que se le llame red semántica o
lógica, es irrelevante para su significado o para su
implantación.
42. Sistemas de Marco y Redes Semánticas
La comprensión de algunas cosas se facilita
mediante la notación gráfica; algunas otras son
más claras cuando aparecen como cadenas de
caracteres. Afortunadamente , no es necesario
decidirse en definitiva por una u otra; el
profesional en IA diestro es capaz de traducir en
ambos sentidos las notaciones y elige aquella que
mejor se adapta a sus necesidades del momento;
lo que no puede es obtener intuiciones de otras
notaciones.
43. Sistemas de Marco y Redes Semánticas
Además del atractivo de esos bonitos diagramas nodo-
vinculo, 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 :
Es fácil visualizar los pasos que se darán en el
procedimiento de inferencia y
Porque el lenguaje de la consulta es tan sencillo que
impide formular consultas complicadas.
44. Sintaxis y Semántica de las Redes Semánticas
En las redes semánticas la atención está puesta en las
categorías de los objetos y las relaciones que existen entre
éstos. En ellas es muy natural establecer vínculos como:
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:
45. Sintaxis y Semántica de las Redes Semánticas
Y que producía una respetuosa intimidación. Se
consideraba también que no daba lugar a
excepciones, en tanto que era una expresión más
benevolente.
Ahora se reconoce que la semántica es más
importante que la notación.
En la figura siguiente diapositiva se ofrece un
ejemplo de una red basada en marco típica, y una
traducción de la red en lógica de primer orden. Esta
red puede servir para responder a la pregunta:
quot;¿Cuántas piernas tiene Opus?“.
46. Herencia con Excepciones
Animales
T
Vivo
Moscas F
Mamíferos
Pájaros
2
Piernas Piernas 4
Moscas T
Conjunt
Conjunt
Sub
Sub
o
o
Pingüinos Gatos Murciélagos
Piernas 2
Moscas F
Moscas T
Miembr
Miembr
Miembr
o
o
o
Opus Memo Pat
Nombre: Opus Nombre: Bill Nombre: Pat
Amigo Amigo
(b) Traducción o lógica de primer orden
(a)Una base de conocimientos
basada en marco
47. Herencia con Excepciones
Como vimos en el capitulo anterior, las clases naturales están llenas de
excepciones. En la figura pasada(base de conocimientos basadas en
cuadro) se afirma que los mamíferos tienen cuatro piernas, pero
también se afirma que los murciélagos, que lambien son
mamíferos, tienen dos piernas. De acuerdo con la semántica lógica
directa, lo anterior es una contradicción.
Para resolver el problema, se modifica la traducción semántica de un
vinculo R que está dentro de una caja, de A a B para indicar así que
todos los miembros de A deben tener una relación R con B a menos
que exista una A' para lo cual Rel(R, A’, B').
De esta manera, en la figura pasada se afirmará, sin dar lugar a
contradicciones, que los murciélagos tienen dos piernas, no cuatro.
Observe que Rel(R, A, B) ya no significa que todas las A están
relacionadas con B mediante R;sino que B es el valor por omisión de la
relación R para los miembros de A; pero los valores por omisión
pueden resultar invalidados por alguna otra información.
49. Herencia Múltiple
En algunos sistemas de redes semánticas existe la
herencia múltiple, es decir, cuando un objeto
pertenece a más de una categoría, y por tanto,
hereda propiedades de varias 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 siguiente
figura se muestra un ejemplo de una dificultad
semejante.
50. Herencia Múltiple Animado
Personaje de Pingüino Graznidos
Lenguaje Vocalización Vocalización
la tira cómica
verbal
Opus
Opus es un pingüino, por lo que sólo quot;emitequot; graznidos. Opus
es un personaje de una tira cómica, por lo tanto habla en
español. 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.
51. Herencia y Cambio
Las bases de conocimiento no son de mucha utilidad para los agentes
a menos que exista la posibilidad de ampliarlas. Los sistemas basados
en la lógica de primer orden se valen de DECIR para incorporar una
nueva oración a la base de conocimientos y, además, se cuenta con la
propiedad dela mono tonicidad: si P se deduce de BC, entonces
también se aumenta por DECIR(BC,S). Es decir:
La herencia que no tiene excepciones se considera no monotónica. en
la red semántica de la que hemos visto se deduce que Memo tiene
cuatro piernas; pero, si se incorpora la nueva aseveración Rel(Piernas.
Gatos. 3), ya no se cumple que Memo tiene cuatro piernas. Hay dos
métodos para resolver lo anterior. Primero, cambiar de lógica de
primer orden a lógica no monotónica, que explícitamente maneja
valores por omisión. En la lógica monotónica se puede afirmar que una
proposición P debe ser considerada como verdadera hasta que
mediante evidencia adicional se demuestre que P es falsa.
52. Implantación de Redes Semánticas
Una vez definido el significado de nuestras redes,
podemos proceder a implantar la red. Desde luego
que es posible implantarla mediante un demostrador
de teoremas o con un lenguaje de programación
lógica, lo que en algunos casos es la mejor opción.
Sin embargo, en el caso de redes cuya semántica es
sencilla, es posible utilizar una implantación más
directa. El nodo de una red se representa mediante
una estructura de datos, en la que hay campos para
las conexiones taxonómicas básicas: de qué
categorías se es miembro, qué elementos contiene,
cuáles son los subconjuntos y supraconjunlos
inmediatos. También cuenta con campos para otras
relaciones en las que participa.
53. Expresividad de las Redes Semánticas
Las redes de las que hemos hablado hasta ahora
están excesivamente limitadas en cuanto a su
expresividad. Por ejemplo, no es posible
representar una negación (Opus no anda en
bicicleta), una disyunción (Opus aparece tanto en
el Times como en el Dispatch), ni una
cuantificación (todos los amigos de Opus son
personajes de tira cómica). Este tipo de
construcciones son fundamentales en muchos
dominios.
54. ¿Qué nos pueden ofrecer las redes semánticas a
cambio de la falta de expresividad?
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.
55.
56. Lógicas para la Descripción
Están diseñadas para concentrarse en categorías
y sus definiciones. Constituyen un medio
modernamente complejo para definir categorías
en función de relaciones existentes, con mucha
mayor expresividad de los lenguajes de red
semánticos típicos.
Principales Tareas:
Subsuposición
Clasificación
57. Lógicas para la Descripción
El lenguaje CLASSIC es un ejemplo típico de una
lógica de descripción
58. Lógicas para la Descripción
Por ejemplo, para expresar que los solteros son
adultos que no están casados, escribiríamos:
El equivalente de lo anterior en lógica de primer
orden seria:
La lógica de la descripción permite efectuar
operaciones lógicas directas en los predicados, en
vez de tener que crear primero oraciones que se
unen mediante conectores.
59. Lógicas para la Descripción
En CLASSIC, para describir el conjunto de
hombres que por lo menos tengan tres
hijos, estén desempleados y cuya esposa es
doctora, y que además tengan como máximo dos
hijas, ambas profesoras de física o química
escribíamos:
Y(Hombre, PorLoMenos(3, Hijos), CuantoMas(2, Hijas)),
Todos(Hijo, Y(Desempleado, Casado, Todos(Esposa, Doctora))),
Todos(Hija, Y(Profesora, Satisface(Departamento, Fisica, Quimica)))
60. Lógicas para la Descripción
El énfasis en la lógica de descripciones, es
garantizar que la prueba de subsuposición pueda
ser resuelta en un tiempo que sea una función
polinómica del tamaño de la descripción del
problema.
El lenguaje CLASSIC satisface esta
condición y hasta la fecha, es el lenguaje
mas completo que es capaz de hacerlo.
61. Aplicaciones Práctica de la Lógicas de
Descripción
Administración Financiera
Interfaces de Bases de Datos
Sistemas de Información de Software
A la gradual ampliación de la clase de lenguajes tratables
y una mejor comprensión de qué tipo de estructuras
causan la intratabilidad, la eficiencia LD de sistemas
lógicos ha mejorado notablemente.
62.
63. Manejo de
Retractaciones, Suposiciones y
La mayoría de
Explicaciones los sistemas de razonamiento
lógico, independientemente de cómo se les
haya implantado, guardan relación con
RETRACTAR.
Deseamos tener capacidad para retractar una
oración de la BC sin introducir inconsistencia
alguna, y que la interacción con la BC sea
eficiente.
64. Manejo de Retractaciones,
Suposiciones y Explicaciones
Primero, es importante diferenciar entre
RETRACTAR (BC, P) y DECIR (BC, ~P).
En segundo lugar, si el sistema realiza algún
encadenamiento hacia delante, RETRACTAR
tiene más trabajo que realizar.
Al procedimiento que consiste en llevar un
control de qué proposiciones adicionales hay
que retractar cuando se retracta P se le
conoce como mantenimiento de la verdad.
65. Sistema de mantenimiento de la verdad
(SMV)
Es un programa que lleva el control de las
dependencias presentes entre las oraciones con
el fin de hacer más eficiente la retractación.
Un sistema SMV realiza 4 funciones:
Primero: Permite la reversión controlada por
dependencia
Segundo: Ofrecer explicaciones de las
proposiciones.
66. Sistema de mantenimiento de la verdad
(SMV)
Si se pregunta “Explique por qué considera que P
es verdad”, la prueba de P será una buena
explicación.
Por ejemplo, Si preguntamos: “Explique por qué
no arranca el carro”.
Una buena explicación sería: “Si damos por
hecho que el auto tiene combustible, que éste
llega a los cilindros, entonces la ausencia de
actividad que se ha observado demuestra que
debe haber una falla en el sistema eléctrico”.
67. Sistema de mantenimiento de la verdad
(SMV)
Tercero: el razonamiento por omisión
El decir que Opus es un pingüino no sanciona la
inferencia irrefutable de que Opus tiene dos
piernas, puesto que toda información adicional
sobre Opus invalidaría la creencia deducida.
Un SMV puede deducir la explicación de que
Opus, en cuanto que es un pingüino, tiene dos
piernas siempre y cuando no sea un pingüino
anormal.
68. Sistema de mantenimiento de la verdad
(SMV)
Los SMV ayudan a manejar las inconsistencias. Si
la incorporación de P a la BC produce una
contradicción lógica, un SMV es útil para señalar
la explicación de lo que es la contradicción.
Existen diversos tipos de SMV:
El más sencillo es el sistema de mantenimiento
de la verdad basado en la justificación o SMVJ.
69. Sistema de Mantenimiento de la Verdad
Basado en la Justificación (SMVJ)
En cada una de las oraciones de la BC se indica
cual justificación identifica las oraciones a partir
de la cual la primera se infirió, si es que existen.
Ejemplo si Q se infiere mediante Modus Ponens
de P, el conjunto de oraciones {P, P Q} serviría
de justificación de la oración Q.
70. Sistema de Mantenimiento de la Verdad
Basado en la Justificación (SMVJ)
En la mayoría de las implantaciones de SMVJ, se
supone que las oraciones consideradas una vez,
posiblemente se vuelvan a tomar en
consideración.
En vez de eliminar la oración de la BC cuando
pierde su justificación, se marca la oración como
fuera de la BC.
Si una aseveración posterior le devuelve la
justificación, marcamos la oración como dentro.
71. Sistema de Mantenimiento de la Verdad
Basado en la Justificación (SMVJ)
Así, supondremos primero (aseveramos) que el
auto tiene combustible y que llega a los cilindros.
A estas oraciones se les etiquetará como dentro.
Suponiendo que se cuenta con el conocimiento
de base adecuado, la oración que representa el
hecho de que el carro no arranca se etiquetará
como fuera.
Ahora podemos decir una explicación al SMVJ.
72. Sistema de Mantenimiento de la Verdad
Basado en Suposiciones (SMVS)
El tipo más popular es el SMVS (sistema de
mantenimiento de la verdad basado en
suposiciones)
La diferencia reside en que SMVJ representa un
estado consistente del mundo a la vez.
SMVS representa todos los estados que se han
considerado, simultáneamente.
73. Sistema de Mantenimiento de la Verdad
Basado en Suposiciones (SMVS)
Mientras que un SMVJ etiqueta 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.
Para resolver problemas mediante SMVS, se
pueden hacer suposiciones (como Pi o
“combustible en el auto”) en el orden que
prefiramos.
74. Sistema de Mantenimiento de la Verdad
Basado en Suposiciones (SMVS)
En vez de retractar las suposiciones cuando falla una
línea de razonamiento, solo afirmamos todas las
suposiciones que nos interesen, incluso si unas
contradicen a otras.
Luego procedemos a verificar una oración en
particular para definir las condiciones en las que si se
cumple.
Una oración en la que uno de sus conjuntos de
supuestos sea un conjunto vacio es verdadera; por
no tener ninguna suposición. Una oración que no
tenga conjuntos de suposición es falsa.