Dibujo de Vlad Guzner publicado en The New York Times Review, EEUU Introducción (1) La representación del conocimiento comprende las técnicas para expresar y manipular los datos -el conocimiento- en los programas de IA. Por la naturaleza de los problemas abordados, la representación de información en los problemas del área de IA tiene un carácter distinto al de programas de computación tradicionales. representación del conocimiento (1) introducción ! ! Programas operacionales que describen procedimientos para calcular la solución a un problema. Una secuencia de operaciones sobre los datos de entrada que eventualmente llevan, paso a paso, a un resultado. procedimientos sobre los datos. programa de IA: conocimiento, descripciones relaciones. 2 Introducción (2) Solución “tradicional” de problemas programa “tradicional”: datos, operaciones, secuencias de pasos. Introducción (3) Solución de problemas en IA Solución “tradicional” de problemas Programas declarativos que describen la forma de la solución a un problema. Un conjunto de relaciones entre los datos de entrada y un resultado. Programas operacionales que describen procedimientos para calcular la solución a un problema. Una secuencia de operaciones sobre los datos de entrada que eventualmente llevan, paso a paso, a un resultado. procedimientos sobre los datos forma de los datos Ejemplo de programas para reconocer en palíndrome. no 3 Identifique un palíndrome, e.g. “ana”, “anita lava la tina”. Entrada: cadena de caracteres a examinar. Posibles resultados: yes / no. 1. Comparar primero y último caracter de los datos de entrada. 2. Si son diferentes, el resultado es no. En otro caso, comparar segundo y penúltimo caracter. 3. Si son diferentes, el resultado es no. En otro caso, continuar la comparación hasta completar todos los caracteres sin hallar diferencias, en cuyo caso el resultado es yes; o bien continuar hasta determinar que el resultado es no. 4 Introducción (4) Introducción (5) Solución “tradicional” de problemas Solución de problemas en IA Programas declarativos que describen la forma de la solución a un problema. Un conjunto de relaciones entre los datos de entrada y un resultado. forma de los datos Identifique un palíndrome, e.g. “ana”, “anita lava la tina”. Entrada: cadena de caracteres a examinar. Posibles resultados: yes / no. int longitud(string: E) int L = 1 while EL ≠ ‘\n’ do L=L+1 return L - 1 1. Si datos de entrada corresponden exactamente con los mismos datos en orden inverso, el resultado es yes. En otro caso, el resultado es no. boolean palindrome(string: E) boolean S = true int I = 1 int N = longitud(E) while S = true and I < N if EI ≠ EN then S = false else I=I+1 N=N-1 return S no Solución de problemas en IA (en Prolog) concatenar([],Xs,Xs). concatenar([X|Xs],Y,[X|Z]):concatenar(Xs,Y,Z). reverso([],[]). reverso([X|Xs], R):reverso(Xs,Ys), concatenar(Ys,[X], R). palindrome(X) :reverso(X,Y), palindro(X,Y). palindro([X],[X]). palindro([X|Xs],[X|Ys]) :palindro(Xs,Ys). 5 Introducción (6) Introducción (7) Para nuestro ejemplo del palíndrome Según Rich & Knight, la información representada en un problema de IA puede ser de dos tipos: ! ! 6 Símbolos, que representan por ejemplo los datos de entrada: Información a nivel de símbolos: concierne la representación de objetos en términos de símbolos que puedan ser manipulados por un programa de IA. Conocimiento sobre la manera de relacionar u obtener propiedades de datos proporcionados como símbolos: Información a nivel de conocimiento: concierne la representación de piezas de información que establecen relaciones o propiedades confirmadas de los objetos del problema (e.g. hechos), o formas de explotar esos objetos. invertir sustraer 7 8 Introducción (8) Introducción (9) Rich & Knight afirman que un buen sistema de representación de conocimiento en IA debe cumplir las siguientes propiedades: ! ! ! Capacidad adecuada de representación (representational adequacy). ! Capacidad adecuada de inferencia (inferential adequacy). ! Eficiencia de inferencia (inferential efficiency). ! Eficiencia de adquisición (aquisitional efficiency). ! Capacidad adecuada de representación: la capacidad de representar todos los tipos de conocimiento requeridos en el dominio. Capacidad adecuada de inferencia: la capacidad de manipular estructuras de representación de forma que se puedan derivar nuevas estructuras correspondientes a nuevo conocimiento inferido del conocimiento disponible. Eficiencia de inferencia: la capacidad de incorporar nuevas estructuras útiles para focalizar la atención de los mencanismos de inferencia hacia las direcciones más promisorias. 9 Introducción (10) ! 10 Introducción (11) Los programas de IA utilizan diversos formalismos para representar y manipular conocimiento. Eficiencia de adquisición: la capacidad de adquirir nueva información fácilmente, por ejemplo por inserción directa. El conocimiento requerido por los programas de IA no es sólo factual, i.e. colecciones de símbolos que expresan pares atributo-valor como en las BD relacionales, sino que debe permitir la generación o inferencia de nuevo conocimiento. Las propiedades anteriores son ideales, y no siempre están presentes en las técnicas de representación de conocimiento desarrolladas en el área de IA. Origen Destino Distancia (Km) Vía Cd. de México Puebla 136 San Martín Cd. de México Puebla 150 Huejotzingo Diversos $ ¿cuál es el “mejor” camino para ir de ciudad de México a Puebla? 11 12 Introducción (12) Introducción (13) Existen diversos enfoques para la representación de conocimiento en IA (no siempre bien delimitados): En el enfoque lógico, los mecanismos matemáticos para demostrar la validez de una fórmula se han extendido para deducir y responder preguntas, y para encontrar soluciones a problemas. Lógico: basado en el cálculo de proposicional y de primer orden, y otras extensiones. Se aprovechan los mecanismos de inferencia lógica para derivar nuevo conocimiento y para la resolución de problemas. Esquema: Simbólico: basado en mecanismos que permiten relacionar estructuras de símbolos, la derivación de conocimiento se basa por ejemplo en principios de sustitución. lógica o cálculo proposicional lógica o cálculo de primer orden “Otros enfoques”: basado en lenguajes descriptivos o en mecanismos estadísticos, incluso en lenguajes de programación “tradicionales”, como los orientados a objetos. otras lógicas programación lógica Los últimos dos enfoques se apoyan de mecanismos de herencia cuando se requiere derivar nuevo conocimiento. progrmación lógica con restricciones 13 Introducción (14) 14 Introducción (15) En el enfoque simbólico y enfoques que combinan representaciones sui generis, suelen utilizarse estructuras compuestas, como frames y redes semánticas. Vía de comunicación Frame: carretera Nombre: Puebla – México isa Autopista Longitud: Costo-peaje: Los frames son estructuras de atributos y valores que describen a un objeto, mientras que las redes semánticas son colecciones de frames relacionados. Camino federal isa Carretera isa 136 Km isa longitud Puebla-México isa Puebla-Orizaba Ejemplo de frame y red semántica 15 16 Referencias Introducción (16) En los enfoques no simbólicos y no lógicos se pueden clasificar formas de representación diversas, que no se basan en las técnicas tradicionales de IA, pero que se usan en aplicaciones de IA. Mueller R.A., Page R.L (1988) Symbolic computing with Lisp and Prolog. John Wiley & Sons. Rich E. & Knight K. (1991) Artificial Intelligence, McGraw Hill. Por ejemplo, representación de conocimiento con incertidumbre o con diferentes grados de certeza. 17 18