Representación de Conocimiento

Anuncio
Representación de Conocimiento
Eduardo Morales, L. Enrique Sucar
Objetivos
Identificar cuales son los componentes que se requieren considerar para
representar el conocimiento en una aplicación, utilizar una o varias de las
técnicas de representación usadas en Inteligencia Artificial que sean más
adecuadas para el problema en cuestión, y decidir sobre los mecanismos de
inferencia y control a utilizar sobre las representaciones propuestas.
Temario
1. Introducción a Inteligencia Artificial
2. Representación de Conocimeinto
3. Búsqueda
4. Lógica
5. Reglas de producción
6. Objetos estructurados
7. Hı́bridos
8. Arquitecturas de control
9. Modelos cualitativos
10. Razonamiento temporal
11. Incertidumbre y sistemas no–monotónicos
12. Adquisición de conocimiento y aprendizaje
13. Ontologı́as
14. Problemas de Representación de Conocimiento
Evaluación
La evaluación consiste de:
1
• Representación de un problema para cada una de las técnicas vistas en
clase (30%).
• Examen a mediados del curso (30%).
• Presentación y análisis de artı́culos relevantes al curso (10%).
• Realización de un proyecto resolviendo el problema planteado (30%).
Las especificaciones para el proyecto final son:
1. Entregar un documento que contenga (por lo menos) las siguientes
secciones:
a) El problema a resolver y las principales carácterı́sticas del mismo.
b) Qué elementos están considerando en la representación del problema: objetos, atributos, relaciones, funciones, etc. y qué representan.
c) Qué técnica(s) de representación están usando, qué método(s) de
inferencia (y arquitectura de control), y porqué?
d) Mostrar los resultados obtenidos y analizarlos
e) Hacer una breve análisis de las ventajas/desventajas de la representación y método de inferencia utilizado.
f) Dar conclusiones e ideas de posibles extensiones
2. Realizar una implementación que resuelve su problema (en cualquier
lenguaje):
a) Entregar listado de código junto con el documento
b) Hacer una demostración del mismo
3. Hacer una presentación breve (15 min.) que explique el punto (1) y los
resultados obtenidos.
Referencias bibliográficas
2
• Lucas, P. y Van der Gaag, L. Principles of Expert Systems. Addison
Wesley, 1991.
• Brachman, R y Levesque, H. Readings in Knowledge Representation.
Morgan Kaufmann, 1985.
• Russel, S., Norvig, P., Artificial Intelligence: A Modern Approach,
Prentice-Hall, 1995.
• Jackson, P. Introduction to Expert Systems. Addison-Wesley, 1990 (2a.
edición).
• Winston, P., Artificial Intelligence. Addison-Wesley (Tercera Edición)
1992.
• Feigenbaum, XXXX
• Shapiro, S.C. Encyclopedia of Artificial Intelligence. Wiley, New York
(segunda edición), 1992.
• Is the Brain Mind a Computer Program? John R. Searle. Scientific
American, Jan. 1990, pp. 26-31.
• Could a Machine Think? Paul M. Churchland, Patricia Smith Churchland. Scientific American, Jan. 1990, pp. 32-37.
• On Computational Wings: Rethinking the Goals of Artificial Intelligence. Kenneth M. Ford, Patrick J. Hayes. Scientific American, Vol.
9 (4): pp. 78-83.
• Christopher John Hogger, Essential of Logic Programming, Oxford University Press, 1990.
• Artı́culos de revistas
3
Capı́tulo 1
Introducción a Inteligencia
Artificial
1.1
Inteligencia Artificial
• ... diseño de sistemas inteligentes, es decir, que exhiben caracterı́sticas
que asociamos con la inteligencia humana - entender lenguaje natural,
aprendizaje, razonamiento, etc. [Feigenbaum].
• ... hacer computadoras más útiles y entender los principios que hacen
posible la inteligencia [Winston].
• ... programar computadoras para que hagan tareas que actualmente
son hechas mejor por los seres humanos, ... , aprendizaje perceptual,
organización de la memoria, razonamiento [Jackson].
• ... es un campo de la ciencia y de la ingenierı́a que se ocupa de la
comprensión a través de la computadora de lo que comunmente llamamos comportamiento inteligente y de la creación de herramientas
que exhiben tal comportamiento [Shapiro].
Dos aspectos básicos:
1. Entender y modelar sistemas “inteligentes” (ciencia)
4
2. Construir máquinas “inteligentes” (ingenierı́a)
Enfoques:
• Sistemas que piensan como humanos (ciencia cognitiva).
• Sistemas que actuan como humanos (prueba de Turing).
• Sistemas que piensan racionalmente (lógica).
• Sistemas que actuan racionalmente (teorı́a de decisiones).
Pero, ¿qué es inteligencia?
habilidad de razonar, adquirir y aplicar conocimiento, percibir y
manipular objetos, ...
Tipo de aplicaciones:
• Comprensión de lenguaje natural.
• Interpretación de imágenes.
• Manipulación y navegación.
• Matemáticas simbólicas.
• Planeación.
• Solución de problemas complejos.
Tipo de técnicas:
• Manipulación simbólica.
• Aprendizaje.
5
• Razonamiento.
• Búsqueda heurı́stica.
Tipo de lenguajes:
• Simbólicos (Lisp)
• Lógicos (Prolog)
Es multidisciplinaria (computación + otras áreas)
IA tiene sus fundamentos en áreas tales como:
• Filosofı́a (Socrates – Platón, Descartes, Leibnitz, etc)
• Matemáticas (Boole, Frege, Tarski, Hilbert, Gödel, Turing, Church)
(Pascal, Bernoulli, Laplace, Bayes) (von Neumann, O. Morgenstern)
• Psicologı́a (Helmoltz, Wundt, Watson, James)
• Ingenierı́a Computacional: Heath Robinson - Colossus (Turing - UK),
Z-3 (Zuse - Alemania), ABC, Mark I, II y III, ENIAC (USA), IBM-701
• Linguı́stica (Skinner, Chomsky)
1.2
Desarrollo Histórico
Según [Jackson 86]:
1950-1965 Periodo “clásico”
• Gestación [McColluck y Pitts, Shannon, Turing]
• Inicio - reunión de Darmouth College en 1956 [Minsky, McCarthy]
6
• Redes neuronales, robótica (Shakey)
• Búsqueda en un espacio de estados, Heurı́sticas, LISP
• Resolvedor general de problemas (GPS) [Newell, Simon]
• Juegos, prueba de teoremas
⇒ Limitaciones de pura búsqueda, explosión combinatoria.
1965-1975 Periodo “romántico”
• Representación “general” del conocimiento.
• Redes semánticas [Quillian]
• Prototipos (frames) [Minsky]
• Perceptron [Minsky y Papert]
• Lógica [Kowalski]
• Mundo de bloques (SHDRLU) [Winograd]
• Compresión de lenguaje, visión, robótica.
⇒ Dificultades de representación “general”, problemas de “juguete”.
1975-Hoy Periodo “moderno”
• Inteligencia “especifica” vs “general”.
• Representación explı́cita del conocimiento especı́fico del dominio.
• Sistemas expertos o basados en conocimiento.
• Regreso de redes neuronales [Hopfield, Rumelhart, Hinton], algoritmos
genéticos [Holland, Goldberg]
• Reconociminto de voz (HMM), incertidumbre (RB, Lógica difusa), planeación,
aprendizaje
7
• Aplicaciones “reales” (medicina, finanzas, ingenierı́a, exploración, etc.).
⇒ Limitaciones: conocimiento “superficial”, muy especı́fico, falta “sentido
común”.
Según [Russell, Norvig 95]:
Gestación (1943-1956): McCullock y Pitts (43), Hebb (49), Shannon (50),
Turing (53), Minsky y Edmonds (51). Darmouth College (56) McCarthy, Newell y Simon “The Logic Theorist”
Entusiasmo y grandes espectativas (1952-1969): Samuel - checkers (52),
McCarthy (58): Lisp, time sharing, Programs with common sense.
Minsky y McCarthy en MIT moldearon mucho del area. En 63 McCarthy se fue a Stanford → SRI, Shakey, etc. Minsky → Evans, Student, Waltz, Winston, Winograd, etc. Trabajo en RN: Hebb, Widrow,
Rosenblatt
Dosis de realidad (1966-1974): Simon predecı́a que en 10 años se tendrı́a
una máquina inteligente. Predicciones similares en traducción automática
y ajedrez. Teorı́a de NP-completness. Experimentos en machine evolution (ahora algoritmos genéticos) (Friedberg, 58) estaban bien fundados
pero no produjeron nada. Minsky y Papert Perceptrons (69) (aunque
irónicamente el mismo año se descubrió backpropagation (Bryson y Ho))
Sistemas basados en conocimiento (1969-1979): Dendral, Mycin, HPP,
Prospector, Winograd SHDRLU, Shank (no hay sintáxis), frames, Prolog, Planner
IA como industria (1980-1988): R1/XCON, proyecto de la quinta generación, shells y máquinas de Lisp...
Regreso de redes neuronales (1986-presente): Hopfield, Rumelhart y
Hinton y descenso de los SE
Eventos recientes (1987-presente): Cambio gradual hacia los técnicos
y lejos de los rudos (implica cierto grado de madurez y estabilidad)
e.g., reconocimiento de voz (HMM), incertidumbre (Bayes), planeación
(Tweak), robótica, aprendizaje (PAC), etc
8
1.3
1.3.1
Sistemas y/o Desarrollos Importantes
Sistemas históricos
• GPS - Newell, Shaw y Simon
• Perceptron - Minsky y Papert
• Chekers - A. Samuel
• MACSYMA
• AM - D. Lenat
• ELIZA - Weisenbaum
• Shakey - SRI
• SHDRLU - Winogard
• MYCIN - E. Shortliffe
• Prospector - Duda, Hart
• Hearsay II - Erman, Hayes-Roth, Lesser, Reddy
• CYC - D. Lenat, R. Guha
• ...
1.3.2
Sistemas actuales
• PEGASUS - hace reservaciones de transporte por teléfono [Zue et al.
94]
• MARVEL - sistema experto en tiempo real que maneja la información
de Voyager y ayuda a diagnosticar fallas [Schwuttke 92]
• Sistema de diagnóstico de medicina interna con capacidad de explicar
sus razones a los expertos [Heckerman 91]
9
• NAVLAB - vehı́culo autónomo que viaje en forma automática de un
extremo a otro de EUA [Pomerlau 93]
• Sistema de visión que monitorea el tráfico en Paris y reconoce accidentes con los cuales llama a servicios de emergencia [Koller 94]
• DEEP BLUE - máquina paralela que juega ajedrez y primera en derrotar al campeón mundial [IBM 97]
1.4
Cuestionamientos
Disputas internas: lógicos/teóricos vs. prácticos
Disputa externa: se puede lograr una verdadera IA?
Existen dos posiciones: IA debil y IA fuerte.
• Débil: podemos lograr crear máquinas que actuen como si fueran inteligentes?
• Fuerte: Podemos tener máquinas inteligentes? (i.e., conciencia...)
1.4.1
Crı́ticas
• Gödel (teorema de incompletes)
• Dreyfus (la manipulación simbólica no es fundamento de inteligencia)
• Winograd y Flores (mejor enfocarse a problemas prácticos)
• Searle (pensamiento real y simulado, e.g., la caja china)
• Penrose “The Emperor’s New Mind” (se requiere conocimiento de fı́sica
no incluı́do en las máquinas)
10
1.4.2
Técnicas de Representación
Representaciones básicas:
• Reglas de producción
• Redes semánticas
• Frames (prototipos o marcos)
• Lógica de predicados
Representaciones avanzadas:
• Modelos cualitativos, temporales, causales
• Sistemas hı́bridos, capas, pizarrón
• Razonamiento basado en casos
• Redes neuronales y algoritmos genéticos
• Sistemas multifuncionales
Representación de incertidumbre:
• Técnicas no-numéricas (TMS)
• Factores de certeza
• Lógica difusa
• Redes probabilı́sticas
11
Capı́tulo 2
Representación de
Conocimiento
Representación de conocimiento =
Escribir en un lenguaje descripciones del mundo.
Representación - “... un conjunto de convenciones sintácticas y semánticas
que hacen posible el describir cosas” [Winston 74]
En IA, son descripciones para que una máquina inteligente las utilice.
Sintaxis: sı́mbolos y conjunto de reglas para combinarlos.
Semántica: significado de las expresiones construidas.
A pesar de que todo programa de IA tiene una parte de base de conocimiento,
es una área de investigación abierta.
Ingredientes básicos:
• un lenguaje de representación
• capacidad de inferencias
• conocimiento del dominio
12
El poder está en el conocimiento
Una de las ambiciones es poder representar “sentido común”
El fin no es tanto buscar una explicación de comportamiento cognitivo racional,
sino el poder construir razonablemente sistemas inteligentes
En general una representación debe de tener:
1. Expresividad Adecuada
2. Eficiencia de Razonamiento
Criterios para juzgar una representación:
• Capacidad Lógica: Que sea capaz de expresar el conocimiento que
deseamos expresar.
• Poderı́o Heurı́stico: Capacidad para resolver problemas (inferencia).
• Conveniencia de la Notación: Simplicidad para accesar el conocimiento
y facilidad de entendimiento (declarativa).
La representación determina la facilidad con la que podemos resolver
ciertos problemas y utilizar el conocimiento [Marr 82].
Ejemplo: representación de números romanos vs arábigos (desarrollo del
álgebra).
A nivel epistemológico:
• primitivos (cuáles y a qué nivel)
• meta-representaciones (permitir hacer razonamientos con el lenguaje)
Representaciones no cubiertas por lógica:
13
• definiciones vs hechos
• universales vs defaults
• razonamiento no-deductivo
• razonamiento no-monotónico
Representaciones alternas:
• procedurales (se necesita declarativo)
• analógico
• probabilı́stico
Problemas de representación de:
• substancias (e.g., litro de leche)
• causalidad y tiempo
• creencias, deseos, intenciones, etc.
Consideraciones:
• Hacer explı́cito lo que se considere importante.
• Exhibir las restricciones inherentes al problema.
• Completo y preciso.
• Entendible.
• Fácil de usar.
• Computacionalmente factible.
14
2.1
Construyendo una Base de Conocimiento
El proceso de construir una base de conocimiento se llama ingenierı́a de
conocimiento
Un lenguaje de representación tiene que ser expresivo, conciso, no ambiguo,
y efectivo. Una base de conocimiento tiene que ser además clara y correcta.
A veces se tiene que sacrificar correctes para ganar claridad y ser más conciso
Idealmente se separa la base de conocimiento de los procedimientos de inferencia (pero normalmente se tiene que considerar a la eficiencia)
Una base de conocimiento tiene 2 consumidores potenciales: humanos y procesos de inferencia. Un error común es seleccionar nombres que por tener
sentido para el hombre se cree que van a tener sentido para el proceso de
inferencia (e.g., OsoDeCerebroPequeño(Pooh))
En principio, si el diseño es adecuado, lo que expresemos en una situación,
lo vamos a poder usar en otra
Mucho mejor (aunque paresca más trabajo) representar a un nivel más general.
Oso(Pooh)
∀ o Oso(o) ⇒ Animal(o)
∀ a Animal(a) ⇒ ObjetoFisico(a)
...
2.1.1
Puntos a considerar
• Decidir de que hablar: entender el dominio lo suficiente para saber que
objetos y hechos se tienen que tener y cuales ignorar
• Decidir en el vocabulario de predicados, funciones y constantes. Esto
involucra muchas decisiones (algunas arbitrarias y otras importantes).
Representamos Tamaño como función o como predicado? Es Pequeño
15
una medida de tamaño relativo o absoluto?, ... El resultado es una
ontologı́a.
• Codificar conocimiento genérico del dominio.
• Codificar una descripción de una instancia del problema especı́fico. Si
la ontologı́a está bien pensada, este paso debe de ser sencillo.
• Hacer preguntas al procedimiento de inferencia y obtener respuestas.
2.1.2
Elementos de una Ontologı́a General
• Categorias: incluyen objetos con propiedades comúnes arregladas en
taxonomı́as jerárquicas. Mucho del razonamiento ocurre a nivel de
categorı́as.
Se puede inferir la categorı́a de un objeto, en base a sus propiedades
y luego usar información de la categorı́a para hacer predicciones del
objeto.
Una categorı́a se puede “reificar” (reification), que significa cambiar un
predicado o función en un objeto del lenguaje. Esto permite referirse
a propiedades de la categorı́a en sı́, más que de las propiedades de los
elementos de esa categorı́a (e.g., Población(Humanos) = 5,000,000,000).
Las categorias permiten organizar y simplificar el conocimiento por
medio de herencia. Se pueden tener clases, subclases, clases de clases,
etc. Se pueden tener categorias disjuntas, descomposiciones exhaustivas o particiones.
• Medidas: relaciona objetos a cantidades de tipos particulares (e.g.,
masa, edad, precios, etc). Las medidas cuantitativas son en general
fácil de representar. Otras medidas no tienen una escala de valores
única (problemas, sabor, belleza, etc). El aspecto más importante de
una medidad no es su valor numérico particular sino el hecho de que
puede ordenarse.
• Objetos Compuestos: objetos que pertenecen a categorias por su estructura constitutiva (e.g., coches están compuestos de llantas, motor,
...). Se pueden tener jerarquı́as de tipo partes–de (parts–of). Se pueden
16
tener relaciones de Partición de Partes (análogo a una partición de categorias). Se pueden tener objetos compuestos sin estructura (e.g., bolsa
de manzanas).
• Tiempo, Espacio y Cambio: Para permitir acciones y eventos con diferentes duraciones y que puedan ocurrir simulataneamente. La noción
general es que el universo es continuo tanto en tiempo como en espacio.
Un espacio puede tener un tiempo y lugar particular. Un espacio puede
estar dado en términos de áreas o volúmenes.
• Eventos y Procesos: Eventos individuales ocurren en un tiempo y lugar particular. Los procesos son eventos continuos y homogéneos por
naturaleza. Podemos referirnos a eventos, subeventos e intervalos.
• Objetos Fı́sicos: Al extender las cosas en tiempo y espacio, los objetos
fı́sicos tienen mucho en común con los eventos. A veces les llaman
“fluentes” (fluents) (e.g., Polonia ha cambiado de área y posición con
el tiempo)
• Substancias: Podemos pensar en substancias temporales y espaciales
(e.g., mantequilla). Existen propiedades intrinsecas que son de la substancia del objeto más que del objeto mismo (color, temperatura en
que se derrite, contenido de grasa, etc), y propiedades extrinsecas (peso,
forma, etc). Un objeto con solo propiedades intrinsecas es una substancia (noun mass), con propiedades extrinsecas es un nombre contable
(count noun). Un objeto puede pertenecer a las dos.
• Objetos Mentales y Creencias: Se tiene que razonar acerca de creencias del mundo. Podemos pensar en agentes con racionalidad limitada
(hacen un número limitado de deducciones en un tiempo limitado).
En la definición de la representación de conocimiento tenemos que tomar
en cuenta para qué se va a usar ese conocimiento. Podemos pensar en precondiciones de conocimiento y en efectos de conocimiento.
17
2.2
Sistemas Basados en Conocimiento
Un sistema experto o sistema basado en conocimiento se puede definir como:
“...sistema que resuelve problemas utilizando una representación
simbólica del conocimiento humano” [Jackson 86].
Caracterı́sticas importantes:
• Representación explı́cita del conocimiento.
• Capacidad de razonamiento independiente de la aplicación especı́fica.
• Capacidad de explicar sus conclusiones y el proceso de razonamiento.
• Alto rendimiento en un dominio especı́fico.
• Uso de heurı́sticas vs. modelos matemáticos.
• Uso de inferencia simbólica vs. algoritmo numérico.
Algunas de estas propiedades se deben a la separación entre:
1. Conocimiento especı́fico del problema - Base de Conocimiento.
2. Metodologı́a para solucionar el problema - Máquina de Inferencia.
Importancia del Conocimiento
Los sistemas basados en conocimiento basan su rendimiento en la cantidad
y calidad del conocimiento de un dominio especı́fico y no tanto en las técnicas
de solución de problemas.
Diferencia de sistemas basados en conocimiento con otras técnicas:
• En matemáticas, teorı́a de control y computación, se intenta resolver
el problema mediante su modelado (Modelo del problema).
• En sistemas expertos se ataca el problema construyendo un modelo del
“experto” o resolvedor de problemas (Modelo del experto).
18
2.2.1
Clasificación de Sistemas Expertos
Clasificación jerárquica:
1. Análisis (interpretación)
• Identificación
• Monitoreo
• Diagnóstico
• Predicción
• Control
2. Sı́ntesis (construcción)
• Especificación
• Diseño
• Configuración
• Planeación
• Ensamble
• Modificación
Análisis:
identificación −→ predicción −→ control
Sı́ntesis:
especificación −→ diseño −→ ensamble
2.2.2
Arquitectura básica de un sistema experto
Componentes básicos:
19
1. Base de Conocimiento (BdeC) - representación del conocimiento
del dominio para la solución de problemas especı́ficos, normalmente dicho conocimiento se estructura en forma modular en forma declarativa.
2. Máquina de Inferencia - proceso que efectúa el razonamiento a partir
de los datos y utilizando el conocimiento de la BdeC. Es “genérica”,
es decir, que se puede aplicar a diferentes dominios sólo cambiando la
BdeC.
3. Memoria de Trabajo - lugar donde se almacenan los datos de entrada
y conclusiones intermedias que se van generando durante el proceso de
razonamiento.
4. Interfaz de Usuario - Entrada/Salida al usuario del sistema, incluyendo, normalmente, mecanismos de pregunta (porqué) y de explicación (cómo).
5. Interfaz de Adquisición - interfaz para la adqui–sición del conocimiento
del dominio, puede incluir mecanismos para facilitar su adquisición
y depuramiento interactivo y para automatizar la adquisición (aprendizaje).
2.2.3
Ventajas de Sistemas Basados en Conocimiento
1. Resolver problemas para los que no existe un modelo matematico adecuado o su solución es muy compleja, como en:
• Medicina
• Ingenierı́a
• Exploración
• Diseño
• Análisis
2. Preservar el conocimiento de expertos y hacerlo accesible a más personas.
3. Capacidad de explicar al usuario el proceso de razonamiento para llegar
a los resultados.
20
Capı́tulo 3
Búsqueda
3.1
Solución de Problemas
Asociado a la inteligencia
Proceso “normal”
• identificación y definición del problema
• identificación del criterio de evaluación
• generación de alternativas
• búsqueda de una solución y evaluación
• selección de opción y recomendación
• implementación
Solución de problemas en IA: basicamente búsqueda y evaluación
Representación de espacio de estados
• define un espacio de estados (espacio con todas las posibles soluciones
potenciales implı́cita / explı́citamente enumerado
21
• especifica los estados iniciales o situaciones de donde empezar
• especifica los estados finales (metas) o aquellos reconocidos como soluciones
• especifica las reglas que definen las acciones u operaciones disponibles
para moverse o ir de un estado a otro dentro del espacio del problema
En este contexto el proceso de solución de problemas trata de encontrar una
secuencia de operaciones que transformen al estado inicial en uno final
En la práctica se necesita seguir una estrategia de búsqueda
3.2
Búsqueda
• Necesaria
• Heurı́sticas/criterios/métodos/principios/...
Criterios
• simple
• discriminante entre buenas/malas opciones
e.g., escoger fruta, ..., jugar ajedrez
Para el problema de las 8 reinas podemos tener diferentes opciones:
Solución en un solo paso:
• ver la solución
• consultar un vidente
• ...
22
Alternativas:
• solución incremental
• sistemática
Medios (espacio de estados):
• transformar (hasta darle)
• construı́r (poco a poco)
Posible heurı́stica: poner una reina por renglón en un lugar que deje el mayor
número de lugares sin atacar
Existen problemas como el del problema del agente viajero (TSP) que son
NP (no–polinomial): crece exponencialmente con el número de ciudades en
el peor de los casos
Cómo encontramos una buena heurı́stica?
Cómo debemos usarla para que sea más efectiva?
Cómo la evaluamos?
Factores a considerar:
• calidad de la solución (a veces puede no importar, e.g., prueba de teoremas)
• diferencia en complejidad entre una solución y la solución óptima puede
ser gigantesca (e.g., TSP)
• en general, cómo encontrar la solución más barata
Que necesitamos:
1. Estructura simbólica que represente subconjunto de soluciones potenciales (código o base de datos o agenda)
23
2. Operaciones/reglas de producción que modifiquen sı́mbolos de la base
de datos y produzcan conjuntos más refinados de soluciones potenciales
3. Procedimiento de búsqueda o estrategias de control que decida que
operación aplicar a la base de datos
Terminologı́a: nodo, árbol, hoja, nodo–raı́z, nodo–terminal, branching factor , ramas, padres, hijos, árbol uniforme, ...
• nodos expandidos (closed ) (todos los sucesores)
• nodos explorados pero no expandidos (solo algunos sucesores)
• nodos generados pero no explorados (open)
• nodos no generados
Paso computacional primordial: expansión de nodos
3.2.1
Propiedades
La estrategia de control es sistemática si:
1. no deja un solo camino sin explorar (completo)
2. no explora un mismo camino más de una vez (eficiencia)
Propiedades de algoritmos de búsqueda (heurı́sticas):
1. Completo: un algoritmo se dice que es completo si encuentra una
solución cuando ésta existe
2. Admisible: Si garantiza regresar una solución óptima cuando ésta existe
3. Dominante: un algoritmo A1 se dice que domina a A2 si todo nodo
expandido por A1 es también expandido por A2 (“más eficiente que”)
24
4. Optimo: un algoritmo es óptimo sobre una clase de algoritmos si domina todos los miembros de la clase
Procedimiento de Búsqueda
• Algún Camino:
– Sin Información:
∗ depth–fist (en profundo)
∗ breadth–first (a lo ancho)
– Con información:
∗ hill climbing
∗ beam search
∗ best first
• El mejor camino:
– British museum
– branch and bound
– (variante: dynamic programming)
– A*
• Juegos
– minimax
– alpha–beta
– (variantes: progressive deepening, heuristic pruning, heuristic continuation)
– SSS*
– SCOUT
25
3.2.2
Depth first - backtracking (LIFO)
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta
si el primer elemento es la meta
entonces acaba
si no elimina el primer elemento y
anade sus sucesores al frente de la agenda
Problemas: árboles con caminos de profundidad muy grande
variaciones:
• depth–bound (casi todos): limitar la búsqueda hasta cierto lı́mite de
profundidad
• Con algo de información: ordena los nodos expandidos
3.2.3
Breadth first
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta
si el primer elemento es la meta
entonces acaba
si NO elimina el primer elemento y
anade sus sucesores al final de la agenda
Problemas: árboles con arborecencia muy grande
3.2.3.1
Complejidad
Comparación en nodos buscados:
Si n = profundidad del arbol
26
b = braching factor
d = profundidad de un nodo meta
depth–first:
• mejor caso: d nodos buscados
• peor caso:
n
X
bi −
i=0
n−d
X
bi =
i=0
bn+1 − bn+1−d
≈ bn
b−1
breadth–first:
• mejor caso:
d−1
X
bd − 1
≈ bd−1
b =
b−1
i=0
i
• peor caso:
d
X
i=0
bi =
bd+1 − 1
≈ bd
b−1
Si n es finito, d < n y árbol balanceado, depth–first más probable que sea
mejor
3.3
3.3.1
Algoritmos con Información
Hill–Climbing
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta
si el primer elemento es la meta
entonces acaba
si no elimina el primer elemento y anade sus
sucesores a la agenda
27
ordena todos los elementos de la agenda
selecciona el mejor y elimina el resto
Problemas: máximos locales, valles, picos
3.3.2
Best-first
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta
si el primer elemento es la meta
entonces acaba
si no elimina el primer elemento y anade sus
sucesores a la agenda
ordena todos los elementos de la agenda
3.3.3
Beam search
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta
si el primer elemento es la meta
entonces acaba
si no elimina el primer elemento y anade sus
sucesores a la agenda
ordena todos los elementos de la agenda y
selecciona los N mejores (los demas eliminalos)
Problemas: parecido a hill climbing pero con más “visión”
3.3.4
Espacio Usado
• depth–first: (b − 1) ∗ n + 1
• breadth–first: bd
28
• hill–climbing: 1
• best–first: entre bn y bd
• beam–seach: beam
3.3.5
Mejor Solución
Cuando importa el costo de encontrar una solución
Si g(P ) es el costo de camino o solución parcial, la solución óptima es aquella
con g(P ) mı́nima.
Una forma segura: búsqueda exhaustiva y seleccionar el de menor costo
(Brittish Museum)
Best–first no es admisible, pero con una pequeña variante ya lo es.
3.3.6
Branch and Bound
Trabaja como best-first pero en cuanto se encuentra una solución sigue expandiendo los nodos de costos menores al encontrado
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta y
los demas nodos sean de costos mayores o iguales
a la meta
si el primer elemento es la meta y los demas nodos
son de menor o igual costo a la meta
entonces acaba
si no elimina el primer elemento y anade sus
sucesores a la agenda
ordena todos los elementos de la agenda
Mejoras: usar estimaciones de los costos/distancias que faltan junto con los
costos/distancias acumuladas
29
estim(total) = costo(camino recorrido) +
estim(camino que falta)
Las estimaciones no son perfectas, por lo que se usan sub–estimaciones
subestim(total) = costo(camino recorrido) + subestim(camino que falta)
De nuevo expande hasta que los demás tengan sub–estimaciones más grandes
(e.g., subestimaciones de distancias entre ciudades pueden ser lineas rectas)
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta y
los demas nodos sean de costos mayores o iguales
a la meta
si el primer elemento es la meta y los demas nodos
son de menor o igual costo a la meta
entonces acaba
si no elimina el primer elemento y anade sus
sucesores a la agenda
ordena todos los elementos de la agenda de
acuerdo al costo acumulado mas las
subestimaciones de los que falta
3.3.7
Dynamic Programming
Idea: no explorar caminos a los que yá llegamos por caminos más cortos/baratos
El algoritmo es igual sólo hay que añadir la condición:
elimina todos los caminos que lleguen al mismo
nodo excepto el de menor costo
30
3.3.8
A*: combinación de todos
Crea una agenda de un elemento (el nodo raiz)
hasta que la agenda este vacia o se alcance la meta y
los demas nodos sean de costos mayores o iguales
a la meta
si el primer elemento es la meta y los demas nodos
son de menor o igual costo a la meta
entonces acaba
si no elimina el primer elemento y anade sus
sucesores a la agenda
ordena todos los elementos de la agenda de
acuerdo al costo acumulado mas las
subestimaciones de los que falta
elimina todos los caminos que lleguen al mismo
nodo, excepto el de menor costo
Cuando usamos cada una?
• si el tamaño de búsqueda es pequeño (rara vez), podemos hacer búsqueda
exhaustiva
• sin información depth–first con progressive–deepening
• branch and bound en general está bien
• dynamic programming cuando existen muchos posibles caminos con
cruces
• A* cuando podemos tener una buena subestimación
Todas estas estrategias tienen su equivalente para árboles AND–OR
Para hacer un depth first en un árbol del tipo AND – OR
IF alguno de los nodos AND falla,
realiza backtracking hasta el ultimo nodo OR
IF alguno de los nodos OR falla
realiza backtracking al nodo inmediato anterior
31
La idea se puede extender a best–first
Hay que tener cuidado con “el mejor” y “el candidato”
Antes: una agenda con nodos OR
Ahora: cada nodo puede tener varios nodos asociados
En general se usan 2 funciones de estimación:
• f1: evalúa sobre los nodos (como antes)
• f2: evalúa sobre árboles
Para etiquetar Solución (S) / no–solución (N):
IF nodo terminal es meta: S
Else: N
IF nodo no–terminal es AND:
S si todos son S
N si alguno es N
IF nodo no–terminal es OR:
S si alguno es S
N si todos son N
Similarmente para A* existe un correspondiente AO*
Como encontrar heurı́sticas?
• analizando modelos simplificados
• soluciones por descomposición: si cada submeta se puede solucionar
independientement de las otras
• soluciones parcialmente ordenadas
• usar probabilidades
32
3.3.9
Búsqueda en Lisp
(defun busca (nodoI, nodoF)
(busca2 (list nodoI) nodoF))
(defun busca2 (agenda nodoF)
(cond ((null agenda) nil)
((equal (car agenda) nodoF))
(t (busca2 (nva_agenda (car agenda) (cdr agenda))
nodoF))))
; breath-first
(defun nva_agenda (nodo agenda)
(append (expande nodo) agenda))
; depth search
(defun nva_agenda (nodo agenda)
(append agenda (expande nodo)))
; best-first search
(defun nva_agenda (nodo agenda)
(sort (append (expande nodo) agenda)))
; hill-climbing
(defun nva_agenda (nodo agenda)
(list (car (sort (append (expande nodo) agenda)))))
; beam search
(defun nva_agenda (beam nodo agenda)
(nthelems beam (sort (append (expande nodo) agenda))))
3.3.10
Búsqueda en Prolog
busca(NodoI,NodoF) :busca_aux([NodoI],NodoF).
33
busca_aux([NodoF|_],NodoF).
busca_aux(Agenda,NodoF) :nva_agenda(Agenda,NAgenda),
busca_aux(NAgenda,NodoF).
% depth-first
nva_agenda([N1|Agenda],NAgenda) :expande(N1,Nodos),
append(Nodos,Agenda,NAgenda).
% breadth-first
nva_agenda([N1|Agenda],NAgenda) :expande(N1,Nodos),
append(Agenda,Nodos,NAgenda).
% best first
nva_agenda([N1|Agenda],NAgenda) :expande(N1,Nodos),
append(Nodos,Agenda,AgendaInt),
sort(AgendaInt,NAgenda).
% hill-climbing
nva_agenda([N1|Agenda],[Mejor]) :expande(N1,Nodos),
append(Nodos,Agenda,AgendaInt),
sort(AgendaInt,[Mejor|_]).
34
Capı́tulo 4
Lógica
Teorı́a de
Pruebas
Axiomas
derivación
Teorı́a de
Modelos
interpretación
teoremas
valores de verdad
Importante: que las cosas que queremos que sean verdaderas coicidan con las
que podemos probar
Osea: lo que nos implica la teorı́a es lo que podemos computar
Caracterı́sticas:
• sintaxis y semántica bien definidas
• reglas de inferencia
35
4.0.1
Historia
• Desde los griegos (Aristóteles)
• En computación desde que aparecieron las máquinas
• Prueba de teoremas e.g., Davies 1954 su sistema probó que la suma de
2 pares es par
• Otros usaron lógica para estudiar el razonamiento utilizado para resolver problemas (e.g., Newell, Shaw y Simon ’55: The Logic Theory
Machine)
• Después de cierto éxito inicial se vió que las reglas de inferencia utilizadas no eran adecuadas para las máquinas y se perdió interes
• Hasta 1965 Robinson y resolución
4.1
Lógica Proposicional
Permite expresar y razonar con declaraciones que son o verdaderas o falsas
e.g.,
el Tec es mejor que el Itam
lógica es fácil
Este tipo de declaraciones se llaman proposiciones y se denotan en lógica
proposicional con letras mayúsculas (e.g., P, Q, . . .)
P ’s y Q’s también se llaman proposiciones atómicas o átomos
Los átomos se pueden combinar con conectores lógicos (dando proposiciones
compuestas)
negación: ∼, ¬
conjunción: &, ∧
disjunción: ∨
implicación: ⊃, →
36
doble implicación: ↔
e.g.,
G = ’Lógica proposicional es fácil’
D = ’me estoy aburriendo’
G ∧ D = ’Lógica proposicional es fácil’ y ’me estoy aburriendo’
Solo algunas combinaciones de átomos y conectores son permitidas: formulas
bien formadas (wff)
Una wff en lógica proposicional es una expresión que puede ser de la siguiente
forma:
1. un átomo es un wff
2. Si F es wff entonces ¬F también es
3. Si F y G son wff entonces: F ∧ G, F ∨ G, F → G y F ↔ G son wff
4. ningúna otra formula es wff
Prioridad: ¬, ∧, ∨, →, ↔
wff es solo sintáxis, no dice si la fórmula es verdadera o falsa (i.e., no dice
nada de su semántica)
El significado de una fórmula proposicional se puede expresar por medio de
un función:
w : prop → {true, f alse}
La función w es una función de interpretación que satisface:
F
T
T
F
F
G
T
F
T
F
¬F
F
F
T
T
F ∧G
T
F
F
F
F ∨G F →G
T
T
T
F
T
T
F
T
37
F ↔G
T
F
F
T
SI w es una interpretación que asigna a una fórmula dada, el valor de verdad
true, Entonces w se dice ser un modelo de F
Para N átomos hay 2N cobinaciones para formar una tabla de verdad
Una fórmula se dice válida si es verdadera bajo cualquier interpretación (tautologı́a)
Una fórmula es iválida si no es válida
Una fórmula es insatisfascible o inconsistente si es falsa bajo cualquier interpretación (contradicción) Else es satisfascible o consistente
Una fórmula es válida cuando su negación es insatisfascible y viceversa
válido
inválido
siempre cierto
a veces T o F siempre falso
satisfacible
insatisfacible
Dos fórmulas F y G son equivalentes (F ≡ G) si los valores de verdad de F
y G son iguales bajo cualquier interpretación
Leyes de equivalencias:
¬(¬F ) ≡ F
F ∨G ≡G∨F
F ∧G ≡G∧F
(F ∧ G) ∧ H ≡ F ∧ (G ∧ H)
(F ∨ G) ∨ H ≡ F ∨ (G ∨ H)
F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H)
F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H)
F ↔G≡F →G∧G→F
F → G ≡ ¬F ∨ G
¬(F ∧ G) ≡ ¬F ∨ ¬G
¬(F ∨ G) ≡ ¬F ∧ ¬G
Una fórmula G se dice que es una consequencia lógica de un conjunto de
fórmulas F = {F1 , . . . , Fn }, N ≥ 1, denotado por F |= G si para cada inter-
38
pretación w para la cual w(F1 ∧ F2 ∧ . . . Fn ) = true, entonces w(G) = true
F ≡ G SI F |= G y G |= F o |= (F ↔ G)
Satisfacibilidad, valides, equivalencia y consecuencia lógica son nociones semánticas
(generalmente establecidas por medio de tablas de verdad)
Para derivar consecuencias lógicas también se pueden hacer por medio de
operaciones exclusivamente sintáctivas (e.g., modus ponens, modus tollens).
Sistemas que tienen operaciones sintácticas se llamana sistemas de deducción
(formales), e.g, un sistema axiomático con un lenguaje formal (e.g., lógica
proposicional) un conjunto de reglas de inferencia (las operaciones sintácticas)
y un conjunto de axiomas.
4.2
Logica de predicados de primer orden
En lógica proposicional los átomos son los constituyentes de las fórmulas y
son: true o false
Limitación: no puede expresar propiedades generales de casos similares
Sı́mbolos:
• Sı́mbolos de predicados (mayúsculas) asociados con su aridad (N) o
número de argumentos (Si aridad = 0 ⇒ proposiciones (átomos))
• Variables: minúsculas (x,y,z)
• Sı́mbolos funcionales: minúsculas asociados con su número de argumentos (funciones con aridad = 0 ⇒ constantes)
• Conectores lógicos
• Cuantificadores: universal (para toda x) ∀x y existencial (existe una
x) ∃x
• Sı́mbolos auxiliares ’(’, ’)’, ’,’.
39
Un término es: una constante, variable o una función de términos
Una fórmula atómica o átomo es un predicado de N términos
Una fórmula bien formada (wff) en lógica de predicados es:
• un átomo
• si F es wff entonces ¬F también lo es
• Si F y G son wff, F ∧ G, F ∨ G, F → G, F ↔ G son wff
• Si F es wff y x es una variable libre de F , entonces ∀xF y ∃xF son wff
(la variable x se dice “bound”)
• ningúna otra formula es wff
variables libres: sin cuantificadores
Fórmula cerrada (“closed”) u oración (“sentence”): sin variabes libres
El alcance (“scope”) de los cuantificadores
4.2.1
Semántica
En lógica de primer orden se asocia una estructura representando la “realidad” (basicamente el dominio)
La estructura S tiene:
• un conjunto no vacı́o de elementos D, llamados el dominio de S
• un conjunto de funciones de aridad n definidas en D n , {fin : D n → D}
• un conjunto no vació de mapeos, predicados, de D m a {true, f alse}
No se puede saber el valor de verdad de una fórmula hasta que no se especifique con que elementos de la estructura se deben de asociar los elementos
de la fórmula
40
Una asignación v al conjunto de formulas F dada una estructura S con
dominio D es un mapeo del conjunto de variables en F a D
I(c) = d, d ∈ D, donde d es una constante
I(x) = v(x), donde x es una variable
I(f (t1 , . . . , tn )) = f (I(t1 ), . . . , I(tn ))
I(P (t1 , . . . , tn )) = P (I(t1 ), . . . , I(tn ))
¬F, F ∧ G, F ∨ G, F → G, F ↔ G, como antes
∃xF es true si existe una asignación para la cual F sea verdadera
∀xF es true si para toda una asignación F es verdadera
Mas equivalencias:
¬∃xP (x) ≡ ∀x¬P (x)
¬∀xP (x) ≡ ∃x¬P (x)
∀x(P (x) ∧ Q(x)) ≡ ∀xP (x) ∧ ∀xQ(x)
∃x(P (x) ∨ Q(x)) ≡ ∃xP (x) ∨ ∃xQ(x)
∀xP (x) ≡ ∀yP (y)
∃xP (x) ≡ ∃yP (y)
Una fórmula cerrada con un modelo se dice satisfacible
4.2.2
Cláusulas
Forma utilizada en prueba de teoremas y programación lógica
Una literal: un átomo o su negación
Una clásula: es una fórmula cerrada de la forma:
∀x1 . . . ∀xs (L1 ∨ . . . ∨ Lm )
Equivalencias:
∀x1 . . . ∀xs (A1 ∨ . . . An ∨ ¬B1 . . . ∨ ¬Bm ) ≡
∀x1 . . . ∀xs (¬B1 ∧ . . . ∧ Bm → A1 ∨ . . . An )
Se escribe normalmente como:
A1 , . . . , An ← B1 , . . . Bm
41
Interpretación procedural: las A’s son las conclusiones y las B’s las condiciones
Pasos para pasar una wff a un conjunto de cláusulas:
1. eliminar implicación
2. juntar negación
3. renombrar variables
4. eliminar cuantificadores existenciales:
Si una variable existencial (y) no está dentro del alcance (scope) de
un cuantificador universal, cambiar la variable por un nuevo sı́mbolo
Si está dentro del alcance de cuantificadores universales con variables
(x1 , . . . , xn ) cambiar la variable por una función g(x1 , . . . , xn ) = y que
refleje la posible dependencia (funciones Skolem)
5. cambiar a una forma prenex normal (poniendo todos los cuantificadores
universales al frente)
6. pasar a su forma normal conjuntiva (i.e., una conjunción de fórmulas,
cada una siendo una disjunción)
7. eliminar cuantificadores universales
8. pasar a un conjunto de cláusulas
Ejemplo
Una cláusula de Horn: a lo más una literal positiva
A←
← B1 , . . . , Bn
A ← B1 , . . . , Bn
42
4.2.2.1
Razonamiento en lógica: reglas de inferencia
Modus Ponens
P ∧ (Q ∨ R), P ∧ (Q ∨ R) → S
—————————————–
S
{P ∧ (Q ∨ R), P ∧ (Q ∨ R) → S} ⊢ S
Estas reglas solo hacen manipulación sintáctica (son formas procedurales)
Lo interesante es ver las formas procedurales semánticas están relacionadas
con las sintácticas
Una fórmula es robusta/válida (sound) si S ⊢ F entonces S |= F
Osea una colección de reglas de inferencia es válida si preserva la noción de
verdad bajo las operaciones de derivación
Una fórmula es completa (complete) si S |= F entonces S ⊢ F
Lo importante es: existe un procedimiento de prueba mecánica, usando una
colección de reglas de inferencia que son válidas y completas, que sea capaz de
determinar si una fórmula F puede o no derivarse de un conjunto de fórmulas
S?
En 1936, Church y Turing mostraron independientemente que ese procedimiento no existe para lógica de primer orden: indecibilidad
Solo se puede mostrar que si F es consecuencia lógica de S
Lógica proposicional si es decidible!
4.2.2.2
Resolución
Es sound y complete
Resolución solo sirve para fórmulas en forma de cláusulas
43
Idea: prueba por refutación
Para probar: P ⊢ Q, hacer W = P ∪ {¬Q} y probar que W es insatisfacible
Ejemplo sencillo
Sean C1 y C2 dos cláusulas con literales L1 y L2 (donde L1 y L2 son complementarias). La resolución de C1 y C2 produce: C = C1′ ∪ C2′ donde:
C1′ = C1 − {L1 } y C2′ = C2 − {L2 } (eliminando literales redundantes)
Ejemplo de derivación
Para lógica de primer orden: substitución y unificación
Una substitución σ es un conjunto finito de la forma: {t1 /x1 , . . . , tn /xn },
donde las xi s son variables diferentes y las ti s son términos diferentes a las
xi s.
Una expresión es un término, una literal una conjunción o una disjunción de
literales
Una substitución (σ) se puede aplicar a una expresión (E), denotado como:
Eσ, generando una nueva expresión (una instancia de E)
Sea θ = {t1 /x1 , . . . , tm /xm } y σ = {s1 /y1 , . . . , sn /tn }. La composición de
estas substituciones, denotado por: θσ se obtiene quitando del conjunto:
{t1 σ/x1 , . . . , tm σ/xm , s1 /y1 , . . . , sn /tn } todos los elementos: ti σ/xi para los
cuales: xi = ti σ y todos los elementos sj /yj donde yj ∈ {x1 , . . . , xm }
Eσσ = Eσ
E(µσ)θ = Eµ(σθ)
Una substitución σ es un unificador de un conjunto de expresiones {E1 , . . . , Em }
si E1 σ = . . . = Em σ
Un unificador θ, es el unificador más general (mgu) de un conjunto de expresiones E, si para cada unificador σ de E, existe una substitución λ tal que
σ = θλ
Para hacer resolución en lógica de primer orden tenemos que comparar si dos
literales complementarias unifican. El algoritmo de unificación construye un
44
mgu de un conjunto de expresiones.
Se tienen que renombrar variables que tengan el mismo nombre en las cláusulas
a resolver
Sean C1 y C2 dos cláusulas con literales L1 y L2 respectivamente. Si L1 y
¬L2 tienen un mgu σ, el resolvente de C1 y C2 es la cláusula: (C1 σ −{L1 σ})∪
(C2 σ − {L2 σ})
Puede existir más de un resolvente
Si una o más literales en clásula C tienen un mgu σ, la cláusula Cσ se dice
ser un factor de C
En su forma general, resolución permite cancelar más de una literal de las
cláusulas padres, al computar el factor de estas
Un resolvente de cláusulas C1 y C2 es:
1. resolvente de C1 y C2
2. resolvente de C1 y un factor de C2
3. resolvente de un factor de C1 y C2
4. resolvente de un factor de C1 y un factor de C2
El algoritmo de unificación no es determinı́stico (se pueden seleccionar las
cláusulas de varias formas)
Existen diferentes estrategias de resolución, e.g., semántica, lineal, SLD
4.3
Estrategias de Resolución
Problemas de eficiencia, generación de cláusulas redundantes
e.g., S = {P, ¬P ∨ Q, ¬P ∨ ¬Q ∨ R, ¬R}
Meta: restringir el número de cláusulas redundantes
45
4.3.1
Resolución Semántica
controlada por la semántica declarativa
Idea: dividir al conjunto insatisfacible de cláusulas C, en dos conjuntos,
basados en una interpretación I particular:
• S1 los que son verdaderos y
• S2 los que son falsos
Como S es insatisfacible, no existe una interpretación que haga los dos conjuntos verdaderos o falsos.
Escoger una claúsula de S1 y una de S2 y añadir el resolvente a donde le
corresponda
e.g., S = {P, ¬P ∨ Q, ¬P ∨ ¬Q ∨ R, ¬R}
I : (interpretación)
I(P ) = f alse
I(Q) = f alse
I(R) = f alse
S1 = {P }
S2 = {¬P ∨ Q, ¬P ∨ ¬Q ∨ R, ¬R}
Variantes: asignar un orden a las literales de las cláusulas
4.3.2
Estrategia de Conjunto de Soporte (set-of-support
strategy
Idea: Como se hace por refutación (i.e., W = S ∪ {¬G}), no seleccionar dos
cláusulas de S. Poner {G} en un conjunto de soporte y hacer resolución con
un elemento de S y uno del conjunto de soporte. El resolvente añadirlo al
conjunto de soporte.
Esta estrategia es sound y complete
46
e.g., S = {P, ¬P ∨ Q, ¬P ∨ ¬Q ∨ R}
conjunto de soporte: {¬R}
4.3.3
Resolución SLD
Seleccionar una literal, usando una estrategia Lineal, restringido a cláusulas
Definitivas
Un caso especial de resolución lineal
Resolución lineal: el último resolvente se toma como cláusula padre
La otra cláusula padre se toma de otro resolvente o del conjunto original
Una forma especial de resolución lineal es: input resolution. En esta estrategia, cada paso de resolución, exceptuando el primero, se toma del último
resolvente (cláusulas metas) y del conjunto original (cláusulas de entrada)
Input resolution es completa para cláusulas de Horn, pero no para cláusulas
en general
Una variante de resolución de entrada es resolución SLD para cláusulas de
Horn. Resolución de entrada se extiende con una regla de selección que
determina en cada paso que literal de la cláusula meta es seleccionada.
e.g., {R(g(x) ← T (x, y, f (y)), T (a, b, f (a)),
P (v, w) ← R(v)}, Meta: {← P (u, b)}
Resolución SLD es sound y complete para cláusulas de Horn
La estrategia de búsqueda afecta el resultado
e.g., depth-first con diferente orden de cláusulas:
C1 = P (x) ← P (f (x))
C2 = P (f (f (a))) ←
Meta: ← P (a)
Aunque resolución SLD es sound y complete para cláusulas de Horn, en la
práctica (por razones de eficiencia) se hacen variantes
47
• eliminar el “occur check” de unificación
• usar un orden especı́fico
Esto es lo que usa básicamente PROLOG
4.3.4
Lógica como representación de conocimiento
Lógica proposicional demasiado poco expresiva (aunque se construyen sistemas bajo esta representación, e.g., árboles de falla, de decisión, etc.)
Lógica de primer orden es suficientemente expresiva, pero el método de razonamiento es NP-completo y la lógica es indecidible
Cláusulas de Horn generalmente adecuadas aunque son menos expresivas
Comparado con otras representaciones, lógica tiene una sintáxis y semántica
clara.
Problemas de lógica de primer para representar conocimiento
• difı́cil expresar todo en fórmulas lógicas
• razonar con tiempo, meta-inferencia
• información incompleta o imprecisa
• excepciones
Posibles soluciones, usar lógicas:
• no-monotónicas
• modales
• temporales
• difuzas
48
4.4
4.4.1
Artı́culos Relacionados con Lógica
Programs with Common Sense, J.McCarthy (58)
Se propone un sistema (The Advice Taker ) para resolver problemas manipulando expresiones dentro de un lenguaje formal.
Se dice que un programa tiene sentido común si puede deducir automáticamente
un gran variedad de consecuencias de cualquier cosa que se le diga y de su
conocimiento previo.
Objetivo final: hacer programas que aprendan de sus experiencias.
Si se quiere que una máquina aprenda una abstracción, primero debemos
de poder representarlas en forma sencilla.
Caracterı́sticas de un sistema inteligente:
1. todo el comportamiento debe de poderse representar
2. cambios en comportamiento deben de poder ser expresados en forma
sencilla (se basa en éste punto)
3. todos los aspectos del comportamiento (excepto los rutinarios) no deben
de ser provables
4. el sistema debe de tener o adquirir conceptos a partir de éxitos parciales
(éxitos o fracasos totales serán muy poco probables)
5. el sistema debe de ser capaz de crear subrutinas (con conceptos sobre
lo deseable de una subrutina bajo ciertas condiciones)
La idea es que se le instruya en forma declarativa. Ventajas:
• puede considerar conocimiento previo
• se pueden derivar consecuencias lógicas
• no depende demasiado del orden en que le instruya
49
• depende poco del estado actual
Caracterı́sticas del advice taker:
1. existe un método para representar expresiones (por medio de listas)
2. algunas de las expresiones son declaradas en forma declarativa en un
sistema lógico y se tiene (muy probablemente) una sola regla de inferencia (combinando substitución de variables con modus ponens)
3. todas las deducciones inmediatas se calculan (la “inteligencia” viene del
procedimiento que escoge las premisas a utilizar) aunque no se trata de
aplicar las deducciones inmediatas a todo lo que sabe
4. no todas las expresiones son declarativas, también existen objetos con
propiedades, funciones, fórmulas, programas (se pueden incluir deducciones como propiedades para no repetir el proceso)
5. opera en forma cı́clica, la rutina de deducciones inmediatas se aplica a
una lista de premisas y de individuos, cuyas conclusiones pueden tener
oraciones imperativas - acciones (deducción ⇐⇒ operación)
Se espera que se tenga un conjunto de proposiciones iniciales genéricas
que le permitan exhibir cierto sentido común.
Por ejemplo: se pone la meta en(yo,aeropuerto), trata de encontrarla en su
lista de propiedades y si no la encuentra, selecciona otras que tengan que
ver con trasportarse de un lugar a otro. Este proceso continua hasta los
niveles más altos de abstracción en donde de tienen declaraciones de tipo
estı́mulo–respuesta (sigue means-ends analysis).
4.4.1.1
Situaciones, Acciones y Leyes Causales
La inteligencia humana depende de que podemos representar hechos de nuestra situación, nuetras metas, y los efectos de las acciones que hacemos.
La idea del Adice Taker es que se pueda mejorar el comportamiento del
sistema dando consejos en lugar de reprogramandolo.
50
Se requiere especificar hechos acerca de situaciones, metas y acciones y
conocimiento acerca de los medios y fines como axiomas.
• Propiedades generales de causalidad y de la posibilidad y el resultado
de acciones
• El realizar acciones y lograr metas se obtiene de consecuencias lógicas
Situación: descripción parcial en un estado en el tiempo (e.g., lloviendo(s),
en(casa,yo)(s), etc.).
fluent: predicados cuyo argumento es una situación (i.e., dependen del tiempo).
Causalidad: se propone un predicado de segundo orden: cause(π)(s) (i.e., la
situación s lleva al futuro a una situación que satisface el “fluente” π). e.g.,
∀s∀p(P ersona(p) ∧ Lloviendo ∧ Af uera(p) ⊃ Cause(Mojado(p)))(s).
Se puede utilizar una interpretación modal (i.e., tomar a cause como
operador modal) para evitar lógica de 2o orden (la interpretación modal
ignora los argumentos de las situaciones (s)).
Acciones: para realizar cierta acción en una situación dada. Define el operador can(p, π)(s) (i.e., una persona p puede hacer que la situación s satisfaga
π) e.g.,
can(p, mover(p, obj, lug))(s).
can y cause tienden a estar en la misma fórmula.
Para representar metas que requieran de varias acciones consectutivas define: canult(p, π), que significa que una persona p puede en ultima instancia
llegar a una situación que satisfaga π.
Ejemplos: monkey & banana, juego de dos personas.
En resúmen: sistema que razona deductivamente a partir de conocimiento
hasta concluı́r realizar una serie de acciones, éstas las realiza y el ciclo continua.
Muestra como (en principio) con lógica de primer orden (modal) puede
realizar el razonamiento que quiere (situación, causalidad y acciones).
51
4.4.2
Prolegomena to a Theory of Mechanized Formal
Reasoning, R. Weyhrauch (80)
Descripción de FOL.
Puntos:
• Usa lógica con tipos (tipeada) en forma particular
• Representa explı́citamente estructuras de simulación (modelos parciales)
• Usa un evaluador de propósito general
• Utiliza principios de reflección para conectar la teorı́a con la meta-teorı́a
• Esta reflección sirven para relacionar la parte declarativa y procedural
FOL incluye igualdad y tipos de variables (sorted).
Simulation Structures: un análogo mecanizado de la noción de modelo (i.e.
hace interpretaciones en forma mecánica).
Parte computable de un modelo.
En la estructura, cada predicado tiene asociado un algoritmo que decide
si el predicado evalúa a T, F o no se, cada función tiene asociada un algoritmo
que regresan un valor o no se.
No son modelos, y debido a la falta de una propiedad de cerradura, su
salida puede ser: “no se”. No puede calcular la verdad/falsedad de formulas con cuantificadores (esto en general requiere de una cantidad infinita de
cálculo, que es una de las razones de tener lógica de primer orden).
Las estructuras de simulación nos permiten ver la relación entre los objetos con los que estamos razonando y las palabras que usamos para referirnos
a ellos.
Simplificador Sintáctico: permite especificar una cantidad arbitraria de equivalencias lógicas y las utiliza para simplificar fórmulas hasta que no se puede
utilizar ninguna otra.
52
Evaluador de Expresiones:
Tiene un evaluador de expresiones en lógica de primer orden (con él,
considera lógica de primer orden como un lenguaje de programación).
Toma cualquier conjunto de oraciones en lógica de primer orden y una
estructura de simulación arbitraria y realiza una evaluación sintáctica y
semántica.
Meta–Teorı́a:
Para ésto, requiere “hablar” sobre los objetos que está manipulando. Lo
que se tiene en FOL se puede ver como una estructra de datos que tiene un
lenguaje, información acerca de los objetos de los que habla el lenguaje y
hechos acerca de los objetos expresados en el lenguaje.
La estructura se puede ver como un análogo mecanizable de una teorı́a,
por lo que se puede razonar acerca de ella al considerarla como un objeto
dentro de otra teorı́a.
El uso de meta-teorı́a permite reducir pruebas. Se asume que la metateorı́a es válida (sound ).
Como cualquier teorı́a, la meta-teorı́a tiene predicados (e.g., es una wff ,
sı́mbolos funcionales (e.g., para hacer substituciones), y constantes (e.g., wff ,
modelos, etc.).
Reflexión:
El principio de reflexión es una declaración acerca de la relación entre la
teorı́a y la metateorı́a.
Lo más relevante es que las pruebas de teoremas en la teorı́a pueden
cambiarse por evaluaciones en la meta-teorı́a.
En principio, podrı́amos pensar en meta-meta-teorı́as y en razonamientos
acerca de FOL mismo.
Es diferente pensar en validez (soundness) de las reglas de inferencia
dentro de sistemas auto-reflexivos, ya que las reglas de inferencia pueden
cambiar los modelos de la teorı́a y los hechos ya derivados.
53
Conclusiones:
• Utiliza representaciones de objetos sobre los que razona junto con representaciones de los hechos acerca de esos objetos (estructuras de simulación)
• El verificador de pruebas se puede ver como una estructura de simulación natural en la meta-teorı́a dandole una interpretación de lo que
serı́a
• El principio de reflección resuelve la controversia declarativo vs. procedural (depende desde donde se vea)
4.4.3
The Role of Logic in Knowledge Representacion
and Commonsense Reasoning, R. Moore (82)
“Lógica es adecuada para el análisis de conocimiento, pero no
como herramienta de razonamiento de agentes inteligentes” [Newell]
Un formalismo debe de tener una semántica si quiere realmente representar conocimiento, i.e., correspondencia entre las expresiones y el mundo real
(hasta aquı́ todo bien).
El punto controversial: los lenguajes lógicos y la inferencia deductiva no
son adecuados para construir sistemas con razonamiento de sentido común.
El autor argumenta que hay cosas que sólo se pueden expresar en lógica,
e.g., capacidad de ver que una proposición existencial es verdadera si saber
exactamente qué objeto la hace verdadera, reconocer que algo o su negación
deben de ser verdaderos, razonar por casos, etc.
Las deficiencias atribuidas a la lógica pueden deberse más a cuestiones
implementacionales (e.g., podemos tener gráfos).
Mas que pensar en representaciones lógicas, podemos pensar en que’ atributos lógicos se requieren para una representación de propósito general.
54
Un atributo básico de lógica serı́a: representar al mundo en términos de
objetos, sus propiedades y relaciones (donde objetos puede ser casi cualquier
cosa).
En particular, interesa cómo describir una situación con conocimiento
incompleto.
• la cuantificación existencial permite decir que algo tiene una propiedad
sin especificar quien
• la cuantificación universal permite decir que todos tienen una propiedad
sin tener que enumerarlos
• La disjunción nos permite decir que al menos una de dos expresiones
es verdadera sin tener que especificar cual
• La negación nos permite distinguir entre saber que algo es falso o no
saber si es verdadero
• Podemos tener diferentes expresiones sin saber que se refieren al mismo
objeto a menos que lo digamos por medio de igualdad
Algunos de los atributos son generales y deben de estar en cualquier representación de cualquier dominio (cualquier representación con esos atributos
es una lógica).
Fallas de los primeros sistemas (60’s): tratar de usar probadores genéricos
de teorémas como resolvedores genéricos de problemas.
El problema no está en la lógica o en la deducción, pero en saber que inferencias hacer (el espacio de búsqueda crece exponencialmente con el número
de fórmulas).
El uso eficiente de una aseveración particular normalmente depende en
cuál es esa aseveración y en qué contexto está embebida (e.g., si se va a hacer
backward-chaninig o forward-chainig, etc).
Otro punto importante es cómo formalizar las cosas (e.g., arriba en términos
de sobre).
55
Resumiendo: lógica es adecuada, lo que se requiere son mejores procesos
deductivos y/o extensiones a la lógica más que pensar en desecharla.
56
Capı́tulo 5
Sistemas de Reglas de
Producción
5.1
Introducción
Normalmente se asocia la inteligencia con “regularidades” y el comportamiento
inteligente parece que ejecuta reglas.
Newell y Simon 70’s proponen los sistemas de producción como un modelo
psicológico del comportamiento humano.
En este modelo parte del conocimiento humano se representa en forma de
producciones o reglas de producción.
Se asemeja al proceso de memoria humano: memoria a corto plazo (deducciones intermedias) y memoria a largo plazo (producciones).
Normalmente las reglas de producción se ven como un formalismo en el cual
representar el conocimiento y es el formalismo más usado en los sistemas
expertos.
Credo: los expertos tienden a expresar sus técnicas de solución de problemas
en forma de reglas “situación - acción”.
57
Las reglas de producción es un formalismo que se uso desde antes en teorı́a de
autómatas, gramáticas formales y en el diseño de lenguajes de programación.
Originalmente las producciones eran reglas gramaticales para manipular cadenas de sı́mbolos.
Post ’43 estudió las propiedades de sistemas de reglas (que llamó sistemas
canónicos).
e.g., A = {a,b,c} (alfabeto)
Axiomas: a, b, c, aa, bb, cc
Producciones:
$ -> a$a
$ -> b$b
$ -> c$c
Estas reglas nos generan palı́ndromes, y podemos rastrear que producciones
se aplicaron (e.g., bacab).
Las reglas de producción usadas en los sistemas expertos difieren un poco de
las producciones, pero los principios son los mismos.
Reglas de producción manipulan estructuras de sı́mbolos, como listas o vectores (más que strings).
Se tiene:
• Un conjunto N de nombres de objetos en el dominio
• Un conjunto P de propiedades que representan atributos de los objetos
• Un conjunto V de valores que los atributos pueden tener
Generalmente se usa una tripleta: (objeto atributo valor).
A veeces las reglas se ponen: P1 , . . . , Pm → Q1 , . . . , Qn .
Que significa:
IF las condiciones P1 yP2y . . . yPm se cumplen THEN realiza las acciones (o
58
concluye) Q1 y . . . yQn .
E.g.,
IF Animal es un carnivoro AND
Animal color cafe AND
Animal tiene rayas
THEN Animal es tigre
Propiedades de las reglas:
• Modularidad: cada reglas define un pequeño y relativamente idependiente pedazo de conocimiento
• Incrementalidad: nuevas reglas pueden ser añadidas a la base de conocimiento
relativamente independiente de las demás
• Modificabilidad: como consecuencia de la modularidad, las reglas viejas
pueden ser modificadas
• Transparencia: habilidad de explicar sus decisiones y soluciones
Un sistema de producción tiene:
• un conjunto de reglas (base de conocimiento)
• un interprete de reglas o máquina de inferencia (que decide que regla
aplicar, controla la actividad del sistema)
• una memoria de trabajo (que guarda los datos, metas, y resultados
intermedios)
5.1.1
Memoria de Trabajo
Guarda inferencias/aseveraciones temporalmente.
Es la estructura de datos que es observada y manipulada/cambiada por las
reglas.
59
Los datos de la memoria de trabajo son los que permiten cumplir las condiciones de las reglas y dispararlas (i.e., las reglas verifican la existencia de
elementos en la memoria de trabajo para disparar).
Las acciones de las reglas: modifican, añaden o quitan elementos de la memoria de trabajo (o producen efectos secundarios).
5.1.2
Máquina de Inferencia
Es quien controla que reglas disparan.
Generalmente el ciclo se empieza con unos datos iniciales y se para cuando
no hay reglas aplicables (o por una regla).
El interprete o máquina de inferencia realiza el ciclo reconoce-actua:
1. aparea las condiciones (o acciones) de las reglas con los elementos de
la memoria de trabajo
2. si existe más de una regla que puede disparar, escoge una (resolución
de conflictos)
3. aplica la regla (ejecuta las acciones/conclusiones) que puede involucrar
cambios la memoria de trabajo
El sentido/importancia/contribución de cada regla depende de su contribución
dentro de todas las reglas para solucionar el problema.
Existen diferentes estrategias de razonamiento: a nivel global las reglas
pueden ser llevadas en un encadenamiento hacia adelante o en un encadenamiento hacia atrás.
Encadenamiento hacia adelante (forward chaining/ data driven/ event driven/
bottom-up) parte de hechos para cumplir condiciones y ejecutar acciones
(creando nuevos hechos).
Encadenamiento hacia atrás (backward chaining/ goal driven/ expectation
driven/ top-down) parte de los estados meta y trata de cumplir las condiciones necesarias para llegar a ellos.
60
Aunque se llame goal-driven el encadenamiento hacia atrás y data-driven el
hacia adelante ésto no es completamente cierto, se puede proceder de metas
hacia hechos con encadenamiento hacia adelante y viceversa.
Una es la técnica de razonamiento (aparear lados izquierdos o derechos) y
otra el proceso (de metas a hechos o viceversa).
Se pueden tener estrategias que hacen combinación de ambos: oportunı́stico.
e.g.,
$ -> a$a
$ -> b$b
$ -> c$c
Podemos dado c usar las reglas P1, P1, P3, P2, P3 y llegar a: cbcaacaacbc.
Otra forma es tomar cbcaacaacbc y ver que reglas se aplican hasta llegar a
algo conocido (i.e., c).
El proceso de inferencia se puede ver como un espacio de búsqueda AND/OR,
con nodos AND siendo todas las condiciones/ acciones que se tienen que
cumplir y los nodos OR siendo las posibles reglas a disparar/ considerar.
5.1.2.1
Cuando usamos cada uno?
Depende del propósito y la forma del espacio de búsqueda.
Si el proposito es decubrir todo lo que se pueda deducir de un conjunto de
hechos, el árbol se “achica”, tenemos claras las entradas pero no las conclusiones, entonces encadenamiento hacia adelante.
Si el propósito es verificar/negar una conclusión, el árbol se “ensancha”,
tenemos claras las metas pero no las entradas, entonces encadenamiento hacia
atrás.
Si tenemos claras las entradas y metas, no necesitamos nada.
e.g., un vendedor usa Fwd, el que lo entrena usa Bwd.
61
If
If
If
If
If
A
B
D
N
H
and
and
and
and
and
B
C
E
G
M
Then P
Then M
and F Then N
then M
Then Q
Fwd recorre el árbol →
Bwd recorre el árbol ←
Con las reglas podemos resolver preguntas:
How, e.g., cómo supiste N?
WHY, e.g., porqué quieres saber A?
Ejemplo sencillo:
R1:
R2:
R3:
R4:
R5:
R6:
If
If
If
If
If
If
verde Then vegetal
en-caja-pequeña Then delicado
refrigerado Or vegetal Then se-descompone
pesado And barato And Not se-descompone Then ladrillo
se-descompone And pesado Then pozole
pesado And vegetal Then melón
Si tenemos en la memoria de trabajo: verde y pesado
[verde,
[verde,
[verde,
[verde,
[verde,
pesado]
pesado,
pesado,
pesado,
pesado,
vegetal]
vegetal,
vegetal,
vegetal,
(R1)
se-descompone] (R3)
se-descompone, pozole] (R5)
se-descompone, pozole, melón] (R6)
Reglas:
R1: If una persona tiene N$30,000 y
tiene grado de licenciatura
Then debe de invertir a plazo fijo
R2: If una persona gana mas de N$120,000 al anio
y tiene licenciatura
Then debe de invertir en acciones
62
R3: If una persona es menor de 30 y
esta invirtiendo a plazo fijo
Then debe invertir en acciones
R4: If una persona es menor de 30
Then tiene nivel licenciatura
R5: If una persona quiere invertir en acciones
Then debe de invertir en Telmex
Hechos:
Tiene N$30,000 y tiene 25 años
Quiere saber si debe de invertir en Telmex?
A = tiene N$30,000
B = menos de 30 añios
C = eduacación nivel licenciatura
D = salario anual mayor de N$120,000
E = invertir a plazo fijo
F = invertir en acciones
G = invertir en Telmex
R1:
R2:
R3:
R3:
R5:
If
If
If
If
If
A and X Then E
D and C Then F
B and E Then F
B Then C
B Then G
e.g, Cual es tu ingreso anual?
porqué?
Quiero saber si es mayor a N$120,000, porque como sé que tienes nivel de
licenciatura, si ganas más de N$120,000 te recomiendo invertir en acciones.
Invierte en Telmex
como?
Como tienes N$30,000 y eres menor de 30, yo se (R4) que tienes nivel licenciatura. Si es asi, yo se (R1) que debes invertir a plazo fijo. Por otro lado
si inviertes a plazo fijo yo se (R3) que debes invertir en acciones. Si quieres
invertir en acciones yo te recomiendo (R5) que inviertas en Telmex.
Explicaciones sirven para:
63
• mostrar deficiencias de las reglas
• clarificar suposiciones de la máquina
• explicar situaciones no anticipadas
• hacer sentir al usuario más seguro
• hacer ver la máquina más “inteligente”
Las condiciones nos proporcionan todo el contexto de las acciones.
Esto hace que las reglas sean modulares, si se definen apropiadamente.
5.1.3
Resolución de Conflictos
En razonamiento hacia adelante pueden existir más de una regla que puede
disparar.
En razonamiento hacia atrás pueden existir más de una regla que cumple con
las metas.
Lo que se necesita es una estragia de resolución de conflictos que guı́e (decida
cual de las posibles reglas disparar) y evite que el proceso sea exponencial.
Existen casos de reglas determinı́sticas donde solo una regla puede disparar
a la vez (rara vez).
Para controlar ésto se utilizan: control global (indep. del dominio) y control
local (dependiente del dominio).
El control local puede ser por medio de meta–reglas (reglas que controlan
reglas).
Puntos: sensibilidad (responder rápidamente a cambios en el medio) y estabilidad (mostrar cierta continuidad en la lı́nea de razonamiento).
Las estrategias globales más populares (pero hay más) son:
64
• No se permite disparar una regla más de una vez con los mismos datos
(refractorines)
• Preferir reglas que utilizan datos más recientes (la idea es de seguir una
lı́nea de razonamiento) (recency)
• Preferir reglas que son más espec’ficas, i.e., reglas que tienen una mayor
cantidad de condiciones y por lo tanto son más difı́ciles de disparar
(specificity)
Otras:
• poner prioridad en las reglas u ordenarlas
• poner prioridad en los hechos
• uso de contextos
Algunos sistemas permiten tener reglas que razonan en cuanto a que reglas
disparar (meta-reglas).
Las meta-reglas tiene el rol de dirigir el razonamiento (más que realizar el
razonamiento).
5.1.4
Apareamiento de Patrones
Normalmente existen variables en las reglas y se tiene que hacer un “apareamiento
de patrones”.
Notación: ?x aparea un elemento, !x aparea varios elementos, e.g.,
If Persona nombre ?x edad ?y
And ?y > 12
And ?y < 20
Then ?x es un adolecente
65
Hecho: Persona nombre Juan edad 25.
El apareo de condiciones en general es más fácil en encadenamiento hacia
adelante que en encadenamiento hacia atrás:
En Fwd: Dados hechos (sin variables) apareamos con condiciones (con variables) y producimos nuevos hechos (sin variables).
En Bwd: Hipótesis (con variables) apareamos consecuencias (con variables)
y producimos nuevas hipótesis (con variables) (se acerca más a unificación).
Ejemplo más complicado:
[(lista a b f g h) (elemento g)]
Reglas:
R1: If (lista ?x !y)
and not (elemento ?x)
Then remove (lista ?x !y)
and add (lista ?y)
R2: If (lista ?x) Or (lista ?x !)
and (elemento ?x)
Then write (?x es elemento de lista)
R3: If (lista ?x)
and not (elemento ?x)
Then write (?x no pertenece a lista)
Pasos de encadenamiento hacia atrás: el proceso trata de establecer valores
para las variables de las reglas
Establece variables
Infiere
Selecciona reglas
“look-ahead”
Ejecuta
Aplica regla
Evalua condiciones
Establece variables
(procedimiento principal)
(trata de inferir los valores)
(selecciona reglas aplicables)
(busca condiciones que aplican)
(ejecuta la condicion)
(aplica la regla seleccionada)
(checa las condiciones)
(llamada recursiva)
66
Ejecuta
Evalua Conclusiones
Ejecuta accion
Pregunta
(ejecuta las condiciones)
(evalua las conclusiones)
(ejecuta acciones)
(no inferirble y “preguntable”)
e.g., vars. múltiples y preguntables: {x,u,w}, vars. múltiples no preguntables:
{y, v}, meta valor único, no preguntable: {z}.
R1:
R2:
R3:
R4:
R5:
If
If
If
If
If
w = a and x = b Then v = c
w = d and v = c Then y = e
v = c Then z = k
x = j and y = e Then z = h
u = f and x = g Then z = i
Pasos de encadenamiento hacia adelante: se utiliza más “remove”.
Infiere
Selecciona reglas
Resuelve conflictos
Aplica regla
(proceso global para disparar reglas)
(selecciona las reglas aplicables)
(decide que regla aplicar)
(aplica reglas)
Extensiones:
Contexto (estructura, jerarquia, meta-reglas, ...)
IF: condiciones “clasicas”
THEN: consecuencias
Acciones: mensajes, etc.
Datos: 5/9/94, clase del tec, etc.
Explicacion: esta regla es de ejemplo y solo sirve
para ilustrar algunas extensiones
Compilacion: ...
Pueden incluı́r incertidumbre:
67
• en cada regla
• en cada condición
• en cada conclusión
Ventajas:
• permiten representar el conocimiento en forma adecuada para las computadoras
• modularizan pedazos de conocimiento
• permiten el desarrollo incremental
• las decisiones son entendibles y explicables
• abren nuevas posibilidades computacionales (paralelismo)
• representación homogénea de conocimiento
• permiten interacciones no planeadas y útiles
Desventajas:
• no hay fundamento para decidir que problemas tiene solución
• problemas de verificación / consistencia / completez de conocimiento
• escalamiento sin perder entendimiento / eficiencia
• permiten interacciones no planeadas y no deseadas
• no saben cuando romper sus propias reglas
• no tienen acceso al razonamiento que hay detrás de las reglas
• inadecuadas para describir un conocimiento declarativo
• tienen un fuerte sabor operacional, por lo que las reglas deben de pensarse tomando en cuenta esto
• bases de reglas grandes son difı́ciles de mantener y desarrollar (requiere
una partición de las reglas, pero el formalismo no lo permite hacer
directamente)
68
5.2
OPS5
Forgy, McDermott, Newell, Rychner ’75 (C.M.U.)
PSG → PSNLST → OPS → OPS5 → OPS83 → CLIPS
Official Production System 5
Con el se construyó XCON
Basado en reglas/producciones
Representación: objeto-atributo-valor
(literalize Objeto Atributo1 Atributo2 . . . AtributoN )
Los atributos solo pueden tener un valor a menos que se declaren como
vectores
Instanciaciones de objetos (asignar valores con constantes o con nil)
Las instanciaciones se añaden a la memoria de trabajo y se les asigna un
número entero positivo o etiqueta de tiempo (time-tag)
Para ver los elementos de la memoria de trabajo: (wm) e.g.,
10:(paciente ^nombre Juan ^edad 20
^sı́ntoma fiebre)
Sintaxis:
(p < nombre > < lhs > --> < rhs >)
e.g.,
(p ejemplo
(paciente ^sintoma = fiebre)
(datos-lab ^celulas-T < 100)
-->
(make paciente ^diagnostico sida))
Atributo-predicado-valor
69
Predicado: <, <=, >=, >, <>, =
Si no se pone ningún predicado se asume que es: =
El interprete aparea condiciones de las reglas con elementos de la memoria
de trabajo: e.g., (paciente ^edad < 70 )
Memoria de trabajo:
1: (paciente ^nombre juan ^edad 50 )
2: (paciente ^nombre marı́a ^edad 75 )
Extenciones:
(paciente ^edad {> 20 < 50}) (conjunción)
(paciente ^queja << fiebre dolor-de-cabeza >>)
(disjunción)
Acciones:
• make: crea un elemento en la memoria de trabajo
• remove: elimina un elemento de la memoria de trabajo
• modify: cambia un elemento de la memoria de trabajo
Los atributos no mencionados en make se les asigna nil e.g.,
(literalize persona nombre edad )
(make persona ^nombre juan)
1: (persona ^nombre juan ^edad nil )
Remove: e.g.,
(remove 10 )
(remove * )
Modify: hace un remove seguido de un make. e.g.,
(literalize persona nombre)
(p chafa
(persona ^nombre anonimo)
70
-->
(modify 1 ^nombre juan))
1: (persona ^nombre anónimo)
3: (persona ^nombre juan)
Otras instrucciones: openfile, closefile, accept, write
Variables: se ponen entre “< >”: < x >, < N >,
< cualquier-cosa >, e.g.,
(persona ^nombre = <n > ^edad = 20 )
Una variable puede instanciarse a un elemento de la memoria de trabajo:
{(persona ^nombre juan) <pers>}, e.g.,
(p ejemplo
{(persona ^nombre juan) <pers >}
-->
(remove <pers >))
(p arteria-pequenias
(arteria ^nombre = <n > ^diametro < 2)
(brazo ^conducto-sanguineo = <n >)
-->
(make arteria-pequenia ^nombre <n >))
Interprete: OPS5 usa encadenamiento hacia adelante
Criterios:
• LEX (lexical): preferencia por datos más recientes, las reglas más especı́ficas y arbitrario
• MEA (Means-Ends Analysis): da preferencia a la primera condición
(contextos)
71
Ejemplo (ancestros):
nombre
Gaia
Cronos
Rhea
Zeua
Hephaestus
Leto
Hera
Apolo
madre padre
–
Caos
Gaia
Urano
Gaia
Urano
Rhea Cronos
Hera
Zeus
Febe
Coeus
Rhea Cronos
Leto
Zeus
(literalize persona nombre madre padre)
En OPS5 no hay recursión, por lo que necesitamos un objeto intermedio para
guardar los ancestros intermedios
(literalize mientras nombre)
Necesitamos otro objeto para empezar todo (es común)
(literalize empieza)
Regla inicializadora:
(p pregunta
{(empieza) <inicia >}
-->
(remove <inicia >)
(write (crlf) |Dame el nombre: |)
(make mientras ^nombre (accept)))
(p ancestro
{(mientras ^nombre {<ancestro ><> nil }) <emt >}
(persona ^nombre <ancestro > ^madre <nombre-m >
^padre <nombre-p >)
-->
(remove <emt >)
72
(write (crlf) <nombre-m > y <nombre-p > son
ancestros de <ancestro >)
(make mientras ^nombre <nombre-m >)
(make mientras ^nombre <nombre-p >))
También hace falta declarar la tabla de ancestros:
(make persona ^nombre Gaia ^padre Caos)
(make persona ^nombre Cronos ^madre Gaia
^padre Urano)
..
.
5.2.1
RETE (red)
Del tiempo de ejecución el 90% se consume en el proceso de apareo. El
algoritmo Rete se basa en dos observaciones (suposiciones):
1. La memoria de trabajo es muy grande y cambia poco entre cada ciclo.
Esto implica que mucha información sigue presente en el siguiente ciclo
y se puede utilizar
Rete guarda información de los apareos parciales entre ciclos
El esfuerzo de apareo depende de la razón de cambio de la memoria de
trabajo en lugar del tamaño de ésta
2. Las condiciones de muchas reglas son similares
Rete procesa (compila) las reglas ANTES de ser usadas, localizando
condiciones comunes y eliminando todas menos una
Esta compilación produce una red, en donde los nodos son las condiciones de las reglas
e.g., (paciente ^edad < 40 ^queja = fiebre)
ejemplos de reglas:
Como herramienta para construir Sistemas Expertos: interactivo (∼ Lisp,
Prolog) ⇒ “tracing” amigable
73
Problema: estrategia y heurı́stica condificada en el mismo formalismo
OPS83: se puede especificar la resolución de conflictos a utilizar
5.3
CLIPS
Criterios: alta portabilidad, barato, fácil de integrar
Escrito en “C”
C Language Integrated Production System
fields: float, integer, symbol, string, external address, instance name, instance address
CLIPS es “case-sensitive”
Hechos (facts): nombre de relación seguida de pares atributo (slot) – valor,
e.g.,
(persona (nombre “Juan Perez”)
(edad 23)
(color-ojos cafes)
(color-pelo negro))
El orden de los slots no importa
Antes de crear hechos, se le debe de decir cuales son los slots válidos para la
relación:
(deftemplate <nombre-de-relacion> [cometario opcional]
<definicion-slot>*)
(slot <nombre-slot>)
(multislot <nombre-slot>)
(deftemplate persona “Un ejemplo de un template”
74
(slot
(slot
(slot
(slot
nombre)
edad)
color-ojos)
color-pelo))
Los hechos sin defstruct correspondiente se llaman Hechos Ordenados (tienen
un solo multislot), e.g,
(lista-numeros 7 9 3 4 20) ≡
(deftemplate lista-numeros
(multislot valores))
(lista-numeros (valores 7 9 3 4 29))
Se usan cuando:
1. Se quiere tener una bandera
2. El nombre del slot es sinónimo de la relación
Para añadir hechos: (assert <hecho>+)
Para desplegar hechos: (facts)
f-0 (persona (nombre “Juan Perez”) (edad 23)
(color-ojos cafés) (color-pelo negro))
Se puede ver solo una porción de los hechos:
(facts [inic [fin [máximo]]])
Para quitar hechos: (retract <ı́ndice>+), e.g.,
(retract 0)
(retract 0 1)
Modificar hechos:
(modify <ı́ndice> <modificador-slot>+)
(<nombre-slot> <valor>)
75
e.g., (modify 0 (edad 24))
Duplicate: igual que modify pero no quita el hecho
Para “debuggear”: (watch <sı́mbolo-d>)
<sı́mbolo-d> = facts, rules, activation, statistics, compilations, focus, all
Para quitarlo: (unwatch <sı́mbolo-d>)
Si queremos definir varios hechos con el mismo nombre (relación) a la vez:
(deffacts gente “gente conocida”
(persona (nombre “Juan Perez”) (edad 24)
(color-ojos cafes) (color-pelo negro))
(persona (nomber “Maria Gonzalez”) (edad 25)
(color-ojos azules) (color-pelo rubio))
...)
Para incluir los hechos definidos con deffacts se pone: (reset)
Al empezar CLIPS define:
(deftemplate initial-fact)
(deffacts initial-fact (initial-fact))
5.3.1
Reglas
(defrule <nombre-regla> [<comentarios>]
<patrones>* ; lhs
=>
<acciones>*) ; rhs
e.g.,
IF la emergencia es fuego
THEN la respuesta es activar el sistema de riego
(defrule emergencia-fuego “Un ejemplo de regla”
76
(emergencia (tipo fuego))
=>
(assert (respuesta (accion activar-sistema-riego))))
Comentarios con “;”
Variables con: ?var
Variables para hechos: ?f1 < − (persona (nombre “juan”))
Si el valor de una variable no es importante: ?
Si se quiere aparear más de un valor: $?var o $?
Negación: ∼
Disjunción (or): |
Conjunción: &
Funciones matemáticas: (+ 2 2), *, +, /, Se pueden asignar valores a variables:
(bind <variable> <valor>)
I/O:
(read)
(open <nombre-archivo> <id> [<acceso>])
Acceso: r, w, r+, a
(close <id>)
Para leer un string: (readline) Permite formatear la salida
(test ...): prueba un conjunto de predicados
(or ...): permite ahorrar reglas con condiciones parecidas
(and ...): es el de default
(not ...): verifica que no se cumpla cierta condición
(exists ...): verifica que exista al menos uno (evita disparar la regla varias
veces)
(forall ...): las condiciones se deben de cumplir para todos los hechos
(logical ...): especifica dependencias de hechos con respecto a otros
Al definir los templates:
• Se pueden definir tipos, i.e., solo ciertos valores pueden ocupar un slot
• Tiene valores permitidos y defaults
77
• Rango y cardinalidad
Para el control se puede:
• Definir prioridad a las reglas
• Manejar las reglas por módulos
5.3.2
Ejemplo de un programa en CLIPS
;;;======================================================
;;;
Mini-micro Sistema Experto
;;;
;;;
Diagnostico de fallas simples en un auto
;;;
;;;
Para correr, hacer: load, reset y run
;;;======================================================
;;****************
;;* DEFFUNCTIONS *
;;****************
(deffunction pregunta (?pregunta $?respuestas-posibles)
(printout t ?pregunta)
(bind ?respuesta (read))
(if (lexemep ?respuesta)
then (bind ?respuesta (lowcase ?respuesta)))
(while (not (member ?respuesta ?respuestas-posibles)) do
(printout t ?pregunta)
(bind ?respuesta (read))
(if (lexemep ?respuesta)
then (bind ?respuesta (lowcase ?respuesta))))
?respuesta)
(deffunction si-o-no-p (?pregunta)
(bind ?respuesta (pregunta ?pregunta si no s n))
78
(if (or (eq ?respuesta si) (eq ?respuesta s))
then TRUE
else FALSE))
;;****************
;;* DEFTEMPLATES *
;;****************
(deftemplate auto
(slot arranca (type SYMBOL)
(allowed-values si no nose)
(default nose))
(slot funciona (type SYMBOL)
(allowed-values normal mal no nose)
(default nose))
(slot bateria (type SYMBOL)
(allowed-values cargada descargada nose)
(default nose))
(slot marcha (type SYMBOL)
(allowed-values si no nose)
(default nose))
(slot gasolina (type SYMBOL)
(allowed-values si no nose)
(default nose))
(slot punterias (type SYMBOL)
(allowed-values normal quemadas sucias
desajustadas nose)
(default nose))
(multislot compostura)
)
;;****************
;;*
DEFFACTS
*
;;****************
(deffacts inicia
(auto))
79
;;;***************
;;;*
REGLAS
*
;;;***************
(defrule determina-si-arranca ""
?A <- (auto (arranca nose) (compostura))
=>
(if (si-o-no-p "Arranca el motor (si/no)? ")
then (if (si-o-no-p "Funciona normal (si/no)? ")
then (modify ?A (arranca si) (funciona normal)
(bateria cargada) (marcha si)
(gasolina si) (punterias normal)
(compostura "No tiene nada!!"))
else (modify ?A (arranca si)
(bateria cargada) (marcha si)
(gasolina si) (funciona mal)))
else (modify ?A (arranca no) (funciona no))))
(defrule marcha ""
?A <- (auto (arranca no) (marcha nose) (compostura))
=>
(if (si-o-no-p "Tiene marcha (si/no)? ")
then (modify ?A (marcha si))
else (modify ?A (marcha no))))
(defrule poca-potencia ""
?A <- (auto (arranca si) (funciona mal) (compostura))
=>
(if (si-o-no-p "Tiene poca potencia (si/no)? ")
then (modify ?A (compostura "Limpia el camburador."))))
(defrule explosiones ""
?A <- (auto (funciona mal) (compostura))
=>
(if (si-o-no-p "Tiene explosiones (si/no)? ")
then (modify ?A (punterias desajustadas)
(compostura "Ajusta punterias."))))
80
(defrule para ""
?A <- (auto (funciona mal) (compostura))
=>
(if (si-o-no-p "Se para el motor (si/no)? ")
then (modify ?A (compostura "Ajusta el tiempo."))))
(defrule gasolina ""
?A <- (auto (arranca no) (gasolina nose) (marcha si)
(compostura))
=>
(if (not (si-o-no-p "Tiene gasolina (si/no)? "))
then (modify ?A (gasolina no) (compostura "Ponle gas!!."))
else (modify ?A (gasolina si))))
(defrule bateria ""
?A <- (auto (marcha si) (bateria nose) (compostura))
=>
(bind ?resp (pregunta
"La bateria esta (cargada/descargada)? "
cargada descargada))
(if (eq ?resp cargada)
then (modify ?A (bateria cargada))
else (modify ?A (bateria descargada)
(compostura "Carga la bateria."))))
(defrule punterias ""
(or ?A <- (auto (arranca no) (bateria cargada)
(punterias nose) (compostura))
?A <- (auto (funciona mal) (bateria nose)
(punterias nose) (compostura)))
=>
(bind ?respuesta
(pregunta
"Como estan las punterias (normal/quemadas/sucias)? "
normal quemadas sucias))
(if (eq ?respuesta quemadas)
then (modify ?A (punterias quemadas)
81
(compostura "Cambia las punterias."))
else (if (eq ?respuesta sucias)
then (modify ?A (punterias sucias)
(compostura "Limpia las punterias."))
else (modift ?A (punterias normal)))))
(defrule cambia-marcha ""
?A <- (auto (marcha no) (compostura))
=>
(if (si-o-no-p "Arranca en directo (si/no)? ")
then (modify ?A (compostura "Cambia la marcha."))))
(defrule nada ""
(declare (salience -10))
?A <- (auto (compostura))
=>
(modify ?A (compostura "Llevalo al mecanico.")))
;;;****************************
;;;* DIAGNOSTICO E INICIA *
;;;****************************
(defrule inicia
(declare (salience 1))
=>
(printout t crlf crlf)
(printout t "Sistema Experto de Diagnostico de Coches")
(printout t crlf crlf))
(defrule resultados
(declare (salience -1))
(auto (arranca ?A) (funciona ?F) (bateria ?B) (marcha ?M)
(gasolina ?G) (punterias ?P) (compostura ?C))
=>
(printout t "El auto " ?A " arranca" crlf)
(printout t "funciona " ?F " arranca" crlf)
(printout t "La bateria esta " ?B crlf)
(printout t "La marcha " ?M " funciona" crlf)
82
(printout
(printout
(printout
(printout
(format t
t
t
t
t
"
"El tanque " ?G " tiene gasolina" crlf)
"Las punterias estan " ?P crlf)
"Se sugiere de reparacion que:")
crlf crlf)
%s%n%n%n" ?C))
83
5.4
Artı́culo Sobre Reglas de Producción
Production Rules as a Representation for a Knowledge–Based
Consultation Progam
R. Davis, B. Buchanan, E. Shortliffe
Tendencia en IA (70’s): (i) aplicaciones reales (ii) incorporar grandes cantidades de conocimiento vs. sistemas genéricos (e.g., GPS)
MYCIN: diagnóstica y recomienda terapia de infecciones bactereológicas de
la sangre
Requerimientos:
• Util (un área de necesidad reconocida)
• Capacidad de considerar una gran cantidad de conocimiento técnico
cambiante (reglas)
• Diálogo interactivo (simbólico)
Otros puntos:
• velocidad
• accesibilidad y facilidad de uso
• con énfasis como herramienta de soporte
En el dominio se tienen que tomar desiciones con información incompleta
Alrededor de 200 reglas, 24 funciones y 80 atributos
Cada regla es un pedazo de conocimiento modular y dice explı́citamente en
sus condiciones el contexto necesario
Caracterı́sticas Principales:
84
• Se usan sólo conjunciones en las condiciones de las reglas
• Cada regla puede tener más de una conclusión (acción)
• Su mecanismo de inferencia es encadenamiento hacia atrás, con búsqueda
depth–first en un árbol AND/OR
• Se consideran todas las reglas que pueden aplicarse
• Maneja factores de certeza (o certidumbre). Su regla de combinación
es: mı́nimo en las condiciones AND y máximo entre opciones (reglas)
OR
• Factores en rango ±0.2 se deshechan
• Guiado por metas generalizadas: trata de encontrar toda la información
relacionada con la meta
• Si no puede deducir la información le pregunta al usuario
• Se etiquetan algunas condiciones como preguntables (LABDATA) para
evitar tratar de inferirlas cuando es muy probable que el usuario las
conozca.
• Intenta primero aplicar reglas con valores conocidos (unity path)
• Mantiene lo que va evaluando para evitar tratar de re–evaluar
• Se hace una pre–evaluación en las condiciones de las reglas para eliminar las que sean inmediatamente falsas (preview ).
• La pre–evaluación involucra “plantillas” templates
• Tiene ciertas reglas de “sentido común” para evitar un proceso largo
usando un encadenamiento hacia adelante.
• Usa meta–reglas para ordenar/guiar el proceso deductivo
• Uso de contextos: paciente, infección, cultivo y organismo, y propiedades
“básicas” (a evaluar/preguntar) para guiar el mecanismo de razonamiento
Suposiciones:
85
• Se tiene un formato pre-establecido por lo que es difı́cil expresar todo
el conocimiento en el.
• Se asume que el conocimiento puede describirse en forma de reglas,
las reglas y cómo se usan son suficientes para dar explicaciones, los
expertos pueden reconocer su experiencia en las reglas, las reglas son
suficientemente sencillas, expresivas e intuitivas
• Sólo un número reducido de condiciones (6) se consideran por cada
regla y cada condición es independiente de las otras
• No se requieren muchas reglas de encadenamiento hacia adelante
• El mecanismo de explicación es adecuado
• Los expertos pueden expresar su conocimiento en forma de reglas
• El mecanismo de rezonamiento modus ponens es adecuado
• El vocabulario empleado es adecuado
5.4.1
Evaluación de Reglas como Represenatación de
Conocimiento
• Desempeño: depende de la cantidad y profundidad de su conocimiento
La modularidad de las reglas es fundamental para un buen desempeño
(entre otros para añadir nuevas reglas, detectar inconsistencias, reglas
subsumidas por otras, etc)
La modularidad implica que toda la información contextual debe de
estar incluı́da en la regla y ninguna regla llama directamente a otra.
Esto puede provocar reglas demasiado grandes.
En encadenamiento hacia atrás no es fácil mapear un conjunto de pruebas a las metas (pensar “al reves”)
El formalismo sólo permite pruebas de predicados (i.e., no puede tener:
para todo organismo ... esto lo tienen “parchado” en algunas metareglas pero les complica el sistema de explicación)
86
• Explicación: debe de ser “natural” y transparente para los expertos
(razones de usar proceso simbólico y reglas).
Capacidades: (i) mostrar en cualquier momento la regla considerada
(ii) almacenar las reglas utilizadas para propósitos de explicación (iii)
encontrar reglas especı́ficas para contestar algún tipo de pregunta
Extensiones: (i) preguntar porqué no tomo ciertas acciones (ii) combinar la explicación con “medidas de información” para dar explicaciones
a diferente detalle
Aseveración: el nivel de detalle de conocimiento es adecuado porque lo
dieron los expertos
• Adquisición: es fácil de formalizar en forma de reglas el dominio médico
Las explicaciones permiten encontrar fallas en la base de conocimiento
y facilitan su modificación
La adquisición se puede hacer en lenguaje natural porque el lenguaje
considerado es suficientemente restringido
La adquisición debe de estar libre de contradicciones, redundancias y
subsumciones. Problemas con contradicciones indirectas, efectos secundarios (i.e., actualización de información relacionada)
Algunas limitaciones:
• algunos conceptos no son fáciles de expresar en forma de reglas
• el razonamiento hacia atrás no parece ser adecuado para estructurar
grandes cantidades de conocimiento
• La sintaxis de las reglas asume sólo conjunciones de pruebas proposicionales
• La información se introduce sólo al responder preguntas
• Las suposiciones sobre las cuales se basa el manejo de los factores de
certeza son muy restrictivas
87
Capı́tulo 6
Objetos Estructurados
6.1
Grafos
• nodos/vértices: normalmente con etiquetas
• arcos/ligas: pueden o no tener etiquetas (si existe más de un tipo de
arco)
Una red es normalmente un grafo con pesos.
En Inteligencia Artificial los arcos pueden representar cualquier cosa (relación
entre nodos).
Se pueden usar para representar relaciones causales, e.g.
Los árboles son útiles para representar jerarquı́as, e.g.
6.2
Redes Semánticas
Quillian’66
Modelo de memoria humana para capturar la semántica de las palabras y
lograr uso del significado parecido a los humanos.
88
Un tipo de red en la cual los nodos representan objetos, conceptos o situaciones y los arcos representan relaciones entre ellos.
Realmente es una estructura de datos sofisticada y mucho depende del programa que la mantiene y la usa.
Se llama red semántica porque se usaron originalmente para representar el
sentido en expresiones de lenguaje natural.
Los nodos: conceptos de palabras
Los arcos: ligan conceptos para establecer la definición
Cada palabra o nodo conceptual se consideraba la cabeza de un “plano” que
tiene su definición (e.g., si banco tiene 3 significados, entoces existen 3 planos
para él).
Las ligas en el plano representan su definición.
Pueden existir apuntadores a: superclases (is-a), modificaciones, disjunciones, conjunciones y sujeto/objeto.
Apuntadores fuera del plano hacen referencia a otros objetos (y planos) en
donde se definen.
Pruebas: dar dos palabras y buscar intersecciones en las redes, para obtener
la relación (cosas en común) entre ellas.
Esta activación de todo lo que rodea a una palabra se esperaba que representara la definición completa de un concepto.
Existı́an 2 ligas pricipales:
• subclase (is-a): las clases de “arriba” están definidas en términos de
conceptos generales que se asumen que se cumplen en todas sus subclases
• modificadores: propiedades particulares de conceptos especı́ficos
Puede existir herencia (e.g., un canario es un animal), y herencia de propiedades
(e.g., un canario come) e.g.,
89
El que un canario tiene piel se tarda más en deducir que es amarillo (parece
que ésto se confirma, aunque no concluyentemente, del tiempo de reacción
de la memoria humana).
Esto dió pie a la definición de distancia semántica entre conceptos (número
de ligas a recorrer).
Relaciones más complicadas:
piolin– es-un −→ canario – es-un −→ ave – tiene −→ alas
duenio
posesion – es-un −→ pertenencia – es-un −→ situacion
es-duenio-de −→ “Petit Chateau” – es-un −→ nido
tiempo-inic −→ primavera – es-un −→ tiempo
tiempo-final −→ septiembre – es-un
El permitir tener un conjunto de arcos de salida también se llama “case
frame”.
posesión es una instancia de pertenencia y hereda los arcos del “case frame”.
Las redes semánticas permiten tener valores por default y cierta expectación
acerca de los posibles valores de un atributo.
La idea es tratar de tener un conjunto adecuado (pequeño) de nodos y de
“case frames” genéricos.
El error más común es usar la liga es-un para representar pertenencia a una
clase y propiedades de una clase, e.g.
Existen propiedades que no se heredan a los miembros de la clase, e.g.,
Se pueden hacer preguntas como, Qué es lo que Piolı́n tiene? o Quién es una
ave?
90
6.2.1
Ejemplos de Algunos Sistemas
6.2.1.1
SCHOLAR
SCHOLAR (Carbonell): una red semántica para enseñar la geografı́a de
sudamérica.
Carbonell distingue entre: unidades conceptuales (clases) y unidades de ejemplos (instancias).
Explota el uso de etiquetas (tags). e.g., la etiqueta de irrelevancia aumenta
la distancia semántica y guı́a hacia los atributos más relevantes.
También utilizó etiquetas temporales y permitió poner procedimientos mezclados dentro de la red (i.e., para inferir hechos).
6.2.1.2
ARCH
Winston: sistema para aprender conceptos de estructuras fı́sicas a partir de
ejemplos de estructuras descritos en forma de redes.
El proceso de generalización permite cambiar relaciones entre objetos.
Problema de los 3: uniformidad, i.e., no se distingue entre propiedades generales o especı́ficas del dominio.
Estructuras de casos: Fillmore concentró el trabajo en lenguaje natural y
verbos.
Oración: modalidad (captura información del tiempo, modo, aspecto) acoplada
con una proposición (verbo con casos).
Otros trabajos: Rumelhart et al., Shank (dependencias conceptuales).
Desafortunadamente poca semántica (falta reconocimiento explı́cito de los
principios fundamentales del diseño de la representacion).
Poco extendibles, muy uniformes (no habı́a distinción entre superset y member).
91
Shapiro: distingue conceptos relacionales (e.g., amar se representa como un
nodo).
Hendrix utiliza particiones (grupos de nodos).
6.2.2
Evolución de conceptos y problemas
De alguna manera, una red semántica trata de tener en un solo mecanismo
una forma de guardar conocimiento y forma de modelar las conecciones asociadas (∼ a los humanos).
Que significa cuando hacemos una liga entre 2 nodos?
e.g., telefono ←− Nodo −→ negro
Todos los telefonos son negros o es un teléfono negro?
Problemas:
• Las redes semánticas no son muy escrupulosas en cuanto al significado
de los nodos (e.g., perro se refiere a la clase, el concepto o un perro en
particular)
• para establecer si existe relación entre dos conceptos, se sigue un proceso de búsqueda de intersección, esto sin embargo no evita el proceso
combinatorio
Finalmente una red semántica tiene: nodos, arcos y reglas de combinación
(sintáxis) y lo que significan (semántica).
El problema es por falta de distincióne entre lo intensional (sense/meaning)
y extensional (reference/denotation), e.g.,
rojo: todas las cosas rojas (extensional)
la propiedad de ser rojo (intensional)
La mayorı́a de las redes semánticas se pueden ver como un conjunto de pares
atributo valor.
92
Si tenemos comparaciones (e.g., altura > 1.80), necesitamos extender a lo
que apunta a un predicado que regrese T o F.
Si tenemos comparaciones entre atributos (e.g., altura Juan > altura Marı́a)
necesitamos un objeto intensional intermedio.
Si tenemos Juan le-pegó-a Marı́a, entonces tenemos relaciones entre nodos.
Para relaciones entre más de un objeto: cases (e.g., agente, receptor, acción,
objeto).
Como saber a que objetos se refiere una oración?
Problemas con cuantificadores: e.g., todo entero es-mayor que algún entero.
6.2.2.1
KLONE
KLONE: hace diferencia entre: individualización, instanciación y lo que denota, e.g.
Tiene 2 descripciones fundamentales:
• Roles: representan los atributos, partes, etc., que los objetos del mundo
tienen
• Descripción Estructural: dice como están relacionados los roles
e.g.,
KLONE representa:
• las relaciones entre un Concepto y sus Roles
• las relaciones entre un Concepto y sus Descripciones Estructurales
• la estructura interna de una Role (relación entre el Role y sus facets)
• la estructura interna de una Descripción Estructural
93
• relaciones entre partes de las Descripciones Estructurales y los Roles
Extensiones: poner procedimientos directamente en los nodos.
6.3
FRAMES (Minsky, ’75)
Frames: estructuras de datos representando situaciones prototı́picas
Una de las ideas intuitivas detrás de los Frames, es que la memoria se basa
mucho en esteroetı́pos (propiedades tı́picas de los objetos)
Existe mucha literatura en psicologı́a sobre organización de la memoria humana de los 20’s y 30’s que es relevante
Los sistemas de frames razonan acerca de clases de objetos usando representaciones prototı́picas, pero que pueden modificarse para capturar las complejidades del mundo real
Se pueden capturar expectativas
Idea: tener una sola estructura de datos para poner el concocimiento relevante acerca de una clase de objetos, en lugar de tener el conocimiento
distribuido en forma de reglas o fórmulas lógicas
Permite construir conocimiento declarativo y procedural en un registro con
slots y fillers o facets
Los slots son atributos y los fillers o facets son los valores, e.g.,
(frame (nombre camion)
(is-a objeto)
(color rojo)
(llantas 10)
...)
La idea es que los cálculos para resolver problemas ocurren de efectos secundarios del flujo de información por el frame
94
Frames están puestos en una jerarquı́a en donde los frames de “abajo” pueden
heredar los valores de los slots de los frames de “arriba”
Normalmente la herencia se hace por medio de los arcos: is-a (al final
instance-of)
En general los frames de “arriba” tienen información tı́pica (poco variable)
mientras que los de “abajo” tienen información más especı́fica. En ausencia
de ésta, se utiliza la de los padres
Se pueden hacer deducciones a través de la jerarquı́a (se distinguen entre los
frames clases o genéricos y los frames instancias), e.g.
Los slots pueden tener valores múltiples
Si no encuentra un valor en el frame, busca por valores en los frames de
arriba de la jerarquı́a (explota la relación transitı́va de is-a), e.g.,
(frame conducto-sanguineo
(forma tubular)
(contiene sangre))
(frame arteria
(es-un conducto-sanguineo)
(localizacion {brazo, cabeza, pierna, tronco})
(sangre rica-en-oxigeno)
(pared muscular))
(frame vena
(es-un conducto-sanguineo)
(pared fibrosa))
(frame aorta
(es-un arteria)
(localizacion tronco)
(diametro 2.5))
(frame arteria-izquierda-X
(es-un arteria)
95
(localizacion brazo)
(sangre pobre-en-oxigeno)
(diametro 0.4))
El permitir que un slot esté presente en más de un frame nos permite manejar
excepciones (e.g., sangre)
6.3.1
Defaults y Demons (facets/fillers)
Se puede tner información adicional, como: procedimientos para calcular el
valor de un slot cuando no se tiene, procedimientos para actualizar valores
de un slot cuando un valor de otro slot es actualizado, restricciones en los
valores que puede tener un slot, etc.
Datos, definiciones y procedimientos están agrupados en módulos que pueden
compartir información y procedimientos por medio de mecanismos de herencia
Los fillers o facets pueden tener varias formas de calcular un valor: value,
default y demons
Pegados a los slots pueden existir procedimientos que se activan cuando el
slot es accesado o actualizado
VALUE: (color (valor rojo))
DEFAULT: si no tiene un valor, toma el de default, e.g.,
(frame coche
(color (valor ?))
(llantas (valor ?)
(default 4)))
DEMONS/MÉTODOS:
IF-NEEDED: si no tiene un valor y se necesita, se invoca al procedimiento
escrito en el facet if-needed (éste podrı́a ser preguntarle al usuario, por ejemplo), e.g.,
96
(frame bloque
(largo (valor 3))
(ancho (valor 5))
(area (valor ?)
(if-needed (func-area (ancho largo)))))
(frame bloque1
(is-a bloque)
(largo (valor 2))
(ancho (valor ?))
(area (valor ?)))
(defun func-area (A L)
(* A L))
IF-ADDED: al añadir un valor en un slot se puede activar un procedimiento
(el cual puede afectar el valor de otro slot)
(frame bloque1
(area (valor ?)
(if-added (mult*2 area)
(imprime: el doble del area))))
IF-REMOVED: al quitar un valor de un slot se activa un procedimiento
También se puede tener: before y after, los cuales se activan antes y después
de obetener un valor
Se pueden combinar todos.
6.3.2
Estrategias
1. valores, defaults, demons en un nivel, y luego hacia arriba (herencia-Z).
Idea: los valores que se puedan obtener en un nivel son más confiables
que los de sus niveles superiores
97
2. valores hacia arriba, defaults hacia arriba y demons hacia arriba (herenciaN). Idea: si se pueden obtener un valor es más confiable que lo que de
por default o por medio de los demons
Procedimiento de Herencia:
Sea F un frame y S un slot
UNTIL se encontro un valor para S o F = nil
IF F tiene un valor para S acaba
ELSE sea F = superclase de F por medio del slot IS-A
Con default o demon serı́a:
Sea F un frame y S un slot
UNTIL se encontro un valor para S o F = nil
IF F tiene un (demon/default) para S
Then (ejecuta el demon/asigna el default) y acaba
ELSE sea F = superclase de F por medio del slot IS-A
Para combinar: valor, demon, default
Herencia-Z:
Sea F un frame y S un slot
UNTIL se encontro un valor para S o F = nil
IF F tiene un valor para S Then asigna el valor
ELSE IF F tiene un demon, Then ejecuta el demon
ELSE IF F tiene un default para S, Then usa el default
ELSE sea F = superclase de F por medio del slot IS-A
Herencia-N:
Realiza:
• herencia con valor
• henrecia con demons
• herencia con defualts
98
6.3.2.1
Tipos
Se les puede incluir restricciones: cardinalidad, rangos permisibles, tipo de
datos, etc.
e.g., (intersección (enteros (intervalo 0 100)) (not.one.of 23 36))
6.3.2.2
Perspectivas
Un objeto puede verse desde varias perspectivas, e.g.,
ladrillo
ladrillo
ladrillo
ladrillo
ladrillo
...
6.3.3
–
–
–
–
–
estructural
juguete
regalo
arma
cultural
–
–
–
–
–
función
función
función
función
función
=
=
=
=
=
soporte
juego
adorno
romper cabezas
detener libros
Herencia Múlitple y Ambigüedad
A veces se quiere heredar información de más de un frame (la organización
se vuelve más una red que un árbol)
Esto puede provocar conflictos de información
Con herencias múltiples no se tiene problemas mientras no exista conflicto
en la información, e.g.
En herencia múltiple se tiene que incluir un método que decida de donde
heredar
Algunos sistemas no deciden (escépticos) por ser contradictorio.
Algúnos permiten varias conclusiones (crédulos)
Se puede usar información adicional para resolver la ambigüedad (e.g., con
un demonio: IF-NEEDED)
99
A veces se cancelan lineas de herencia para eliminar ambigüedades, e.g.
En algunos sistemas se permiten que los valores de slots apunten a otros
frames
Los frames se pueden utilizar para entender historias (idea de los Scipts) e.g.,
(frame evento
(lugar L)
(dia D)
(Tiempo T))
(frame terremoto
(magnitud X)
(falla Y))
(frame huracan
(vel-viento V)
(nombre N))
(frame boda
(es-un evento-social)
(novia NA)
(novio NO)
(padres-novia PNA)
(padres-novio PNO)
(vestido-novia VN))
(frame desastre
(es-un evento)
(muertos N)
(heridos M)
(sin-casa O)
(danios P))
(frame inundacion
(is-a desastre)
(rio R))
(frame evento-social
(es-un evento)
(invitados I)
(casa-de C))
100
6.4
Scripts
Un script es una forma de representar una situación prototı́pica (parecido a
los frames), pero en lugar de tener una descripción de un objeto, el script
describe una secuencia de eventos.
A diferencia del frame, se presenta en un contexto particular.
Para describir una secuencia de eventos, el script usa un conjunto de slots
que tienen información acerca de gente, objetos y acciones involucrados en
los eventos
Algunos de los elementos tı́picos incluyen:
• Condiciones (entry conditions): describen que se debe de satisfacer
para poder aplicar el script
• Objetos (props): tiene los objetos que se usan en la secuencia de eventos
• Roles: la gente involucrada
• Variantes (track): variantes que pueden ocurrir en un script particular
• Escenas: describe la secuencia de eventos
• Resultados: las condiciones que existen después de aplicar el script
Script Restaurante
Variante (track): comida rapida
Roles: cliente, mesera, cajero
Objetos (props): caja, menu, comida, dinero,
servilletas, sal/salsa
Condiciones: el cliente tiene hambre y dinero
• Escena1: entrada
– el cliente estaciona su coche
– el cliente entra al restaurante
101
– el cliente espera a que lo atiendan
– el mesero lleva al cliente a una mesa desocupada
• Escena2: ordena
– el mesero trae el menu al cliente
– el cliente escoge que comer del menu
– el cliente da su orden al mesero
• Escena3: comer
– el mesero trae la comida
– el cliente come su comida
• Escena4: salida
– el cliente pide la cuenta
– el mesero le trae la cuenta
– el cliente va al cajero y paga su cuenta
– el cliente sale del restaurante
– el cliente se va en su coche
• Escena4a: comida-corrida (opcional)
– el cliente sale corriendo del restaurante
– el cliente se va en su coche rechinando llanta
Resultados:
• el cliente ya no tiene hambre
• el cliente tiene menos dinero
• el cliente esta satisfecho (?)
• el cliente no esta satisfecho (?)
• el cliente esta demasiado lleno (?)
102
• el cliente tiene dolor de panza (?)
Los scripts pueden predecir que se espera que pase en una situación
Aunque no se mencione lo que pase, el script puede “llenar los huecos” (se
utilizaron para entender historias)
Para usar los scripts, estos se almacenan y se obtienen de memoria los que
más se parescan a la situación (parecido a Case-Based Reasoning)
Una vez seleccionado un script, el sistema checa que tan lejos ha llegado el
texto y ve los valores asociados con los objetos
6.5
Programación Orientada a Objetos
Historia:
La mayorı́a de los lenguajes experimentales que se han producido en los
últimos 10 años son orientados a objetos
Al igual que los frames, se asocia a un objeto tanto datos como procedimientos en estructuras organizadas en jerarquı́as
Los datos al igual que los procedimientos pueden ser heredados
Los objetos se comunican entre ellos a través de un protocolo especial de
pasar mensajes
Cada objeto es una instancia de una clase y puede mandar su propio mensaje
y hacer acciones independientes. Las clases se relacionan en una jerarquı́a
Conceptos:
• Abstracción: se enfoca en las caracterı́sticas escenciales de un objeto
relativo a la perspectiva del observador
• Modularidad: agrupa abstracciones en unidades discretras. Es la propiedad
de un sistema que se ha descompuesto en un conjunto de modulos coherentes y poco acoplados
103
• Herencia: es clasificar u ordenar abstracciones. Las abstracciones forman una jerarquı́a. Los objetos pueden heredar propiedades de otros
objetos. La herencia puede ser simple o múltiple. (C++: Privado,
Protegido, Público)
• Objeto: puede ser un objeto fı́sico, un concepto, un evento, o lo que sea
que queremos describir (e.g., un coche, un curso, un programa, etc).
Un objeto tiene un estado, exhibe un comportamiento bien definido y
tiene una identidad única
• Encapsulación: esconde los detalles de la implementación de un objeto
• Reutilización: objetos (bien hechos) pueden utilizarse en otros dominios
• Ejecución: por medio de propagación de mensajes
• Mensajes: el código privado que tiene el objeto puede ser accesado solo
por por medio de mensajes. El mensaje dice a que objeto se dirige, que
procedimiento ejecutar y cuales son los arguments
• Métodos: es un procedimiento privado de un objeto que dice que hacer
con un mensaje y como hacerlo. Como cada objeto tiene sus propios
métodos, los objetos pueden responder diferente al mismo mensaje.
• Respuestas: una vez recibido un mensaje, el objeto manda su respuesta
a otros objetos o al sistema.
• “Tipeo”: es forzar que objetos de diferentes tipos no se mezclen o solo
en casos restringidos
Se pueden crear nuevos objetos por medio de instanciaciones, tomando copias
de objetos existentes (padres) y especificando en que se diferencia del padre
(muchas veces es solo instanciando variables).
Normalmente los mensajes se mandan a instancias, que heredan sus métodos
de clases.
Cuando se manda un mensaje a un objeto, éste checa sus datos y métodos
particulares para ver si puede manejar el mensaje. Si no puede, busca la
forma de hacerlo en su objeto padre.
104
Los procedimientos pueden ser polimórficos (i.e., aceptar diferentes tipos o
clases da datos y de todos modos saber que hacer)
Se tiene que programar en términos de operaciones genéricas
Mandar un mensaje no es lo mismo que llamar a un procedimiento. Lo único
que se hace es que se dice el nombre del método y se mandan los argumentos,
pero el objeto es el que decide que hacer.
Las propiedades relevantes dependen de como se persive el objeto, e.g., un
piano a un músico (como suena) a un cargador (cuanto pesa)
De nuevo puede existir herencia múltiple (e.g., combinar ventanas)
Que pasa cuando los métodos interactuan?
Posibilidades:
• Usar: before y after (hacer primero los métodos generales antes de hacer
los particulares)
• Hacer búsqueda depth–first y de izquierda–a–derecha
• Algunos lenguajes (e.g., LOOPS) permiten invocar un método sin que
se siga el proceso “normal” de herencia
A pesar de que las ideas básicas de la POO pueden ser muy atractivas (e.g.,
organizar mejor el código), todavı́a requiere de decisiones de bajo-nivel (e.g.,
como buscar en la jerarquı́a).
El combinar métodos puede obscurecer errores.
Normalmente uno manda mensajes a clases para crear instancias con ciertas
caracterı́sticas.
En LOOPS existen meta-clases (clases cuyos elementos son clases) y se
pueden crear instancias de ellas (clases).
CLOS permite tener un método llamado: around (alrededor) para agrupar
diferentes métodos (e.g., cuando se tiene que pasar una variable o se necesita
hacer un control especial).
105
Resúmen:
• la filosofı́a de representar el conocimiento en términos de objetos y
agentes es adecuada para muchos problemas (en especial los que tienen
un componente de simulación)
• el tener datos y procedimientos, obliga a pensar en el tipo de objetos
y el comportamiento que es relevante para el problema
6.6
6.6.1
Artı́culos de Frames
A Framework for Representing Knowledge, Marvin Minsky
Idea: al encontrar una situación nueva, seleccionar de memoria una estructura (frame) y adaptarla a la realidad cambiando detalles
Frame: estructura de datos para representar situaciones estereotı́picas
Tiene información asociada de cómo usar el frame, qué esperar que pase, qué
hacer si las expectativas no se cumplen
Organizados en jerarquı́as: Los frames de arriba prácticamente no cambian
y los terminales tienen slots que se llenan con nuevos datos
Los diferentes frames comparten los frames terminales. Esto es crı́tico para
poder coordinar la información desde diferentes puntos de vista.
Los frames terminales normalmente están llenos por asignaciones de default
u omisión.
Estas pueden ser remplazadas fácilmente con nueva información
Utilizan defaults y demons que facilitan el llenado de slots
El sistema de frames tiene asociado un proceso de apareo controlado por la
información en los frames y las metas a cumplir
106
Lógica no es adecuada, por no poder representar aproximaciones (dadas por
los defaults) imperfectas
En el entendimiento de oraciones, si los niveles de arriba son satisfechos pero
algunos de los terminales no lo son, entonces tenemos una oración sin sentido.
Si los niveles superiores son débiles pero los inferiores son “sólidos” tenemos
una oración gramaticalmente erronea pero con sentido.
Se pueden describir escenarios
Podemos pensar en frames sintácticos, semánticos, temáticos y narrativos.
Una frame puede verse como una colección de preguntas a hacer acerca de una
situación hipotética: especifica puntos a tratar y métodos para manejarlos
Una terminal debe de ser no sólo la pregunta que se quiere resolver, sino
también sugerencias de cómo responderla. Los valores por default u omisión
siendo los más simples.
6.6.1.1
Algunos puntos de investigación
• Cómo seleccionar un frame inicial y subframes para detalles adicionales
(expectación y elaboración)
• Cómo reemplazar un frame, qué hacer si un frame no es aceptable?
(alteración y novedad)
• Que frames almacenar/modificar como resultado de experiencias? (aprendizaje)
• Interacción entre representaciones múltiples y combinación de estas
Un frame se puede ver como una situación ideal, elegante, con simplificaciones, pero el poder está en el conocimiento adicional que se puede tener
acerca de las posibles interacciones entre ellos.
Se pueden pensar en varias situaciones para explicar discrepancias con la
situación ideal:
107
• oclusión
• variante funcional
• roto
• diferente contexto
Se pueden tener clusters (con varios puntos tı́picos), con diferentes jerarquı́as.
De hecho los clusters deben de surgir de la interacción con el mundo.
Tener diferentes descripciones para construir analogı́as y resolver problemas
(con diferentes análisis y en diferentes espacios)
Se pueden tener diferentes puntos de vista (representaciones múltiples para
atacar un mismo problema desde diferentes puntos de vista)
6.6.1.2
Crı́tica a Lógica
• Lógica no contempla: causa–efecto, tiempo, propósito, proceso, tipos
de conocimiento, etc.
• La idea de seleccionar información relevante es clave (lógica no lo tiene)
• Razonamiento no–monotónico
• La separación de axiomas y deducción es impráctica
• Sistemas lógicos son difı́cilmente escalables
• Consistencia (no deseable) y completes. Lo importante es cómo manejar conflictos, aprender de errores, ... etc. El forzar consistencia produce limitaciones (demasiado inflexible).
6.6.2
The Logic of Frames, Patrick J. Hayes
La intepretación implementacional de los frames es de mecanismos para organizar representaciones, su forma de recuperarlas e inferencias que manipulan
estas representaciones.
108
Esto no toma en cuenta aspectos representacionales sino implementacionales
(si confundimos implementación con representación LISP serı́a un lenguaje
de representación universal)
Una caracterización representacional es una teorı́a semántica: esto es,
como las expresiones en le lenguaje se refieren al mundo que representan
(esto define el sentido de las expresiones en el lenguaje).
Los frames son estructuras de datos que intentan representar situaciones
estereotı́picas, con slots y fillers que pueden ser a su vez otros frames.
Si se ven a los frames como que denotan relaciones entre individuos,
entonces son escencialmente agregados de propiedades
Parecen simples alteraciones sintácticas para expresar relaciones entre individuos, i.e., otra forma de expresar lógica de predicados
6.6.2.1
Inferencia en los Frames
• Instanciación: dado un frame representando un concepto, podemos
generar una instancia de ese concepto llenando sus slots.
• “Criteriality”: la poseción de atributos es suficiente y necesaria para
que un objeto califique como instancia de un frame
• Apareamiento: una instancia de un concepto puede verse como instancia de otro
• Diferentes puntos de vista: un objeto puede tener propiedades aparentemente contradictorias si se le ve desde diferentes puntos de vista (traducción analógica, e.g., ver a un hombre como un cerdo)
• Razonamiento por default: hacer ciertas deducciones (por default) y
luego posiblemente eliminarlas al tener más información (razonamiento
no–monotónico)
• Razonamiento reflexivo: habilidad de hablar acerca de sı́ mismo (e.g.,
saber sobre su propio mecanismo de deducciones)
109
En principio, todos estos tipos de razonamiento se pueden hacer relativamente fácil usando lógica de primer orden, excepto el razonamiento por default y razonamiento reflexivo.
Razonamiento por default requiere (segun Hayes) de la habilidad de que el
sistema sea reflexivo (“hable de si mismo”)
Aparte de la idea de sistema reflexivo, Hayes no ve ninguna aportación real
(representacionalmente) de los frames y su fortaleza ha sido sobretodo implementacional.
6.6.3
An Overview of KRL: a Knowledge Representation Language, D. Bobrow y T. Winograd
KRL = Knowledge Representation Language
Motivación: actualmente (’77) los sistemas son muy frágiles
Idea: Lenguaje de representación que integre conocimiento procedural con
declarativo (aplicado eventualmente a lenguaje natural)
Ideas:
• Organizar el conocimiento alrededor de entidades conceptuales asociadas con desripciones y procedimientos
• Una descripción debe de representar conocimiento parcial y acomodar
múltiples descripciones (diferentes puntos de vista)
• Comparación entre descripciones con especificaciones adicionales como
una método central de las descripciones
• Razonamiento dominado por comparación de objetos y eventos para
almacenar eventos esperados y especializaciones de estos
• Múltiples procesos activos con información de asignación de tareas del
usuario y heurı́sticas de manejo de memoria
• La información debe de agruparse (accesibilidad y eficiencia)
110
• Un conjunto flexible de herramientas disponibles para representar estrategias de procesamiento
Operaciones:
• aumentar una descripción para incorporar nuevo conocimiento
• aparear dos descripciones para ver si son compatibles para los propósitos
actuales
• buscar referentes para entidades que aparean una descripción en particular
El conocimiento declarativo está organizado en entidades conceptuales o
“unidades” con “descripciones” asociadas
Unit = grupo de desciptions (o slots) + nombre + categoria (7 tipos)
Slots = nombre + conjunto de procedimientos asociados + lista de descriptors
(un slot especial es SELF)
Descriptors = asociado con un conjunto de features (existen 12 tipos)
Categorias de una unidad (unit):
• Basic: partición simple del mundo en objetos de diferente tipo
• Abstract: agrupa descriptores y procedimientos a ser heredados por una
entidad descrita por una perspectiva del cual la unidad abstracta es un
prototipo
• Specialization: distinción extra dentro de una categoria básica
• Individual: entidades únicas diferentes
• Manifestation: grupo de descripciones que pertencesn a un solo individuo
• Relation: representa una relación o predicado como un mapeo abstracto
111
• Preposition: instanciación de la relación
Tipos de descripciones (descriptions): especifican los valores o de dónde
tomarlos
Existen varios “modos” de descriptores (12 pero solo ponen 9): direct pointer,
perspective, specification, prediction, logical boolean, restriction, selection, set
specification, contingency, combinación de varias
Se pueden tener múltiples “vistas”
Se puede tener información redundante
Aparte de los features de arriba, se puede tener una meta–description (e.g.,
default, hechos acerca de hechos, etc)
Se pueden hacer descripciones de objetos por comparación con otros (normalmente con prototipos) indicando la perspectiva de cada uno de ellos (las
cuales pueden contradecir los valores de default)
6.6.4
Apareamiento como Mecanismo de Razonamiento
El razonamiento está dominado por un proceso de reconocimiento
Existen varias dimensiones en la cual operar el apareador (puede usar la
semántica y/o sintáxis de los descriptores, buscar por un descriptor referente,
llamar funciones especiales de apareo, etc)
El apareo se realiza por medio de subtareas, cada una apareando una parte
del patrón con los datos
Para realizar un apareamiento múltiple de descripciones, se necesitan estrategias para “alinear” los descriptores.
Se pueden incorporar estrategias dadas por el usuario
KRL puede variar el nivel al cual considerar puntos terminales
Se pueden deducir propiedades de los hechos
112
Se puede intercalar el proceso de apareamiento con otros procesos
El resultado puede ser: si, no, todavia no se (y se busca que también regrese
una medida de calidad)
Permite limitar la búsqueda, regresando lo que tiene/le falta
Se puede forzar un apareo
6.6.4.1
Organización del Conocimiento
Organización en grupos (clusters o chunks) para reducir la explosión combinatoria
Utilización de objetos y herencia de propiedades
Necesita identificar las propiedares relevantes
Utiliza una agenda (tareas ordenadas por prioridad), por lo que puede pensarse en multiprocesamiento
Puede tener ligas asociatvias que sirvan para la recuperación (el problema es
decidir cuándo ponerlas y cuándo usarlas)
Hablan también de un lista deenfoque o de contexto para explorar basados
en contextos dependientes del dominio
Se necesita un lenguaje de alto nivel o directorio de procedimientos con los
cuales se pueden hacer los apareos
113
Capı́tulo 7
Esquemas Hı́bridos
Las formas de representar conocimiento que vimos no son mutuamente exclusivas.
Un esquema h’ibrido es una combinación de diversas formas de representación de conocimiento para resolver un problema. Hay dos formas básicas
de combinar diversas representaciones: Externa e Interna.
7.1
Hı́bridos “Externos”
En este esquema dos o mas módulos con diferentes formas de representación
interactuan entre si. Cada módulo tiene una sola forma de representación
y se combina con los otros módulos mediante variables de entrada/salida o
mediante una estructura de datos común (Base de Datos). En principio cada
subsistema tiene la forma de representación mas adecuada para resolver una
parte del problema, y se combina con las demás para solucionar un problema
mayor.
En este esquema no existe una fuerte interacción entre las diversas representaciones.
114
7.2
Hı́bridos “Internos”
En este tipo de sistemas se combinan varias formas de representación que
interactuan para resolver cierto problema. Con esto se aprovechan diversas
propiedades de las formas de representación que complementan sus capacidades. Por ejemplo, se combinan las reglas con prototipos aprovechando las
abstracciones de marcos dentro de reglas, marcos y redes semánticas formando redes de prototipo, etc.
Dos ejemplos de este tipo de esquemas son: Centaur, que combina marcos
y reglas para diagnóstico médico; y Nexpert, una herramienta que involucra
reglas y objetos para el desarrollo de sistemas expertos.
7.2.1
Centaur: Marcos y Reglas.
Originalmente diseñado para el diagnóstico de enfermeda–des pulmonares,
ha sido extendido para otro tipo de aplicaciones. La idea básica es la de
asociar reglas a marcos. Es decir, que una estructura tipo marco provee un
contexto explı́cito en el que actúan ciertas reglas. Las reglas se ligan a un
atributo de un marco, y se ven simplemente como un “slot” adicional del
prototipo correspondiente. De esta forma, el marco indica la “situación” o
contexto en que aplica la regla, evitando los “trucos” que se tienen que hacer
en sistemas de producción “puros” para tener un efecto similar.
Reglas dentro de Prototipos.
Centaur tiene una clasificación de enfermedades pulmonares que se estructuran en una jerarquı́a de prototipos. Cada prototipo contiene un numero de
marcos (subprototipos) que incluyen el conocimiento e información referente
ese tipo de enfermedad; y asociado a c/u de estos hay una serie de reglas que
indican como obtener dicha información. También los marcos pueden tener
meta-reglas que le indican como razonar con dichas estructuras.
Jerarquı́a de prototipos en Centaur.
115
En operación , primero se dan ciertos datos iniciales de la enfermedad.
Estos activan ciertas reglas que llevan a la activación de algunos prototipos.
Se tiene una forma de darles prioridad a los prototipos, y se escoge para su
evaluación el de mayor prioridad. Se obtiene la información referente a ese
marco, y se continua el ciclo hasta llegar a cierto nivel de confidencia en los
resultados.
De esta forma se usan marcos para estructurar reglas en forma modular,
y controlar la interacción entre ellas.
7.2.2
Nexpert: Reglas y Objetos
Nexpert es una herramienta (coraza o shell ) de propósito general para el
desarrollo de sistemas expertos. Se basa en la combinación de reglas y objetos. En cierta forma es similar a Centaur, ya que los objetos de Nexpert
se pueden considerar como un sistema de prototipos. Sin embargo, la forma
en que interactuan estas 2 representaciones es diferente, ya que en vez de
agrupar reglas dentro de objetos, estas 2 representaciones se ven como dos
dimensiones del conocimiento que interactuan (se intersectan) entre si.
Interacción entre objetos y reglas:
• Las reglas operan sobre atributos de objetos.
• Las reglas pueden ser genéricas operando sobre clases o partes de objetos (pattern-matching).
• Al evaluar reglas se pueden heredar atributos de la jerarquı́a de clases/objetos
y se pueden disparar los métodos para obtener valores y demons.
7.3
Implementación
Una regla puede ser representada por un frame:
(frame reglaN
116
(if (valor: ...))
(then (valor: ...))
(notas (valor: ...)))
Una regla puede apoyarse en la estructura de los frames:
(Regla N
(IF (frame1 propiedad1,i valor1,i )
(frame2 propiedad2,j valor2,j )
...)
(THEN (framen propiedadn,k valorn,k )
(framem propiedadm,l valorm,l )
...))
La regla toma valores de frames en sus condiciones y modifica/genera
frames en sus acciones. También se puede combinar con mecanismos de
herencia para obtener valores de frames a partir de herencia de sus antecesores.
Por ejemplo:
(regla 37
(If (clase ?X camion)
(valor peso ?X ?P)
(> ?P 10000)
(min-cardinalidad llantas ?X 10))
(THEN (clase ?X camion-grande)))
Al disparar la regla a’nadimos a una instancia de cami’on la clase de
cami’on-grande y por lo tanto hereda todos los valores del frame cami’ongrande.
También se pueden organizar módulos de reglas al asociar éstos con los
frames. Por ejemplo, un frame cami’on asociado a un m’etodo que invoque
reglas de diagn’ostico (heredables a sus especializaciones).
117
Puede servir para guiar las reglas por especifidad.
Algunos sistemas comerciales:
• KEE: frames, reglas, Lisp
• ART: OPS5, TMS
• Knowledge Craft: OPS5, Prolog, CRL
118
Capı́tulo 8
Arquitecturas de Control
8.1
Arquitectura de Pizarrón
Surgió a principios de los 70’s para resolver problemas en donde existı́an
varios tipos de “expertos” independientes.
Metáfora: una variedad de expertos cooperando a través de un pizarrón, cada
experto contribuye cuando ve que el estado del pizarrón es tal, que puede
hacer algo.
Componentes:
• Pizarrón: una estructura de datos multi-dimensional
– Juega el papel de memoria común de comunicación de las KS’s
– Almacena datos iniciales, soluciones parciales y finales, objetivos
y toda la información relevante al problema
– La información puede estar almacenada de diferentes maneras:
jerarquı́as, niveles de abstracción, número de hipótesis, etc
– Puede tener información de control
• Fuentes de Conocimiento (KS’s): se pueden ver como sistemas expertos
sin explicación
119
– Juegan el papel de operadores que transforman progresivamente
los estados de solución del problema
– Tienen una parte de activación basada en eventos (trigger), una de
evaluación basada en las caracterı́sticas del estado (pre-condición)
y una de acciones
– Las partes de precondición dicen bajo que condiciones se debe de
considerar la KS (normalmente con nuevas entradas al pizarrón).
– La evaluación da estimaciones (normalmente subjetivas) de la cantidad de recursos que necesita, el tiempo que va a consumir y el
beneficio esperado (e.g., cuantas hipótesis va a generar y que tan
confiables son)
Las fuentes de conocimiento pueden ser:
– genéricas o especı́ficas
– únicas o redundantes
– locales o distribuı́das
– homogéneas o hı́bridas
Ası́ mismo, se pueden realizar acciones:
– algorı́tmicas
– heurı́sticas
• Mecanismo de Control (scheduler): es el que lleva el razonamiento. El
algoritmo de ejecución “tı́pico” es:
– ve las nuevas entradas que se hicieron al pizarrón (observa los
cambios)
– ve cuales KS’s pueden hacer algo
– construye una agenda de registros de activación (Knowledge Source
Activation Records KSAR’s) con instancias de las precondiciones
de los KS’s
– ordena la agenda con un algoritmo
– evoca al KS ganador
– continua
120
El mecanismo de control funciona en base a un foco de atención el cual
puede estar sobre:
– fuentes de conocimiento
– objetos del pizarrón
– combinación
En algunos sistemas de pizarrón, existen KS’s cuyo trabajo es controlar
la activación de otros KS’s
La arquitectura de pizarrón se puede ver como una generalización de un
sistema para pasar mensajes (y por lo tanto es menos eficiente). Al pizarrón
le entran mensajes que pueden ser vistos por todos, pero leı́dos por unos
cuantos. Es como si se tuvieran mensajes anónimos (pueden existir muchos
receptores o ningúno).
La solución se hace en forma cooperativa.
El proceso termina cuando no hay KS que puedan activarse o cuando se llego
a la solución.
8.1.1
Hearsay-II
El primer sistema de pizarrón, construı́do para entender voz.
Resultado de un concurso de ARPA (71): crear un sistema para 1976 que:
• aceptara voz continua
• a través de un buen micrófono
• en una sala silenciosa
• 1,000 palabras
• tiempo real
121
Hearsay-II tenı́a:
Niveles
Interface
BD
Fuentes de Conocimiento
Frase
parse
Secuencia
palabras
Palabra
Sı́labas
Segmentos
semant
predict
word-seq
mow
verify
concat
stop
word-seq-ctl
word-ctl
rpol
pom
seg
Parámetros
Por ejemplo: word-seq ve hipótesis a nivel de palabras y crea o modifica
hipótesis a nivel de secuencias de palabras.
Las dimensiones del pizarrón son: Niveles, Tiempo (desde que empieza la
frase), y Número de hipótesis.
8.1.2
OPM
Sistema de planeación.
Diferencia: el mecanismo de control está determinado por un conjunto de
fuentes de conocimiento que razonan acerca de control.
Dimensiones del pizarrón: nivel (salida, diseño, procedimiento, operación) y
tiempo.
La parte de control (que se puede ver como otro pizarrón) tenia los siguientes
niveles:
122
• problema: descripciones generales del problema
• estrategia: decisiones generales, e.g., top-down, bottom-up
• foco: restricciones para guiar la atención (e.g., ve a diseño)
• polı́tica: decisiones de criterios (e.g., considera primero los más confiables)
• agenda: entradas a la agenda
• KSAR: una entrada indicando la fuente de conocimiento a utilizar
8.2
Arquitectura de Capas
Idea: extender la idea de las agendas a diferentes niveles con un solucionador
a cada nivel.
La idea fundamental es organizar los operadores y le información en capas
(layers).
La capa inferior tiene operadores que actúan directamente sobre el estado de
solucı́on del problema.
Las capas superiores tienen meta-operadores que actúan sobre los operadores
de la capa inmediata inferior.
El control se implementa capa por capa, siendo la responsabilidad de una
capa controlar la ejecución de los operadores (o meta-operadores) de la capa
inmediata inferior.
La comunicación entre capas se realiza por medio de mensajes.
8.2.1
MOLGEN
MOLGEN (Stefik, ’81): sistema que planea la realización de experimentos
en genética molecular.
123
MOLGEN utiliza restricciones para reducir la búsqueda e incorpora algoritmos para formular, propagar y satisfacer restricciones.
Las restricciones sirven para:
1. limı́tar posibles valores
2. forzar ciertos valores
3. comunicación entre subproblemas
MOLGEN tiene 3 capas (cada una con operadores y objetos).
Cada capa controla la creación y ordenamiento de los pasos de la capa inferior.
1. Espacio de laboratorio (o del dominio): tiene conocimiento de objetos
y operaciones de un laboratorio genético (i.e., lo que se puede hacer
pero no cuando hacerlo) (es lo más especı́fico)
2. Espacio de dise no: conocimiento acerca del dise no de planes (modela
las acciones de un dise nador de experimentos) (genera planes)
3. Espacio de estrategia: sigue heurı́sitcas y least-commitment (genera
meta-planes)
8.3
Sistemas Distribuı́dos
Jerarquı́a Simple:
Jerarquı́a Múltiple:
Equipo:
124
Mercado Libre:
8.4
Inteligencia Artificial Dsitribuida (DAI)
Inteligencia Artificial Distribuı́da: se puede ver como continuación en la lı́nea
de los sistemas de pizarrón.
Estudia como un grupo de agentes inteligentes (no necesariamente computacionales) debe de coordinar sus actividades para lograr sus metas (i.e., resolver problemas difı́ciles mediante la distribución de partes del problema
entre agentes inteligentes).
8.4.1
Agentes
Un agente es cualquier cosa que se pueda ver como persiviendo su ambiente
a través de sensores y actuando en el ambiento por medio de efectores.
Un agente racional es un agente que hace “buenas” acciones. Para ésto,
necesitamos saber cómo y cuándo evaluar al agente.
Usamos una medida de desempeño para el cómo.
Hay que tomar en cuenta lo que puede percibir y las acciones que puede
tomar.
Un agente racional depende en todo momento de:
• una medida de desempeño que define su grado de éxito
• todo lo que el agente ha percibido o secuencia de percepción (percept
sequence)
• lo que sabe del ambiente
• las acciones que puede tomar
125
Para cada posible secuencia de percepción, un agente racional ideal debe
de tomar la acción con la que espera maximizar su medida de desempeño,
en base a la evidencia dada por su secuencia de percepción y cualquier
conocimiento incorporado que tenga.
Las acciones se pueden usar para obtener información util.
Idealmente, hay que hacer un mapeo entre las posibles acciones y los posibles
secuencias de percepción (en la práctica pueden ser infinitos).
A veces se pueden dar especificaciones (más que enumerarlas) de lo que hay
que hacer.
Un sistema es autónomo en la medida en que su comportamiento está determinado por sus propias experiencias.
Inicialmente se le tiene que proveer de cierto conocimiento para no actuar de
manera aleatoria.
8.4.1.1
Estructura de un Agente
Agente = Arquitectura + P rograma
Podemos describir agentes en términos de sus percepciones, acciones, metas
y ambiente.
126
Tipo
Sistema
diagnóst.
médico
Percepción
Sı́ntomas,
respuestas
pacientes
Acciones
Preguntas,
pruebas,
tratamientos
Metas
Paciente sano,
costo mı́nimo
Ambiente
Paciente,
hospital
Análisis
imágenes
satélite
Pixels de
diferente
color
intensidad
Imprimir una Categorización
categorización correcta
de la imágen
Imágenes
satélites
Robot que
toma
partes
Pixels de
diferente
intensidad
Levantar
partes
y ordenarlas
Poner partes
en lugar
adecuado
Banda
transport.
con partes
Control
refineria
Temp.,
presión
Abrir/cerrar
válvulas,
ajustar temp.
Minimizar
contamin.,
max. segur.
Refineria
Tutor
interactivo
de Inglés
Palabras
Ejercicios,
sugerencias,
correcciones
max. calif.
estudiantes
Estuds.
Taxista
Camaras,
veloc., GPS,
micrófono,
sonar
Bolante,
acelerador,
frenos, hablar
con pasajero
Seguro, rápido, Camino,
maximizar
coches,
ganancias
gente,
señales
No importa tanto si es ambiente “real” o “artificial” (e.g., softbots) sino la
interacción entre percepción, comportamiento, ambiente y metas.
El usar una tabla acciones – secuencia de percepciones en general no es
adecuada por:
• requiere tablas muy grandes
• mucho tiempo para construir la tabla
• no hay autonomı́a, por lo que si cambia el ambiente el agente deja de
saber que hacer
127
• aunque se le de aprendizaje, necesitaria mucho tiempo para aprender
todas las entradas de la tabla
Para construir un mapeo entre percepciones y acciones podemos pensar en
varios tipos de agentes.
Agentes de reflejos simples: construir una tabla es imposible, pero podemos
considerar algunas asociaciones comunes en términos de reglas situación–
acción. e.g.,
IF
el coche de enfrente esta frenando
THEN empieza a frenar
Agentes de reflejos simples y estado interno. Esto es muy simple, y normalmente se necesita un estado interno para (i) ver como cambia el ambiente
independientemente del agente y (ii) como afectan las acciones del agente al
ambiente.
Agentes con información de metas. El agente necesita información de sus
metas para escoger que acciones las pueden cumplir (pueden usarse técnicas
de búsqueda y planificación).
Esto lo puede hacer más flexible (e.g., si está lloviendo ajustar la efectividad
de los frenos).
Agentes con medida de utilidad. Las metas por si solas no son suficientes
para generar un comportamiento de buena calidad. Para esto necesitamos
una medida de utilidad (función que mapea un estado o secuencia de estados
con un número real).
Agentes con aprendizaje. La idea es que las percepciones no se usen solo para
actuar, sino también para mejorar su desempeño en el futuro.
8.4.2
Ambientes
• accesibles (los sensores detectan todos los aspectos relevantes y no se
necesitan estados internos) o inaccesibles
128
• determinı́sticos (el siguiente estado está determinado por el actual y
las acciones del agente) o indeterminı́sticos. En ambientes complejos
se considera un ambiente determinı́stico o no desde el punto de vista
del agente
• episódicos (la calidad de la acción depende solo del episodio) o no espisódicos
• estáticos o dinámicos (si el ambiente puede cambiar mientras el agente
piensa) o semidinámicos (el desempeño del agente cambia)
• discretos (número limitado y distinguible de percepciones y acciones)
o continuos
Los agentes son capaces de intercambiar y compartir información / conocimiento
(metas y soluciones parciales), representar la información desde puntos de
vista diferentes, y cooperar para llegar incrementalmente a una solución.
Cuando tienen metas comúnes o que se traslapan, deben de actuar en forma
cooperativa.
Si tienen metas con conflictos, deben de competir inteligentemente.
Su protocolo de comunicación a veces involucra “actos de habla” (speech acts)
que reflejan creencias, intenciones, etc., de los agentes.
DAI es apropiado cuando se tiene distribuı́da: la experiencia y el diseño,
la información (e.g., oficina), los datos (e.g., sensores), las decisiones (e.g.,
control de manufactura), las bases de conocimiento se desarrollan independientemente y pueden interconectarse y reutilizarse.
Caracteristicas de arquitecturas distribuı́das:
• concurrencia
• procesamiento ası́ncrono
• indeterminismo
• influencia restringida de cada agente (i.e., modularidad y encapsulamiento de agentes)
129
• control decentralizado
• negociación entre agentes
• habilidad de manejar información inconsistente
• evolución continua
Elementos que se distribuyen:
• acciones
• foco de atención
• autoridad/responsabilidad
• credibilidad
• confiabilidad
• interpretación
• conocimiento
• percepción
• recursos
• evaluación
• trabajo
Ejemplo: Se tiene una ficha roja (R) y 4 azules (A1, A2, A3, A4) en un
tablero de N×N. El propósito del juego es capturar a la ficha roja.
Reglas:
• En cada paso, cada ficha puede quedarse donde está o moverse hacia
arriba, abajo, izquierda o derecha
• Los azules ganan si ocupan los 4 cuadros alrededor del rojo
130
• Los azules pierden si el rojo llega a un borde
En general, cada agente tiene una representación interna (que puede ser
parcial o incorrecta) del problema que puede diferir de la de los otros agentes,
e.g.,
1. Cada Ai puede tratar de ocupar un punto que rodea a R. Por si solo
cada agente no resuelve el problema original, pero en conjunto si lo
solucionan
2. Un agente es el que controla y el resto son sus esclavos. En este caso,
solo el que controla debe de conocer el problema, el resto solo sigue
ordenes y pueden no tener representado nada
8.4.3
Esquemas de Control
1) Control central Un agente (A1) controla todo y ordena a los demas
(A2, A3 y A4) que hacer.
Algoritmo:
1. A1 ve la posición de R y de los Aks
2. A1 calcúla cuadrantes y asigna uno por agente (dependiendo de
su posición)
3. A1 dice como moverse para entrar a los cuadrantes
4. Los esclavos se mueven
Para determinar los movimientos:
• IF R no se mueve, moverse más cerca a R
• IF R se mueve (a un cuadrante) entonces:
–
–
–
–
si se mueve junto a Ak, Ak no se mueve
un Ak se debe de mover para permanecer en su cuadrante
el agente en el cuadrante opuesto debe de seguir a R
los otros, se deben de mover perpendicularmente a R y dentro
de su cuadrante
131
Requerimientos:
• A1 debe de saber la posición de R y de los Aks todo el tiempo
• A1 debe de poder calcular cuadrantes
• A1 sabe que comandos obedecen los Aks y sabe como comunicarlos
• A1 puede calcular movimientos adecuados
• Los esclavos deben de percibir comandos (no necesitan reportar
nada, porque A1 sabe todo el tiempo su posición)
2) Control central + agentes con percepción Ahora los agentes pueden
percibir su posición y se la reportan a A1 el cual debe de poder combinarla para decidir como actuar.
3) Control central + agentes buscan a R Todos los agentes tienen la
capacidad de detectar la posición de R dentro de un rango limitado.
Variación al algoritmo:
1. cada Ak informa su posición
2. A1 asigna una región a cada Ak
3. A1 comanda que cada Ak “patrulle” su región
4. Cada Ak busca a R y si lo detecta le informa a A1
Requerimientos:
• A1 sabe el rango de visibilidad de cada Ak y puede calcular su
región de patrullaje
• Los esclavos pueden transmitir la posición de R al controlador
4) Control central con comandos abstractos Los agentes pueden ejecutar comandos más complejos por si solos e.g, patrullar, ir a su región
designada, acercarse al rojo, por lo que tienen cierta planeación limitada
A1 no necesita saber las acciones de los Aks
A1 debe de calcular los comandos de alto nivel para los esclavos y los
de bajo nivel solo para él.
El esclavo puede ahora transmitir su posición solo cuando se le pide o
cuando se mueve a una nueva región.
132
5) Control distribuı́do Todos los agentes pueden participar en las decisiones globales. Una simplificación es que cada agente comunica toda
su información a los otros agentes y todos usen el mismo método global
para decidir que tareas hacer.
Algoritmo:
• todos los agentes dan su posición a los otros
• cada agente calcula la asignación global de agentes a regiones para
patrullar y sigue su propia tarea
• el que detecta a R lo anuncia
• cada agente calcula los cuadrantes y se va al que le corresponde
Requerimientos:
• cada agente anuncia a los otros
• cada agente calcula una asignación global (siempre viendo lo óptimo
desde una perspectiva global)
6) Control distribuı́do + agentes individuales Los agentes calculan sus
costos locales (información local) pero tratan de optimizar sobre estimaciones globales.
Se asume que los agentes son “honestos”.
Algoritmo:
• cada agente estima su propio costo de ocupar diferentes regiones
en el tablero
• cada agente anuncia su estimación a los otros agentes
• cada agente hace una estimación global
• ...
Requerimientos: cada agente estima su costo y puede determinar una
asignación global dado un conjunto de estimaciones
Se necesita tener una representación (preferiblemente explı́cita) de lo que
saben los agentes y de sus capacidades.
Que se requiere especificar:
133
• los estados del ambiente y de los agentes
• las transiciones de estados legales del ambiente
• restricciones en el estado del ambiente
• las habilidades de los agentes (razonamiento, percepción, comunicación,
acciónes permisibles)
• los recursos disponibles de los agentes y como tratan de optimizar su
uso
• la organización de los agentes
Esto se puede simplificar, especificando los protocolos de comunicación de
los agentes en las diversas organizaciones y sus habilidades y disposición en
la organización.
Sistemas “Reactivos”:
• el ambiente cambia rápidamente y de manera impredecible
• los agentes tienen razonamiento limitado
• los agentes pueden percibir una pequeña parte del ambiente
• los agentes pueden actuar concurrentemente entre ellos y con los eventos del ambiente
Agentes que dan servicios a otros son vistos como recursos.
Si un agente no interactua con otro es mejor ignorarlo o tratarlo como parte
del medio ambiente.
La información de cada agente puede ser:
• el estado del medio ambiente de acuerdo al agente
• el problema que el agente quiere resolver
• un plan abstracto de su ejecución
134
• una agenda de tareas por hacer
• las tareas actuales (algunas derivadas de cambios en el medio ambiente)
• los recursos disponibles (protocolo de acceso, métrica de costo, modelo
de uso del recurso, el estado del recurso)
• asignación de recursos a las tareas actuales
• las acciones que se están realizando
Tendencia de muchos: combinación de métodos centralizados y distribuı́dos.
Actualmente también existe mucha investigación en la interacción Humanos
– Agentes Computacionales.
135
Capı́tulo 9
Modelos Cualitativos y QSIM
9.1
Introducción
Conocimiento superficial vs. profundo.
Normalmente los SE tienen conocimiento superficial en forma de reglas de
producción.
El conocimiento superficial representa conocimiento que puede utilizarse en
situaciones especı́ficas, en donde las conclusiones se derivan directamente de
las observaciones, e.g.,
IF el tanque esta vacio
Then el coche no arranca
Un sistema fı́sico puede describirse en términos de sus componentes y conecciones.
La motivación es capturar conocimiento de sentido común de los expertos.
El conocimiento profundo se refiere a las estructuras internas y causales de
un sistema y considera las interacciones entre sus componentes.
e.g.,
136
Una forma de representar conocimiento profundo es por medio de modelos
cualitativos.
Normalmente se hace una simulación cualitativa.
Surgió al tratar de resolver problemas de ingenierı́a y dandose cuenta que
simuladores más grandes o mejores resolvedores de ecuaciones no resolverian
totalmente el problema.
Sistema
Fı́sico
Comportamiento
Real
Ecuaciónes
Diferenciales
solución numérica
o analı́tica
Restricciones
Cualitativas
simulación
cualitativa
fi : R → R
Descripción del
Comportamiento
Un modelo cualitativo consiste en un conjunto de variables de estado (o
parámetros) del sistema y un conjunto de restricciones que relacionan las
variables.
e.g.,
Restricciones
CantA + CantB = Total
PresA = M+ (CantA)
PresB = M+ (CantB)
PresA - PresB = ∆PAB
flujoA−>B = M+ (∆PAB)
Valores Corresp.
(0 0) (∞∞)
(0 0) (∞∞)
(−∞ − ∞)
(0 0)(∞∞)
Variables
CantA (0 AMax ∞)
CantB (o BMax ∞)
PresA (0 ∞)
PresB (0 ∞)
∆PAB (-∞ 0 ∞)
flujoA−>B (-∞ 0 ∞)
Total (0 ∞)
d CantB/dt = flujoA−>B
d CantA/dt = - flujoA−>B
Dada una descripción inicial queremos predecir el comportamiento.
137
Variables Cualitativas: Operan sobre funciones razonables Si [a, b] ⊆ R∗ ,
la función f : [a, b] → R∗ es una función razonable sobre [a, b] si:
1. f es continua es [a, b]
2. f es continuamente diferenciable en (a, b)
3. f tiene un número finito de puntos de inflección (crı́ticos) en cualquier
intervalo cerrado
4. existen los lı́mites limt→a f ′ (t) = f ′ (a) y limt→b f ′ (t) = f ′ (b)
Espacios Cualitativos: El espacio cualitativo está definido por un conjunto
de sı́mbolos totalmente ordenado (valores landmark (caracterı́sticos))
l1 < l2 < . . . < lk
.
Cada landmark es un nombre simbólico de un valor particular cuyo valor
actual no se conoce. Por default: (−∞, 0, ∞).
Se debe de incluir un valor landmark por cada punto de inflección (i.e.,
f ′ (t) = 0), por lo que durante la simulación a veces es posible crear nuevos
landmarks.
Las restricciones representan versiones cualitativas de operaciones matemáticas
comúnes, tales como suma, multiplicación y diferenciación, y permiten mapear directamente una gran cantidad de ecuaciones diferenciales.
Dado un conjunto incompleto de estados de variables y un conjunto de restricciones, QSIM determina todos los posibles estados que son consistentes
con las restricciones.
El estado cualitativo de un variable es una lista con su valor cualitativo (en
o entre valores caracterı́sticos) y la derivada cualitativa: aumentando (inc),
decreciendo (dec) o constante (std).
Defn: Sean l1 < . . . < lk los valores caracterı́sticos de f : [a, b] → R∗ , para
cualquier t ∈ [a, b]. Un estado cualitativo de f en t, QS(f, t), en un par
<qval,qdir> definido como:
138
qval =
(
lj
(lj , lj+1)
if f (t) = lj ; un landmark
if f (t) ∈ (lj , lj+1 )
if f ′ (t) > 0
if f ′ (t) = 0
if f ′ (t) < 0



inc
qdir = std


dec
A pesar de que está definido continuamente, la descripción se hace en puntos discretos. Entre puntos distinguibles ti y ti+1 podemos definir un valor
cualitativo QS(f, ti , ti+1 ) para todo el tiempo entre ti y ti+1 .
Si un sistema, es un conjunto F = {f1 , . . . , fm } de funciones fi : [a, b] →
R∗ , el comportamiento cualitativo de un sistema se describe como una secuencia de estados de la forma: QS(F, t0 ), QS(F, t0 , t1 ), QS(F, t1 ), . . .,
QS(F, tn−1 , tn ), QS(F, tn ).
Restricciones Cualitativas: El estado cualitativo se expresa en términos
de los valores de las variables. Las relaciones entre las variables está dado por
las restricciones cualitativas: suma, mult, menos, deriv, M + , M − y constante.
Dada cualquier ODE (ecuaciones diferenciales ordinarias), estan las podemos
traducir a su equivalente QDE (ecuaciones diferenciales cualitativas), pero
una QDE puede mapear a un número infinito de ODE, e.g.,
d2 u/dt − du/dt + arctanku = 0
f1 = du/dt
f2 = df1 /dt
f3 = ku
f4 = arctanf3
f2 − f1 + f4 = 0
deriv(u, f1)
deriv(f1 , f2 )
mult(k, u, f3 )
M + (f3 , f4 )
suma(f2 , f4 , f1 )
Los valores correspondientes son tuplas de valores landmark que pueden
tomar las variables en un tiempo determinado (e.g.,M + (x, y), [(0, 0)]).
139
[V ] = el signo de V



[+]
[V ]0 = signo(V ) [0]


[–]
if V > 0
if V = 0
if V < 0
[V ]V0 = signo(V − V0 )
SUMA: suma(x, y, z)[(x1 , y1, z1 ), ...] (corresponding values)
1. [Ẋ] + [Ẏ ] = [Ż]
suma
[+]
[0]
[−]
[+]
[+]
[+]
[+]/[0]/[-]
[0]
[+]
[0]
[-]
[-]
[+]/[0]/[-]
[-]
[-]
2. [X]xi + [Y]yi = [Z]zi
MULT: mult(x, y, z)[(x1 , y1 , z1 ), ...]
1. [X]0 [Y ]0 = [Z]0
mult
[+]
[0]
[−]
[+]
[+]
[0]
[-]
[0]
[0]
[0]
[0]
[-]
[-]
[0]
[+]
2. [Y ]0 [Ẋ] + [X]0 [Ẏ ] = [Ż]
MENOS:
1. [X] = −[Y ]
2. [X]xi = −[Y ]yi
3. Valores correspondientes: (0 0), (-∞, ∞), (∞, -∞)
140
DERIV
1. [Ẋ] = [Y ]0
CONSTANT
1. [Ẋ] = 0
2. [X]a = 0
También pueden existir para operaciones de muchas variables.
Se pueden combinar los landmark con valores cuantitativos para tener más
información.
Propagación de restricciones (eficiente, local, no simpre exitosa).
Propagar descripciones cualitativas entre variables a traves de restricciones,
e.g., si M + (x, y) y [x]∗ = [+] => [y]∗ = [+], si suma(x, y, z) y [x]0 = [+] y
[z]0 = [−] => [y]0 = [−].
e.g., en el caso de tubo-U, dada la descripción inicial de Tanque A lleno y
Tanque B vacı́o (CantA = AMax y CantB = 0), podemos propagar para
conocer los otros valores de las otras variables.
Satisfacción de restricciones (encuentra todas las soluciones, pero es computacionalmente caro), e.g., un resorte oscilando.
141
9.2
Simulación
9.2.1
Tabla de transiciones de estados
Trans-P
P1
P2
P3
P4
P5
P6
P7
QS(f, ti )
< lj , std >
< lj , std >
< lj , std >
< lj , inc >
< (lj , lj+1 ), inc >
< lj , dec >
< (lj , lj+1 ), dec >
⇒ QS(f, ti , ti+1 )
< lj , std >
< (lj , lj+1), inc >
< (lj−1 , lj ), dec >
< (lj , lj+1), inc >
< (lj , lj+1), inc >
< (lj−1 , lj ), dec >
< (lj , lj+1), dec >
Trans-I
I1
I2
I3
I4
I5
I6
I7
I8
I9
QS(f, ti , ti+1 )
< lj , std >
< (lj , lj+1), inc >
< (lj , lj+1), inc >
< (lj , lj+1), inc >
< (lj , lj+1), dec >
< (lj , lj+1), dec >
< (lj , lj+1), dec >
< (lj , lj+1), inc >
< (lj , lj+1), dec >
⇒ QS(f, ti+1 )
< lj , std >
< lj+1, std >
< lj+1, inc >
< (lj , lj+1 ), inc >
< lj , std >
< lj , dec >
< (lj , lj+1 ), dec >
< l∗ , std >
< l∗ , std >
Entrada:
1. Un conjunto de {f1 , . . . , fm } de sı́mbolos representando funciones en el
sistema
2. Un conjunto de restricciones aplicadas a los sı́mbolos funcionales: ADD(f, g, h),
MULT (f, g, h), MINUS(f, g), DERIV (f, g), M + (f, g), M − (f, g). Cada
una puede tener relacionada valores correspondientes
3. Cada función está asociada con un conjunto ordenado de sı́mbolos,
representando valores caracterı́sticos (cada función tiene por los menos
el conjunto: {−∞, 0, +∞})
142
4. Cada función puede tener asociada lı́mites superiores e inferiores (valores caracterı́sticos donde las restricciones ya no aplican)
5. Un punto temporal inicial, t0 , y los valores cualitativos para cada de
las fi en t0
Salida: una o más descripciones cualitativas para las funciones dadas. Cada
descripción tiene:
1. Una secuencia {t0 , . . . , tn } de sı́mbolos, representando los puntos temporales
2. Cada función fi tiene un conjunto totalmente ordenado de valores caracterı́sitcos, posiblemente mayor que el original
3. Cada función tiene una descripción cualitativa en cada punto temporal
o intervalo entre puntos temporales
9.2.2
Algoritmo
Coloca en ACTIVOS el estado inicial.
REPEAT Until ACTIVOS = vacı́o o Tiempo ≥ tiempo lı́mite.
Paso 1: Selecciona un estado cualitativo de ACTIVOS
Paso 2: Para cada función determina sus posibles transiciones (usando la tabla)
Paso 3: Para cada restricción, genera un conjunto de tuples y filtra de acuerdo
a consistencia
Paso 4: Realiza filtrado de consistencia entre conjuntos de tuples (transiciones
adyacentes deben de concordar con las transiciones de los parametros
comunes)
Paso 5: Genera todas las intepretaciones globales
Paso 6: Aplica filtros globales y añade los estados restantes a ACTIVOS
143
Filtros:
1. No cambio
2. Valores infinitos
3. Reconocer estado estable (quiescent)
4. Nuevos landmarks
5. Nuevos valores correspondientes en puntos temporales
6. Aparear estados e identificar ciclos
7. Propagar inconsistencias hacia atrás
8. Regiones de transición
Ejemplo: Tiro vertical
Restricciones: deriv(Y, V ), deriv(V, A), A(t) = g
Estado Inicial:
QS(A, t0 , t1 ) =< g, std >
QS(V, t0 , t1 ) =< (0, ∞), dec >
QS(Y, t0 , t1 ) =< (0, ∞), inc >
A
V
Y
I1:
I5:
I6:
I7:
I9:
I4:
I8:
< g, std >
< (0, ∞), dec >
< (0, ∞), dec >
< (0, ∞), dec >
< (0, ∞), dec >
< (0, ∞), inc >
< (0, ∞), inc >
=>< g, std >
=>< 0, std >
=>< 0, dec >
=>< (0, ∞), dec >
=>< L∗ , std >
=>< (0, ∞), inc >
=>< L∗ , std >
144
deriv(Y,V)
(I4,I5) c
(I4,I6) c
(I4,I7)
(I4,I9) w
(I8,I5) w
(I8,I6)
(I8,I7) c
(I8,I9) c
Y
I4
I8
deriv(V,A)
(I5,I1) c
(I6,I1)
(I7,I1)
(I9,I1) c
V A
I7 I1
I6 I1
QS(A, t1 ) =< g, std >
QS(V, t1 ) =< 0, dec >
QS(Y, t1 ) =< Ymax , std >
Se puede demostrar que QSIM garantiza incluir todos los comportamientos
que exhiben las ecuaciones diferenciales originales (sound), pero no garantiza
incluir solo esas (no complete) y normalmente genera comportamientos que
no representan realidades fı́sicas.
Uno de los problemas es ambigüedad en la derivada de expresiones complejas.
Por ejemplo: z = xy, x = inc, y = dec, entonces z = inc, dec o std.
Las derivadas solo están restringidas por consideraciones de continuidad y
no por valores caracterı́sticos.
Posibles soluciones (Kuipers y Chiu ’87)
• Ignorar la dirección de cambio de una variable (Kuipers y Chiu ’87)
• Restricciones de “curvatura” cuando la derivada de una variable es cero
para validar o refutar las curvaturas propuestas por QSIM (Kuipers y
Chiu ’87)
• Restricciones en las trayectorias de las variables en el plano de la fase
(NIC: Non-Intersection of phase-space Constraint) (Lee y Kuipers ’88,
Struss ’88)
145
• Incorporación de conocimiento cuantitativo
• Abstracciones de comportamientos en uno solo
• Derivadas de alto orden
146
Capı́tulo 10
Representaciones Relacionales
10.1
Temporales
La manipulación de datos acerca del tiempo involucra la selección de datos
y capacidades de inferencia sobre esos datos.
El razonamiento temporal es relevante para:
• Bases de Datos y de Conocimiento
• Inteligencia Artificial
• Ingenieria de Software
Los problemas tı́picos que involucran tiempo son:
• Razonamiento sobre eventos del pasado para analizar el presente
• Planeación de acciones futuras y predicción de consecuencias
• Trabajar dentro de las restricciones de tiempos de respuestas
• Manejo de datos imprecisos e incompletos
147
El razonamiento temporal incluye:
• Manejo de dependencias entre diferentes datos sobre el tiempo
• Razonamiento acerca del perı́odo de validez de valores de los datos
• Manejo de datos acerca del tiempo incompletos
Dentro de Inteligencia Artificial se ha trabajado con razonamiento temporal
en:
• Interpretación de datos y sus relaciones temporales, por ejemplo en
Procesamiento de Lenguaje Natural
• Planificación de tareas bajo restricciones de tiempo
Puntos importantes:
• Selección de las entidades primitivas de tiempo: tiempos puntuales vs
intervalos de tiempos
• Ordenamiento del tiempo: orden total (“flujo” lineal) vs orden parcial
(ramificación en diferentes posibles evoluciones) vs circularidad (eventos/procesos recurrentes)
• Estructura del tiempo: números racionales, reales, enteros
• Intervalos abiertos/cerrados en tiempos puntuales
• Métrica de tiempo: operaciones sobre el tiempo, distancias temporales,
diferente granularidad o niveles de abstracción
El razonamiento temporal requiere considerar:
• La especificación de mecanismos para derivar información adicional.
Una caracterı́stica de sistemas que involucran tiempo es que los datos
acerca del tiempo son incompletos. La información temporal puede ser
en declaraciones sobre tiempos absolutos y/o relativos
148
• El desarrollo del lenguaje temporal
• El diseño de mecanismos de consistencia y persistencia
En IA es común ignorar el tiempo.
El frame problem surge al tratar de razonar rigurosa y efectivamente acerca
del futuro.
El problema general es como razonar eficientemente acerca de lo que es
verdadero sobre perı́odos extendidos de tiempo.
Balance entre: evitar riesgos y economizar el proceso de predicción.
El problema es si tenemos: IF algo es verdadero en un cierto tiempo THEN
ésto es verdadero en éste tiempo.
El qualification problem es el problema de hacer predicciones válidas acerca
del futuro sin tener que considerar todo el pasado.
Inicialmente se uso cálculo de situaciones (situational calculus). En ésta
lógica, un evento se representa como una función que toma una situación
(“foto” del mundo) y regresa la situación resultante de aplicar el evento.
Esto dió lugar a la representación basada en estados: Dada una descripción
de un estado inicial y de uno final, encontrar la secuencia de acciones para
llegar a la meta.
Esto es adecuado cuando todos los cambios del mundo resultan de las acciones
del agente (suposición STRIPS ).
Bajo esta suposición no es necesario considerar tiempo, el futuro está completamente determinado por el estado inicial y la secuencia de acciones.
Esto es inadecuado para:
• eventos externos (aunque ver DEVISER)
• introducir condiciones temporales al realizar una acción
• acciones concurrentes
149
Otros problemas...
El coche camina si tiene gasolina
vs.
El esposo es un ca...nijo si le pega a su esposa
En resúmen: lógica monotónica de primer orden es inadecuada.
10.1.1
D. McDermott ’82
Ideas:
1. varias cosas pueden ocurrir en un instante dado (varios futuros posibles)
2. existen pocas cosas discontinuas (continuidad de instancias entre dos
instancias)
Su modelo tiene una colección infinita de estados (instantes) en el universo,
ordenados por la relación ≤.
McDermott define 44 axiomas lógicos para tratar el tiempo.
Usa una lógica de tipos (sorted) i.e.,
(forall (x) P) en realidad es: (forall (x) (is sort x) P)
Axioma 1:
(iff (and (≤ ?s1 ?s2) (≤ ?s2 ?s1)) (= ?s1 ?s2))
(iff (< ?s1 ?s2) (and (≤ ?s1 ?s2) (not (= ?s1 ?s2))))
Ax. 2: Densidad
150
(forall (S1 S2 ) (if (< S1 S2 )(exists (S3 ))(< S1 S3 S2 )
Ax. 3: Transitividad
(forall (S1 S2 S3 ) (if (and (=< S1 S2 ) (=< S2 S3 ))
(=< S1 S3 )))
Cada estado tiene un tiempo (ℜ) de ocurrencia llamado: “date”.
(if (< s1 s2)(< (d s1)(d s2)))
Los estados están puestos en crónicas. Una crónica es una posible historia
del universo (un conjunto totalmente ordenado de estados).
Axioma 5:
(iff (is CRONICA ?x)
(and (forall (y) % todos son estados
(if (elt y ?x)(is STATE y)))
(forall (s1 s2) % estan ordenados
(iff (and (elt s1 ?x)(elt s2 ?x))
(or (< s1 s2)(> s1 s2)(= s1 s2))))
(forall (t) % para todo tiempo
(exists (s)
(and (elt s ?x)(= (d s) t)))) ))
Nota: (elty?x): hecho ?x verdadero en estado y.
Una crónica es convexa: i.e., para todo par de estados dentro de la crónica,
un estado intermedio también está dentro de la crónica.
Todos los estados están en algúna crónica. Las crónicas se bifurcan en el
futuro (indeterminado).
Los hechos cambian su valor de verdad en el tiempo.
Un hecho se ve como un conjunto de estados (aquellos en donde el hecho es
verdadero).
151
(elt s p) = hecho p es verdadero en estado s
Un evento es algo que está pasando
• toma tiempo
• pueden pasar cosas en el inter
• algunos eventos no cambian hechos
Idea: Los eventos se identifican con un conjunto de intervalos (aquellos donde
el evento ocurre una vez), siendo un intervalo un conjunto convexo totalmente
ordenado de estados.
Se puede indicar entre que estados ocurre un evento:
(elt [s1, s2 ] e) =
def (Occ
s1 s2 e)
Un hecho es verdadero en un intervalo de tiempo:
(subset [s1, s2] p) =
def (TT
s1 s2 p)
Para un evento: (subset e1 e2) = e1 es una forma en que e2 puede pasar ó
toda ocurrencia de e1 es ocurrencia de e2.
Existen tres problemas principales que tiene que enfrentar un razonador temporal:
1. razonar acerca de causalidad
2. razonar acerca de cambio continuo
3. planear acciones
Causalidad: si un evento sigue a partir de otro.
Los eventos pueden causar: eventos o hechos.
152
Cuando un evento causa otro evento, normalmente existe una demora (delay).
(ecause p e1 e2 rf i) = e1 es siempre seguido de e2 después de una demora
en el intervalo i, a menos que p sea falso antes de que acabe la demora. La
demora se mide a partir de rf (con referencia a e1).
e.g., (ecause (partido ?x PXY) (elegido ?x) ($-a-investigación) 1 [(1 a no), (2
a no)]).
El segundo tipo de causalidad es cuando un evento causa un hecho (relacionado con el “Frame Problem”) i.e., que es verdadero después de un intervalo arbitrario, dada información incompleta de lo que pasó en el intervalo.
Para esto introduce el concepto de “persistencia”.
Un hecho p “persiste” de estado s con tiempo de vida r, si en todas las
crónicas permanece verdadero hasta que r termina o hasta que “deja” de ser
cierto (se deduce “cesa(p)” ≈ WCA).
Argumenta que lo que causa un evento, no es la verdad de un hecho sino su
persistencia.
(pcause p e q rf i r1) = evento e es siempre seguido de hecho q después de
una demora en el intervalo i, a menos que p sea falso en el inter. La demora
se mide a partir de rf y q es verdadero o persiste por un tiempo r1.
(pcause (siempre) (mata ?x) (muerto ?x) 1 [0,0] para-siempre)
(if (is ESTUFA ?x) (pcause (¬ apagón) (prende ?x) (caliente ?x) 1 [(1 min),
(2 min)] (24 horas)))
La lógica no dice que el hecho deja de ser verdadero después de un perı́odo,
simplemente que ya deja de saber.
Cambio Continuo: Un sistema que razona sobre tiempo debe de razonar
sobre flujo o cambio continuo.
Un afluente es aquello cuyos valores cambian continuamente en el tiempo (se
pueden relacionar con cantidades fı́sicas).
Define también continuidad, razón de cambio, etc.
153
Planeación: razonar acerca de acciones.
El que un agente realice una acción es un evento.
Define: prevenir, permitir, mantener, evitar.
“limitante”: no considera probabilidades.
Se tiene que razonar acerca de las tareas (acciones que deben de hacerse) y
de llevar acabo las acciones.
A veces, cuando no se realiza una tarea es porque se hizo otra acción a la
prevista.
Ideas de implementación: tener diferentes crónicas organizadas jerárquicamente,
con frames para eventos y hechos. Predecir posibles futuros y quedarse con
el “bueno”.
10.1.2
J. Allen ’83, R. Pelavin y J. Allen ’86
Utiliza una lógica temporal basada en intervalos de tiempo con un mecanismo
de propagación de restricciones.
Meta: usar una lógica que permita considerar eventos externos, su interacción
en lo planes y acciones concurrentes.
Un evento es un conjunto de intervalos temporales sobre el cual el cambio
asociado al evento ocurre.
1. existe una noción de lo que está pasando mientras ocurre el evento
2. pueden existir varios eventos ocurriendo en el mismo intervalo (concurrentes)
Existen 13 formas (mutuamente exclusivas) en que dos intervalos pueden
relacionarse.
Las relaciones entre intervalos están guardadas en un red (nodos = intervalos,
arcos = relaciones).
154
Cada vez que una nueva relación es añadida, se hace una propagación de
restricciones para calcular nuevas relaciones.
Relación
X before Y
X equal Y
Sı́mbolo
<
=
Inverso
>
=
X meets Y
X overlaps Y
m
o
mi
oi
X during Y
d
di
X starts Y
s
si
X finishes Y
f
fi
Representación
XXX YYY
XXX
YYY
XXXYYY
XXX
YYY
XXX
YYYYY
XXX
YYYYY
XXX
YYYY
Para N de nodos el número de modificaciones es:
13 ×
(N − 1)(N − 2)
2
El algoritmo no genera inconsistencias, pero no las detecta en la entrada.
Para reducir requerimientos de espacio, introduce intervalos de referencia
(intervalo que agrupa intervalos).
Con esto se puede construir una jerarquı́a y encontrar relaciones entre ella.
Hints: hacer arboles, escoger intervalos de referencia claves que dividan “naturalmente” el dominio.
La mayorı́a de la red permanece intacta.
Permite información disjunta pero solo si se refiere a la relación entre dos
intervalos.
En R. Pelavin y J. Allen ’86 hacen referencias a las 13 relaciones (un poco
diferentes).
155
Diff. con McDermott: se puede expresar lo que puede y no puede hacerse.
Una instancia de un plan es un objeto que se refiere a una acción en un
tiempo de ejecución particular realizado de una forma especı́fica.
El tiempo de ejecución está dado por un intervalo temporal (no solo el punto
inicial) donde la instancia del plan puede ocurrir.
Instancias de planes con acciones concurrentes se pueden formar al hacer la
composición de dos instancias de plan con tiempos que se traslapan.
Definen una lógica de tipos, denotanto intervalos temporales, instancias de
eventos, instancias de planes, propiedades y objetos + predicados para especificar relaciones temporales entre intervalos, que una prop. se mantenga
en un intervalo o que una instancia de un evento ocurra.
• (prior i1 i2 ) = intervalo i1 está temporalmente antes o inmediatemente
antes de i2
• (ends-before i1 i2 ) = intervalo i1 acaba antes o al mismo tiempo que i2
• (holds p i) = propiedad p se mantiene durante el intervalo i (y sus
subintervalos)
• (occ ei ) = ocurre la instancia de evento ei
• e@i = instancia de evento o plan tiene un tiempo de ocurrencia i
• (time-of ei ) = el tiempo de ocurrencia asociado al evento ei (= i (time-of
e@i))
• (COMP pi1 pi2 ) = instancia de plan por la composición de las instancias
de plan pi1 y pi2
En la teorı́a original de Allen no existe noción de pasado, presente y futuro. No hay noción de lo que posiblemente pase o posiblemente pudo haber
pasado.
Extensiones (para capturar posibilidades):
156
(INEV i P): en el intervalo i, P es inevitable ó independientemente de los
eventos que ocurran después de i, P es verdadero.
Su dual (el operador de posibilidad) es: (POS i P ) =
(NOT P)))
def (NOT
(INEV i
Si:
IL1 , IL2 , . . . , ILn ⊢ IL0
ILi = declaración lógica de intervalos:
inev(IL1 ), inev(IL2 ), . . . , inev(ILn ) ⊢ inev(IL0 )
La lógica de intervalos con INEV puede hacer aseveraciones acerca de posibilidades futuras (tı́picamente en mundos posibles arreglados en forma de
arboles, parecido a McDermott), donde cada rama es una historia posible
del mundo.
La verdad de las oraciones modales, en un mundo h0 , dependen de las historias del mundo accesibles a h0 .
La verdad de la oración (INEV i P ) en h0 depende de las historias de mundos
posibles con respecto a h0 y que comparten un pasado común hasta el final
del intervalo i.
La verdad de las oraciones no modales (declaraciones lógicas de intervalos)
dependen de instancias de eventos y propiedades en h0 .
Un hecho es el mismo objeto en todos los mundos posibles.
Si una relación temporal entre dos intervalos es verdadera, entonces es en
todos los tiempos inevitable (i.e., linea de tiempo global).
Lo que se quiere al construir son instancias de planes que en un tiempo i sea
inevitable (no solo posibles) que P i realice la meta.
Para cumplir una meta (M): (INEV Ip (IF (OCC pi ) M))
INEV puede representar que alguna condición futura es posible, pero no
puede atribuir la causa de esa posibilidad a factores externos, las acciones
del agente o la combinación de ambas.
157
Se trata no solo de que se cumpla bajo todas las posibles circunstancias
externas, sino también los pasos requeridos.
Para tener una noción de las condiciones necesarias para la ejecución de un
plan se hace la distinción entre intentos de instancias de plan y ocurrencias
de instancias de plan.
Operador modal: IFTRIED
(IFTRIED pi P ): si la instancia de plan pi se intenta, P serı́a verdadero.
El intentar una instancia de plan no tiene efectos en las propiedades o eventos
anteriores.
Para especificar que pi es ejecutable:
(IFTRIED pi (OCC pi)) =
def (EXECUTABLE
pi)
Con esto se pueden expresar metas tales como: evitar alguna condición,
realizar una acción en un orden determinado, prevenir que ocurra una precondición que posiblemente pueda ocurrir.
Para composición de instancias de planes:
1. pi1 y pi2 son ejecutables por si solos, pero no juntos (e.g., comparten
recursos)
2. (COMP pi1 pi2 ) es ejecutable pero no alguno de los dos solos (e.g., pi1
invalida algo de pi2 )
3. (COMP pi1 pi2 ) es ejecutable pero ninguno de los dos solos (e.g., levantar algo)
Se pueden especificar en forma de “restricciones” las posibles interacciones:
(IF (PRIOR (TIME-OF ?pi1) (TIME-OF ?pi2))
(IFF (EXECUTABLE (COMP ?pi1 ?pi2))
(AND (EXECUTABLE ?pi1)
(IFTRIED ?pi1 (EXECUTABLE ?pi2)))))
158
(IF (IFTRIED ?pi1
(IFTRIED ?pi2 (AND (OCC ?pi1)(OCC ?pi2))))
(IFTRIED (COMP ?pi1 ?pi2)
(AND (OCC ?pi1) (OCC ?pi2))))
Cuando hay interacciones entre instancias, por ejemplo, para expresar que
solo puede usarse una ornilla a la vez.
(IF (AND (OCC (calentar ?pnx )@iHx )
(OCC (calentar ?pny )@iHy ))
(OR (DISJOINT ?iHx ?iHy )
(AND (= ?pnx ?pny ) (= ?IHx ?IHy ))))
También puede expresar restricciones debidas a agentes externos.
(INEV ?ie (IF (HOLDS (hielo) Iref)
(NOT (AND (OCC (carga bolsa1)@Ic)
(OCC (carga bolsa2)@Ic)))))
El problema de determinar si dos instancias de planes intervienen entre ellas
se reduce a determinar si se pueden ejecutar juntas.
La verdad de (IFTRIED pi P ) en h0 depende de las historias de mundos
“más cercanas” a h0 donde la instancia de plan pi es intentada.
Donde más cercano son mundos que difieren de h0 en la forma de ejecutar
pi, en una acción básica que no puede ejecutarse junto con pi, o cualquier
instancia de plan cuyas condiciones son violadas por pi.
Para el “Frame Problem”, su lógica mantiene propiedades de planes de instancias (que no son de agentes externos).
Lo que necesita es especificar “Frame Axioms” (describir no solo los efectos
de las acciones, pero también lo que no afecta)!!
Una alternativa es utilizar razonamiento por default con una noción de persistencia ≈ McDermott.
159
También hay investigación en combinar representaciones temporales con mecanismos de manejo de incertidumbre (redes bayesianas, lógica difusa) dando origen a las: redes bayesianas temporales y las redes difusas temporales [Kanazawa
91].
10.2
Causales
El concepto de “causalidad” es controversial! En muchos casos es muy difı́cil
saber cuál es la causa y cuál es el efecto. Incluso algunas personas afirman
que en realidad no existe objetivamente la causalidad, sino es una invención
humana que existe sólo en la mente. Sin embargo, es importante poder
representar y razonar acerca de causalidad, en particular en sistemas que
intenten representar el “sentido común”.
10.2.1
CYC
CYC [Lenat 90] distingue dos significados para “Evento 1 causa Evento 2”:
1. Precedencia temporal: Evento 1 precede temporalmente a Evento 2
(E1 empieza entes que E2).
2. Implicación mecanı́stica: Evento 1 ocaciona Evento 2 mediante algun
mecanismo, posiblemente desconocido.
CYC representa los diferentes tipos de causalidad y los utiliza de dos
formas:
1. Predicción: si ocurre E1 predice que E2 ocurrirá.
2. Abducción: si ocurre E2 posiblemete ocurrió E1.
160
10.2.2
Redes causales
Otro tipo de representación que se presta para representar y razonar sobre
causalidad son las redes bayesianas, también conocidas como redes causales.
En éstas, normalmente se interpreta que la variables al inicio de una arco
causa la variable al final del arco. Esto es:
E1 —–> E2
De manera análoga a CYC, podemos razonar en forma predictiva de
causas a efectos y en forma evidencial de efectos (o evidencias) a causas.
Entonces, mediante el uso de técnicas probabilı́sticas, en particular el teorema de Bayes, podemos hacer cierto razonamiento causal.
Existen algunos problemas con este enfoque:
• es difı́cil distinguir causalidad de simple correlación
• no es posible representar “ciclos”, como en el caso de que E1 y E2 se
sostengan mutuamente.
Existe investigación actualmente que pretende distinguir redes bayesianas
de redes causales y manejar ciclos [Pearl 96].
10.3
Espaciales
Las representaciones espaciales se refieren a representar y razonar acerca de
la posición en el espacio de los objetos y las relaciones espaciales entre dos o
más objetos.
En principio se puede pensar en hacer una analogı́a espacio-tiempo y
considerar una representación similar a las de tiempo. Sin embargo, existen
dos diferencias fundamentales:
161
1. El tiempo es unidimensional mientras que el espacio es tridimensional.
2. El tiempo tiene cierta dirección mientras que en el espacio no hay esta
distinción.
10.3.1
CYC
CYC [Lenat 90] define una “Ontologı́a sobre modelos espaciales” que incluye
dos aspectos:
• Objetos (categorı́as)
• Relaciones entre los objetos
El objeto básico de la representación espacial de CYC es el “punto”; el
cual puede ser descrito por su posición (x, y, z) respecto a un sistema de
coordenadas de referencia. Un conjunto de puntos, descritos por ecuaciones
o restricciones, describen un objeto en el espacio.
Hay dos tipos básicos de relaciones espaciales en CYC:
1. Relaciones espaciales: relaciones espaciales básicas, análogas a las temporales, como: abajo, encima, a la izquierda, a la derecha, etc.
2. Relaciones espacio-temporales: se refieren a los cambios en relaciones
espaciales respecto al tiempo, como: conectados fuertemente y conectados libremente (tiene que ver con los concepto de sólido, lı́quido,
etc.).
Un problema es que se tiene una explosión de relaciones, en particular si
las combinamos. Se puede minimizar, si se restringe el número de combinaciones o si considera uns sola dimensión.
CYC considera 4 formas de utilizar el conocimiento espacial:
1. Predicción: predecir el comportamiento de un dispositivo.
162
2. Diagnóstico: determinar la estructura del objeto en base al comportamiento observado.
3. Manufactura: sintetizar una secuencia que produzca cierto objeto.
4. Diseño: sintetizar un objeto (forma) que produzca cierto comportamiento.
Se pueden considerar una serie de abstracciones o simplificaciones como
el restringirse a objetos sólidos, el considerar ciertas formas regulares y su
composición, etc.
10.4
Funcionalidad
La representación de funcionalidad se refiere a representar la forma en que un
dispositivo funciona; es decir, los mecanismo o secuencia de eventos que hacen
que el objeto realize cierta función. Esto es en contraste con la estructura
del objeto, que tiene que ver más bien con su representación espacial.
Un enfoque para representar funcionalidad o comportamiento consiste en
decribir los mecanismo causales que producen dicho comportamiento [Iwasaki
94]. Este cono–cimiento se puede utilizar de diversas formas:
• Formulación: transformar ciertos requerimientos a un comportamiento
esperado
• Sı́ntesis: transformar el comportamiento a una estructura
• Análisis: obtener el comportamiento de la estructura
• Evaluación: comparar el comportamiento actual con el predicho
El aspecto de funcionalidad esta muy relacionado con los aspectos temporales, causales y espaciales; ası́ como las representaciones basadas en modelos.
163
Capı́tulo 11
Sistemas de Mantenimiento de
Verdad
11.1
Introduccion
Uno de los apectos más importantes del comportamiento inteligente es la
habilidad de razonar y adaptarse en ambientes cambiantes
Los Sistemas de Mantenimiento de Verdad revisan sus conjuntos de creencias
para mantener la consistencia del sistema cuando existe nueva información
que contradiga la existente
Los TMS’s trabajan junto con un mecanismo de razonamiento
Posibles aplicaciones:
1. Problemas de Satisfacción de Restricciones: Especificados por un conjunto de variables y restricciones en subconjuntos de los valores de
las variables. Proceso: asignar valores a variables incrementalmente
checando consistencia
2. Problemas de Planificación: encontrar un camino entre un estado inicial
y uno final, aplicando reglas que determinan los estados intermedios y
verificando consistencias
164
El TMS/RMS (Truth/Reasoning Maintenance System) es un mecanismo de
manejo de contradicciones
Doyle (79), McAllester (80), McDermott (83), ...
Si sabemos:
A y If A and B Then C podemos poner
If B Then C
Pero, que pasa si cambia A?
Hasta ahora hemos supuesto un proceso monotónico
Ej. clásico:
If (ave ?x)
Then (vuela ?x)
Pero que tal si ?x es un pingüino, no tiene alas o está muerto?
Parche (sólo para casos simples):
If (and (ave ?x)
(not (ping”uino ?x))
(not (muerto ?x))
...
Then (vuela ?x)
Problemas:
• enumerar TODAS las excepciones
• problemas para BWD-CHN para establecer que ?x no es algo
Alternativa: usar estadı́sticas y asignar probabilidades
Algo parecido:
165
If (and (ave ?x)
(consistente (vuela ?x)))
Then (vuela ?x)
Donde: consistente = no puedo probar que:
(not (vuela ?x))
Pero...
If (and (medico ?x)
(consistente (llama ?x doc)))
Then (llama ?x doc)
If (and (especialista eminente ?x)
(consistente (not (llama ?x doc))))
Then (llama ?x don)
Tratarı́a de probar (llama ?x doc), lo cual llamarı́a a la primera regla
Se tiene que tener cuidado con el orden o la fuerza de las reglas
Lo más común (aunque no muy eficiente) es hacer chronological backtracking
(depth-first search - Prolog)
Problema: se pueden explorar muchas alternativas que no tienen nada que
ver con la contradicción, antes de encontrar al culpable
Una forma simple (medio sucia) es indexar las deducciones y borrar todos
los hechos a partir de la contradicción
Pero...
Tag12
Tag1022
Tag1092
(Fidel Velazquez es lider de la CTM)
(Salinas es presidente)
(Fidel Velazquez muere)
Claramente lo que se tiene que guardar son las dependencias, osea guardar
para cada hecho deducido la lista de hechos/reglas de la cual depende
166
Si se encuentra una contradicción, hacer un “backtracking” pero solo a los
hechos de los cuales depende. A esto se llama dependency-directed backtracking
En general, sin información, el escoger entre opciones no puede evitarse, sin
embargo, podemos mejorar cuando eliminamos alternativas por contradicción
(1)
(3)
(5)
(7)
x ∈ {0, 1}
y ∈ {0, 1}
z ∈ {0, 1}
b 6= c
(2)
(4)
(6)
(8)
a = e1 (x)
b = e2 (x)
c = e3 (x)
a 6= b
Donde ei (w) requiere de un cálculo complicado (costoso), e.g., ei (w) = (w +
1, 000, 000)!
Problemas de búsqueda exhaustiva: 24 cálculos costosos
• x = 0, y = 0, z = 0 (c)
• x = 0, y = 0, z = 1 (c)
• x = 0, y = 1, z = 0 (s)
• x = 0, y = 1, z = 1 (c)
• x = 1, y = 0, z = 0 (c)
• x = 1, y = 0, z = 1 (s)
• x = 1, y = 1, z = 0 (c)
• x = 1, y = 1, z = 1 (c)
Problemas de chronological backtracking (prolog): 14 cálculos costosos
1. x = 0
2. x = 0, y = 0
3. x = 0, y = 0, z = 0 (c)
167
4. x = 0, y = 0, z = 1 (c)
5. x = 0, y = 1
6. x = 0, y = 1, z = 0 (s)
7. x = 0, y = 1, z = 1 (c)
8. x = 1
9. x = 1, y = 0
10. x = 1, y = 0, z = 0 (c)
11. x = 1, y = 0, z = 1 (s)
12. x = 1, y = 1
13. x = 1, y = 1, z = 0 (c)
14. x = 1, y = 1, z = 1 (c)
• Backtracking inútil: pasos (4) y (14), la selección de z no tiene efecto
en pasos (3) o (13)
• El re-descubrimiento de contradicciones: pasos (19) y (14), la contradicción del paso (3) depende sólo de y = 0 y z = 0, por lo que el
paso (10) se pudo evitar
• Re-descubrimiento de inferencias: pasos (6) y (7) y (9)–(14) no son
necesarios
• Orden incorrecto: si la prueba a 6= b se pone antes del cálculo de b, se
pueden eliminar 4 cálculos costosos
(1) x ∈ {1, 2}
(3) x =
6 y∨x=y
(5) r = (100xy)!
(2) y ∈ {1, 2}
(4) z = (1, 000xy)!
(3), (4) y (5) no dependen de un resultado anterior y se pueden calcular en
cualquier orden (en principio)
Terminologá:
168
• Premisas: definen datos que son siempre ciertos (no dependen de otros
datos)
• Suposiciones: se creen en ellas hasta que se pruebe lo contrario (razonar
con información incompleta)
• Hechos derivados: se infieren de premisas, suposiciones y otros hechos
derivados (dependen de ciertas suposiciones y son verdaderos si todas
sus suposiciones tambien lo son)
• Ambiente: conjunto de suposiciones que describen un estado
• Contexto: el estado actual, comprende el ambiente y todos los datos
que pueden ser derivados de el
• Justificación: describe dependencias entre los datos. Al derivarse un
nuevo dato, la justificación dice como se derivó (i.e., ligas entre hechos
derivados y antecedentes)
• Etiqueta: se pueden añadir a datos para indicar en que ambiente es
válido
• Nodo: una estructura de datos con un ı́ndice, dato, justificación y
etiqueta
En un TMS prototı́po (Doyle), los hechos y las reglas se guardan con etiquetas
de nodos
• Las reglas/hechos no son verdaderas o falsas, más bien se cree o no en
ellas
• se refieren a ellas como dentro IN, si están dentro de lo que se cree, y
fuera OUT si están dentro de lo que no se cree
• Se tiene un conjunto de nodos etiquetados con hechos/reglas y un conjunto de justificaciones algúnas válidas y otras no
• Un nodo está IN si tiene una o más justificaciones válidas (se puede
tener más de una justificación por la cual creamos en un hecho)
169
Existen dos tipos de Justificaciones:
a) Support List (lista de soporte):
(SL <lista de nodos> <lista de nodos>)
Es válida si todos los nodos en la primera lista están IN y todos los
nodos de la segunda lista están OUT
b) Conditional Proof (prueba condicional):
(CP Nodo <lista de nodos> <lista de nodos>)
Es válida si Nodo está IN cuando puede ser deducido de cualquier forma
cuando todos los nodos de la primera lista están IN y todos los nodos
de la segunda lista están OUT
Son usados para registrar inconsistencias
Un nodo es una suposición si su lista OUT no está vacı́a
Un nodo es un axioma si tiene una justificación:
(SL () ())
Los CP sirven como soporte de reglas deducidas
Nodo
n1
n2
n3
n4
n5
Hecho/Regla
A
B
If A Then B
C
If A and C Then B
Justificación
(puede no tener justificación)
...
(CP n2 (n1) ())
...
(CP n2 (n4 n3) ())
Un TMS/RMS no es un sistema de razonamiento, es sólo un esclavo de uno
Se puede hacer razonamiento por default, e.g.,
Si G es la regla que hace la llamada por default y tenemos: F1 , F2 , . . . , Fn ,
posibilidades. Si queremos que Fi sea el default, se le da una justificaión:
(SL(G)(F1 F2 . . . Fi−1 Fi+1 . . . Fn ))
Con esto Fi está IN si G está IN y el resto de los valores alternos están OUT
(no hay razón por la cual creer en ellos)
170
Para no enumerar todas las posibilidades se puede crear un nodo arbitrario:
(SL(G)(E)) y darle a E justificaciones de los valores posibles que se conozcan
(i.e., (SL(Fj )())), e.g.,
Nodo
n1
n2
n3
n4
Hecho/Regla
salario = 100
salario 6= 100
salario = 93
salario = 112
Justificación
(SL(. . .)(n2))
(SL(n3)())(SL(n4)())
...
...
n1 está IN a menos que se conozca otro salario
Con un TMS/RMS podemos hacer dependency-directed backtracking, quitando suposiciones sin introducir contradicciones
El TMS/RMS no tiene una noción de inconsistencia, ésto se le deja al sistema
de razonamiento
Algoritmo para quitar inconsistencias
Supongase que N es un nodo (hecho/regla) que el sistema de razonamiento
encuentra que introduce una contradicción
Pasos:
1. Encuentra todos los supuestos que sostienen a la contradicción (i.e.,
sigue hacia atrás las dependencias desde N que están actualmente IN
(y que provocan el problema))
2. Selecciona sólo los supuestos máximos (i.e., aquellos que no apoyan a
otros supuestos). Supongase que son: A1 , A2 , . . . An
3. Crea un nuevo nodo NB (no good ) para representar la ocurrencia de la
contradicción, con la siguiente justificación:
Nodo Hecho/Regla
Justificación
NB
not(A1 A2 . . . An ) (CP N(A1 A2 . . . An )())
4. Selecciona, en forma aleatoria, del conjunto de suposiciones máximas
una suposición culpable. El objetivo es forzarla OUT para que N
también quede OUT. Supongase que se escoge Ai .
171
5. Como Ai es un supuesto, tiene una lista OUT no vacı́a en una justificación. Encuentra los nodos D1 , D2 , . . ., Dk que están OUT de tal
forma que si cualquiera estuviera IN, Ai quedarı́a OUT. Escoge uno,
digamos Dj .
6. Dale a Dj la siguiente justificación para que quede IN:
(SL (NB A1 . . . Ai−1 Ai+1 . . . An )
(D1 . . . Dj−1 Dj+1 . . . Dk ))
Con ésto, Dj está IN, por lo que Ai queda OUT y N por lo tanto queda
OUT. Si cualquier otra D entra o cualquier A se vuelve OUT, entonces Dj
queda OUT. Esto puede regresar a Ai , pero no a N (por lo que la selección
arbritaria de Ai se justifica)
NB guarda la escencia de la contradicción por lo que el sistema de razonamiento no vuelve a encontrala (por lo menos de esa forma)
e.g.,
Nodo
n1
n2
n3
n4
Hecho/Regla
t=6
t 6= 6
lugar = Tec
lugar = IIE
Justificación
(SL () (n2))
(SL () (n4))
Los nodos IN son {n1, n3}. Supongamos que el sistema de razonamiento
encuentra que:
n5 ...contradicción... (SL (n1 n3) ())
No se puede estar en el Tec a la 6
El conjunto IN es {n1, n3, n5}. Para eliminar la contradicción, introducimos
un NB:
n6 not(n1 n3) (CP n5 (n1 n3) ())
Los supuestos máximos son n1 y n3. Escogemos a n3 (al azar). Tiene a n4
como nodo OUT. A n4 se le da la justificación:
172
n4 lugar = IIE (SL (n6 n1) ())
Los IN son ahora: {n1, n4, n6} y se resuelve el problema
La existencia de n5 y n6 paran al sistema de razonamiento de hacer el mismo
error de nuevo.
En sistemas más sofisticados, la selección del “culpable” suele ser más cuidadosa
En la práctica siguen existiendo complicaciones, e.g.,
IF ?x se esta quemando
AND ?y esta en ?x
AND ...condiciones para que se queme ?y...
Then ?y se quemo
Cuando “?x se está quemando” deja de ser válido, la conclusión “?y se
quemó” sigue siendo verdadera, pero un TMS la eliminarı́a.
Aqui el problema, más que con el TMS, es con el manejo de relaciones temporales, donde los efectos se mantienen aunque las causas se eliminen.
11.1.1
ATMS
J. de Kleer (86)
Problemas de los TMS:
• Sólo considera una solución a la vez (e.g., x = 0, y = 1, z = 0 ó x =
1, y = 0, z = 1)
• Demasiado “celoso” en la evitación de contradicciones. Una contradicción
de A ∧ B indica que A y B no pueden ocurrir al mismo tiempo, pero
puede ser importante hacer inferencias con A y con B independientemente
173
• El cambio de estados es difı́cil. La única forma es introduciendo una
contradicción.
• Un TMS sólo usa justificaciones, no suposiciones (las cuales a veces
cambian)
• Es muy caro computacionalmente, ya que requiere de un mecanismo
de satisfacción de restricciones
• Durante la solución de un problema, un dato puede obtenerse, quitarse
por una contradicción y volverse a introducir por otra. Existe un problema de determinar cuales datos pueden volverse a restaurar (unouting)
11.1.2
Propagación de Restricciones
El conocer y explotar las restricciones del problema, permiten reducir la
búsqueda haciendo selecciones “inteligentes”
Pueden detectar inconsistencias y remediarlas
La propagación puede ser cualitativa o cuantitativa
Opera sobre: variables de estado, valores y restricciones
Dados unos valores iniciales, la propagación asigna valores a variables intermedias que satisfagan las restricciones
e.g., f = m × a
Si
Si
Si
Si
f = 40, m = 10 ⇒ a = 10
a = inc, m = std ⇒ f = inc
a = 9.81 ⇒ f =?, m =?
a = dec, m = inc ⇒ f =?
En general, se puede modelar un sistema por medio de una red de restricciones y predecir su comportamiento mediante la propagación
Util en diagnóstico de fallas
174
No se necesita saber todos los valores de las variables para realizar un diagnóstico
e.g.,
i = ((a × b) + 1)(c + d)
h = (a × b) − (c + d)
Entrada:
a = 1, b = 2, c = 2, d = 3 ó
a = std, b = dec, c = std, d = inc(1 = std)
Salida:
e = 2, g = 3, f = 5, i = 15, h = −1 ó
e = dec, g = dec, f = inc, h = dec, i =?
Para hacer diagnóstico con propagación de restricciones:
• tomar valores (medidos)
• propagar valores (predichos)
• identificar inconsistencias (compara medidos vs. predichos)
ATMS sirve para diagnóstico de fallas múltiples (De Kleer y Williams 87)
Suposiciones:
1. El tomar una medición no afecta al sistema
2. El sistema está estático
Cada variable tiene asignado tres datos:
Variable = Valor, Dependencias, Ambiente (ciclo)
e.g.,
h=f ×g
Si: f = 4, [componente1], 1
g = 2, [componente2], 1
Entonces:
h = 8, [componente1, componente2, multiplacioni ], 2
175
Conflicto: diferencia entre valor dado (medido) y valor predicho (propagado) e.g., x = 3, y = 2, z (prop) = 5, z (medido) = 6
Dependencias: conjunto de posibles componentes con fallas e.g., las componentes [componente1, componente2, multiplacióni ] son las dependencas de h
Conjunto conflicto: conjunto de componentes que explican el conflicto
(i.e., explican el comportamiento si fallan)
Conjunto conflicto mı́nimo: conjunto conflicto tal que no existe un subconjunto de él que sea conjunto conflicto
Si medimos h y es diferente de 8 entonces sabemos que al menos uno de sus
componentes en las dependencias está mal. Cada uno de ellos es un conjunto
conflicto mı́nimo. A veces, necesitamos más de un componente para explicar
los conflictos
Una variable puede tener más de un valor predicho
En el ATMS se propagan valores tomando en cuenta las restricciones hasta
que:
• las posibilidades de generar nuevos valores ya se agotaron
• no hay suficiente información para continuar
• una lista de dependencias es superconjunto de un conjunto conflicto
mı́nimo
Inicialmente el espacio de posibles conjuntos mı́nimos es el conjunto vacı́o.
Al ir propagando y encontrando conflictos, se va incrementando este espacio
para poder explicar adecuademente el comportamiento
Si se encuentra que un componente funciona, éste puede eliminarse del espacio de conjunto mı́nimos, de las listas de dependencias y de las listas de
conflictos
176
Ejemplo:
f = (a × c) + (b × d)
g = (c × e) + (b × d)
El espacio de conjuntos mı́nimos es:
m123s12
m123s1 m123s2 m12s12 m13s12 m23s12
m123 m12s1 m12s2 m13s1 m13s2 m1s12 m23s1 m23s2 m2s12 m3s12
m12 m12 m1s1 m1s2 m23 m2s1 m2s2 m3s1 m3s2 s12
m1 m2 m3 s1 s2
[]
Entrada:
a = 3, [], 0 b = 2, [], 0
c = 2, [], 0 d = 3, [], 0
e = 3, [], 0
Propagación inicial:
x = 6, [m1], 0
y = 6, [m2], 0
z = 6, [m3], 0
f = 12, [m1, m2, s1], 0
g = 12, [m2, m3, s2], 0
En principio, se espera que éstos valores estén de acuerdo con futuras mediciones
Si medimos: f = 10, [], 1 esto produce un conflicto con: [m1,m2,s1]
Por lo que ahora los nuevos conjuntos conflicto mı́nimos son: [m1], [m2], [s1]
Con la propagación obtenemos:
x = 4, [m2, s1], 1
(de y = 6 y f = 10)
y = 4, [m1, s1], 1
(de x = 6 y f = 10)
g = 10, [m1, m3, s1, s2], 1 (de y = 4 y z = 6)
177
La propagación no se hace en superconjuntos de algún conflicto.
Si ahora medimos: g = 12, [], 2, ésto produce un conflicto con: [m1,m3,s1,s2]
(de g = 10)
Con la propagación obtenemos:
x = 4, [m3, s1, s2], 2 y = 6, [m3, s2], 2
z = 6, [m2, s2], 2
z = 8, [m1, s1, s2], 2
s1 y m1 siguen siendo conjuntos candidatos mı́nimos (i.e., ellos sólos explican
el comportamiento)
Pero ahora hay que considerar los superconjuntos de m2: {m12, m23, m2s1,
m2s2}. Como m12 y m2s1 son superconjuntos de s1 y de m1, no se consideran.
Por lo que los conjuntos candidatos mı́nimos son: [s1], [m1], [m23], [m2s2]
Si ahora medimos x existen 3 posibilidades:
• x = 4, el conjunto conflicto es [m1] y también es un candidato mı́nimo
conflicto.
• x = 6, los conjuntos conflictos son: [m2,s1],[m3,s1,s2] y los candidatos
mı́nimos son: [s1], [m23], [m2s2]. m1 funciona correctamente y se puede
eliminar
• x 6= 4 6= 6, los conjuntos conflictos son: [m1], [m2,s1] y [m3, s1, s2].
[m1] y [s1] ya no explican por si mismos los conflictos, por lo que los
candidatos mı́nimos son: [m1s1], [m123], [m12s2]
178
Capı́tulo 12
Razonamiento con
Incertidumbre
12.1
Introducción
12.1.1
Causas de Incertidumbre
• Información:
– Incompleta (falta de análisis en medicina, falta de variables de
campo en sistemas de control).
– Poco confiable (medidores poco confiables, instrumentos imprecisos, análisis poco confiables).
– Ruido, distorsión (ruido o distorsión en sistemas de visión, de
reconocimiento de voz, de comunicaciones).
• Conocimiento:
– Impreciso (si tiene dolor de cabeza posiblemente tiene gripe, el
lumen es una región obscura, grande y uniforme).
– Contradictorio (si tiene dolor de cabeza es probable que tenga
gripe, pero también es posible que no tenga gripe, opiniones encontradas de diferentes expertos).
179
• Representación:
– No adecuada (no se selecciono la representación(es) idónea(s) para
la aplicación).
– Falta de poder descriptivo (las representaciones no permiten representar adecuadamente el conoci–miento del dominio, como lo
expresa el experto).
12.1.2
Ejemplos de dominios con incertidumbre
• Diagnóstico medico
• Predicción financiera
• Exploración minera / petrolera
• Interpretación de imágenes (visión)
• Reconocimiento de voz
• Monitoreo / control de procesos industriales complejos
12.1.3
Efectos de Incertidumbre
Si pierden varias propiedades de los sistemas que no tienen incertidumbre,
principalmente aquellos basados en lógicas o reglas, lo cual hace el manejo
de incertidumbre más complejo. Las principales dos caracterı́sticas de lógica
de primer orden que, en general, ya no aplican son:
1. Modular
2. Monotónica
Modular: Un sistema de reglas es modular, ya que para saber la verdad
de una regla sólo tiene que considerarla a ésta, sin importar el resto del
conocimiento. Por ejemplo:
180
Si A entonces B
Si A es verdadero, B es verdadero independientemente otras reglas o datos.
Pero si hay incertidumbre:
Si A entonces posiblemente B, o si A entonces B con probabilidad = 0.7
Ya no puedo considerar la regla por si sola, debo tomar en cuenta otras reglas
que involucren a B. Puede haber otra regla:
Si C entonces B con probabilidad = 0.9
Si A y C son verdaderos, cual es la probabilidad de B ? 0.7? 0.9? C1ombinación
de ambas?
Monotónicas: Un sistema es monotónico si al agregar nueva información a
su base de datos, entonces no se alteran las conclusiones que seguı́an de la
base de datos original. Por ejemplo:
Si A entonces B
Si A es verdadero, B es verdadero sin importar si más información se agrega
a la memoria de trabajo. Pero si tenemos:
Si A entonces posiblemente B, o si A entonces B con probabilidad = 0.7
Ya no puedo considerar que la certeza en B no puede cambiar, debo tomar
en cuanta otras reglas que involucren a B. Puede haber otra regla, como en
el ejemplo anterior:
Si C entonces B con probabilidad = 0.9
181
Entonces en un tiempo t 1 A es verdadera y C falsa, por lo que la probabilidad de B es 0.7, pero en un tiempo t 2 C se hace verdadera y entonces
cambiarı́a la probabilidad de B.
Ambos aspectos hacen más complejas las representaciones del conocimiento
que toman en cuenta incertidumbre, lo que ha llevado al desarrollo de diversas
técnicas para su manejo.
12.1.4
Desarrollo Histórico
• Inicios de IA (50’s, 60’s) - no se consideró el uso de “números”, en
general y probabilidad, en particular, ya que el enfoque era en manejo
simbólico vs. el resto de computación que era numérico. Se trabajó en
mundos “artificiales” que en general no requerı́an manejar incertidumbre.
A principios de los 60’s se creı́a que lógica iba a ser suficientemente
poderosa para resolver problemas reales.
• Sistemas Expertos (70’s) - surgió la necesidad de manejo de incertidumbre en los primeros sistemas expertos en el mundo “real”. Por diversas
razones, no se consideró el uso de probabilidad y surgieron mecanismos alternativos ad-hoc como el de MYCIN (medicina) y Prospector
(exploración minera). En este tiempo, desligados de IA, surgen nuevas
teorı́as para representar incertidumbre como lógica difusa y teorı́a de
Dempster–Shafer.
• Resurgimiento de probabilidad (80’s) - resurge el uso de probabilidad
para manejo de incertidumbre con el desarrollo de las redes Bayesianas.
También los investigadores de IA “descubren” otras teorı́as y las aplican
en sistemas expertos.
• Diversos formalismos (90’s) - continúan varios formalismos para el
manejo de incertidumbre sin haber un “ganador” definitivo. Paradójicamente,
la mayor parte de los shells comerciales siguen usando técnicas ad-hoc
a pesar de haberse publicado problemas teóricos y prácticos con este
tipo de métodos.
182
12.1.5
Técnicas
• No-numéricas
– Lógicas no-monotónicas
– Sistemas de mantenimiento de verdad (TMS, ATMS)
– Teorı́as de endosos
• Numéricas
– Empı́ricas (MYCIN, Prospector)
– Métodos aproximados
– Lógica difusa
– Teorı́a de Dempster-Shafer
– Redes Bayesianas
Las reglas de producción se pueden ver como:
IF Evidencia Then Hipótesis
Se ha supuesto que si la evidencia es cierta, la hipótesis también lo es. En
la práctica no existe la certeza y se extiende la regla con una medida de
certidumbre.
Un método de razonamiento con incertidumbre debe de proporcionar funciones para:
• Calcular la incertidumbre en una hipótesis h asociada a la evidencia
actual (i.e., propagar incertidumbre) (fprop )
• Combinar evidencias separadas (AND, OR) (fand , for )
• Combinar diferentes lı́neas de razonamiento (fco ), ésto es, obtener la
misma hipótesis en más de una forma
183
12.2
Probabilidad (algunas nociones)
Asociada a una descripción de experimentos.
Todos los resultados posibles forman el espacio de muestra Ω.
e.g., si tiramos un dado, Ω = {1,2,3,4,5,6}.
Un subconjunto de Ω se llama un evento.
Intersección (e1 ∩ e2 o ∩ni=1 ei ) y unión de eventos (e1 ∪ e2 o ∪ni=1 ei ).
Los eventos e1 , . . . , en ⊆ Ω se llaman mutuamente exclusivos o eventos disjuntos si ei ∩ ej = ∅, i 6= j, 1 ≤ i, j ≤ n.
Suposición: el resultado de un experimento es independiente de los resultados
de experimentos anteriores.
Si se hace un experimento N veces y n de ellos son del evento e, n/N (frecuencia relativa) se estabiliza a un valor cuando N aumenta. Este valor se
llama probabilidad.
Defn: Sea Ω el espacio muestra de un experimento. Si un número P(e) se
asocia con cada subconjunto e ⊆ Ω tal que:
• P (e) ≥ 0
• P (Ω) = 1
• P ( ni=1 ei ) =
exclusivos
S
Pn
i=1
P (ei ), si ei , i = 1, . . . , n ≥ 1 son eventos mutuamente
entonces a la función P se llama función de probabilidad.
B. Finetti (31): si A tiene creencias que violan los axiomas de probabilidad,
entonces existe una estrategia para B para apostar con la cual A siempre
pierde.
Para cada e ⊆ Ω, el número P (e) es la probabilidad de que e ocurra.
184
P (e) = 1 − P (e)
12.2.1
Probabilidad Condicional y Teorema de Bayes
Util en diagnóstico, i.e., probabilidad de H dado E.
Para cada h, e ⊆ Ω, con P (e) ≥ 0, la probabilidad condicional de h dado e o
P (h | e) (probabilidad a posteriori) es:
P (h | e) =
P (h ∩ e)
P (e)
En la práctica P (h | e) no se obtiene fácilmente, sin embargo P (e | h) sı́:
Bayes: P (h | e) =
P (e | h)P (h)
P (e)
Defn: los eventos e1 , . . . , en son (mutuamente) independientes si:
P (e1 ∩ . . . ∩ en ) = P (e1 ) . . . P (en )
Defn: los eventos e1 , . . . , en son condicionalmente independientes dado un
evento h ⊆ Ω, si:
P (e1 ∩ . . . ∩ en | h) = P (e1 | h) . . . P (en | h)
Si h y e son independientes: P (h | e) = P (h).
12.2.2
Aplicación a Sistemas Expertos Basados en Reglas
Sean H ={h1 , . . . , hn } el conjunto de n posibles hipótesis y E ={e1 , . . . , em },
m posibles evidencias. Si asuminos que la hipótesis y los eventos son T o F,
lo que queremos encontrar es la h ⊆ Ω más probable dado e ⊆ E.
185
Se tiene que calcular P (h | e) para cada subconjunto de h ⊆ H y seleccionar
la de mayor probabilidad o por Bayes si existen n hipótesis: 2n ’s P (e | h).
Suposición 1: (i) las hipótesis son mutuamente exclusivas y (ii) colectivamente exhaustivas (por (i) y (ii) se consideran sólo n hipótesis).
Normalización: Muchas veces podemos calcular una probabilidad relativa y
no tener que calcular P (e).
Otra forma es haciendolo exhaustivamente:
P (h | e) =
P (e | h)P (h)
P (e)
y
P (¬h | e) =
P (e | ¬h)P (¬h)
P (e)
como P (h | e) + P (¬h | e) = 1,
P (e) = P (e | h)P (h) + P (e | ¬h)P (e¬h)
P (h | e) =
P (e | h)P (h)
P (e | h)P (h) + P (e | ¬h)P (e¬h)
A esto se le llama normalización ya que P 1(e) se toma como una constante
que permite que los términos condicionales sumen 1.
En general:
P (e | hi )P (hi )
P (hi | e) = Pn
j=i P (e | hj )P (hj )
Para aplicar Bayes, se requiere calcular las probabilidades condicionales P (e |
hi ) para cada combinación de evidencias (en general no se pueden calcular
de sus componentes individuales).
Esto implica que se tienen que conocer un número exponencial de probabilidades!!
Suposición 2: las evidencias son condicionalmente independientes.
186
P (ej1 | hi ) . . . P (ejk | hi )P (hi)
P (hi | ej1 . . . ejk ) = Pn
l=1 P (ej1 | hl ) . . . P (ejk | hl )P (hl )
Con ésto, solo se requieren m × n probabilidades condicionales y n − 1 probabilidades a priori.
Suposición 1 y 2 implica una aplicación a dominios muy restringidos.
Con el surgimiento de los Sistemas Expertos aparecieron las probabilidades
subjetivas (dadas por expertos humanos).
En reglas tenemos expresiones ≈ fórmulas lógicas y en probabilidad ≈ subconjuntos.
Tenemos que relacionar la probabilidad de un evento a la probabilidad de
verdad de una proposición que declara la ocurrencia de un evento.
conjunción
disjunción
≈ intersección de eventos
≈ unión de eventos
Con Bayes podemos calcular la co-conclusión (fco ), i.e., P (hi |
Tm
j=1 ej ).
Sin embargo, no tiene mecanismos de funciones explı́citas de combinación
(fand y for ) y propagación (fprop ).
12.3
Técnicas numéricas
A diferencia de los métodos no-numéricos o cualitativos, las técnicas numéricas
intentan dar una medida numérica a la incertidumbre (probabilidad, factor
de certeza, etc.) Estas medidas son combinadas de alguna forma hasta llegar
a una medida de la confiabilidad de una o más posibles hipótesis.
En sistemas basados en reglas, esto tendrı́a en general una estructura
similar a la siguiente:
Si: se observa cierta evidencia E
Entonces: se concluye cierta hipótesis H con probabilidad (certeza, ...) P
De aquı́ surgen varias interrogantes:
187
• ¿Cómo obtener estas medidas?
• ¿Cómo combinar estas medidas?
• ¿Cómo interpretar estas medias?
Existen varias alternativas para atacar estos problemas. Las primeras
técnicas que surgen, cuando menos dentro del área de sistemas expertos, son
técnicas empı́ricas o ad-hoc orientadas a resolver aplicaciones especificas y sin
un fuerte fundamento teórico. Las más conocidas son las que corresponden
a dos de los primeros sistemas expertos:
• PROSPECTOR (exploración minera)
• MYCIN (diagnóstico de enfermedades infecciosas en la sangre)
12.4
Método Bayesiano Subjetivo
PROSPECTOR (R. Duda, P. Hart, N. Nilsson), 1976.
Utiliza “odds”.
P (h) =
O(h)
1 + O(h)
Si h, e ⊆ Ω, P (h) < 1, P (e) > 0, P (h | e) < 1,
Odds “a priori”: O(h) =
P (h)
1 − P (h)
Odds “a posteriori”: O(h | e) =
P (h | e)
1 − P (h | e)
Positive likelihood ratio o nivel de suficiencia λ, representa el grado en que
la evidencia e influye en la probabilidad de la hipótesis h:
188
λ=
P (e | h)
P (e | h)
IF λ > 1 indica que e tiende a confirmar h
IF λ < 1, h se confirma con cierto grado dado e
IF λ = 1, e no influye en h
Negative likelihood ratio λ o nivel de necesidad:
λ=
1 − P (e | h)
1 − P (e | h)
Si λ > 1 entonces λ < 1 (y viceversa).
A cada regla se le asocia un λ y λ.
Se necesita saber: λ, λ, P (h) y P (e).
A partir de λ y λ podemos conocer P (e | h).
P (e | h) = λ
1−λ
λ−λ
Para propagar probabilidades: (fprop )
P (h | e′ ) = P (h ∩ e | e′ ) + P (h ∩ e | e′ )
...
P (h | e′ ) = P (h | e ∩ e′ )P (e | e′ ) + P (h | e ∩ e′ )P (e | e′ )
Si conocemos e, e′ no nos proporciona ninguna información extra sobre h:
P (h | e′ ) = P (h | e)P (e | e′ ) + P (h | e)P (e | e′ )
= [P (h | e) − P (h | e)] P (e | e′ ) + P (h | e)
Que se puede ver como una función lineal (f(x) = mx + b). Se pueden
interpolar los valores y ajustar los de los expertos.
189
P (h | e′ ) =











(h|e)
P (h | e) + P (h)−P
· P (e | e′ )
P (e)
if 0 ≤ P (e | e′ ) ≤ P (e)
(h)
· (P (e | e′ ) − P (e))
P (h)
+ P (h|e)−P
1−P (e)
if P (e) < P (e | e′ ) ≤ 1
Cuando tenemos varias condiciones de las reglas, Prospector utiliza:
P (e1 and e2 | e′ ) = min{P (e1 | e′ ), P (e2 | e′ )}
P (e1 or e2 | e′ ) = max{P (e1 | e′ ), P (e2 | e′ )}
Sólo falta la función de combinación: fco . Para eso usamos la forma odds
likelihood del teorema de Bayes:
O(h | e) = λ · O(h)
Similarmente:
O(h | e) = λ · O(h)
Cuando varias reglas concluyen la misma hipótesis y asumiendo que ei son
independientes dada h:
donde,
O(h | ∩ni=1 ei ) = 
λi =
n
Y
i=1
λi O(h)
P (ei | h)
P (ei | h)
Similarmente:
O(h | ∩ni=1 ei ) = 
190
n
Y
i=1
λi O(h)
Si ei y ei no se saben con certeza, sino con probabilidades P (ei | e′i ), se puede
′)
calcular el effective likelihood ratio λ′ (λ′ = O(h|e
) y hacer los cálculos con
O(h)
′
respecto a e :
O(h | ∩ni=1 e′i ) = 
12.5
n
Y
i=1
λ′i O(h)
Factores de Certeza/Certidumbre
MYCIN (E. Shortliffe, B. Buchanan), 1975.
Usado frecuentemente (debido a su simplicidad computacional) aunque tiene
poco fundamento teórico.
Fundamentos: Los autores de MYCIN [Buchanan 84] decidieron no
seguir la te orı́a de probabilidad porque:
1. Los expertos se resisten a expresar sus procesos de razonamiento en
términos probabilı́sticos coherentes.
2. La probabilidad requiere de grandes cantidades de datos y muchas
aproximaciones y suposiciones.
Entonces desarrollaron una nueva técnica, cuya base es el concepto de
confirmación – interpretación lógica de probabilidad (subjetiva):
Probabilidad es el grado de confirmación de una hipótesis h con respecto
a la observación de la evidencia e, denotada C[h, e].
Para esto se considera que:
• C[h, e] es diferente al concepto de probabilidad condicional, P (h | e)
• La desconfirmación esta separada de la confirmación, es decir que C[h, e]
no es necesariamente igual a 1 − C[h, e]
191
Bajo estas consideraciones se desarrolla la técnica de factores de certeza.
Técnica: La técnica de factores de certeza se basa en dos medidas:
• MB(h, e): medida del aumento en la creencia en la hipótesis h dada la
evidencia e (i.e., qué tanto la evidencia aumenta la credibilidad de la
hipótesis)
• MD(h, e): medida en la disminución en la creencia en la hipótesis h
dada la evidencia e
Ambas medidas son relativas y se pueden expresar en términos de probabilidades como:
MB(h, e) =
(
1
if P (h) = 1
(h)
max{0, P (h|e)−P
} otherwise
1−P (h)
P (h | e) − P (h) representa cuánto aumenta nuestra creencia en h.
MD(h, e) =
(
1
if P (h) = 0
P (h)−P (h|e)
max{0,
} otherwise
P (h)
Dada una h y e sólo una de las funciones MB, MD es positiva.
Se asocia una MB o una MD a cada regla.
Funciones de propagación (fprop ):
MB(h, e′ ) = MB(h, e) · MB(e, e′ )
MD(h, e′ ) = MD(h, e) · MD(e, e′ )
Funciones AND y OR (fand , for ):
MB(e1 and e2 , e′ ) = min{MB(e1 , e′ ), MB(e2 , e′ )}
MB(e1 or e2 , e′ ) = max{MB(e1 , e′ ), MB(e2 , e′ )}
MD(e1 and e2 , e′ ) = max{MD(e1 , e′ ), MD(e2 , e′ )}
MD(e1 or e2 , e′ ) = min{MD(e1 , e′ ), MD(e2 , e′ )}
192
Funciones de combinación (fco ):



0
if MD(h, e1 co e2 ) = 1
MB(h, e2 )·
MB(h, e1 co e2 ) =  MB(h, e1 )+

(1 − MB(h, e1 ) otherwise
Para MD es muy parecida. El problema es que la combinación puede dar
que MB y MD > 0!!
Después se decidió expresar MB y MD en términos de un solo número:
factor de certidumbre o de certeza.
CF (h, e) =
MB(h, e) − MD(h, e)
1 − min{MB(h, e), MD(h, e)}
CF está entre −1 y 1.
Reglas de combinación:
1. Propagación (fprop ) o reglas en serie:
CF (h, e′ ) = CF (h, e) × max{0, CF (e, e′ )}
2. AND (conjunción), OR (disjunción) de evidencias (fand , for ):
CF (e1 and e2 , e′ ) = min{CF (e1 , e′ ), CF (e2 , e′ )}
CF (e1 or e2 , e′ ) = max{CF (e1 , e′ ), CF (e2 , e′ )}
3. Co-Conclusión (fco) o reglas en paralelo:
CF (h, e′1
co
e′2 )
=





















CF (h, e′1 ) + CF (h, e′2 )(1 − CF (h, e′1 ))
if CF (h, e′i ) > 0, i = 1, 2
CF (h,e′1 )+CF (h,e′2 )
1−min{|CF (h,e′1 )|,|CF (h,e′2)|}
if − 1 < CF (h, e′1 ) × CF (h, e′2 ) ≤ 0,
CF (h, e′1 ) + CF (h, e′2 )(1 + CF (h, e′1 ))
if CF (h, e′i ) < 0, i = 1, 2
193
e.g.,
R1: IF A and (B or C) Then H cf 0.8
R2: If D and F Then B cf 0.6
R3: If F or G Then H cf 0.4
R4: If A Then D cf 0.75
R5: If I Then G cf 0.3
Se conoce:
CF(A,Ev) = 1,
CF(C,Ev) = 0.5,
CF(F,Ev) = 0.7,
CF(I,Ev) = -0.4
En MYCIN los FC que están entre -0.2 y 0.2 se deshechan.
Desventajas: Aunque pretendı́a apartarse de probabilidad, se ha demostrado
[Heckerman 86] que la técnica de MYCIN corresponde a un subconjunto de
probabilidad con una serie de supociciones implı́citas:
• La evidencia es condicionalmente independiente de la hipótesis y su
negación.
• La red de inferencia debe corresponder a un árbol para que los resultados sean coherentes.
• Las fórmulas para conjunción y disjunción (min y max) sólo son válidas
si uno de los términos es subconjunto del otro.
Estas supociciones no son válidas en muchas aplicaciones por lo que el
método de MYCIN no se puede generalizar.
12.6
Teorı́a de Demptser–Shafer
En los 60’s A. Demptser dió los fundamentos de una nueva teorı́a de incertidumbre. En los 70’s G. Shafer la extendió. En los 80’s se vió su utilidad a
los S.E. pero con modificaciones.
194
Motivación: la probabilidad no distingue entre incertidumbre e ignorancia
debido a información incompleta.
En la teorı́a de Demptser–Shafer, se pueden asociar medidas de incertidumbre
a un conjunto de hipótesis, e.g.,
Evidencia (sı́ntomas): {dolor de pecho, se extiende a brazos y cuello, no
desaparece al descansar}
Hipótesis (posibles enfermedades): {ataque cardiaco, pericarditis, embolia
pulmonar, problema de la aorta}
Si tenemos evidencia de problemas de corazón (e.g., 0.4) este número, se
asocia al conjunto:
{ataque cardiaco, pericarditis}
Idea: empezar con un conjunto inicial de hipótesis. Para cada evidencia se
asocia cierta incertidumbre con algunos subconjuntos hasta que se asocia
incertidumbre a todos los subconjuntos.
El conjunto inicial de hipótesis se llama marco de discernimiento (frame of
discernment) y se asumen las hipótesis disjuntas.
Defn: Sea Θ el marco de discernimiento. Si para cada subconjunto x ⊆ Θ se
asocia un número m(x) tal que:
• m(x) ≥ 0
• m(∅) = 0
•
P
x⊆Θ
m(x) = 1
entonces m(x) (asignación de probabilidad básica) expresa creencia en el
conjunto x (no en sus subconjuntos).
e.g., Si Θ = {ataque cardiaco, pericarditis, embolia pulmonar, problema de
aorta}.
La asignación básica es a 24 (16) conjuntos.
Elemento focal: es un conjunto x ⊆ Θ si m(x) > 0.
195
El nucleo de m (K(m)) es el conjunto de todos los elementos focales en m.
Una función de probabilidad asocia un elemento con un número en el itervalo
[0, 1], tal que la suma de todos es 1. La asignación de probabilidad básica
asocia a cada elemento en 2Θ un número en el itervalo [0, 1] tal que la suma
es 1.
Si no hay evidencia de un diagnóstico:
m0 (x) =
(
1
0
si x = Θ
else
Si sabemos {ataque cardiaco, pericarditis} = 0.4



0.6
m1 (x) = 0.4


0
si x = Θ
si x = {ataque cardiaco,pericarditis}
else
Defn: la función de credibilidad (belief/credibility function) se define como:
Bel(x) =
X
m(y) para cada x ⊆ Θ
y⊆x
Propiedades:
• Bel(Θ) = 1
• Bel(x) = m(x), si x es un solo elemento,
• Bel(x) + Bel(x) ≤ 1
Defn: la función de plausibilidad (plausibility function) se define como:
P l(x) =
X
m(y) para cada x ⊆ Θ
x∩y6=∅
196
Indica la confianza/soporte no asignada a x.
P l(x) = 1 − Bel(x).
P l(x) − Bel(x) expresa la incertidumbre en x.
El intervalo de creencia de x: [ Bel(x), P l(x) ].
[0,1] => no se sabe nada de x
[1,1] => x se conoce
[0.3,1] => existe evidencia en favor de x
[0.15,0.75] => existe evidencia en favor y en contra de x
Si P l(x) − Bel(x) = 0 para cada x ⊆ Θ, regresamos a la teorı́a convencional
de probabilidad.
Reglas de combinación:
1. m1 ⊕ m2 (∅) = 0
P
Py∩z=x
2. m1 ⊕ m2 (x) =
Bel1 ⊕ Bel2 (x) =
e.g.,
y∩z6=∅
P
y⊆x
m1 (y)×m2 (z)
m1 (y)×m2 (z)
para toda x 6= ∅
m1 ⊕ m2 (y).
Aplicaciones a Sistemas Expertos: A principios de los 80’s sólo soluciones
tipo ad hoc poco satisfactorias.
12.7
Redes Bayesianas
Introducción
Las redes bayesianas o probabilı́sticas son una representación gráfica de
dependencias para razonamiento probabilı́stico en sistemas expertos, en la
cual los nodos y arcos representan:
197
• Nodo: Variable proposicional.
• Arcos: Dependencia probabilı́stica.
Definición:
Una red probabilı́stica (RP) es un gráfo acı́clico dirigido (DAG) en la
cual cada nodo representa una variable y cada arco una dependencia probabilı́stica, en la cual se especifica la probabilidad condicional de cada variable
dados sus padres.
La variable a la que apunta el arco es dependiente (causa–efecto) de la
que está en el origen de éste.
Podemos interpretar a una RP de dos formas:
1. Distribución de probabilidad: Representa la distribución de la probabilidad conjunta de las variables representadas en la red. Por ejemplo:
P (A, B, C, D, E, F, G) =
P (G|D)P (F |C, D)P (E|B)
P (D|A, B)P (C|A)P (B)P (A)
2. Base de reglas: Cada arco representa un conjunto de reglas que asocian
las variables involucradas, Por ejemplo:
Si C, D entonces F
Dichas reglas están cuantificadas por las probabilidades respectivas.
La topologı́a o estructura de la red nos da información sobre las dependencias probabilı́sticas entre las variables.
La red también representa las independencias condicionales de una variable (o conjunto de variables) dada otra variable(s).
Ej.: {E} es cond. indep. de {A,C,D,F,G} dado {B}
Esto es: P (E|A, C, D, F, G, B) = P (E|B)
198
Esto se representa gráficamente por en nodo B separando al nodo E del
resto de las variables.
En general, el conjunto de variables A es independiente del conjunto B
dado C si al remover C hace que A y B se desconecten. Es decir, NO existe
una trayectoria entre A y B en que las siguientes condiciones sean verdaderas.
1. Todos los nodos con flechas convergentes están o tiene descendientes
en C.
2. Todos los demás nodos están fuera de C.
Esto se conoce como Separación–D.
En una RP todas la relaciones de independencia condicional representadas
en el grafo corresponden a relaciones de independencia en la distribución de
probabilidad.
Dichas independencias simplifican la representación del conocimiento (menos
parámetros) y el razonamiento (propagación de las probabilidades).
Propagación de Probabilidades
El razonamiento probabilı́stico o propagación de probabilidades consiste
en propagar de los efectos de la evidencia a través de la red para conocer la
probabilidad a posteriori de las variables. La propagación consiste en darle
valores a ciertas variables (evidencia), y obtener la probabilidad posterior de
las demás variables dadas las variables conocidas (instanciadas).
Los algoritmos de propagación dependen de la estructura de la red:
• Árboles
• Poliárboles
• Redes multiconectadas
Propagación en Árboles
199
Cada nodo corresponde a una variables discreta, A = {A1 , A2 , . . . , An },
con su respectiva matriz de probabilidad condicional, P (B|A) = P (Bj |Ai )
Dada cierta evidencia E —representada por la instanciación de ciertas variables—
la probabilidad posterior de cualquier variable B, por el teorema de Bayes:
P (Bi |E) = P (Bi)P (E|Bi )/P (E)
Ya que la estructura de la red es un árbol, el Nodo B la separa en dos
subárboles, por lo que podemos dividir la evidencia en dos grupos:
E − : Datos en el árbol que cuya raı́z es B
E + : Datos en el resto del árbol
Entonces:
P (Bi |E) = P (Bi)P (E − , E + |Bi )/P (E)
Pero dado que ambos son independientes y aplicando nuevamente Bayes:
P (Bi |E) = αP (Bi|E + )P (E − |Bi )
Donde α es una constante de normalización.
Esto separa la evidencia para actualizar la probabilidad de B. Además vemos
que no requerimos de la probabilidad a priori, excepto en el caso de la raı́z
donde:
P (Ai |E + ) = P (Ai)
Si definimos los siguientes términos:
λ(Bi ) = P (E − |Bi )
π(Bi ) = P (Bi |E + )
Entonces:
P (Bi |E) = απ(Bi)λ(Bi )
Dado que los hijos son condicionalmente independientes dado el padre:
200
λ(Bi ) =
Y
P (Ek− |Bi ) =
k
Y
λk (Bi )
k
Donde Ek− corresponde a la evidencia que proviene del hijo k de B, denotado
por Sk .
Condicionando cada término en la ecuación anterior respecto a todos los
posibles valores de cada nodo hijo, obtenemos:
λ(Bi ) =
YX
[
P (Ek− |Bi , Sjk )P (Sjk |Bi )]
j
k
Dado que B es condicionalmente de la evidencia bajo cada hijo dado éste y
usando la definición de λ:
λ(Bi ) =
YX
[
k
P (Sjk |Bi )λ(Sjk )]
j
En forma análoga obtenemos una ecuación para π. Primero la condicionamos
sobre todos los posibles valores del padre:
π(Bi ) =
X
P (Bi |E + , Aj )P (Aj |E + )
j
Podemos eliminar E + del primer termino dada independencia condicional.
El segundo término representa la probabilidad posterior de A sin contar la
evidencia de subárbol de B, por lo que podemos expresarla usando la ecuación
para P (Bi |E) y la descomposición de λ.
π(Bi ) =
X
j
"
P (Bi|Aj ) απ(Aj )
Y
k
Donde k incluye a todos los hijos de A excepto B.
201
λk (Aj )
#
Mediante estas ecuaciones se integra un algoritmo de propagación de probabilidades en árboles. Cada nodo guarda los valores de los vectores π y λ,
ası́ como las matrices de probabilidad P. La propagación se hace por un
mecanismo de paso de mensajes, en donde cada nodo envı́a los mensajes
correspondientes a su padre e hijos:
Mensaje al padre (hacia arriba) — nodo B a su padre A:
λB (Ai ) =
X
P (Bj |Ai )λ(Bj )
j
Mensaje a los hijos (hacia abajo) — nodo B a su hijo S k :
πk (Bi ) = απ(Bj )
Y
λl (Bj )
l6=k
Al instanciarse ciertos nodos, éstos envı́an mensajes a sus padres e hijos,
y se propagan hasta a llegar a la raı́z u hojas, o hasta encontrar un nodo
instanciado. Ası́ que la propagación se hace en un solo paso en un tiempo
proporcional al diámetro de la red.
Esto se puede hacer en forma iterativa, instanciando ciertas variables y propagando su efecto; y luego instanciando otras y propagando la nueva información, combinando ambas evidencias.
Propagación en poliárboles.
Un poliárbol es una red en la que un nodo puede tener varios padres, pero sin
existir múltiples trayectorias entre nodos (red conectada en forma sencilla SCG)
El algoritmo de propagación es muy similar al de árboles. La principal diferencia es que se requiere de la probabilidad conjunta de cada nodo dado todos
sus padres:
P (Bi |A1 , ....An )
En forma análoga al inciso anterior, podemos deducir una expresión de la
probabilidad en un nodo cualquiera B en términos de sus padres e hijos:
202
−
P (Bi |E) = αP (Bi|E1+ , ..., En+ )P (E1− |Bi ) · · · P (Em
|Bi )
A partir de esta ecuación se puede también obtener un mecanismo de propagación local similar al de árboles, con el mismo orden de complejidad.
Propagación en Redes Multiconectadas
Una red multiconectada es un grafo no conectado en forma sencilla, es decir,
en el que hay múltiples trayectorias entre nodos (MCG). En este tipo de RP
los métodos anteriores ya no aplican, pero existen otras técnicas alternativas:
• Condicionamiento
• Simulación estocástica
• Agrupamiento
Condicionamiento: Si instanciamos una variable, ésta bloquea las trayectorias de propagación. Entonces asumiendo valores para un grupo seleccionado de variables podemos descomponer la gráfica en un conjunto de SCG.
Propagamos para cada valor posible de dichas variables y luego promediamos
las probabilidades ponderadas.
Simulación Estocástica: Se asignan valores aleatorios a las variables no
instanciadas, se calcula la distribución de probabilidad y se obtienen valores
de cada variable dando una muestra. Se repite el procedimiento para obtener
un número apreciable de muestras y en base al numero de ocurrencias de cada
valor se determina la probabilidad de dicha variable.
Agrupamiento: El método de agrupamiento consiste en transformar la
estructura de la red para obtener un árbol, mediante agrupación de nodos
usando la teorı́a de grafos [Lauritzen 88].
Para ello se parte de la gráfica original y se siguen los siguientes pasos:
1. Se triangulariza el grafo agregando los arcos adicionales necesarios.
203
2. Se identifican todos los conjuntos de nodos totalmente conectados (cliques).
3. Se ordenan los cliques de forma que todos los nodos comunes estén en
un solo clique anterior (su padre).
4. Se construye un nuevo grafo en que cada clique es un nodo formando
un árbol de cliques.
Para la propagación de probabilidades se realiza en este árbol de macronodos
(cliques), obteniendo la probabilidad conjunta de cada clique. A partir de
esta se puede obtener la probabilidad individual de cada variable en el clique.
En general, la propagación en una red probabilı́stica con una estructura compleja es un problema de complejidad NP-duro [Cooper 90]; sin embargo, en
muchas aplicaciones prácticas la estructura de la red no es tan compleja y
los tiempos de propagación son razonables.
12.8
Lógica Difusa
L. Zadeh ’65.
Surge como propuesta para la formalización de razonamiento aproximado,
para tratar conocimiento de sentido común (i.e., pequeño, cerca, muchos,
etc).
En teorı́a de conjuntos, un elemento pertenece o no a un conjunto.
En un conjunto difuso su frontera no está precisamente definida, y la prueba
de pertenencia regresa un valor entre 0 y 1.
Para ésto, existe un grado de pertenencia (µ) el cual es subjetivo y dependiente del dominio.
Las operaciones de conjuntos en conjuntos difusos son:
• Intersección: µ(A and B) = min{µ(A),µ(B)}
• Union: µ(A or B) = max{µ(A),µ(B)}
204
• Complemento: µ(not A) = 1 - µ(A)
Inferencia con reglas difusas: En el caso difuso, si el antecedente tiene cierto
grado de pertenencia, entonces el consecuente también lo tiene pero siempre
con grado no mayor.
Pasos:
1. discriminar las variables de los patrones (e.g., Temperatura: helado,
frio, templado, caliente, hirviendo) y definir sus conjuntos difusos
2. discriminar las variables de control (e.g., mucho más frio, más frio, no
tocar, más caliente, mucho más caliente) y definir sus conjuntos difusos
3. analizar cada regla a ver si se cumplen sus antecedentes
4. combinar los valores difusos
5. defusificar el resultado
E.g.,
R1: If temp. del agua es helado
Then ajusto a mucho mas caliente
R2: If temp. del agua es frio
Then ajusto a mas caliente
R3: If temp. del agua es templado
Then ajusto a no tocar
R4: If temp. del agua es caliente
Then ajusto a mas frio
R5: If temp. del agua es hirviendo
Then ajusto a mucho mas frio
En principio, con m variables y n valores difusos para cada una, necesitariamos de mn reglas!!
El resultado es un conjunto difuso el cual se tiene que defusificar para producir un valor.
La defusificación artimética se puede hacer:
205
• Tomando el valor máximo (maximum method)
• Tomar el centro del área (moments method)
Existen operadores difusos (hedges) que pueden aplicarse, aparte de las operaciones básicas de conjuntos. Pueden verse como modificadores a los “términos”
difusos.
• concentración (e.g., alto → muy alto)
con(µ)(a) = µ2 (a)
• dilatación (e.g., alto → medio alto)
dil(µ)(a) = µ1/2 (a)
• normalización
norm(µ)(a) =
µ(a)
max (µ(a))
• intensificación
int(µ)(a) =
(
2µ2 (a)
1 − 2(1 − µ(a))2
para 0 ≤ µ(a) ≤ 0.5
para 0.5 ≤ µ(a) ≤ 1
Con ellos podemos crear otros términos.
Si queremos combinar dos predicados (e.g., alto y pesado), tenemos que
definir una relación (matriz).
Las operaciones de conjuntos difusos se pueden extender fácilmente a relaciones.
Para hacer la composición de dos relaciones µ : A × B → I y λ : B × C → I:
λ ◦ µ(a, b) = MaxMin{µ(a, b′ ), λ(b′ , c)}
206
Capı́tulo 13
Adquisición de Conocimiento
13.1
Introducción
Los sistemas basados en conocimiento (e.g., S.E.) dependen de la calidad de
su conocimiento
La adquisición consiste en capturar experiencia. La experiencia es:
• especı́fica (aplicable a un sólo dominio)
• inflexible (no sirve en situaciones no previstas)
• enfocada (sólo se ve un tipo de solución)
Los epecialistas aprenden “más de menos” (o “cobran más y hacen menos”)
El problema de adquisición de conocimiento es fundamental para los S.E.
En la literatura recomiendan separar:
• adquisición
• representación
en la práctica se mezclan
207
13.1.1
Errores Comunes
1. El conocimiento no se obtiene desde diferentes perspectivas
2. Se captura conocimiento irrelevante
3. No se explora suficientemente el rango y la flexibilidad del conocimiento
experto
4. No se reconoce el clásico “demo effect” (los expertos se comportan
diferente cuando se les está observando)
13.1.2
Niveles de Conocimiento
• superficial (shallow): para situaciones especı́ficas
• profundo (deep): estructura interna y propiedades de causalidad, e
interacción entre componentes
e.g.,
(S) IF focos estan bajos
THEN bateria esta fallando
(D) La bateria está conectada al sistema eléctrico. Parte de éste proporciona electricidad a las luces. Cuando la bateria no tiene sificiente carga, las
luces se bajan. ...
(S) no puede explicar su conocimiento, pero es más fácil de capturar
(D) se requiere si queremos que sea útil para varias situaciones
El que sea (D) o (S) no depende de la representación que usemos
13.1.3
Cómo se adquiere el conocimiento?
1. Entrevistas y protocolos
208
2. Aprendizaje por interacción
3. Aprendizaje por inducción
Cual se utiliza depende del problema, expertos e información disponible. En
principio, se pueden utilizar los tres.
Para describir conocimiento relevante tenemos que:
• nombrar objetos claves
• describir caracterı́sticas de los objetos que impactan en las decisiones
• organización de los objetos relevantes
• relacionar el conocimiento
• identificar restricciones entre propiedades de los objetos
13.2
Estrategias
1. vemos lo que hace el experto y tratamos de identificar su estructura
(tardado y mucha interacción)
2. formulamos un modelo analı́tico y tratamos de “encajar” el conocimiento
y el comportamiento del experto dentro del modelo (más dirigido y usado en herramientas de adquisición)
13.2.1
Adquisición manual: entrevistas y protocolos
I) Entrevistas:
Recomendaciones:
• ser especı́fico
• hablar el lenguaje del experto
209
• dejar al experto completar sus ideas
• grabar entrevistas
• dar retroalimentación al experto
Depende mucho de la habilidad del ingeniero de conocimiento
II) Protocolos verbales:
e.g.,
• sabes el nombre de la enfermedad?
• cuál de estas tres enfermedades exhibe tal comportamiento (malaria,
tifoidea, cólera)?
• dá el nombre de la enfermedad
• sábes el nombre de la enfermedad y cómo llegaste a esa conclusión?
Problemas:
• consumen mucho tiempo
• expertos poco disponibles
• pueden olvidarse de algo importante
• expertos tienen dificultad en expresarse
13.3
Adquisición Automática
Existen dos tendencias: extracción de conocimiento por interacción y por
aprendizaje
210
13.3.1
Métodos Interactivos
Idea: capturar descripciones básicas de objetos en términos de sus propiedades.
Se enfoca a nombrar, describir y organizar
Repertory grids (Kelly, ’55)
• identificar selectores o clases
• identificar atributos (lo que distingue a las selecciones o clases)
Se manejan atributos y sus opuestos
A veces se expresan en tendencias
Proceso:
1. compara ejemplos prototı́picos a los cuales el experto tiene que proveer
los atributos o tendencias que los distinguen
2. usa factores de certeza para decir en donde cae dentro de un valor y su
opuesto
3. construye una rejilla
13.4
Validación de Conocimiento
Ciclo tı́pico:
1. el ingeniero de conocimiento busca errores sintáticos y semánticos
2. corre pruebas para encontrar discrepancias
3. el experto corre pruebas
211
Lleva mucho tiempo y no garantiza que el conocimiento quede sin errores
La mayorı́a de las técnicas surgieron de desarrollos de proyectos grandes enfocados a la adquisisición automática de conocimiento (e.g., Teiresias, Emycin,
Mole, AutopIntelligence, etc)
Los S.E. son fáciles de modificar y frecuentemente son actualizados para
mejorar capacidades
Primeros sistemas de verificación: Teiresias (Davis ’76) - Mycin, Check - Les,
Inspector - Kee
Problemas usuales con reglas:
• conflictivas
• redundantes
• especializaciones (subsumption)
• condiciones inecesarias
• incompletas
• circularidades
• valores de atributos no mencionados
• valores de atributos ilegales
• condiciones/acciones inalcanzables
Pruebas que se realizan:
• errores sintácticos
• reglas, hechos y preguntas sin usar
• valores incorrectamente usados
• construcciones redundantes
212
• reglas con valores ilegales
• instanciaciones erroneas
Para ésto, se construye un diccionario de conocimiento con una lista de expresiones y sus categorias: metas, condiciones de reglas, acciones, preguntas
(con valores legales), hechos (con valores), etc.
La validación es todavı́a más difı́cil si el S.E. arroja estimaciones, e.g.,
el sistema dice: tifoidea (cf 0.7), cólera (cf 0.6)
el experto dice: tifoidea (cf 0.65), cólera (cf 0.4)
213
Capı́tulo 14
Aprendizaje
14.1
Introducción
“Cambios adaptivos en el sistema para hacer la misma tarea(s)
de la misma población de una manera más eficiente y efectiva la
próxima vez” [Simon 83]
Objetivos
• ingenieril (resolver tareas)
• simulación cognitiva
• análisis teórico
Programar una máquina en muy lento y se trata de abrir nuevas posibilidades de instruı́r a la máquina mediante aprendizaje suavizando el proceso
de programación
14.1.1
Criterios de aprendizaje (D. Michie)
• débil: utiliza datos para mejorar su desempe no en nuevos datos
214
• fuerte: se pueden ver explı́citamente los conceptos generados
• extra fuerte: se puede ver su mejora de una manera operacionalmente
efectiva (i.e., permite al experto mejorar su desempe no)
La mayor parte de los sistemas infieren:
• reglas clasificatorias
• árboles de decisión
• redes con pesos asociados
a partir de ejemplos para clasificación/predicción
14.1.2
Dimensiones
• El conjunto de ejemplos y su presentación
• Lenguaje de hipótesis: sintáxis usada en la constricción de hipótesis
• Criterio de éxito
14.1.3
Aprendizaje Visto como Búsqueda
El lenguaje de hipótesis determina el espacio de donde seleccionar reglas o
hipótesis
Es necesario estructurar el espacio de hipótesis (se puede hacer con un modelo
de generalización)
La búsqueda puede hacerse:
• de general a especı́fico
• de especı́fico a general
215
• en ambos sentidos
ejemplo1: 4 de espadas (+)
??
Num?
4?
?Negro
NumNegro
4Negro
?Espadas
NumEspadas
4Espadas
ejemplo2: 7 de espadas (+)
??
Num?
?Negro
NumNegro
?Espadas
NumEspadas
ejemplo3: 5 de corazones (–)
?Negro
NumNegro
?Espadas
NumEspadas
14.2
“Similarity-based learning” (SBL) e ID3
ejemplos = objetos (pares atributo/valor) + clasificación
Objetivo: inducir árboles de decisión que determinen la clase de cualquier
objeto
Método de aprendizaje:
216
• ejemplos de entrenamiento y prueba
• utilización de teorı́a de la información
• incrementalmente por medio de “ventanas”
Ejemplo
Ambiente
soleado
soleado
nublado
lluvia
lluvia
lluvia
nublado
soleado
soleado
lluvia
soleado
nublado
nublado
lluvia
Temp.
alta
alta
alta
media
baja
baja
baja
media
baja
media
media
media
alta
media
Humedad
alta
alta
alta
alta
normal
normal
normal
alta
normal
normal
normal
alta
normal
alta
Viento
no
si
no
no
no
si
si
no
no
no
si
si
no
si
Clase
N
N
P
P
P
N
P
N
P
P
P
P
P
N
Ambiente
soleado
Humedad
alta
normal
N
P
nublado
lluvia
P
Viento
si
N
Como generar un árbol?
Atributoi
217
no
P
Ejem1
Ejem2
...
Ejemn
• partición de ejemplos
• crucial que prueba hacer
Selección basada en teorı́a de la información
Sea:
p = ejemplos de clase C (positivos o de clase P)
n = ejemplos de otras clases (negativos o de clase N)
Se asume que la probabilidad de pertenecer a la clase es:
p1 =
p
n
y n1 =
p+n
p+n
entropia = −
n
X
pi log2 (pi )
i=1
I(p, n) = −p1 log2 (p1 ) − n1 log2 (n1 )
E(A) =
n
X
i=1
{
pi + ni
}I(pi, ni )
p+n
Ganancia(A) = I(p, n) − E(A)
e.g., 14 ejemplos, 9 de P y 5 de N
I(p, n) = −
9
9
5
5
log2 ( ) − log2 ( ) = 0.940
14
14
14
14
218
Ambiente
soleado: p1 = 2, n1 = 3, I(p1, n1 ) = 0.971
nublado: p2 = 4, n2 = 0, I(p2 , n2 ) = 0
lluvia: p3 = 3, n3 = 2, I(p3 , n3 ) = 0.971
E(ambiente) =
5
4
5
I(p1 , n1 ) + I(p2 , n2 ) + I(p3 , n3 )
14
14
14
= 0.694
Ganancia(Ambiente) = 0.940 - 0.694 = 0.246
Ganancia(Temperatura) = 0.029
Ganancia(Humedad) = 0.151
Ganancia(Viento) = 0.048
14.2.1
Manejo de Ruido
• valores de atributos erroneos, subjetivos
• clasificación equivocada
• valores desconocidos
14.2.1.1
Algunas Propuestas
• pre-pruning: parar la construcción del árbol
• post-pruning: cortar ramas una vez construı́do el árbol
Cuando decidir parar? (pre-pruning)
• Un valor mı́nimo de ganancia, pero en la práctica puede perder buenas
soluciones
• Comparar errores de árbol con atributo y árbol sin atributo (clase mayoritaria)
219
• otros...
Problema básico: basado en información local
Como cortar (post-pruning)?
Problemas: (i) cual árbol cortado considerar (ii) estimar el error de clasificación (claramente no cortar siempre es “mejor”)
14.2.1.2
Ejemplos con más de una Clase
• proporción de clase (e.g., 0.8 de clase1)
• clase mayoritaria
14.2.1.3
Valores Deconocidos
• Bayes:
prob(A = Ai | Clase = P ) =
=
prob(A = Ai ∧ clase = P )
prob(clase = P )
pi
p
• Construı́r un árbol de decisión para determinar el valor del atributo
• Tomar el valor más común
• Usar un valor “desconocido”
• Utilizar una proporción:
nva.-pi = pi + pu · razóni
pi + ni
razóni = P
i pi + ni
220
14.2.1.4
Clasificación con Valores Desconocidos
Explorar todas las ramas usando “razóni ” y tomar la clase con valor más
alto
14.2.1.5
Criterios de Selección
La selección basada en teorı́a de la información favorece atributos con más
valores
Propuestas:
• árboles binarios
•
Nva.Gan. =
pi =
ganancia(A)
P
− vi=1 pi log2 (pi )
pi + ni
p+n
• ...
14.2.2
Kardio (Bratko et al.)
Idea: usar un modelo cualitativo (del corazón) como base en la construcción
de un sistema de diagnóstico de fallas (arrı́tmeas)
• Simular fallas en el modelo y propagar sus consecuencias hasta que se
llegue a un estado estable
• Utilizar un sistema de aprendizaje
Modelo Cualitativo
Simulación Cualitativa
221
Conocimiento Operacional (ejemplos)
Programa de Aprendizaje
Conocimiento Operacional
Comprimido (reglas)
Algoritmo:
• selecciona una componente a fallar
• cambia su estado a un estado no válido
• añade el comportamiento a una Agenda
• UNTIL Agenda = ∅
– toma el primer componente de la Agenda
– crea una lista de todos los componentes conectados para cada
componente y dispara la primera regla (cualitativa)
– Si cambia su estado, añadelo a la Agenda
Una vez generados todos los estados aplica filtros:
• quitar estados duplicados
• quitar estados iguales a estados normales
• ...
D. Pearce (88): Modelo de fallas de circuito eléctrico de un satélite
• Envisage: 110 reglas, tiempo: 6 meses, 72% + errores
• Mod. Cual.: 75 reglas, tiempo: 3.5 meses, 100%
Ventajas:
222
• El modelo cualitativo es más parecido a la descripción del experto sobre
el funcionamiento del sistem
• No se necesita saber datos numéricos exactos
• La simulación cualitativa es más sencilla
• Puede servir de base para construir explicaciones
Sistema
Aplicación
MYCIN
diagnóstico
médico
configuración 8,000
180
VAX
configuración 2,800
1
sistema de
separación
hidrocarburos
configuración > 30,000 9
equipo de
protección
incendios
edificios
XON
GASOIL
BMT
14.3
No. de
Reglas
400
Des. Mant.
A/H A/H
100 N/A
no
0.1
si
2
si
Limitantes de SBL:
• lenguaje de respresentación restringido
• incapacidad de incluir conocimiento del dominio
Inducción de Programación Lógica
223
no
30
Tendencias Actuales
• no introducen nuevos términos
Apr.
• programación lógica
• aprendizaje
Objetivo:
Dados:
K, E + , E −
Encontrar: H
K ∪ H ⊢ E + y K ∪ H 6⊢ E −
Ejemplos:
Conocimiento:
ordena([2,1],[1,2]).
ordena([0,3,1],[0,1,3]).
ordena([4,2,6],[2,4,6]).
ordena([1],[1]).
ordena([ ],[ ]).
...
junta([ ],L,L).
junta([H|L1],L2,[H|L3]) ←
junta(L1,L2,L3).
divide(El,[H|T],Men,[H|May]) ←
El < H,
divide(T,Men,May).
divide(El,[H|T],[H|Men],May) ←
El > H,
divide(T,Men,May).
divide( ,[ ],[ ],[ ]).
Hipótesis:
ordena([ ],[ ]).
ordena([H|T],LOrd) ←
divide(H,T,Men,May),
ordena(Men,MenOrd),
ordena(May,MayOrd),
junta(MenOrd,[H|MayOrd],LOrd).
224
14.3.1
Posibles Aplicaciones
• sı́ntesis de proteinas
• planeación
• lenguaje natural
• razonamiento temporal/espacial
• música
• razonamiento cualitativo
• ...
14.3.2
Investigación Actual
• balance entre ruı́do y falta de conocimiento
• modelos de generalización más adecuados
• noción de relevancia
• aplicaciones reales
14.4
Conclusiones
• Aprendizaje necesario
– generación de nueva información
– instrucción a la máquina menos demandante
– digestor de información (e.g., Bases de Datos)
• Tendencia a tener más expresividad
• Aplicable a problemas reales
225
14.5
Razonamiento Basado en Casos (CBR)
A pesar del éxito de los sistemas basados en conocimiento, existen varios
problemas:
• El proceso de extracción de conocimiento es difı́cil
• Su construcción requiere de habilidades especiales
• Normalmente son lentos e incapaces de accesar grandes cantidades de
información
• Son difı́ciles de mantener
Un Razonador Basado en Casos resuelve problemas nuevos mediante la adaptación de soluciones previas usadas para resolver
problemas similares (Riesbeck, Schank 89)
• No requiere de un modelo explı́cito del dominio y el proceso de extracción se reduce a juntar casos históricos
• Su construcción se reduce a identificar atributos relevantes con los
cuales describir los casos. Puede empezar con unos cuantos casos y
elimina el que el sistema sea completo.
• Permite dar explicaciones.
• Usan técnicas de base de datos para manipular grandes volumenes de
información.
• CBR puede aprender adquiriendo nuevo conocimiento como casos haciendo su mantenimiento más fácil.
• Pueden ir creciendo reflejando la experiencia acumulada.
226
14.5.1
Historia
Schank y Abelson (77) Scripts
Schank (82) MOPs (Memory Organization Packets) o patrones de situaciones
Gentner (83) entorno teórico para razonamiento analógico
Wittgenstein (53) los “conceptos naturales” se definen por un conjunto de
instancias (casos) con semejansas familiares
Schank y su grupo en Yale produjeron el primer modelo y aplicación de CBR
→ Jane Kolodner - CYRUS (83)
Porter (Texas) - PROTOS modelo de memoria de casos
Aplicaciones en leyes
14.5.2
Ciclo (las 4 “Re”)
1. Recuperar (retrieve) los casos más parecidos (un nuevo problema se
aparea con casos similares guardados en la base de casos)
2. Reutiliza (reuse) la solución propuesta en los casos para tratar de resolver el problema
3. Revisar (revise) la solución propuesta (en caso de ser necesario)
4. Almacenar (retain) la nueva solución como parte de un nuevo caso
El ciclo completo raramente ocurre sin la intervensión del humano
14.5.3
Representación
Un caso es un pedazo de conocimiento contextualizado representando una
experiencia. Los casos tienen:
227
1. el problema que describe el estado del mundo cuando ocurrió el caso
2. una descripción de la solución encontrada y/o
3. un resultado describiendo el estado del mundo después de que ocurrió
el caso
Los casos pueden representarse de diversas formas, pero la representación
frames/objetos es la más usada
No existe un consenso en cuanto a que información debe de estar en un caso,
sin embargo, se debe de considerar: (i) la funcionalidad y (ii) la facilidad de
adquisición de la información representada en el caso
14.5.4
Idexación
Asignar ı́ndices para facilitar la recuperación. Los ı́ndices deben de:
• ser predictivos
• contemplar el propósito para el cual el caso se va a utilizar
• ser suficientemente abstractos para ensanchar el uso de la base de casos
• ser suficientemente concretos para ser reconocidos en el futuro
Dentro de los métodos de indexación automáticos están:
• Indexación por atributos o dimensiones que son responsables de la
solución o que influyen en el resultado (checklist)
• Indexación basada en diferencias: selecciona por ı́ndices que diferencian
un caso de otro
• Métodos basados en similaridades o en explicaciones: produce un conjunto de ı́ndices para casos abstractos creados a partir de casos que
comparten atributos comunes. Los atributos que no comparten se utilizan como ı́ndices de los casos originales.
228
• Métodos inductivos: identifica atributos predictivos y los utiliza como
ı́ndices (variantes de ID3)
• Técnicas basadas en explicaciones: determina los atributos relevantes
a cada caso e indexalos por medio de ellos
14.5.5
Almacenamiento
Se debe de establecer un balance entre métodos que preservan el sentido
semántico de los casos y métodos que simplifican el acceso (se busca eficiencia)
Dentro de los modelos de memoria de casos están:
1. modelo de memoria dinámico (Schank, Kolodner)
2. modelo de ejemplos de categorias o category–examplar (Porter, Bareiss)
Modelo de Memoria Dinámico:
Se compone de MOPs los cuales son frames o unidades que se dividen en:
• instancias (casos, eventos, objetos)
• abstracciones (versiones generalizadas de instancias)
Se organizan jerárquicamente (episodic memory organization packets o EMOPs) o episodios generalizados (GE’s)
La idea es organizar casos especı́ficos que comparten propiedades en una
estructura más general o GE’s
Un GE tiene: normas (atributos comunes), casos e ı́ndices (atributos que
discriminan entre casos)
Los ı́ndices (pares atributo - valor) apuntan a otros GE’s más especı́ficos o a
casos
229
Cuando un nuevo caso aparea un atributo de un caso existente, se crea un
nuevo GE con ı́ndices que discriminan a los dos casos
La memoria en ese sentido es dinámica y los casos se indexan por los GE’s a
través de sus diferencias
En la práctica se limita el número de ı́ndices permitidos
Modelo de Ejemplos de Categorias (category-examplar)
Los casos se llaman exemplars y se organizan en una red semántica de categorı́as, relaciones semánticas, casos e ı́ndices
Cada caso se asocia a una categorı́a
A los atributos de los casos se les asigna diferente importancia con la cual se
describe la pertenencia a una categorı́a
Existen 3 ı́ndices
• ligas que apuntan de atributos (descriptores del problema) a casos o
categorı́as
• ligas que apuntan de categorı́as a sus casos asociados
• ligas que apuntan de categorı́as a los casos vecinos que difieren en un
número pequeño de atributos
Un exemplar se almacena de acuerdo al grado de pertenencia de una categorı́a
prototı́pica
Un nuevo caso con pequeñas diferencias con otro, puede no almacenarse y en
lugar “fundirse” con el
14.5.6
Recuperación
El problema de encontrar el “mejor” caso se ha tratado en analogı́a. Esto
involucra heurı́sticas para restringir/dirigir la búsqueda
230
El razonamiento basado en casos servirá para problemas de gran escala
cuando se resuelva los problemas de recuperación eficiente con miles de casos
Las heurı́sticas deben de permitir hacer apareos parciales
Métodos:
• Vecinos más cercanos: suma pesada de atributos que aparean. Problema: como determinar los pesos. Algoritmo tı́pico:
Pn
i=1
wi × sim(fiI , fiR )
Pn
i=1 wi
donde:
wi es el peso de importancia de un atributo
sim es la función de similitud
fiI y fiR son los valores del atributo i en el caso de entrada (I) y el caso
recuperado (R)
• Inducción (e.g., ID3) determina que atributos mejor discriminan casos
y genera un árbol de decisión para organizar los casos en memoria
• Basado en conocimiento: aplica conocimiento del dominio (no necesariamente completo) para identificar los atributos (y luego se puede usar
por ejemplo inducción tipo ID3)
• Por medio de templates: parecido a queries tipo SQL, recupera todos
los casos que cumplen con ciertos parámetros (muchas veces se usa
antes de las otras técnicas)
14.5.7
Adaptación
Una vez que se recupera un caso, la solución debe de adaptarse. La adaptación
se fija en las diferencias entre los casos y aplica reglas de adaptación. La
adaptación puede ser:
• Estructural: la adaptación con reglas es sobre la solución
231
• Derivacional: reutiliza los algoritmos, métodos o reglas usados para
generar la solución (la solución debe de guardarse con la secuencia o
plan utilizado). También se conoce como reinstanciación
Tipos de adaptación:
• Nula (e.g., útil con problemas complejos con soluciones simples)
• Ajuste de parámetros (compara parámetros especı́ficos)
• Abstracción y re–especialización
• Adaptación basada en crı́ticas (combinaciones de atribrutos)
• Reinstanciación (instanciación de atributos usados)
• Volver a derivar la solución
• Reparación guiada por modelos
• Substitución basada en casos (usar CBR para sugerir adaptaciones)
14.5.8
Aplicaciones
• Adquisición de conocimiento (Refiner)
• Leyes (Judge, Hypo, Grebe, Kics)
• Explicación de muertes anomalas en hombre y animales (Swale)
• Diagnóstico (Caseline (BA), Protos (oido), Casey (corazón), Cascade
(VMS), Pakar (edificios))
• Arbitro (Mediator, Persuader)
• Diseño (Cyclops, Julia (comida), Cadet (mecánico), Archie (arquitectura))
• Planeación (Batlle, Bolero (diagnóstico), Totlec (manufactura))
232
• Reparación–Adaptación (Chef (nuevas recetas), Plexus (planes), Coach
(football))
• Tutores (decider)
• + de 100 aplicaciones comerciales
Existen herramientas comerciales: CBR–Express, CasePoint, ART*Enterprise,
Casuel, ReCall, etc
14.5.9
Problemas
• Representación de los casos
• Organzación e indices a utilizar
• Estructuración de relaciones entre casos
• Bases de casos muy grandes
• Desarrollar de heurı́sticas de adaptación general
• Olvidar casos para mantener eficiencia
• Aprender acerca de ı́ndices que no se pensaron inicialmente
14.5.10
Eliminar Casos
Asi como hay varias técnicas para eliminar “conocimiento” en EBL, la idea
de utilizarlas directamente en CBR no ha resultado
La diferencia es que sistemas como Prodigy y Soar, aprenden Chunks o pedazos de conocimiento para acelerar su desempeño
CBRs por otro lado no tiene un resolvedor de problemas. Sin casos no puede
resolver problemas!!
Las polı́ticas de EBL se hacen para acelerar el sistema pero su capacidad
para resolver problemas no se ve afectada
233
En CBR eliminar casos puede ser desastroso en su capacidad de resolver
problemas
En CBR todos los casos no son iguales. Algunos contribuyen a su desempeño
(velocidad) (auxiliary cases) y otros a su capacidad de solución (pivotal cases)
Se pueden distinguir otros dos tipos de casos: spanning y support que reducen
la capacidad del CBR dependiendo de los casos que permanecen
La clave para catergorizar los casos se basa en: (i) lo que cubren (coverage):
cuantos problemas metas puede un caso resolver y (ii) alcance (reachability): desde el problema meta es el conjunto de casos que pueden usarse para
resolverlo
• Casos pivotes: si se eliminan, reducen la capacidad de solución de
problemas de CBR (es pivote si es reachable solo por su propio caso).
Son generalmente casos aislados
• Casos auxiliares: no afectan la capacidad del CBR y su eliminación solo
reduce su eficiencia. Es auxiliar si lo que cubren (su coverage) es subsumida por lo que cubre (el coverage de) un caso accesible (reachable).
Tienden a estar dentro de grupos de casos
• Casos spanning: no afectan la capacidad del CBR y sirven para ligar
regiones de cubrimiento (coverage) (se deben de mantener si se elimina
algún caso de una de sus regiones)
• Casos de soporte: casos especiales de casos spanning. De nuevo no
afectan la capacidad y existen en grupos. Eliminar uno o un subconjunto no afecta, pero eliminar el grupo entero es análogo a remover un
caso pivote.
Finalmente lo que se bueca es eliminar el mayor grupo de casos manteniendo
la capacidad del sistema CBR para resolver problemas
Idea: eliminar primero casos auxiliares, luego de soporte, luego spanning y
al final pivotes
234
14.6
Aprendizaje y Relación con Representación
de Conocimiento
Un elemento determinante dentro de los sistemas de aprendizaje es su lenguaje
de representación de hipótesis.
El lenguaje de hipótesis determina el espacio de búsqueda y su expresividad
(la representación que se obtiene).
Sistemas de Aprendizaje
SBL (árboles de decisión,
reglas de producción)
Perceptrón
Redes Neuronales
Algoritmos genéticos
Programación lógica
inductiva
CBR
EBL
...
Expresividad
lógica proposicional
funciones linealmente separables
funciones no lineales
- codificación del cromosoma lógica de predicados
- representación de casos lógica de predicados
...
235
Capı́tulo 15
Ontologı́as
15.1
Introducción
El conocimiento se puede ver como información acerca de información. Básicamente
en información semánticamente “rica”.
Un conjunto de conocimiento formalmente representado se basa en una conceptualización: los objetos y otras entidades que se asumen existir en un área
de interes y las relaciones entre ellas.
Una conceptualización es un vista abstracta, simplificada del mundo que
queremos representar con un propósito. Cada base de conocimiento, sistema
basado en conocimiento o agente a nivel de conocimiento está sujeto, explı́cita
o implı́citamente, a una conceptualización.
Una ontologı́a es una especificación explı́cita de una (o una parte de una)
conceptualización.
Lo que incluye es un vocabulario de términos y especificación de su sentido.
El grado de formalidad de esta especificación va desde: muy informal, semi–
informal, semi–formal, rigurosamente formal.
Ontologás son acuerdos acerca de conceptualizaciones compar236
tidas. Conceptualizacines compartidas incluyen ambientes para
modelar conocimiento del dominio; protocolos de comunicación
de contenido especı́ficos para agentes inter–operativos; y acuerdos
acerca de la representación de teorı́as de dominios particulares.
El término es tomando de filosofı́a, donde Ontologı́a se refiere a Existencia.
Para IA, lo que “existe” es aquello que puede ser representado.
Una agente se asocia a una ontologı́a. Esto garantiza consistencia, pero no
completes.
15.2
Motivación
La creciente automatización de procesos en general ha provocado una proliferación de sistemas de información con semánticas que se translapan.
Por otro lado existe la necesidad de reutilización de conoci–miento, para
eficientar esta automatización.
Los desarrollos de sistemas basados en conocimiento y de software en general,
normalmente se hacen en diferentes contextos, puntos de vista y suposiciones
acerca de su materia de estudio.
Cada uno usa su propio vocablo, pueden tener diferentes conceptos que a
veces se traslapan y diferentes métodos y estructuras.
Esto ha provocado problemas de comunicación por falta de entendimiento
compartido.
Esto limita:
• la inter–operabilidad
• el potencial de reutilizar y compartir información
Cómo resolverlo: teniendo un entendimiento compartido que unifique los
diferentes puntos de vista y que sirva para:
237
• propósitos de comunicación
• inter–operabilidad entre sistemas
• re–utilización
• confiabilidad
• especificación
Una posibilidad es tener un modelo de conocimiento, haciendo una analogı́a
con un modelo de datos.
Un modelo de datos describe la estructura lógica de los datos y su aplicación.
Uno de los trabajos seminales fué el del modelo de entidad–relación.
El modelo es una descripción esquemática de las instancias del modelo. Estas
instancias, representan los datos que son usados por la aplicación.
Se han hecho muchas extensiones al modelo entidad–relación para tratar
de capturar el significado de los datos (la parte semántica). Una extensión
común es usar je–rarquı́as de clases–subclases.
Algunas de sus limitaciones son:
• El modelo de datos toma un solo punto de vista del mundo. Describe los
objetos o instancias de interés, pero bajo una sola posible intepretación.
Si uno quiere re-utilizar algún término, se hace evidente que el término
puede tener diferentes interpretaciones dependientes del contexto.
La reutilización de conocimiento complejo es imposible sin tomar en
cuenta los diferentes puntos de vista.
Algo de ésto existe en bases de datos, pero toda la información tiene
que estar presente. Esto es, los puntos de vista no añaden información,
por lo que la visión global es limitada.
• Por otro lado, existen desarrollos en modelo de datos orientados a objetos. Sin embargo, siguen siendo pobres en su representación de relaciones entre objetos. La jerarquı́a y herencia basada en la relación IS-A
es sólo una de las posibles relaciones que pueden existir.
238
Una posible solución es hacer accesible la semántica de la información almacenada: qué contiene, qué propiedades y cómo puede usarse?
Si algún agente entiende la ontologı́a puede usar la información.
Las ontologı́as en sı́ mismas también puede ser reutilizadas.
Ası́ como existe una frontera difusa entre conocimiento e información, existe
una frontera difusa entre ontologı́as y modelos de datos. Finalmente, una
ontologı́a se puede ver como un modelo de datos de conocimiento.
Principio 1 : la representación de objetos del mundo real siempre dependen
del contexto en el que los objetos son usados. Este contexto puede verse
como un punto de vista tomado del objeto. Es generalmente imposible
enumerar de antemano todos los posibles puntos de vista útiles de (o
clases de) objetos .
Principio 2 : la reutilización de algún pedazo de cono–cimiento requiere de
una descripción explı́cita de los puntos de vista que están inherentemente presentes en el conocimiento. De otra forma, no hay forma de
saber si el pedazo de conocimiento es aplicable a una nueva aplicación
y porqué.
Una ontologı́a especifica una conceptualización, una forma de ver al mundo.
Por lo que cada ontologı́a incorpora un punto de vista.
Una ontologı́a contiene definiciones que nos proveen del vocabulario para
referirse a un dominio. Las definiciones dependen del lenguaje que usamos
para describirlas.
Algunas de las caracterı́sticas tı́picas de las ontologı́as son:
• Pueden existir ontologı́as múltiples:
El propósito de una ontologı́a es hacer explı́cito algún punto de vista.
A veces necesitamos combinar dos o más ontologı́as.
Cada ontologı́a introduce conceptualizaciones especı́ficas.
• Podemos identificar niveles de abstracción de las ontologı́as.
239
Estos niveles de generalización nos da una topologı́a de ontologı́as.
La idea es caracterizar una red de ontologı́as usando multiplicidad y
abstracción. Como no podemos aspirar a tener una descripción completa del mundo, podemos pensar en una estrategia de construcción
gradual de abajo hacia arriba.
• Multiplicidad de la representación. Un concepto puede ser representado de muchas formas, por lo que pueden coexistir múltiples representaciones de un mismo concepto.
• Mapeo de ontologı́as.
Establecer relaciones entre los elementos de una o más ontologı́as, para
establecer conecciones, especializaciones, generalizaciones, etc.
15.3
Tipos de Ontologı́as
En KACTUS identificaron 4 tipos de ontologı́as de acuerdo a su alcance de
aplicabilidad:
1. Ontologı́a de la aplicación: usadas por la aplicación. Ontologı́a de
procesos de producción, de diagnóstico de fallas, de diseño intermedio
de barcos, etc.
2. Ontologı́a del dominio: especı́ficas para un tipo de artefacto, generalizaciones sobre tareas especı́ficas en algún dominio. Por ejemplo, ontologı́a del proceso de producción de hidrocarburos, de la red eléctrica,
de barcos, etc.
3. Ontologı́as técnicas básicas: describe caracterı́sticas generales de artefactos. Por ejemplo: componentes, procesos, funciones.
4. Ontologı́as genéricas: describe la categorı́a de mas alto nivel.
Otra forma de indentificar ontologı́as es desde su punto de vista: por ejemplo:
fı́sico, de comportamiento, funcional, estructural, topológico, etc.
Por otro lado tambien se puede caracterizar por su estructuración, i.e., qué
tan estructurada está.
240
15.4
Criterio de Diseño de Ontologı́as
Cuando decidimos cómo representar algo en una ontologı́a estamos haciendo
decisiones de diseño.
1. Claridad: una ontologı́a debe de poder comunicar de manera efectiva
el significado de sus términos. Las definiciones deben de ser objetivas
y comentadas en lenguaje natural
2. Coherencia: debe de permitir hacer inferencias que sean consistentes
con las definiciones
3. Extendible: debe de anticipar usos y permitir extenciones y especializaciones monotónicas
4. Sesgo de codificación mı́nimo (Minimal encoding bias): debe de especificar al nivel de conocimiento sin depender de una codificación particular a nivel de sı́mbolo.
5. Mı́nimo compromiso ontológico: debe de hacer la menor cantidad de
“pretensiones” acerca del mundo modelado.
En estos criterios de decisión se tienen que hacer balances.
15.5
Usos de Ontologı́as
1. Comunicación
• modelos normativos: creado la semántica de un sistema y modelo
para extenderlo y tranformarlo entre diferentes contextos
• red de relaciones:
• consistencia y falta de ambigüedad
• integración de diferentes perspectivas de usuarios
241
2. Inter–operabilidad: Usar ontologı́as como una inter–lingua.
La inter–operabilidad puede ser: (i) interna: bajo el control de una
unidad organizacional, (ii) externa: aislada del resto, (iii) integrada
entre dominios, (iv) integrada entre herramientas.
3. Ingenierı́a de sistemas: especificación, confiabilidad y reutilización
15.6
Metodologı́a de Construcción usada en
KACTUS
1. Especificar el contexto de aplicación y el punto de vista del modelado.
El contexto de aplicación describe el dominio de aplicación, los objetos
de interes del dominio y las tareas que se van a realizar por la ontologı́a
(para que se va a construir).
El modealdo del punto de vista describe el tipo de modelo, tales como,
dinámico - estático, funcional - causal, etc.
Por ejemplo: dentro de la electricidad podemos pensar en 4 grandes
conceptos: generación, distribución, transporte y consumo.
Los componentes de la funcionalidad son: generadores, lı́neas de transmisión, capacitores, transformadores, cargas, etc.
Algunas variables son: voltage, intensidad, potencia, y sus leyes.
2. Hacer un diseño preliminar basandose en una ontologı́a existente.
Implica una estapa de análisis y de mapeo de ontologı́as
El mapeo puede ser:
• de formalización: de la especificación o del modelado.
• para aumentar la parte declarativa de la ontologı́a
• para especializar términos creando subtipos o restricciones de tipos
• mezcla de todos
Este paso es el más difı́cil e implica mayor trabajo.
242
Por ejemplo, una lı́nea de transmisión es un elemento que transporta
energı́a eléctrica, genera pérdidas y baja el voltage.
El proceso de transporte de energı́a es caso especı́fo de un proceso fı́sico,
por lo que podemos tomar una ontologı́a de procesos fı́sicos.
Por otro lado, la descomposición de procesos es otro aspecto que podemos incorporar usando una ontologı́a de descomposición.
Después tenemos que verificar que los conceptos encontrados en las
ontologı́as son adecuados para nuestro propósito.
3. Hacer un diseño definitivo y evaluarlo
Básicamente debemos de considerar que la ontologı́a cosntruida va a
ser reutilizada.
Algunos principios generales de reutilización son: abstracción (lo más
abstracto posible, pero suficientemente concreto) modularización (aislar conceptos), jerarquización (orden) y estandarización (e.g., STEP).
4. Documentación y reutilización.
La documentación tiene que hacerse en forma paralela a los puntos
anteriores y debe de tener el tipo de mapero en que se basa la nueva
teorı́a, diferencias semánticas con las ontologı́as seleccionadas, justificación de las decisiones tomadas, evaluación, conocimiento adicional
para usarla, etc.
También debe de ser indexada y colocada (ordenada) con las ontologı́as
existentes para su reutilización.
15.7
Metodologı́a Genérica
1. Indetificar el propósito y alcance (usuarios potenciales)
2. Construcción de la ontologı́a
• Captura: (i) identificación de los conceptos y relaciones claves en
el dominio de interes, (ii) producción de definiciones no ambigüas
de conceptos y de sus relaciones, (iii) identificación de términos
para referirnos a esos conceptos y relaciones
243
• Codificación: representación explı́cita de la conceptualización en
un lenguaje formal: (i) comprometerse a términos básicos de especificación (a veces se llama meta–ontologı́a), (ii) escoger el lenguaje
de representación adecuado (iii) codificarlo
• Integración de ontologı́as existentes: cómo, cuáles y si vamos a
usar alguna ontologı́a existente
3. Evaluación
4. Documentación
15.7.1
Metodologı́a (tips) para la definición de términos
• hacer tormentas de ideas para producir todos los términos relevantes
y frases, y estructuración inicial para identificar referencias cruzadas
entre las áreas
• Producir definiciones
• Determinar la meta–ontologı́a: inicialmente no casarse con ninguna
• Dividir en áreas que tengan el traslape semántico más grande y trabajar
primero en ellas.
• Proceder de en medio hacia afuera: esto es definir los términos considerados fundamentales y moverse a niveles más abstractos y especı́ficos.
Una metodologı́a de abajo hacia arriba produce demasiado nivel de
detalle, aumenta esfuerzo, difı́cil identificar cuestiones comunes entre
conceptos relacionados, lo cual aumenta el riesgo de tener inconsistencias.
Una metodologı́a de arriba a abajo, puede resultar en establecer una
categorización arbitraria, con posible poca estabilidad y puede no identificar cuestiones comunes en una red compleja.
De en medio hacia afuera es un balance entre los dos. Los detalles
surgen sólo si se necesitan y las categorias surgen naturalmente.
244
15.8
Proyectos de Ontologı́as
15.8.1
Para inter–operabilidad
• Formato de proceso de intercambio (Process Interchange Format - PIF):
es un proyecto para intercambiar modelos de procesos de negocioas
usando diferentes representaciones.
Usa una inter–lingua con traductores locales entre PIF y representaciones de procesos locales.
• Ontologás de planes KRSL: proyecto ARPA para desarrollar un lenguaje
de especificación de representación de conocimiento (KRSL) para representar planes e información de planificación.
Su objetivo es proveer un vocabulario común de conceptos, relaciones
y condiciones comunes para actividades de planificación.
Tiene dos aspectos: (i) una ontologı́a abstracta con las categorı́as principales (tiempo, espacio, agentes, acciones y planes) y un conjunto de
ontologı́as modulares especializadas con conceptos y teorı́as alternativas comunes a sistemas de planificación (e.g., ontologı́as especı́ficas
para puntos de tiempo, relaciones temporales, etc).
La ontologı́a abstracta busca capturar las categorı́as generales en donde
existe poco desacuerdo, y las especı́ficas permiten expresar diferentes
puntos de vista de un mismo concepto.
15.8.2
Estandares y Lenguajes de especificación de ontologı́as
15.8.2.1
Lenguajes
En principio podemos usar cualquier lenguaje de programación, pero a veces
carecen de expresividad para escribir lo que queremos decir.
Algunas de las primitivas que se añaden son:
245
• contructores para agregados, multiples jerarquı́as clase-subclase, reglas
y axiomas
• varias formas de modularización, para poder escribir diferentes ontologı́as y sus inter–relaciones.
• la posibilidad de tomar una visión a un meta–nivel.
Algunos lenguages utilizados son: EXPRESS (STEP), CML (CommonKADS),
Ontolingua.
Se busca en el lenguaje: (i) expresividad y (ii) uso.
Todavı́a no hay un estandar. Lo importante es el contenido más que la
sintáxis.
15.8.3
Estandares
• Workflow management coalition (WfMC)
• STEP y su lenguaje de especificación EXPRESS
STandard for the Exchange of Product model data: es una inter–lingua
para definir y especificar productos, asociado a su ciclo de vida: diseño,
manufactura, uso, mantenimiento y desecho.
El objetivo es dar un mecanismo capaz de describir datos del producto
durante su ciclo de vida.
• CORBA
The Common Object Request Broker Arquiteture está surgiendo como
estandar para recuperar objetos y para invocar operaciones en objetos
a través de la red.
Provee un mecanismo en donde los objetos pueden hacer peticiones y
recibir respuestas de forma transparente.
El lenguaje (IDL - Interface Definition Languaje) especifica los objetos
y las operaciones para aplicaciones remotas/distribuidas.
Incorpora nociones informales de ontologı́as.
246
• KIF y gráfos conceptuales
Knowledge Interchange Format y los grafos conceptuales son lenguajes
para representar ontologı́as basados en lógica de primer orden.
KIF pretende ser un lenguaje capaz de representar la mayorı́a de los
conceptos y distinciones actuales de los lenguajes más recientes de representación de conocimiento.
KIF está basado en lógica de predicados con extensiones pare definir
términos, meta–conocimiento, conjuntos, razonamiento no–monotónico,
etc.
15.8.4
Integración de Ontologı́as
• CYC proyecto de MCC (Microelectronics and Computer technology
Corporation) que da los fundamentos para razonamiento de sentido
común mediante el desarrollo de ontologı́as para una gran variedad de
aplicaciones especı́ficas del dominio.
Todo el conocimiento esta representado declarativamente en una variante de lógica de primer orden en un lenguaje llamado: CYCL.
Tiene mecanismo de inferencia y de control.
Las ontologı́as están organizadas en conjuntos modulares llamados microteorı́as. Cada microteorı́a captura el conocimiento y razonamiento
requerido para un dominio especı́fico, tales como espacio, tiempo, causalidad o agentes.
Pueden existir múltiples microteorı́as para un solo dominio reflejando
diferentes perspectivas
Se puede ver la ontologı́a de CYC, más como una ontologı́a monolı́tica,
como una red de microteorı́as.
• TOVE
TOronto Virtual Enterprise: desarrollar una ontologı́a para empresas.
Usa definiciones basadas en lógica de primer orden y permite deducir
respuestas a preguntas de sentido común (usando Prolog).
247
• Enterprise
Proyecto parecido a TOVE pero Inglés, pero el énfasis es sobretodo en
proveer un ambiente de integración de herramientas y métodos usados
en los negocios.
• KACTUS
Proyecto ESPRIT para el desarrollo de una metodologı́a de reutilización
de conocimiento técnico.
Usa CML (Conceptual Modelling Language) desarrollado como parte
de KADS dentro del proyecto de CommonKADS.
Hace disticiones explı́citas entre conocimiento del dominio, de inferencia, de tareas y de resolución de problemas.
Una parte central es la biblioteca de ontologı́as organizadas por los
niveles de abstracción.
• Plinius
El objetivo es la extracción semi–automática de cono–cimiento a partir
de textos en lenguaje natural enfocado a materiales cerámicos.
Usa un lexicón para mapear tokens de lenguaje natural a expresiones
formales en el lenguaje de representación de conocimiento. La ontologı́a
define el lenguaje en que la parte semántica esté expresada.
15.9
Herramientas de Soporte: El servidor
de ontologı́as (KSL)
Existe un servidor puesto por el laboratorio de sistemas de conocimiento
de la Universidad de Stanford que permite: crear, editar, evaluar, publicar,
mantener y revisar ontologı́as.
Permite trabajo colaborativo a través de internet (http://www-ksl.stanford.edu/)
Usa Ontolingua (parecido a KIF).
248
15.10
Trabajo Futuro
• desarrollo de ontologı́as como soporte de inter–lingua e interoperabilidad entre herramientas en algún dominio (traductores e integración)
• desarrollo de herramientas para apoyar el diseño y evaluación de ontologı́as
• desarrollo de bibliotecas de ontologı́as
• desarrollo e integración de nuevas ontologı́as
• metodologı́as de diseño y evaluación de ontologı́as
249
Capı́tulo 16
Artı́culos Seminales de
Representación de
Conocimiento
16.1
Some Problems and Non-Problems in
Representation Theory, Patrick J. Hayes
Objetivo: dar cuenta de algunos problemas en representación de conocimiento.
16.1.1
Semántica
Existen muchas formas de represertar conocimiento en forma sintáctica.
El autor se refiere a un scheme: representación sistemática de conocimiento
(e.g., lógica, lenguajes de programación, notación musical, convenciones de
mapas, etc).
Una configuración es una expresión de un scheme, por lo que un scheme
es un conjunto de configuraciones.
Todos son formales en el sentido que pueden contestar si una expresión
250
está bien formada (well-formed ).
Ejemplos que fallan (no se pueden establecer que algo sea well/ill-formed ):
pinturas, fotografı́as, poemas, conversaciones, conciertos musicales, etc.
Esto permite hacer la distinción entre schemes (formales) que pueden ser
usados por una máquina y escenas o situaciones de percepción (informales)
que requieren el uso de conocimiento para su interpretación.
El scheme sirve como mecanismo de convenir un cierto sentido acerca
del mundo, por lo que debe de tener asociado una teorı́a semántica (i.e.,
correspondencia entre configuraciones del scheme y situaciones del mundo
externo).
Con una teorı́a semántica (y sólamente con una) se pueden hacer preguntas de equivalencias (entre diferentes representaciones o schemes).
Algo que resalta es la semántica de lógica de primer orden (a la Tarsky).
El que se tenga una semántica, no quiere decir que sea precisa, sin embargo, sin ella no se puede decir lo que expresa una configuración.
El pensar en un formalismo sólamente como un lenguaje de programación
es otro asunto.
16.1.2
Linguı́stica y Representación Directa
Distinción entre representaciones que son descripciones en un lenguaje, y
representaciones que son de algúna forma modelos de lo que representan.
Para hacer la distinción en forma precisa se requiere establecer el nivel de
representación (cualquier representación puede ser descriptiva o representacional dependiendo de su nivel).
Cualquier representación es una representación directa de algo.
El sentido de algunas configuraciones puede ser obtenido del sentido de
sus partes.
251
La representación directa tiende a depender de la similitud entre el medio
en el que la representación está embebida y lo que representa (e.g., un mapa
de un cuarto es una representación directa de las relaciones espaciales, en el
plano horizontal, del cuarto).
El medio en el cual uno construye configuraciones, esto es arreglos de
marcas en que las relaciones exhibidas directamente en el medio se cumplen
entre las marcas.
Un lenguaje se define (sintácticamente) en terminos de sı́mbolos primitivos y de reglas gramaticales (que definen expresiones en términos de sus
partes).
Un modelo asocia un significado a cada sı́mbolo primitivo y una regla
semántica a cada regla gramatical que define el significado de configuraciones
de términos en función del significado de sus partes.
El significado de las configuraciones debe existir en un espacio que es similar al medio de representación, y las relaciones sintácticas que se despliegan
directamente por la configuración simbólica deben de igualar las representaciones semánticas correspondientes.
Esto depende de que exista una relación de homomorfismo entre la configuración y la realidad.
El problema entonces radica en caracterizar el “medio” y la “similaridad”.
Representaciones directas pueden tener una teorı́a de modelo precisa (a
la Tarsky), se pueden usar sistemas deductivos eficientes, y la noción de
“medio” captura la idea de niveles de representación.
La selección de las relaciones primitivas definen tanto el medio como el
nivel al cual el análisis deja de existir.
La eficiencia dbe de considerar las propiedades computacionales del medio.
252
16.1.3
Exhaustividad y Platicidad
Un scheme (con semántica Tarskiana) es en general una descripción parcial
del medio ambiente.
Restringe las formas de satisfacer el mundo pero, en general, nos las
determina de manera única.
Esto permite añadir libremente nueva información (tratando de mejorar
la especificación del mundo) y por lo tanto deja abierta la posibiliadad a
crear inconsistencias (un mundo imposible).
La plasticidad (facilidad de hacer cambios a configuraciones) es escencial
en aprendizaje y para cualquier sistema que trabaje con información limitada
de un mundo incierto.
A veces, nos gustarı́a poder decir que tenemos una representación exhaustiva (en algún sentido), lo cual trae a colación el frame problem (i.e., la
imposibilidad de representar todo lo relevante).
Podemos pensar que tenemos descripciones exhaustiva, formadas por ciertas propiedades desde un cierto punto de vista, lo cual podrı́a usarse para
hacer analogı́as de forma deductiva.
También se puede hablar de representaciones directas fuertes (e.g., un
mapa), donde existe una correspondencia entre todos los objetos y sus representaciones. Aquı́ sin embargo, no se tiene la propiedad de “plasticidad”, ya
que el añadir nueva información implica hacer alteraciones (las cuales pueden
haberse usado para otras deducciones).
Con ésto, surge la necesidad de manterner información de dependencias,
ya que al eliminar/cambiar un hecho puede afectar otros que fueron deducidos
a partir de él (TMS).
Una alteración más fuerte serı́a en la ontologı́a. El paso primordial es
introducir una nueva noción y luego definir la noción vieja en términos de la
nueva.
Una restricción fuerte en la teorı́a nueva es que debe de “explicar” la
teorı́a vieja. Desde este punto de vista, alteraciones son de alguna forma
253
refinamientos.
16.1.4
Razonamiento Evidencial
El poder representar que algo sea (sirva de) evidencia para otro objeto. Si
A implica B, A es buena evidencia para B. Esto puede servir para guiar el
razonamiento.
El problema es cómo expresar adecuadamente la noción que un pedazo
de conocimiento es buena evidencia de otro.
Pueden existir varias nociones de “buenas evidencias”. Esto sugiere la
noción de explicaciones alternativas y plausibilidad. Si existen varias explicaciones para A sugiere que A es evidencia de que una de ellas es verdadera.
El problema es cómo descubrir esa colección de posibles explicaciones
evidenciales.
16.1.5
Control
Un sistema que hace inferencias para generar nuevos hechos debe de poder
controlar sus capacidades de su mecanismo de inferencia de algı́n modo.
Un sistema tiene que representar y usar conocimiento acerca de su propio
comportamiento deductivo.
Esta información meta-deductiva se debe de hacer explı́cita y separarla
de la información de hechos representados en el esquema (por razones de
claridad, platicidad y poder deductivo).
Un problema, es entonces, encontrar un conjunto de primitivas de control
adecuadas.
Es importante que la información de control esté representada en un
squeme compatible con el scheme usado para representar el conocimiento del
sistema, para que el control pueda estar involucrado en inferencias hechas y
cambios.
254
Uno de los problemas principales (en general) está entre el balance del
poder expresivo y su implementación (ver artı́culo de Brachman y Levesque).
En general, se debe de poder tener una buena noción de una teorı́a (un
pedazo de conocimiento organizado acerca de un área).
16.1.6
Substancias, Partes y Objetos Compuestos
La mayorı́as de las representaciones están basadas en la idea en representar
entidades individuales y las relaciones entre ellas.
Sin embargo, existen otras “cosas” como las substancias (masas), por
ejemplo, agua, madera, acero, etc. y cómo representarlas vs. cosas individuales.
A veces nos referimos a las substancias como entidades con ciertas propiedades
y sus relaciones con otras. Pero existen ciertos problemas. Por ejemplo, si se
conservan propiedades al juntar o dividir substancias.
Por ejemplo si juntamos dos “masas” nos quedamos con una, por lo que
debemos de hablar de cantidades.
Existen propiedades relacionadas con el material en si (densidad, temperatura, etc.) y otras relacionadas con el objeto (masa, peso, forma, etc.). Ver
también CYC.
Existen propiedades que se transmiten y otras que no.
Otro problema relacionado es cuando se acumulan elementos hasta que
dejan de ser reconocidos como un objeto y pasan a ser otro (e.g., un monton
de arena vs. una montaña).
Se tiene que representar que si un individuo lo divides deja de existir
como tal y distinguir entre lo que puede armarse (e.g. un coche) y lo que no
(e.g., un perro).
Tenemos que hacer una clara distinción entre objetos hechos de algo (material) y compuest de algo (partes). Serı́a interesante explorar nociones ontológicas donde coexistan estas nociones.
255
16.1.7
Otros Aspectos
16.1.7.1
Clasificaciones irrelevantes
Por cierto tiempo se han defendido los resolvedores generales de problemas
cuyas únicas entradas son las descripciones del problema y sus salidas su
solución (vistas como cajas negras).
La falacia viene, no tanto de la insistencia en la generalidad, sino en el
énfasis que se comporten como cajas negras y que no se haga “trampa”, lo
cual provocó poca útiles en problemas reales.
En realidad, se necesita tanto generalidad como conocimiento especı́fico.
Los resolvedores generales de problemas no deben deshecharse sino incorporarse a sistemas más flexibles.
16.1.7.2
Semántica
Se ha hecho trabajo reciente (70’s) dentro de lenguaje natural para considerar
la semántica. El punto fundamental es que el significado de las expresiones
linguı́sticas radica en expresiones extra–linguı́sticas, y esto no se ha considerado.
16.1.7.3
Difuso
Otros autores han propuesto otras lógicas, en particular, difusas, para capturar las imprecisiones en las deducciones del hombre.
El autor no ve la necesidad de usar lógica difusa.
El punto principal que hace es que en todo case se mantengan las escalas
difusas, pero no afectar el sistema inferencial.
256
16.2
Epistemological Problems in Artificial Intelligence, John McCarthy
IA se puede dividir en dos partes:
• la parte epistemológica: (i) qué hechos del mundo son observables, (ii)
cómo pueden representarse, y (iii) qué reglas permiten derivar conclusiones legı́timas de esos hechos (resumiendo: qué información puede
representarse)
• la parte heurı́stica: cómo buscar espacios de posibilidades y aparear
patrones (hacer accesible la información)
La solución a un problema epistemoógico puede servir para muchos problemas, soportar diferentes enfoques heurı́sticos, sin embargo, como se verá,
es difı́cil formalizar hechos de conocimiento común.
El uso de lógica de primer orden en investigación epistemológica es diferente a plantearse si lógica de primer orden nos da estructuras de datos adecuadas para representarlas en un programa.
Por otro lado, si lógica de primer orden es un buen lenguaje de programación también es un asunto aparte.
Una teorı́a no es adecuada epistemológicamente si no puede cumplir cierta
meta haciendo deducciones de la teorı́a sin importar la velocidad a la que
corra el programa.
Una teorı́a, considerada epistemológicamente adecuada, se considera heirı́sticamente
inadecuada si ningún programa corriendo a una velocidad adecuada puede
resolver el problema con cualquier representación de los hechos que se use.
El que los programas de IA no sean epistemológicamente adecuados para
lograr inteligencia (i.e., no pueden resuelver metas que requieren inteligencia
independientemente de la velocidad que puedan correr) es porque no se han
resuelto los problemas epistemológicos.
Problemas epistemológicos:
257
1. Para resolver un problema se requiere la colaboración de alguien? o de
sobreponerse a alguien?
En cualquier caso, se deben de tomar en cuenta los deseos y metas de
la otra persona. Predecir sus acciones (ponerse en el lugar de la otra
persona). En algunos casos se debe de negociaciar.
Se podrı́a hacer la suposición de considerar a la otra persona como
máquina.
2. Se requiere adquirir conocimiento?
Tenemos que razonar con lo que la otra persona pueda saber y cómo
se obtiene la información (directamente o en forma más compleja (se
generan nuevas oraciones o sólo se instancian variables).
3. Existen eventos/acciones concurrentes?
Cómo expresar reglas que dan efectos de acciones y eventos que ocurren
concurrentemente?
Es necesario considerar al tiempo, pero cómo representarlo?
Los formalismos para expresar hechos acerca de paralelismo y programas indeterminados proveen de nuna axiomatización inicial al respecto.
4. Se debe de expresar conocimiento acerca de espacio, localizaciones,
formas y acomodo de objetos en el espacio.
Una forma de representar información geométrica del tipo observable
por la gente. Parte del problema es la limitante del lenguaje para
expresar conocimiento visual (e.g., describir una cara o un paisaje).
5. Se necesita un formalismo que trate a los objetos tridimensionales como
instancias de patrones y a los bidimensionales como proyecciones de
esos patrones (relación entre 3D y 2D).
6. Relación entre objetos y sus materiales. Los objetos puede tener partes
y separarse, cortarse y destruirse. Falta una forma adecuada de representar esta información.
7. Representación de conceptos modales, como causalidad o capacidad de
acción. Falta también incorporar información de habilidades.
258
8. El frame problem: expresar qué es lo que no cambia al realizarse un
evento.
9. El qualification problem (más general que el frame problem): A que
nivel tenemos que llegar para especificar el problema (siempre nos van
a quedar situaciones no previstas). Por lo que tenemos que poder hacer
deducciones para conjeturar que nada previene la realización de cierta
acción.
16.2.1
Cirscunscription
Propone usar circunscripción para tratar de resolver el qualification problem.
Existe la idea de que no todo el razonamiento humano es deductivo, por
lo que un sistema lógico formal no es en principio un buen candidato para
formalizar todo el conocimiento.
Idea: conocemos objetos en una clase y sabemos como generar más. Concluı́mos entonces que ésto nos da a todos los objetos de la clase, i.e., “circunscribimos” la clase a los objetos que sabemos como generar.
e.g., tenemos 3 objetos que satisfacen P
P (a) ∨ P (b) ∨ P (c) ∨ ∀x(P (x) ⊃ P (f (x))) ∨ ∀xy(P (x) ∨ P (y) ⊃ P (g(x, y)))
Se puede cirsunscribir como:
Φ(a) ∨ Φ(b) ∨ Φ(c) ∨ ∀x(Φ(x) ⊃ Φ(f (x)))
∨∀xy(Φ(x) ∨ Φ(y) ⊃ Φ(g(x, y))) ⊃ ∀x(Φ(x) ⊃ P (x))
Donde Φ en un predicado variable que se puede substituir por cualquier
predicado.
Es una conjetura, porque puede existir otro objeto, d que cumpla con
P (d).
259
La circunscripción no es: (i) transitiva (no se cumple que si: p ⊢ q y q ⊢ r
entonces p ⊢ r), ni (ii) monotónica (no se cumple que si A ⊢ p y A ⊂ B
entonces B ⊢ p), por lo que no es un proceso deductivo.
No es monotónico porque hace la conjetura que las formas que conocemos para generar p son todas las que existen. Un conjunto más grande de
oraciones puede tener otras formas de generar p.
Circuscripción lo podemos expresar en toerı́a de conjuntos como:
(∀Φ)(a ∈ Φ ∨ b ∈ Φ ∨ c ∈ Φ ∨ (∀x)(x ∈ Φ ⊃ f (x) ∈ Φ)∨
(∀xy)(x ∈ Φ ∨ y ∈ Φ ⊃ g(x, y) ∈ Φ)) ⊃ P ⊂ Φ
El axioma esquemático de inducción en aritmética es el resultado de
aplicar circunscripción a la constante 0 y la operación de sucesor.
Se puede aplicar cirscunscripción a oraciones arbitrarias en cálculo de
predicados.
La relativization de p con respecto a Φ (pΦ ) se define como la oración
resultante de remplazar los cuantificadores universales (∀xE) y existenciales
(∃xX) por: ∀x(Φ(x) ⊃ E y ∃x(Φ(x) ∨ E). La circunscripción de p es:
pΦ ⊃ ∀x(P (x) ⊃ Φ(x)).
Si hay constantes y sı́mbolos funcionales hay que añadir Φ(c) para cada
constante y ∀x(Φ(x) ⊃ Φ(f (x))) para cada sı́mbolo funcional unario (o sus
equivalentes para sı́mbolos funcionales de aridad superior).
Su intepretación es que los únicos objetos que existen que satisfacen P
son aquellos que la oración p los fuerza a existir.
Aplicar el esquema de circunscripción requiere inventar un predicado adecuado para substituir el sı́mbolo Φ.
La interpretación semántica de aplicar cirscunscripción serı́a probar por
circunscripción que una oración p es verdadera en todos los modelos mı́nimos
de p (donde una deducción de p es verdadera en todos los modelos de p, y
mı́nimo está en términos de ≤, osea que todos los elementos de un domunio
son elementos de otro y los comunes tienen el mismo valor de verdad).
260
No siempre existen los modelos mı́nimos y cuando existen no siempre son
únicos.
16.2.2
Conceptos como Objetos
Si se remplaza un término por otro igual en lógica de primer orden, podemos
hacer concluciones no válidas (e.g., yo se algo que es igual a otra cosa, eso
no quiere decir que yo sepa la otra cosa).
Se pueden usar operadores modales para expresar conocimiento, creencias, deseos y necesidades y realizar remplazos sólo en ciertos contextos. Esto
complica la discusión semántica.
Por otro lado, podemos tratar conceptos como objetos individuales.
Por lo que podemos expresar que dos conceptos no son iguales (aunque
se llamen igual) si denotan objetos diferentes (e.g., denotes(pegasos,X) no
existe para ningúna X, significando que no existen pegasos aunque si exista
el concepto).
Mientras que un concepto denota un solo objeto, el mismo objeto puede
ser denotado por varios conceptos.
Un problema de IA que necesita conceptos para su formalización exitosa
es la relación entre conocimiento y habilidad (conocimiento y acción).
La semántica de razonamiento acerca de objetos se vuelve más complicada
si uno se refiere a ellos únicamente a través de conceptos.
Otro aspecto es la capacidad de inferir algo que no se sabe (argumenta
que circunscripción puede ayudar). Esto involucra decidir qué conocimiento
es relevante y construir modelos o predicados de circunscripción.
Notas filosóficas: la filosofı́a tiene una relación más directa con IA que con
cualquier otra ciencia. Ambas requiere formalizar el sentido común.
1. El construir una visión del mundo en la estructura de un programa no
da la habilidad al programa de expresar explı́citamente esa visión.
261
2. El sentido común requiere de una formulación cientı́fica.
3. Se requiere de una formalización, pero la estructura fundamental del
mundo todavı́a no se conoce, por lo que se requiere de formulaciones
imprecisas y a veces inconsistentes.
4. Necesitamos conceptos que tienen sentido sólo en teorı́as aproximadas.
Se requiere de un formalismo que permita ir más alla de los aseveraciones hacia un siguiente nivel de aproximaciones cuando sea posible y
necesario.
5. Existen dos formas genéricas de hacer programas: (i) empı́ricamente
(teorı́as que conectan datos con acciones) (ii) realisticamente (hechos
que existen independientemente del programa y que la realidad no es
sólo lo que interactua con el programa). El autor le da preferencia a la
realista.
16.3
Prologue to “Reflection and Semantics
in a Procedural Language”, Brian C. Smith
Habilidad de auto-reflexión, introspección, auto-referencia, etc., y su importancia dentro de la mente, que se ha llamado meta-X (meta-reglas, metaconocimiento, meta-control, etc) ha cobrado gran relevancia dentro de los
sistemas de IA (1982).
Una de las preocupaciones principales en la representación de conocimiento,
es la flexibilidad y modularidad en el proceso de razonamiento. Aunque se
han obtenido buenos resultados en tareas especı́ficas, todavı́a falta mucho por
hacer para simular el sentido común o qué hacer en situaciones novedosas.
Si las estrategias de solución de problemas y el comportamiento de formación de hipótesis pueden tratarse como parte del dominio de estudio, entonces (por lo menos en principio) serı́a posible construir sistemas que exhiban la misma modularidad acerca de su proceso de pensamiento como lo
hacen con el sujeto primario de dominio.
La habilidad de razonar acerca del procesamiento de razonamiento no
262
hace a los sistemas automáticamente flexibles, sin embargo demostrar esa
habilidad se cree que es un pre-requisito para que lo sean.
Se usa la hipótesis de representación de conocimiento, que dice que cualquier
proceso capaz de razonar en forma inteligente acerca del mundo debe de alguna forma tener en parte estructuras que representen aquel conocimiento y
creencias que el proceso tenga.
Se supone que existe un proceso que revisa las estructuras representacionales de tal forma que el comportamiento inteligente es el resultado de la
interacción de estas partes. Además se asume que reaccion sólo a la forma
de las representaciones sin considerar lo que signifiquen, lo cual es la escencia
de que la computación involucra manipulación formal simbólica.
La hipótesis de representación de conocimiento podemos resumirla como
sigue:
Cualquier mecanismo que contenga procesos inteligentes tendrá
ingredientes estructurales que (a) como observadores externos
asuminos que representan una forma proposicional del conocimiento
que el proceso en general exhibe, y (b) independientemente de la
atribución semántica externa, juega un papel formal y escencialmente causal engendrando el comportamiento que manifiesta ese
conocimiento.
Esta hipótesis dice que: el conocimiento es representacional.
Por lo que se busca, más que especular en qué es lo que se está representanddo, descubrir la forma general y categórica de la representación.
Requiere demostrar que un pensamiento particular puede surgir de la
representación. De alguna forma descubrir la estructura de la mecanización
mental en donde nuestras creencias están inscritas.
Hay que distinguir la versión fuerte de que el conocer es representarlo
con una versión más débil que dice que es posible construir un “conocedor”
representacional.
Dada la hipótsis de representación, la sugerencia de construir sistemas
auto-reflectivos, llamada la hipótesis de reflexión es:
263
En tanto que un proceso conputacional se pueda construir para
razonar acerca de un mundo externo utilizando un interprete para
manipular formalmente representaciones del mundo, también se
puede tener un proceso computacional para razonar acerca de
si mismo usando un interprete que manipule formalmente representaciones de sus propias operaciones y estructuras.
Básicamente, contruir sistemas reflexivos se trata de darle a sistema representaciones formales de su propia constitución y comportamiento.
El proceso de meta-razonamiento es uno de los más importantes dentro
de representación de conocimiento en la última decada (70’s).
16.3.1
Relación entre Representación y Reflexión
En los inicios de IA se desarrollaron sistemas de propósito general, con descripciones básicamente declarativas y en donde se demostró la dificultad de
aplicarlos a sistemas particulares.
Esto creo una reacción hacia un enfoque procedural en donde la idea era
manipular y razonar para resolver tareas especı́ficas en mundos de juguete,
pero mostraron ser poco generales y modulares.
La reacción a ésto fue el desarrollo de procesos diseñados para trabajar sobre representaciones generales de objetos y categorı́as, dando pie a la
hipótesis representacional, con el fin de darle generalidad, modularidad y
flexibilidad a los sistemas, pero manteniendo la efectividad procedural en el
componente de control (i.e., sistemas expertos). Esto es, la representación
como un método emergió como solución para proveer formas flexibles y generales de reflejar el mundo.
La inflexibilidad de razonamiento de estos sistemas es muy parecida a la
inflexibilidad en conocimiento que tenian los primeros sistemas, por lo que
sugiere diseñar un sistema de inferencia sobre meta-conocimiento acerca del
razonamiento.
Notas de advertencia: el proceso está constituido por sı́mbolos que tomamos
como estructuras representacionales, pero el interprete no sabe que son rep264
resentaciones, por lo que queda la duda si el método representacional va a
ser útil en obtener comportamiento reflexivo.
A pesar de la exitación que los sistemas reflexivos han generado, no existe
una teorı́a al respecto.
El hecho que un sistema reflexivo A sea implementado en un sistema B
no quiere decir que B exhiba comportamiento reflexivo.
Se requieren teorı́as para clarificar la relación entre reflexión y representación (un sistema reflexivo necesita representar sus propios estados mentales, no es suficiente tener un conjunto de de representaciones formales inspeccionadas por su interprete). Se requieren teorı́as de referencias. Se necesitan guı́as de cómo distinguir entre aspectos de estructuras computacionales
explı́citas e implı́citas.
En el aspecto representacional, no existe tampoco un esquema que tenga
aceptación generalizada e inclusive la noción de representación permanece
poco clara.
La opinión generalizada no es que estamos representando conocimiento,
sino que el conocimiento o entendimiento es representacional.
También es poco claro la relación entre las representaciones estructurales
y los procesos que las intepretan. Que está relacionado con el proceso de
interpretación y todo el proceso en el cual la intepretación es sólo una parte.
Términos como nodo, frame, unidad, concepto, esquema, script, patrón,
clase y plan, por ejemplo, tienen conotaciones similares y significados débilmente
definidos.
Por otro lado la tendencia de los reportes de investigación es más demostrativa, por lo que es difı́cil extraer generalidades y hacer comparaciones.
Se requiere de una reconstrucción racional de la práctica actual. No va a
existir un avance práctico mientras no se haga uno teórico.
Tenemos que tener teorı́as adecuadas de representación y reflexión ya que
esa teorı́a va a jugar un papel central en la parte reflexiva.
El conocimiento, de todo tipo, es siempre relativo a una teorı́a. Las
265
hipótesis de representación implican que nuestras teorı́as de razonamiento y
reflexión deben de ser explı́citas.
16.4
A Fundamental Tradeoff in Knowledge
Representation and Reasoning, Hector
J. Levesque y Ronald J. Brachman
Existe un balance entre la expresividad de un lenguaje de representación y
su tractabilidad computacional.
Este balance muestra la diferencia entre lso diferentes formalismos de
representación de conocimiento y motiva mucha de la investigación en el
área.
El análisis es a nivel de conocimiento (lo que se representa y no cómo
se representa). Estamos interesados en saber si algoritmos de cierto tipo
eexisten o no.
Tomando la hipótesis de representación de conocimiento de Smith (ver
artı́culo anterior), existen dos propiedades que una estructura de conocimiento
debe de satisfacer:
• es posible intepretar las estructuras como proposiciones representando
el conocimiento global del sistema (las expresiones deben de ser expresiones en un lenguaje con una teorı́a de verdad)
• las estructuras juegan un papel causal en el comportamiento del sistema y la influencia que tienen en el comportamiento del sistema debe
de ser acorde con nuestro entendimiento de ellas como proposiciones
representando conocimiento.
Lo que un sistema basado en conocimiento debe de ser capaz de determinar es, si una oración α es verdadera asumiendo que el mundo es tal que lo
que conocemos es verdadero.
Esto es, contestar: KB |= α.
266
Para ésto, debe de seleccionar estructuras simbólicas y mecanismos de
razonamiento adecuados.
Se puede pensar en conocimiento declarativo y procedural (como razonar
acerca del declarativo).
La ventaja de tomar un formalismo de representación basado en lógica es
que el contestar si una oración es verdadera o no tiene un definición precisa.
Desde un punto de vista lógico KB |= α sii cada intepretación que satisface KB también satisfacen α.
Si asumimos que KB es finito se puede mostrar que: KB |= α sii ⊢
(KB ⊃ α), por lo que se reduce a prueba de teoremas.
Desafortunadamente, probar un teorema en l’goca de primer orden es
indecidible.
Si restringimos el lenguaje eliminando cuantificadores es un problema NP
(peor de los casos).
Posibles (pseudo) soluciones:
• Mejorar aspectos computacionales
• Relajar la noción de correcto (regresar un valor aunque sea “no se”)
• Limitar la expresividad del lenguaje haciendo el proceso de inferencia
tratable computacionalmente
El poder de lógica de primer orden (que sirve para formalizar colecciones
infinitas de entidades) se usa en representación sobretodo para manejar información incompleta.
FOL determina, no tanto lo que se puede decir, sino lo que deja de decirse.
Al reducir la expresividad se controla lo que puede dejarse sin decir y se
puede llegar a mecanismos de inferencia tratables.
Para representar la información en una base de datos, podemos usar predicados atómicos (sin variables) sin sı́mbolos funcionales, por lo que la infer267
encia se reduce a cálculo.
Básicamente se le da acceso al usuario a la información, más que usar la
información para responder a preguntas acerca del mundo representado. No
tenemos que razonar por casos o por contradicción.
Existe una correspondencia entre la representación y el dominio (un análogo)
que facilita la inferencia, pero que no permite que no se deje de especificar
algo acerca del dominio.
Por otro lado, si usamos una representación basada en cláusulas de Horn
(e.g., Prolog), necesitamos para contestar preguntas hacer inferencias y se
vuelve indecidible determinar lo que es implı́cito en la base de conocimiento.
Lo que necesitamos son representaciones intermedias.
16.4.1
Redes Semánticas
Utilizan sólo predicados atómicos (no vars.) binarios y unarios, sin sı́mbolos
funcionales y la suposición del mundo cerrado.
Los predicados están organizados en taxonomı́as y existen tipos que restringen los valores.
Una propiedad de la representación es que se puede usar una representación gráfica, por lo que se pueden realizar inferencias usando técnicas
de búsqueda en grafos.
La representación gráfica, por otro lado, sugiere diferentes tipos de inferencia basadas en la estructura (gráfica), e.g., similaridad entre conceptos, y
también muy importante, la capacidad de heredar información.
También ha dado pie a formas de razonamiento (e.g., default) que no
aplican en las formas lógicas clásicas (es más fácil desarrollar algoritmos que
razonan sobre la estructura que justificar el tipo de razonamiento explicando
lo que dice la estructura acerca del mundo).
268
16.4.2
Frames
Es una extensión de las redes semánticas. El énfasis es sobre la estructura
de los frames, en particular sobre sus atributos, los cuales pueden tener: (i)
valores, (ii) defaults, (iii) restricciones y/o (iv) procedimientos asociados.
También se tiene una taxonomı́a en donde se puede razonar acerca de
subsumsión y disjunción.
Aunque ésto puede definirse en lógica, existen procedimientos eficientes
en lenguajes de frames.
Un ejemplo claro de el balance entre expresividad y tractabilidad es
definiendo un lenguaje de frames cuya única diferencia es que uno de ellos
considera restricciones en los valores de los atributos y el otro no.
La noción de subsumsión se puede hacer en términos de extensión. Un
frame subsume a otro cuando todas sus instancias - i.e., sus extenciones - son
también instancias del segundo.
Determinar subsumsión es un lenguaje sin restricciones en O(n2 ) pero es
intratable si añadimos las restricciones.
16.4.3
Conclusiones
• no podemos decir que una representación es superior a otra, sólo toman
diferentes posturas con respecto al balance entre expresividad y tractabilidad
• se deben de seguir buscando representaciones, aunque sean casos especiales de lógica de primer orden, en términos de lo que representan y
las estrategias de razonamiento que permiten
• usar sistemas hı́bridos con mecanismos de inferencia propias para cada
uno
• hacer análisis de la forma lógica de las representaciones encontradas
• buscar representaciones intermedias entre lógica de primer orden y
lógica de predicados
269
16.5
From Micro-Worlds to Knowledge Representation: AI at an Impasse, Hubert
L. Dreyfus
Desde la escritura de What Computers Can’t Do (Dryfus 72) ha existido un
cambio y desarrollo considerable de IA, sin embargo, nada de ésto cambia el
eceptisismo del autor hacia el área.
El análisis de divide en dos: micro-mundos y representación de conocimiento.
A principios de los 70’s en el MIT se desarrollaron varios sistemas trabajando en micro-mundos.
16.5.1
Micro-Mundos
16.5.1.1
SHRDLU
Winograd SHRDLU (72) simula un brazo robótico y permite mover objetos
a través de un diálogo con el usuario.
Lo que caracteriza el perı́odo a principios de los 70’s es el concepto de
micro-mundos, dominios que pueden analizarse en forma aislada.
El autor argumenta que mientrás este tipo de estrategia ha sido útil en
teorı́as fı́sicas no aplica a procesos de inteligencia.
La crı́tica principal, es que el sistema no entiende en realidad lo que está
haciendo.
A los micro-mundos se les tiene que especificar todo el conocimiento y
asumir muchas restricciones poco reaslistas.
Asumen (los sistemas de micro-mundos) que se pueden analizar dominios
aislados y que lo que se aprenda servirá para lograr una verdadera inteligencia
artificial.
El programa de Winograd no entiende porque no puede tomar en cuenta
270
el singnificado.
Los micro-mundos no pueden combinarse para tomar en cuenta el mundo
real.
16.5.1.2
SEE
Otro ejemplo es el programa SEE de Guzmán Arenas (68) y la extensión de
Waltz (72) en visión.
La idea de esos programas es analizar escenas de figuras poliédricas haciendo propagación de restricciones acerca de las posibles uniones que existen
en este tipo de escenas.
Sin embargo, estas restricciones no son generalizables, por lo que se gana
al asumir un dominio restringido, se pierde en alcance.
No hay duda que es un logro ingenieril, pero es muy poca contribución
hacia un la construcción de sistemas inteligentes.
El problema está en suponer que el éxito en micro-mundos restringidos y
libres de contexto puedan contribuir al entendimiento de la mente.
Por otro lado, la precepción parece no estar gobernada en términos de
atributos formales.
16.5.1.3
ARCH
Otro ejemplo, en ésta lı́nea, es el programa ARCH de Winston (70).
El programa aprende descripciones de arcos utilizando ejemplos “cercanos” y descripciones predefinidas.
Una de las crı́ticas, es que la definición, selección y peso de los atributos
relevantes es la parte más relevante dentro del aprendizaje y es justamente
lo que Winston elimina de su sistema.
Como los “arcos” pueden definirse de muchas formas, las definiciones que
271
obtiene el sistema no son ni suficientes ni necesarias y dependen del contexto.
No se pueden capturar caracterı́sticas contextuales con los atributos libres
de contexto de Winston.
El progreso en reconocimiento se va a dar hasta que las computadoras
tengan capturado en una forma simbólica abstracta lo que los humanos
implı́citamente saben, o cuando las computadoras hagan lo que hacen los
humanos.
En los siguientes 9 años después del trabajo de Winston no se vió mucho
avance en el área de aprendizaje y no existe ningúna evidencia empı́rica que
las categorı́as pueden representarse de manera formal.
Sin embargo, existen algunos dominios en donde las técnicas de IA pueden
ser aplicadas, por ejemplo en juegos y donde se han usado los sistemas expertos (e.g., MYCIN, DENDRAL).
Sin embargo, debe de quedar claro que estos avances no están más cerca
de lograr inteligencia que los avances en micro-mundos.
16.5.2
Represebtación de Conocmiento
Durante la segunda mitad de los setentas se empezaron a preocupar más los
investigadores de IA en cómo representar conocimiento.
En particular, se tenı́a (tiene) la idea de que la inteligencia está determinada por el conocimiento que se tenga.
16.5.2.1
Frames
En ’72, Husserl dijo que una de las mayores debilidades de los investigadores
de IA era que los programas no podian usar expectativas.
En ’74, Minsky propuso una estructura muy similar a lo que habı́a propuesto Husserl para representar situaciones prototı́picas (frames).
272
Durante 20 años Husserl trató de llenar los componentes usando objetos
de la vida diaria, para finalemente concluir que la tarea era infinita. Heidegger (sucesor de Husserl), después dijo que el concocimiento dependı́a de
cuestiones internas que no estaban bien entendidas.
Dryfus piensa que Minsky está embarcado en la misma tarea infinita.
El comportamiento inteligente presupone conocimiento cultural.
El problema de los frames es que siguen teniendo definiciones con atributos libres de contexto.
16.5.2.2
Scripts
La versión de Schank de los frames (scripts) se usaron para entender historias
sencillas.
Schank inventó un lenguaje basado en descripciones de eventos: ATRANS,
PTRANS, INGEST, etc., y con ellos construye escenarios y llena huecos en
las historias.
El problema es que las primitivas hacen sentido sólo si el contexto ya ha
sido interpretado.
Lo que normalmente sucede en un script se selecciona y predetermina,
pero se deja fuera todo el conocimiento que está atrás de esto, por lo que la
historia en realidad no se puede entender.
En una historia lo que cuenta como relvante depende de la historia en sı́.
16.5.2.3
KRL
Winograd y colaboradores se metieron a la tarea del desarrollo de un nuevo
lenguaje basado en frames (KRL), para capturar creencias en descripciones
prototı́picas multidimensionales, cuyos aspectos relevantes son función del
contexto.
Esto permite definir representaciones en términos de otras y tener varias
273
representaciones para un mismo objeto (desde varias perspectivas).
Las definiciones de los conceptos evocan ejemplares (exemplars) que poseen
ciertas propiedades.
Sin embargo existen varios problemas con el enfoque:
• El comparar dos prototipos depende del entendimiento que se tenga
del contexto para justificar lo que se considera relevante en esa comparación.
• Debe de existir un número finito de prototipos con los cuales hacer el
apareo
• El apareo se da una vez que ya se encontraron los candidatos adecuados,
y la selección de esos frames sigue entando sin resolverse
• Cómo determinar el contexto actual y el considerar las metas y foco
actual es demasiado vago para ser útil
• No existe razón para suponer que los sentimientos y habilidades puedan
ser capturados en una red de creencias.
Todos los proyectos asumen la hipótesis de sistemas fı́sicos simbólicos
(physical symbol systems), lo cual limita el campo y no garantiza que vaya a
tener éxito.
16.5.3
Conclusiones
Lo que sugiere Dreyfus es que los aspectos del pensamiento humano (incluyendo los aspectos no formales) están tan inter-relacionados que no se
pueden abstraer sólo los aspectos formalizables y tener algún exito.
Básicamente, si existen aspectos no representables entonces no se va a
poder lograr ningún avance congnitivo.
Durante el periodo referido (70-80) los investigadores en IA se han topado
con la representación del contexto, pero lo han tratado como un objeto (su274
posición metafı́sica). No existe ninguna evidencia de porqué la suposición
tenga que ser cierta.
La especificación de ese contexto asume que aplica si todo lo demás permanece igual, pero todo lo demás e igual no puede especificarse completamente.
Existe conocimiento humano que no tiene que representarse (habilidades,
prácticas culturales, etc) o posiblemente representarse de manera no formal
(imagenes).
La organización del conocimiento del mundo es el mayor obstáculo de
los investigadores de IA porque asumen que el mundo es un objeto y que
nuestras habilidades son conocimiento.
Como la inteligencia debe de ser situada, no puede separarse del resto de
la vida humana.
Pensar que aspectos como habilidades sensorial-motoras, situaciones sociales, información cultural, etc., ser ignoradas al formalizar los aspectos
intelectuales en forma de hechos y reglas es altamente poco plausible para el
autor.
275
Descargar