Your SlideShare is downloading. ×
0
Sistemas de Razonamiento Lógico
                    Inteligencia Artificial
Agenda
 Introducción
 Indización, Recuperación y Unificación
 Sistemas de Programación Lógicos
 Demostradores de Teore...
Tipos de Problemas

  Demostradores de
      teoremas y            Sistemas de
                            producción
    ...
Tareas a Enfrentar

DECIR
• Incorporar algo nuevo a la BC
• Deducir hechos implicados

PREGUNTAR
• Decidir si una consulta...
Implantación deOraciones y Términos

   Sintaxis de                     Representación
   oraciones                       ...
Guardar y Recoger
           Estrategia de
           búsqueda de
           PREGUNTAR

                            Costo ...
Indización Basada en Tablas
Indización Basada en Tablas
Ejemplo:
  Hermano(Ricardo, Juan)
  Hermano(Eduardo, Jaime) ^ Hermano(Jaime, Roberto)
  ~Herma...
Indización Basada en Árboles
Ejemplo: Peruano(43684461, x)
Indización Basada en Árboles
Indización Combinada             Indización Cruzada
 Ejemplo:                        Ejempl...
El Algoritmo deUnificación
funcion UNIFICAR(x, y) responde con una sustitución para hacer que x e y sean
        idénticas...
Sistemas de Programación Lógicos
 La programacion lógica considera al programa y a sus entradas como
  aseveraciones lógi...
El Lenguaje Prolog
En cuanto base de conocimientos lógica, el programa
Prolog tiene las siguientes características:
 El p...
El Lenguaje Prolog
 Se cuenta con una gran cantidad de predicados incorporados
  para aritmética, de entrada/salida y div...
El Lenguaje Prolog
 Representación correspondiente a Prolog el consecuente o cabeza, esta
  del lado izquierdo; los antec...
Implantación
 Los diseñadores de Prolog realizaron su implantación con el fin
  de contar con un modelo sencillo y de ráp...
Implantación
 Los programadores deberán tener presente las grande ventajas de
  Prolog es que el modelo de ejecución es l...
La Segunda
 La Sencilla implantación del ENACADENAMIENTO-HACIA-ATRÁS
  invierte bastante tiempo en la generación de susti...
Compilación de Programas Lógicos
 Toda la parte medular, para trabajo pesado, de la
  programación de Prolog se realiza m...
Otros Lenguajes de Programación Lógica
 Si bien Prolog es la norma aceptada en la programación lógica, existen
  muchos o...
Recursos Avanzados deControl
 Regresando a nuestra base de conocimientos censal, tomemos por
  ejemplo la consulta “¿Cuál...
Recursos Avanzados deControl
 Este procedimiento de reordenamiento es un ejemplo de meta
  razonamiento, o del razonamien...
Recursos Avanzados deControl
 En algunos sistemas, en vez de reordenar los coyuntos, se
   modifica la manera como se efe...
Recursos Avanzados deControl
 Mediante la técnica de salto reversivo se evita tener que hacer
  repeticiones inútiles. En...
Demostradores deTeoremas
 Los demostradores de teoremas (conocidos también
  como razonadores automatizados) se diferenci...
Diseño de un Verificador deTeoremas (OTTER)

   Un conjunto de cláusulas conocido como conjunto de
    apoyo.
   Un conj...
Algoritmo (OTTER)
procedimiento OTTER(sos, usable)
    entradas: sos, un conjunto de apoyo –clausulas que definen el probl...
Ampliación de Prolog
 En el DTTP son cinco los cambios más importantes
  que se efectuaron a Prolog para devolverle integ...
Aplicaciones Prácticas
 SAM
 AURA
 BOYER – MOORE
 OTTER
Sistemas de Producción por
Encadenamiento Hacia Adelante
 Se aplica a la base de conocimientos reglas de
  inferencia, lo...
Características de un Sistema de Producción
 El sistema mantiene una base de conocimiento
    conocida como memoria de tr...
Fase deCotejo
 La unificación enfrenta el problema del cotejo de un par
  de literales, cada una de las cuales puede cont...
Fase deCotejo




 Una de las ventajas más obvias de la red rete es
  que elimina la duplicación en las reglas. Las tres
...
Fase deSolución deConflictos
 Alguna de las estrategias que sean utilizados son
  la siguiente:
   No duplicación
   No...
Sistemas de Marco y Redes Semánticas

 Actualmente se acepta que toda red semántica o
  sistema de cuadro también puede d...
Sistemas de Marco y Redes Semánticas

 La comprensión de algunas cosas se facilita
  mediante la notación gráfica; alguna...
Sistemas de Marco y Redes Semánticas
Además del atractivo de esos bonitos diagramas nodo-
vinculo, las redes semánticas ha...
Sintaxis y Semántica de las Redes Semánticas
En las redes semánticas la atención está puesta en las
categorías de los obje...
Sintaxis y Semántica de las Redes Semánticas

 Y que producía una respetuosa intimidación. Se
  consideraba también que n...
Herencia con Excepciones
                        Animales
                                T
                       Vivo
  ...
Herencia con Excepciones
 Como vimos en el capitulo anterior, las clases naturales están llenas de
  excepciones. En la f...
Tipos deVínculos Estándar
Tipo de Vínculo   Semántica   Ejemplo
Herencia Múltiple
 En algunos sistemas de redes semánticas existe la
  herencia múltiple, es decir, cuando un objeto
  pe...
Herencia Múltiple                    Animado



                           Personaje de           Pingüino                ...
Herencia y Cambio
 Las bases de conocimiento no son de mucha utilidad para los agentes
  a menos que exista la posibilida...
Implantación de Redes Semánticas
 Una vez definido el significado de nuestras redes,
  podemos proceder a implantar la re...
Expresividad de las Redes Semánticas
 Las redes de las que hemos hablado hasta ahora
  están excesivamente limitadas en c...
¿Qué nos pueden ofrecer las redes semánticas a
cambio de la falta de expresividad?
 Son capaces de capturar la informació...
Lógicas para la Descripción
 Están diseñadas para concentrarse en categorías
  y sus definiciones. Constituyen un medio
 ...
Lógicas para la Descripción
 El lenguaje CLASSIC es un ejemplo típico de una
  lógica de descripción
Lógicas para la Descripción
 Por ejemplo, para expresar que los solteros son
  adultos que no están casados, escribiríamo...
Lógicas para la Descripción
 En CLASSIC, para describir el conjunto de
  hombres que por lo menos tengan tres
  hijos, es...
Lógicas para la Descripción
 El énfasis en la lógica de descripciones, es
  garantizar que la prueba de subsuposición pue...
Aplicaciones Práctica de la Lógicas de
Descripción
   Administración Financiera


   Interfaces de Bases de Datos


   Sis...
Manejo de
Retractaciones, Suposiciones y
 La mayoría de
Explicaciones los sistemas de razonamiento
  lógico, independient...
Manejo de Retractaciones,
Suposiciones y Explicaciones
 Primero, es importante diferenciar entre
  RETRACTAR (BC, P) y DE...
Sistema de mantenimiento de la verdad
(SMV)
 Es un programa que lleva el control de las
  dependencias presentes entre la...
Sistema de mantenimiento de la verdad
(SMV)
 Si se pregunta “Explique por qué considera que P
  es verdad”, la prueba de ...
Sistema de mantenimiento de la verdad
(SMV)
   Tercero: el razonamiento por omisión
 El decir que Opus es un pingüino no ...
Sistema de mantenimiento de la verdad
(SMV)
 Los SMV ayudan a manejar las inconsistencias. Si
  la incorporación de P a l...
Sistema de Mantenimiento de la Verdad
Basado en la Justificación (SMVJ)
 En cada una de las oraciones de la BC se indica
...
Sistema de Mantenimiento de la Verdad
Basado en la Justificación (SMVJ)
 En la mayoría de las implantaciones de SMVJ, se
...
Sistema de Mantenimiento de la Verdad
Basado en la Justificación (SMVJ)
 Así, supondremos primero (aseveramos) que el
  a...
Sistema de Mantenimiento de la Verdad
Basado en Suposiciones (SMVS)
 El tipo más popular es el SMVS (sistema de
  manteni...
Sistema de Mantenimiento de la Verdad
Basado en Suposiciones (SMVS)
 Mientras que un SMVJ etiqueta cada una de las
  orac...
Sistema de Mantenimiento de la Verdad
Basado en Suposiciones (SMVS)
 En vez de retractar las suposiciones cuando falla un...
Gracias … totales!!!
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
Upcoming SlideShare
Loading in...5
×

Sistemas de Razonamiento Lógico

11,679

Published on

Presentación sobre el tema "Sistemas de Razonamiento Lógico" del curso de Inteligencia Artificial

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,679
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
204
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Sistemas de Razonamiento Lógico"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×