Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Inteligencia Artificial – Compilado por Ing. Irving Góngora CONTENIDO Unidad I: Introducción a la Inteligencia Artificial 1.1 Introducción a la Inteligencia Artificial 1.2 Inteligencia, Cerebro Humano y el Conocimiento 1.3 ¿Qué es Inteligencia Artificial? Definiciones. 1.4 Historia de la Inteligencia Artificial 1.5 Inteligencia Artificial y los Modelos Computacionales Computación de IA Diferencias con un programa convencional de cómputo. 1.5 Problemas y Técnicas de la Inteligencia Artificial 1.6 Estado del Arte de la Inteligencia Artificial (Aplicaciones y Tendencias) Unidad II: Formas de Representación del Conocimiento 2.1 Definición Representaciones y Correspondencia 2.2 Clasificación de las Formas de Representación del Conocimiento 2.2.1 Declarativas Razonamiento Lógico Tipos Básicos de Razonamientos Lógicos Razonamiento Deductivo: Razonamiento Inductivo. 2.2.1.1 Lógica Proposicional 2.2.1.2 Lógica de Predicados (Lógica de Primer Orden, Cálculo de Predicados) 2.2.1.3 Redes Semánticas (RS) 2.2.1.4 Frames (Marcos o Armazones) Ejemplo de Ranura: 2.2.1.5 Guiones (SCRIPTS) 2.2.2 Procedurales 2.2.2.1 Strips (Sistemas de Planificación) 2.2.2.2 Reglas de Producción Partes de un Sistema Basado en Reglas: Ejemplo de Aplicación de las Reglas de Producción: 2.3 Representación con Incertidumbre Lógicas Modales y los Posibles Mundos 2.4 Ejercicios Propuestos Unidad III: Métodos de Solución de Problemas 3.1 Introducción 3.2 Como Solucionar el Problema 3.2.1 Definición del Problema 3.2.1.1 Espacio de Búsqueda 3.2.1.2 Tipos de Espacio de Espacios de Búsqueda 3.2.1.3 Representación del Espacio de Búsqueda 3.2.2 Análisis de Problema 3.2.2.1 Tratar de Descomponer el Problema 3.2.2.2 Considerar si se Puede Ignorar o Deshacer Pasos Para la Solución 3.2.2.3 ¿Se Puede Predecir el Universo del Problema? 3.2.2.4 ¿La Mejor Solución o Cualquier Solución Para el Problema? 3.2.2.5 ¿Es Consistente el Conocimiento Disponible Para Resolver el Problema? 3.2.2.6 El Papel que Juega el Conocimiento 3.2.2.7 Considerar si se Necesita la Intervención de Una Persona 3.2.3 Aplicar la Mejor Técnica de IA Para Resolver el Problema 3.3 Métodos de Búsqueda Ciega 3.3.1 Primero a lo Ancho 3.3.2 Primero en Profundidad 3.2.3 Búsqueda en Arboles AND/OR (Y/O) 3.3.4 Encadenamiento Hacia delante (Forward Chaining – enfoque guiado por datos) 3.3.5 Encadenamiento Hacia Atrás (Backward Chaining – enfoque guiado por objetivos) Ejemplo de “Búsqueda: Mundo de los Bloques” 3.4 Búsqueda Heurística 3.4.1 Definición de Heurística Página 1 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora 3.4.2 Búsqueda por el Incremento Mayor (Hill Climbing) 3.4.3 Búsqueda por el Mejor Nodo (Best First Search) 3.3.4 Búsqueda Heurística en Arboles AND/OR (AO*) 3.4 Ejercicios Propuestos Unidad IV: Sistemas Basados en el Conocimiento (Sistemas Expertos) 4.1 Definición de Sistema Experto 4.2 La Base de Conocimiento 4.3 La Máquina de Inferencia 4.4 Experticidad Humana y Artificial 4.5 Programas Convencionales vs Sistemas Expertos 4.6 Requerimientos Para el Uso de los Sistemas Expertos 4.7 Aplicaciones de los Sistemas Expertos 4.8 Desarrollo de un Sistema Experto 4.8.1 Etapas del Desarrollo 4.8.2 Adquisición del Conocimiento 4.8.3 Estados en el Desarrollo de un Sistema Experto 4.9 Tratamiento de la Incertidumbre 4.9.1 Fuentes de la Incertidumbre 4.9.2 Representación de la Incertidumbre Unidad V: Programación Lógica y Conchas Expertas (Expert Shell) 5.1 Introducción al PROLOG 5.2 Secciones de un Programa en PROLOG DOMAINS PREDICATES CLAUSES GOAL CONSTANTS 5.3 El lenguaje y programación en PROLOG 5.4 Repetición y Recursión Retroceso Revisitado Ejercicio 5.5 Sistemas Expertos Programados con PROLOG 5.6 Introducción a ESTA 5.6.1 Usando un Sistema de Concha Experta 5.6.2 Representación del Conocimiento 5.6.2.1 Comentarios 5.6.2.2 Titulo 5.6.2.3 Secciones 5.6.2.4 Parámetros 5.6.2.5 Ejercicio: Identificación de un Invertebrado Unidad I: Introducción a la Inteligencia Artificial Objetivos: ● Definir en forma clara y explicita en que consiste la Inteligencia Artificial. ● Explicar las preguntas mas frecuentes que se generan al aplicar la Inteligencia Artificial. ● Distinguir las aplicaciones de Inteligencia Artificial con otras áreas de aplicación de la informática. 1.1 Introducción a la Inteligencia Artificial Página 2 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora La inteligencia artificial comenzó como el resultado de la investigación en Psicología cognitiva y lógica matemática. Es una combinación de la ciencia del computador, fisiología y filosofía. Definiremos algunos términos que se usarán en el desarrollo de la clase: Cognición: Conocimientos, acción y efecto de conocer. Sicología: Conjunto de estructuras y actividades sicológicas cuya función es el conocimiento, por oposición a los dominios de la efectividad. Cognoscitivos: Dícese de lo que es capaz de conocer. Inteligencia: Facultad de entender, de comprender. Sicología: aptitud variable con los individuos y las especies para resolver todo tipo de problemas. Inteligencia práctica: La que se presenta en algunos animales. Factores que inciden en la inteligencia (Tomado de Internet) 1.2 Inteligencia, Cerebro Humano y el Conocimiento El cerebro percibe, comprende, predice y manipula un mundo de gran tamaño y complejidad. El cerebro por ser la materia más altamente organizada, tiene la propiedad de reflejar el mundo objetivo. Precisamente, ese reflejo del mundo objetivo lo que constituye el conocimiento humano. Página 3 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora La forma más elemental de conocimiento son las sensaciones. Por contemplación sensorial debe considerarse la vía que nos une con el mundo de las cosas., de sus propiedades y relaciones, condicionada por la práctica precedente., el lenguaje, etc. Las fuentes de las sensaciones radican en los objetos que se hallan fuera de nosotros. A través de los analizadores percibimos la sensación visual, auditiva, olfativa, gustativa, táctil. Sin embargo, el hombre percibe el objeto en su totalidad por medio de la percepción. La sensación es la imagen de las características aisladas del objeto, la percepción integra varios aspectos del objeto en su interacción, es la integración del sistema de sensaciones. No se debe entender la percepción como la suma de distintas sensaciones, sino como las sensaciones de acuerdo a una estructura. Tanto la sensación como la percepción, necesitan de la influencia directa del objeto sobre nuestros órganos sensoriales. Un momento algo superior del conocimiento corresponde a las representaciones donde el hombre reproduce el objeto en su cerebro sin su presencia. El hombre posee un almacén de representaciones en su cerebro, las cuales se han formado en el curso en el curso de la actividad práctica. Las sensaciones, percepciones y representaciones son formas primarias o elementales del conocimiento, conforman el nivel sensorial. A este nivel sensorial no se revela la esencia de los objetos y fenómenos, a la cognición sensorial se añade la actividad del pensamiento abstracto. La razón humana es quien nos permite penetrar en la esencia de las cosas, las relaciones entre ellas, descubrir lo singular, lo común, lo universal. Esta razón humana, a través de procesos dialécticos, realizados a partir de las representaciones, elabora conceptos, juicios y conclusiones, que constituyen las formas superiores del conocimiento. El paso de lo sensorial a lo racional, es un salto dialéctico. Las sensaciones y percepciones son propias del hombre y de los animales, y constituye un salto cualitativo el paso del conocimiento sensorial al abstracto, que es propio exclusivamente del hombre. Un paso fundamentalmente inherente de la teoría del conocimiento, es la práctica. La práctica constituye la fuente del conocimiento, el conocimiento es el objetivo de la práctica y, al mismo tiempo, la práctica es la esfera de aplicacióndel conocimiento. Página 4 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora El hombre asimila los conocimientos mediante los distintos tipos de percepción, los cuales sirven de base al proceso del pensamiento que culmina con la fijación de los conocimientos adquiridos en la conciencia. El proceso de asimilación parte del contacto con el objeto de estudio o su representación y en el tiene lugar una actividad analítica- sintética, que garantiza la calidad de la percepción. La consideración de que el conocimiento comienza en el plano sensorial y se eleva al plano racional, nos lleva en el proceso de enseñanza a destacar la importancia de proporcionar a los alumnos representaciones del objeto o fenómeno de estudio. Para conocer los objetos y fenómenos ante todo, debemos observarlos en su conjunto y describirlos, para después, explicarlos teniendo en cuenta la interrelación de sus distintas partes y de su estructura como un todo, para formular las leyes de su existencia. Es necesario exponer que todo conocimiento teórico tiene sus raíces en los objetos y fenómenos de la realidad, de la misma manera que la experiencia, es decir, el conocimiento sensorial considerado aisladamente sin su conexión con lo teórico, no nos lleva a la esencia del fenómeno. Discuta: Los animales no son inteligentes –solo hacen lo que sus genes les indican. ¿Es esta ultima afirmación verdadera e implica la primera? Página 5 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora 1.3 ¿Qué es Inteligencia Artificial? Definiciones. Alan Turing expresa que: “Si durante el intercambio entre una computadora y el usuario este último cree que está intercambiado con otro humano, entonces se dice que el programa es inteligente” El test de Turing consiste en: ● El interrogador formula un conjunto de preguntas que deben ser respondidas por una máquina y por un ser humano. ● Si el interrogador no puede diferenciar al humano de la máquina, entonces se dice que la máquina es inteligente. Según Schildlt: un “programa inteligente” es uno que muestra un comportamiento similar al humano cuando se enfrenta a un problema. No es necesario que el programa resuelva realmente el problema de la misma forma que el hombre. Para Forsyth: La IA se relaciona con problemas los cuales han escapado de una caracterización matemática Elaine Rich: “la IA es el estudio de cómo lograr que las computadoras hagan cosas que por el momento, las personas hacen mejor”. Una computadora encuentra las raíces de una ecuación mucho mas rápido y con mayor exactitud que un hombre; sin embargo, el hombre reconoce mucho mejor un conjunto de caracteres. 1.4 Historia de la Inteligencia Artificial Página 6 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Como rama de la Ciencia de la Computación, la I.A. ha evolucionado tanto en la formalización, como en la implementación de sus técnicas. Un resumen cronológico de su desarrollo puede ser el siguiente: 1936 - Turing formaliza el concepto de computadora de propósito general. 1945 - Von Neumann concibe el diseño de “programa almacenado” para compu-tadoras digitales. 1946 - Aparece ENIAC, primera computadora digital de propósito general de-dicada. 1950 - Turing describe su test para conocer si una máquina es “inteligen-te”. 1955 - Bernstein desarrolla el primer programa para jugar ajedrez. 1956 - McCarthy organiza la conferencia de Dartmouth e introduce el término Inteligencia Artificial. Newell, Shaw y Simon desarrollan el Logic Theorist, primer programa de Inteligencia Artificial exitoso. 1957 - McCarthy desarrolla el LISP (primer lenguaje de Inteligencia Arti-ficial). Newell, Shaw y Simon comienzan los trabajos para encontrar un solucionador general de problemas (GPS). Chomsky introduce transformaciones gramaticales para modelar la sintaxis de los lenguajes naturales. 1965 - Feigenbaum desarrolla DENDRAL (primer Sistema Experto). Dreyfus publica el artículo “Alchemy and Artificial Intelligence”. 1966 - Quillian desarrolla las redes semánticas. 1967 - Greenblatt desarrolla MacHack, el primer programa de ajedrez profe- sionalmente competente. 1970 - Aparece “Learning Structural Descriptions from Examples” de Winston (primer artículo que se dedicó al Aprendizaje Automatizado). Colmerauer desarrolla el lenguaje de programación PROLOG. 1972 - Es desarrollado MYCIN, primer Sistema Experto en utilizar reglas de producción. Winograd completa el SHRDLU, un programa para el procesamiento de lenguaje natural. 1974 - En su artículo “A framework for representing knowledge” Minsky de-fine los marcos. 1975 - El MIT inventa la máquina LISP, primera especializada en I.A. 1982 - Aparece una teoría sobre visión desarrollada por Marr. Comienzan las investigaciones de los japoneses y la Quinta genera-ción. 1986 - Se introduce la primera Máquina Conexionista por Thinking Machines Corporation. Aparece la primera microcomputadora de 32 bits. 1987 - Primera Conferencia Internacional sobre Redes Neuronales Artificia-les. 1988 - Primera computadora ajedrecista Hitech. El desarrollo de la I.A. pudiera enmarcarse en las siguientes etapas: ● Oscura (década del 50) : Surgen la Redes Neuronales Artificiales (R.N.A.). ● De la razón (década del 60) : Desarrollo de la lógica y los demostrado-res de teoremas. ● Romántica (década del 70) : Surgimiento de los Sistemas Expertos. ● Ilustración (década del 80) : Desarrollo del aprendizaje automatizado o extracción automatizada del conocimiento. ● Renacimiento gótico (década del 90) : Resurgimiento de las R.N.A. Página 7 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Los trabajos iniciales dentro del campo de la I.A. estuvieron dirigidos a emular el proceso del pensamiento humano. Resultados relevantes fueron el intento de Newell, Shaw y Simon de crear un Solucionador General de Problemas (GPS), así como el éxito alcanzado a fines de la década de los 50 e inicios de los años 60 por Rosemblatt al crear los Perceptrons. En ambos casos, otros autores se encargaron de demostrar las limitaciones de ambos intentos. En 1973 Gödel demostró que era imposible la matematización del proceso de razonamiento lo cual anulaba la posibilidad de crear, al menos en el presente, un GPS como el pensado por Newell, Shaw y Simon. Minsky y Papert en los años 60 mostraron las serias limitaciones del funcionamiento de un perceptron simple a través del problema clásico del XOR. Es por esto que a esta etapa se le denominó oscura. Sin embargo, en América los trabajos en I.A. siguieron otra dirección. Se planteaba que, si bien no existía una teoría universal de la inteligencia, sí era posible crear inteligencias especializadas. En esta época se comenzó a dar más importancia al papel del conocimiento que a los métodos potentes de solución de problemas, todo lo cual llevó a la reactivación de los trabajos en este campo. La I.A. cobró vigor en la década de los 80, debido al éxito alcanzado por los Sistemas Expertos, al proyecto japonés de Quinta Generación, el cual originó un gran avance tecnológico y al éxito del uso de técnicas de I.A. en problemas concretos como el reconocimiento de patrones, la robótica, la visión, etc. El desarrollo de la I.A. ha seguido dos líneas principales: la simbólica y la subsimbólica. La primera se caracteriza por desarrollar modelos que describen, formalizan e implementan aspectos sistematizables del conocimiento en forma explícita (Sistemas Expertos, Razonamiento basado en casos, etc). La otra se basa en los enfoques no representacionales de la I.A. (R.N.A., algoritmos genéticos y sistemas difusos). El cálculo subsimbólico se basa en el uso de representaciones analógicas, el conocimiento se reparte entre diversas componentes del sistema que están enlazadas y que pueden funcionar en paralelo. Finalmente es necesario mencionar uno de los problemas fundamentales que enfrenta actualmente la I.A.: el problema del aprendizajeautomatizado, para el que no existe actualmente una solución eficiente. 1.5 Inteligencia Artificial y los Modelos Computacionales El término de “Inteligencia Artificial”, es utilizado para describir el objetivo de lograr que los programas que se ejecuten en computadoras, permitan reproducir conductas humanas inteligentes, tales como resolución de problemas, comunicación en lenguaje natural y tomas de decisiones creativas. La inteligencia artificial es una rama de la ciencia informática dedicada a la creación tanto de software como de hardware que imitan a la mente humana. En el estado actual de desarrollo de la IA existen técnicas para tratar de solucionar problemas complejos mediante el empleo de procesos de búsquedas, formas de representación del conocimiento y aprendizaje. Por sus características, los métodos utilizados se dividen en dos grupos, los cuales definen los dos enfoques de desarrollo de la IA. La Inteligencia Página 8 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Artificial Simbólica (IAS), y la Inteligencia Artificial Conexionista. Usualmente la IAS se refiere como IA simplemente, mientras que la IAC, se identifica con las Redes Neurales Artificiales. El acierto principal de la IA es el de hacer a la computadora lo más inteligente posible, creándose programas que permitan modelar algunas de las funciones del cerebro humano en aplicaciones seleccionadas. La idea no es reemplazar lo que hace el hombre, pero nos suministran una poderosa herramienta para auxiliarnos en nuestro trabajo. La inteligencia es la capacidad humana de adquirir conocimientos y aplicarlos, el recurso de la capacidad de pensar y razonar. En un grado limitado, la inteligencia artificial permite a las computadoras aceptar conocimiento desde la entrada humana, entonces utilizarlos a través de pensamiento simulado y procesos de razonamiento para resolver los problemas. Aunque una computadora no tiene experiencia, o estudio y aprendizaje como lo tiene la mente humana, ella puede adquirir conocimientos dados a ella por los humanos expertos. Los conocimientos consisten de hechos, conceptos, teorías, procedimientos y relaciones. El conocimiento es también información que ha sido organizada y analizada para hacerse comprensible y aplicable. Muchas bases de conocimiento están limitadas a aquellos enfoques típicos hacia alguna área, objeto específico o dominio. Con una base de conocimiento y la habilidad de desprender inferencia (deducciones), a partir de ella, la computadora puede hacer un uso práctico como es la solución de un problema y tomar una decisión (ver ilustración 2). En un programa de cómputo convencional le decimos mediante un algoritmo como resolver un problema a la computadora, mientras en la IA le decimos a la computadora cual es el problema, pero no como resolverlo. Comúnmente a la computadora se le dan los datos y un programa paso a paso que especifica como el dato es utilizado para alcanzar la respuesta. En las computadoras con IA, le son dados conocimientos acerca del área objeto de los problemas, más alguna capacidad de hacer inferencias (deducir). Página 9 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Hay un hecho, y es que los programas de IA son implementados por técnicas de búsquedas y coincidencia de patrones. Le damos a la computadora una serie de información y una guía para utilizarla. El sistema experto es un programa de IA que incorpora una base de conocimiento, una base de datos y un sistema de inferencia. Este es un software altamente especializado, que tiene la intención de duplicar la función de un experto en algún campo de la experiencia. El programa actúa como un consultante inteligente o asesor de un dominio de interés, capturando el conocimiento de uno o más expertos. Computación de IA El programa de IA no está en un proceso algorítmico, en su lugar, está basado en representación simbólica y manipulación. En la IA, un símbolo es una letra, palabra o número que es utilizado para representar objetos, proceso y sus relaciones. Los objetos pueden ser personas, cosas, ideas, conceptos, eventos o sentencias de hechos. Mediante la utilización de símbolos es posible crear bases de conocimiento que caracterizan hechos (estados), conceptos y relaciones entre ellos. Entonces son utilizados procesos variados para manipular los símbolos y resolver el problema. Los procesos son cualitativos en lugar de cuantitativos como es un algoritmo de cómputo convencional. Virtualmente todas las computadoras son algorítmicas en sus operaciones, basados en el concepto de máquina secuencial sincrónica de Von Neumann. La cuestión consiste en como es implementado el procesamiento simbólico en una máquina algorítmica. El programa algorítmico está escrito de tal forma como para permitir representación y manipulación simbólica. Una vez que la base de conocimiento de hechos y su asociación lógica este construida, algún medio de utilización para resolver el problema debe de ser desarrollado, para inferir con esta base de conocimiento, las técnicas básicas son la búsqueda y coincidencia de patrones. Dando alguna información inicial, el programa de IA busca en la base de conocimiento inquiriendo por una condición específica del patrón. Ella busca una coincidencia que satisfaga los criterios impuestos para resolver el problema. La computadora literalmente efectúa una búsqueda hasta que ella puede encontrar la mejor respuesta que puede encontrar basada en el conocimiento que ella tiene. Mientras que la solución del problema que se lleva a cabo no es un algoritmo, por supuesto, son utilizados algoritmos para implementar el proceso de búsqueda (ver ilustración 3). La mayoría de los sistemas de IA actualmente incluyen dos partes básicas: una base de conocimiento y un mecanismo de inferencia. La base de conocimiento contiene los hechos y relaciones entre los objetos en el dominio seleccionado y constituye la fuente de inteligencia del sistema, la que es utilizada por el mecanismo de inferencia para arribar a ciertas conclusiones. Página 10 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Diferencias con un programa convencional de cómputo. En un programa de convencional de cómputo, se le dice a la computadora que resuelva el problema mediante en algoritmo. Entran los datos y un programa paso a paso llega a la solución del problema específico. En la IA se le da a la computadora conocimientos del área objeto del problema, más la capacidad de deducir (inferir), en un proceso totalmente cualitativo basado en la representación y manipulación simbólica. Dando una información inicial, el programa de IA busca en la base del conocimiento inquiriendo por una condición específica del patrón. Ella busca una coincidencia que satisfaga los criterios los criterios impuestos para resolver el problema. La computadora literalmente efectúa una búsqueda, hasta que ella pueda encontrar la mejor respuesta que pueda encontrar basada en el conocimiento que ella tiene. Partiendo del hecho cómo funciona un programa de inteligencia artificial, se llega a la conclusión de que las computadoras no son realmente tan inteligentes. Se da a la computadora un lote de información y alguna guía para utilizarla. Usando esta información y aquellos criterios, la computadora entrega una solución. Aunque la computadora no es realmente inteligente, ciertamente parece que piensa y frecuentemente entrega una solución satisfactoria. Espectro de Inteligencia En el espectro de la inteligencia, se muestran los grados de inteligencia universal de acuerdo al juicio de las pruebas de “Turing”, realizados por el matemático Inglés Alan Turing, pionero de la IA. 1.5 Problemas y Técnicas de la Inteligencia Artificial Hay un hecho, y es que los programas de IA son implementados por técnicas de búsquedas y coincidencia de patrones. Le damos a la computadora una serie de información y una guía para utilizarla.Página 11 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Para la resolución de problemas de I.A. se requieren técnicas que difieren de las convencionales. Los programas de I.A. requieren de conocimiento. En compensación por esta arrolladora ventaja, el conocimiento tiene algunas propiedades menos deseables como son: ● Ser voluminoso. ● Ser difícil de caracterizar y modelar con presición. ● Estar cambiando constantemente. Una técnica de I.A. es un método para explotar el conocimiento, que debería ser representado de tal manera que: ● Capte generalizaciones: No es una Base de Datos. No debe ser necesario representar cada situación individual, sino que se agrupen las situaciones que compartan propiedades importantes. Si no tiene esta característica se necesitaría más espacio del disponible y más tiempo del que tenemos para mantenerlo actualizado. ● Pueda ser comprendido por los especialistas que lo proporcionan. ● Deba ser modificable fácilmente. ● Pueda ser usado en muchas situaciones diversas, incluso si no es total-mente preciso o completo. ● Pueda ser usado para extenderse a sí mismo. Los lenguajes básicos para la implementación de las técnicas de I.A. son LISP y PROLOG por las facilidades que brindan para el tratamiento simbólico, entre otras razones. LISP permite diseñar las estructuras de datos y los algoritmos que los manejan de una manera muy eficiente. PROLOG, a su vez, tiene muy buen poder expresivo, permitiendo una formulación bastante natural y directa en la solución de muchos problemas. En esto, los lenguajes procedurales son muy malos. No se debe confundir las técnicas de I.A. con software de I.A. Se deben diferenciar dos aspectos fundamentales: ● Software para el desarrollo de aplicaciones con técnicas de I.A. Ejemplo: el shell de un sistema experto, máquina de inferencia más interfase con el usuario, puede ser escrito en cualquier otro lenguaje. De hecho, el LISP y el PROLOG son malos para implementar shells debido a su eficiencia computacional. ● Aplicaciones en el campo de I.A. Ejemplos: Sistemas Expertos, traductores, demostradores de teoremas específicos, etc. Para los traductores es mejor usar LISP y para los de-mostradores de teoremas, es mejor el PROLOG. Es posible resolver problemas de I.A. sin usar técnicas de I.A., aunque las soluciones no son muy buenas. A su vez, es posible aplicar técnicas de I.A. a problemas que no son de I.A. 1.6 Estado del Arte de la Inteligencia Artificial (Aplicaciones y Tendencias) Para entender la importancia de la inteligencia artificial, hay que comprender la IA ha irrumpido en casi todos los campos de la ciencia, hay que ver cual es el estado del arte de esta manera veamos los campos de aplicación de la IA. Página 12 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Solución de problemas de tipo general: La IA generalmente es aplicable a un tipo de usuario aunque un programa puede tener la habilidad de ser aplicado en un rango amplio de sujetos. Sistemas Expertos: Un sistema experto permite que el conocimiento de uno o más expertos sean capturado y almacenados en una computadora. Entonces estos conocimientos podrán ser utilizados por cualquiera que así lo requiera. Procesamiento de Lenguaje Natural (NPL): Estos programas utilizan las técnicas de inteligencia artificial para permitir que la computadora comprenda y genere el lenguaje natural. Un proceso avanzado de procesamiento de voz utiliza las técnicas de IA. Visión en Computadora: Utilización de la computadora para analizar y evaluar la información visual. Las técnicas de IA permiten a la computadora examinar una imagen o escena de la vida real para identificar objetos particulares, formas o patrones. Robótica: La IA también es utilizada en el campo de la robótica. Ese es un campo en que los ingenieros se dedican a la duplicidad de las capacidades de los seres humanos, un natural complemento de la IA que intenten simular las habilidades mentales humanas. Educación: Se utilizan tutores inteligentes que se adapten al estudiante para el proceso de aprendizaje. Además se ha llegado a crear nuevas disciplinas como son: Automática + Mecánica + Computación + IA Mecatrónica Biología Molecular + Computación + IA Bioinformática. BIOINFORMATICA Es la ciencia que utiliza una combinación de las tecnologías de la computación, las ciencias de la información, la biología teórica y el conocimiento biológico, para coleccionar, almacenar, analizar, relacionar y modelar datos biológicos. Significa un Cambio de paradigma: de Buscar datos e Interpretar datos ● La ventaja competitiva cambia de la capacidad de generar datos a la capacidad de interpretarlos. ● Enormes Bases de datos de secuencia de genes y proteínas se duplican cada 14 meses. ● A la economía tecnológica la reemplazará la Bioeconomía. Problemas genéricos: ● Predicción de estructuras y funciones. ● Encontrar relaciones entre genes de diferentes especies y entre genes y determinadas enfermedades. ● Descubrir patrones de Genes y Proteínas. Página 13 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Unidad II: Formas de Representación del Conocimiento Objetivos: ● Explicar las diferentes formas de representación del conocimiento existentes en Inteligencia Artificial. ● Aplicar adecuadamente las formas de representación del conocimiento a un problema específico. 2.1 Definición Llamamos Forma de Representación del Conocimiento (F.R.C.) a la notación usada para representar el mismo, es decir la manera en que se almacena. El objetivo de la representación del conocimiento es expresar éste en forma manejable por la computadora. Un lenguaje para la representación del conocimiento consta de dos aspectos: ● Sintaxis: Explica las posibles configuraciones mediante las cuales se forman las oraciones. Página 14 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora ● Semántica: Determina los hechos del mundo a los que hacen alusión las oraciones. Mediante la semántica, cada oración expresa algo relacionado con el mundo. Un componente clave de cualquier aplicación de la IA es el conocimiento considerado como la comprensión de alguna área especifica que se obtiene a través de la experiencia o educación. El conocimiento esta compuesto de hechos, conceptos, teorías, procedimientos y relaciones. El conocimiento es también información que ha sido organizada y analizada para hacerla más comprensible y aplicable en la solución de problemas o en la toma de decisiones. Se puede asegurar que el proceso de captación y organización del conocimiento, denominado Ingeniería del Conocimiento, es la fase más difícil y que consume más tiempo en la realización de cualquier software que utilice técnicas de IA. Para poder almacenar el conocimiento es necesario lograr su representación, lo cual no es más que la estructuración del conocimiento relacionado con un problema, en una forma que conduzca a que el problema sea más fácil de resolver. La cuestión básica de la representación del conocimiento es el desarrollo de una notación suficientemente precisa con la cual representar el mismo. A esa notación se le llama Forma de Representación del Conocimiento (FRC). Las características comunes de los esquemas de representación del conocimiento son dos: una es que son programados con un lenguaje de cómputo existente y almacenado en memoria, y la otra es que sean diseñados de forma tal que los hechos y otros conocimientos contenidos en ella puedan ser utilizados en razonamiento. Esto es, la base de conocimiento que contiene una estructura de datos que puede ser manipulada por un sistema de inferencia. La otra mayor parte del programa de IA son los sistemas de inferencia que utilizan técnicas de búsqueda y coincidencia de patrones sobre la base de conocimiento, para responder preguntas, sacar conclusiones y efectuar otras formas de una función inteligente. Representaciones y Correspondencia Un componenteclave de cualquier aplicación de IA es el conocimiento, considerado como “la comprensión de algún área específica que se obtiene a través de la experiencia o la educación”. Para resolver los problemas complejos a los que se enfrenta la IA, es necesario disponer tanto de una cantidad de conocimiento como de una serie mecanismos que permitan manipularlo con el fin de obtener soluciones a nuevos problemas. Hay una característica que está presente en todas las representaciones, el hecho de que estamos manejando dos tipos de entidades. Hechos: Verdades en un cierto mundo. Es aquello que queremos representar. Representaciones: de los hechos en un determinado formalismo. Estas son las entidades que realmente seremos capaces de manipular. Estas dos entidades se pueden clasificar en dos niveles distintos: Página 15 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora El nivel del conocimiento, donde se describen los hechos. El nivel simbólico, donde se describen los objetos del conocimiento en términos simbólicos manipulables por programas. Los enlaces de correspondencia entre las representaciones y los hechos son denominados las correspondencias de la representación. La representación hacia delante establece una correspondencia entre los hechos y las representaciones, mientras que la correspondencia inversa se realiza hacia atrás, desde las representaciones hacia hechos. Los programas de IA no hacen más que manipular las representaciones internas de los hechos que reciben. Estas manipulaciones darán lugar a nuevas estructuras que a su vez podrán ser interpretadas como representaciones internas de hechos. En esta figura resulta evidente la importancia de los mecanismos de correspondencia entre las representaciones. Las funciones de correspondencia no suelen ser biunívocas, ni funciones, sino relaciones de muchos a muchos. Ejemplo: Hecho Representación Al menos los perros tienen una cola Todos los perros tienen cola Todo perro tiene cola Página 16 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Pueden representar el mismo hecho de que al menos los perros tienen una cola. Por otra parte, la primera puede representar todos los perros tiene una cola o bien que cada perro tiene varias colas. La segunda que todos los perros tienen al menos una cola o bien que hay una cola común que todos los perros tienen. 2.2 Clasificación de las Formas de Representación del Conocimiento Las F.R.C. pueden clasificarse en: Declarativas: Donde la mayor parte del conocimiento se representa como una colección estática de hechos junto con un pequeño conjunto de procedimientos generales para manipularlos. Ejemplos de ellas son: - Lógica (Proposicional, Cálculo de predicados, No Monotónica, etc.). - Redes semánticas. - Marcos o armazones. - Guiones. Procedurales: Donde la mayor parte del conocimiento se representa como procedimientos para usarlo. - Reglas de producción. - Strips. 2.2.1 Declarativas Una representación declarativa es aquella en la que el conocimiento está especificado, pero la manera en que dicho conocimiento debe ser utilizado no viene dado. En el método declarativo se considera que el control de búsqueda del conocimiento se encuentra completamente separado de las propias reglas. Para utilizar una representación declarativa se debe aumentar ésta con un programa que especifique lo que debe hacerse con el conocimiento y de que modo debe hacerse. Es utilizado para representar hechos y afirmaciones. Por ejemplo, un conjunto de aserciones lógicas, se puede combinar con un demostrador de teoremas por resolución para dar lugar a un programa completo de resolución de problemas. Las F.R.C. declarativas tienen las siguientes ventajas: ● Cada hecho sólo necesita almacenarse una vez, sin importar el número de maneras diferentes en que pueda usarse. ● Es fácil añadir nuevos hechos al sistema sin cambiar los otros hechos ni los procedimientos pequeños. Razonamiento Lógico El lenguaje de la lógica es uno de los mecanismos concretos de la representación del conocimiento. Quizás sea la RPC más antigua. Es considerada una subdivisión de la filosofía. El aspecto más atractivo del formalismo lógico es que proporciona de una Página 17 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora manera inmediata un método muy potente para la obtención de nuevo conocimiento a partir de uno antiguo: la deducción matemática. La regla general para un proceso lógico (ver figura 4), es primero se da la información, se hace la sentencia o se considera la observación. Esta forma de entrada al proceso lógico son las premisas. Las premisas son utilizadas por el proceso lógico para crear la salida que consiste de conclusiones llamadas inferencias. Con este proceso, los hechos que son conocidos como verdaderos pueden ser usarse para deducir nuevos hechos que también deben ser ciertos. La prueba como un método riguroso de demostración de una proposición que se cree cierta se puede extender a la deducción como un medio de obtener respuestas a preguntas y soluciones a problemas. Tipos Básicos de Razonamientos Lógicos Hay dos tipos básicos de razonamientos: el deductivo y los inductivos. Ambos son utilizados por la lógica para realizar inferencias a partir de premisas. Razonamiento Deductivo: Cuando la premisa general es utilizada para obtener una inferencia específica, el proceso es llamado razonamiento deductivo o deducción. El razonar va desde un principio general a una conclusión específica. El proceso deductivo generalmente comienza con una declaración de premisas e inferencias. El proceso deductivo generalmente consiste en tres partes: ● Mayor premisa: Yo no corro cuando la temperatura excede 90º. ● Menor premisa: Hoy la temperatura es de 93º. ● Conclusión: Debido a ello, yo no corro hoy. Para utilizar el razonamiento deductivo, el problema deberá ser formateado en esta forma. Una vez que este formato se logre, la conclusión será valida si las premisas son ciertas. Nuevamente, la idea inicial es la de desarrollar un nuevo conocimiento a partir de un conocimiento dado previamente. Razonamiento Inductivo. Página 18 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Utiliza un número establecido de hechos o premisas con el fin de discurrir alguna conclusión general. ● Premisa: Diodos defectuosos causan que el equipo electrónico falle. ● Premisa: Transistores defectuosos causan que el equipo electrónico falle. ● Premisa: Circuitos integrados defectuosos causan que el equipo electrónico falle. ● Conclusión: Debido a ello, los defectos en los componentes semiconductores son la mayor causa de que los equipos electrónicos fallen. Las conclusiones pueden cambiar si se describen nuevos datos. Siempre habrá alguna incertidumbre en la conclusión al menos que todos los hechos posibles estén incluidos en las premisas, y esto es prácticamente imposible. Como resultado, la salida de un proceso de razonamiento inductivo contendrá siempre alguna medida de incertidumbre. Sin embargo, esta incertidumbre será reducida según más hechos o premisas sean usados en el proceso de razonamiento. 2.2.1.1 Lógica Proposicional Una proposición no es más que una sentencia que bien es cierta o es falsa. Esta es una premisa, la cual puede ser utilizada para derivar nuevas proposiciones o inferencias. Son utilizadas reglas para determinar la veracidad o falsedad de la nueva proposición. En la lógica proposicional se utilizan símbolos tales como letras del alfabeto para representar las proposiciones, premisas, o conclusiones. A = El cartero viene de lunes a sábado. B = Hoy es domingo. C = El cartero no viene hoy. Los problemas del mundo real involucran muchas proposiciones interrelacionadas. Para formular premisas más complejas, dos o más proposiciones pueden combinarse utilizando los operadores lógicos AND, OR, NOT, IMPLICA, o EQUIVALE. Estos son los mismos que aquellos utilizadosen el álgebra Booleana. En efecto, la lógica proposicional involucra solo las proposiciones verdadero o falso, el álgebra booleana y todas las técnicas relacionadas utilizadas en el análisis, diseño o simplemente circuitos de lógica binaria pueden ser utilizados en la lógica proposicional. La sintaxis de la lógica proposicional es bastante sencilla. Los símbolos utilizados en la lógica proposicional son las constantes lógicas verdadero y falso, símbolos de proposiciones tales como P y Q, los conectivos lógicos ^, v, <=>, =>, ¬ y paréntesis ( ). Las oraciones se forman combinando los signos anteriores mediante las siguientes reglas: ● Las constantes lógicas verdadero y falso constituyen oraciones en si mismas. ● Un símbolo propositivo tal como P o Q es una oración, por ejemplo (P ^ Q). ● Una oración se forma combinando oraciones más sencillas con uno de los cinco conectores lógicos: ○ ^ Conjunción lógica ( And o y). Página 19 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora ○ V Disyunción (OR u O). ○ => Implicación. Una oración como (P ^ Q) => R se conoce como implicación (o condicional). Su premisa o antecedente es P ^ Q y su conclusión o consecuente es R. A las implicaciones también se les conoce como reglas o aseveraciones si-entonces. ○ <=> Equivalencia. ○ ¬ (NOT o no). Por ejemplo a una oración como ¬ P se le conoce como la negación de P. La semántica de la lógica propositiva es sencilla, se define especificando la interpretación de los signos de proposición y de las constantes y especificando el significado de los conectores lógicos. Se han desarrollado lenguajes de programación simbólicos como es el PROLOG; el cual está diseñado a la medida del cálculo de predicados y de la operación fundamental de la lógica, que es la inferencia. El nombre del lenguaje responde a la etimología: Programación Lógica (PROgramming in LOGic). La lógica proposicional no es muy útil en la IA, porque ella trata con sentencias o proposiciones completas para determinar si son falsas o verdaderas, resultando pues limitada para representar el conocimiento real. Consecuentemente, la IA usa la Lógica de Predicados (denominado también Cálculo de Predicados, o también Lógica de Primer Orden), que es una forma más elaborada de la lógica que utiliza los mismos conceptos y reglas de la lógica proposicional, pero permite separar una sentencia en sus partes componentes, por lo que se facilita la descripción de las características y aserciones del objeto analizado. La lógica de predicados constituye una FRC que es más aplicable a la resolución de problemas prácticos en una computadora. 2.2.1.2 Lógica de Predicados (Lógica de Primer Orden, Cálculo de Predicados) Debido a que la lógica proposicional relaciona sentencias completas y que cuando ellas son verdaderas o falsas, su habilidad para representar el mundo del conocimiento es limitada. Por lo tanto la IA utiliza la lógica de predicado. Esta es una lógica más sofisticada que utiliza todos los mismos conceptos y reglas que la lógica proposicional. La lógica de predicado permite descomponer una sentencia en partes componentes, nombradas un objeto, una característica del objeto o alguna afirmación del objeto. Esta lógica también permite utilizar variable y funciones de variable en una sentencia lógica simbólica. ● Objetos: gente, casas, números, teorías, colores, juegos de béisbol, guerras, siglos….. ● Relaciones: hermano de, mayor que, dentro de , parte de, de color, sucedió luego de, es el dueño de…… ● Propiedades: rojo, redondo, de varios pisos, falso, lo mejor…. ● Funciones: padre de, mejor amigo de, tercer tiempo de, uno más que…. Ejemplo: “Uno mas dos es igual a tres” Objetos: uno, dos, tres, uno mas dos. Página 20 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Relación: es igual a Función: mas Una proposición o premisa se divide en dos partes, los argumentos u objetos y el predicado (o la afirmación). Los argumentos son los individuos u objetos que se hacen con la afirmación. El predicado es la afirmación que se hace acerca de ellos. Los dos se combinan para crear una proposición. Sintaxis: PREDICATE (Individuo [objeto]1, Individuo [objeto]2). Por ejemplo la proposición: el carro está en el garaje. Se puede establecer como: ADENTRO(CARRO,GARAJE) En el cálculo del predicado se pueden utilizar letras por los argumentos: Proposición: Juan se parece a María. En forma de variable: X = Juan Y = María La proposición sería: SE_PARECE(JUAN, MARIA) Utilizando este sistema es posible formar una base de conocimiento. El conocimiento expresado en el cálculo de predicado puede ser manipulado para generar inferencias: Juan se parece a María. Página 21 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Ramón se parece a María. Juan = X María = Y Ramón = Z SEPARECE(X,Y) AND NOT SEPARECE(Z,Y) IMPLIES NOT SEPARECE(X,Z) Esta expresión dice que si Juan se parece a María y Ramón no se asemeja a María, entonces Juan no es como Ramón. Un cuantificador es un símbolo que permite establecer el rango o alcance de las variables en una expresión lógica. Son utilizados dos cuantificadores básicos en la lógica: Para todo Hay un, Existe un (existencia) Ejemplo: Todos los managuas son ciudadanos de Nicaragua. ( X) [managuas(X), ciudadanos Nicaragua(X)] Algunos carros son rojos. ( X) [carro(X) AND son rojos(X)] Los cuantificadores son la vía exacta para determinar cuando las cosas son ciertas y bajo que condiciones todas las veces o exactamente algunas de las veces. En la lógica de predicados podemos representar los hechos del mundo real como declaraciones escritas como fórmulas bien formadas. Veamos un ejemplo. Sultán es un perro. perro(Sultán) Los humanos son hombres o mujeres. (x) [humano(x) (hombre(x) mujer(x))] Todos los hombres tienen una madre. (x) (y) madre(y,x) Unificación y LIFTING La sección anterior describe cómo se comprendía la lógica de primer orden hasta principios de 1960. Pero un ojo observador (y ciertamente para los expertos en lógica de ese tiempo) hubieran notado que el acercamiento a la proposionalización es más bien ineficiente. Por ejemplo, dada la búsqueda (pregunta) Demonio(x) y la base de conocimiento en ecuación, parece perverso generar oraciones como Rey(Ricardo) ^ Avaro(Ricardo) Demonio(Ricardo). Ciertamente, la inferencia de Demonio(Juan) a partir de las oraciones Página 22 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora x Rey(x) ^ Avaro(x) Demonio(x) Rey(Juan) Avaro(Juan) Parece obvio para un ser humano. Mostraremos como hacerla completamente obvio para una computadora Una regla de inferencia de primer orden La inferencia de que Juan es demonio trabaja de esta manera: encuentra algún x tal que x es un rey y x es avaro, y entonces infiere que x es demonio. De manera más general, si hay alguna substitución θ que haga la premisa de la implicación idéntica a las oraciones que ya están en la base del conocimiento, entonces podemos assert (afirmar, declarar) la conclusión de la implicación, después de aplicar θ. En este caso, la substitución {x/ Juan) alcanza ese objetivo. Podemos hacer que el paso de la inferencia haga aún más trabajo. Supongamos que en ves de saber avaro(Juan), sabemos que todo el mundo es avaro: y Avaro(y). Entonces nos gustaría aún poder concluir que Demonio(Juan), porque sabemos que Juan es un Rey(nombre) y Juan es avaro (porque todo mundo es avaro). Lo que necesitamos para que esto trabaje es una substitución para ambas las variables en la oración de implicación y para las variables en las oraciones a ser igualadas. En este caso, aplicando la substitución {x / Juan, y / Juan} a las premisas Rey(x) y Avaro(x) y las oraciones de la base de conocimiento Rey(Juan) y Avaro(y) las harán idénticas. Por lo tanto, podemos inferir la conclusión de la implicación.Este proceso de inferencia puede ser capturado como una simple regla de inferencia que llamamos Modus Ponens Generalizado. El Modus Ponens Generalizado es una versión elevada (lifted) –eleva el Modus Ponens de la lógica proposicional a la lógica de primer orden. Unificación Reglas de inferencia elevadas requieren encontrar substituciones que hacen que diferentes expresiones lógicas luzcan idénticas. Este proceso es llamado unificación y es un componente de todo algoritmo de inferencia de primer orden. El algoritmo de unificación toma dos oraciones y retorna un unificador para ellas si existe alguno: Unificar(p, q) = θ donde Subst(θ, p) = Subst(θ, q) . Veamos algunos ejemplos de como Unify (unificar) debe comportarse. Supongamos que tenemos una búsqueda Conoce(Juan, x): ¿a quien conoce Juan? Algunas respuestas a esta búsqueda se pueden hallar encontrando todas las oraciones en la base de conocimiento que unifica con Conoce(Juan, x). Veamos los resultados de la unificación con cuatro diferentes oraciones en la base de datos UNIFY (Conoce(Juan, x), Conoce(Juan, Jane)) = {x/Jane} UNIFY (Conoce(Juan, x), Conoce(y, Bill)) = {x/Bill, y/Juan} Página 23 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora UNlFY (Conoce(Juan, x), Conoce(y, Madre(y))) = {y/Juan, x/Madre(Juan)} UNlFY (Conoce(John,x), Conoce(x, Elizabeth)) = fail . La última unificación falla porque x no puede tomar los valores de Juan y Elizabeth al mismo tiempo. Listas y Árboles Las listas y árboles son comúnmente utilizados para representar el conocimiento que se relaciona con ellos regularmente en cada área de la IA. Una lista es una serie escrita de artículos virtualmente relacionados. Las listas son normalmente utilizadas para representar conocimiento jerárquico donde los objetos son agrupados, categorizados o graduados de acuerdo a un rango o relación. Los objetos son divididos en grupos o clases de artículos similares. Entonces, sus relaciones son mostradas enlazándolos a ellos unos con otros. La siguiente figura muestra un formato generalizado de una lista. Un árbol es una estructura gráfica de una jerarquía. Este es simplemente una forma de ilustrar la lista y otra jerarquía del conocimiento. Una lista se muestra en la siguiente figura. Esta consiste de nodos que corresponden a nombres de la lista y elementos. Los nodos son conectados por líneas llamadas arcos que muestran la relación entre los nodos. Página 24 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Herencia Para soportar la representación flexible del conocimiento acerca del mundo es necesario permitir que la jerarquía sea un grafo acíclico dirigido. Se sabe que estos grafos acíclicos son adecuados, ya que se corresponde con la relación subconjunto. La herencia permite nuevas clases que heredan las propiedades, tanto de datos como de los miembros de las funciones de una clase previamente definida. Las nuevas propiedades heredadas se colocan encima de las propiedades heredadas, lo cual puede ahorrar a los programadores bastante código. 2.2.1.3 Redes Semánticas (RS) Una de las formas más antigua y fácil de comprender los esquemas representación del conocimiento es la red semántica. Las redes semánticas son básicamente descripciones gráficas del conocimiento que muestran relaciones jerárquicas entre los objetos. Una red semántica consta de un número de círculos o nodos que representan objetos e información descriptiva acerca de ese objeto. Los objetos pueden ser elementos físicos tales como un libro, un carro, eventos o acciones. Un concepto puede ser la ley de Ohm, un evento puede ser una fiesta, una acción puede ser fabricar una casa o escribir un libro. Los nodos en las redes semánticas están interconectados por enlaces (arcos) que describen las relaciones entre los varios objetos y factores descriptivos. Los arcos pueden definirse de varias formas, dependiendo de la clase de conocimiento representado. Estos muestran la relación entre los varios objetos y factores descriptivos. Se define una red semántica como un grafo dirigido, cuyos nodos representan individuos; un arco está etiquetado con el nombre de la relación que éste representa; varios arcos pueden tener la misma etiqueta, mientras que cada individuo es representado por un solo nodo. Página 25 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Algunos de los arcos más comunes usados para representar jerarquía son del tipo “es-un” o “tiene-un”. El “es-un” muestra una relación de clase, esto es, que un objeto pertenece a una clase grande o categorías de objetos. El enlace “tiene-un” es utilizado para identificar características o atributos de los nodos objetos. Otros arcos son utilizados para propósitos de definición. En general, un enlace designa cualquier relación utilizada para interconectar objetos. Las redes semánticas se utilizan tanto como modelos de organización de la memoria humana así como de esquemas de representación de significados de oraciones en lenguaje natural. Esta representación es ventajosa, pues no hay que hacer mecanismos inferenciales para hallar la relación entre nodos. Simplemente lo que hay que buscar es un camino entre esos dos nodos mediante un algoritmo para el procesamiento de grafos (algoritmos de recorrido). Ejemplo de Representación del Conocimiento en Redes Semánticas La figura central en el dominio del conocimiento es una persona llamada Sam. Un enlace muestra que Sam es un hombre y que el hombre es un ser humano. Otro arco a partir de Sam muestra que este está casado con Kay. Los arcos adicionales muestran que Kay es una mujer y que una mujer es también un ser humano. Otro arco muestra que tiene un hijo Joy que es un niño y que va a la escuela. Otros datos muestran otras características acerca de Sam. Por ejemplo, que es el vicepresidente de una compañía llamada ACME, una compañía que es una subsidiaria de AJAX, una gran corporación. Vemos también que Sam juega golf el cual es un deporte. Posteriormente vemos que Sam es propietario de un carro Mercedes Benz de color plateado que fue hecho en Alemania. Página 26 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora La Red Semántica en la Solución de Problemas Por ejemplo, se pueden hacer preguntas acerca del dominio representado por la red. Comúnmente la propia red nos proveerá de las respuestas: ¿Con quién está casado Sam? Por supuesto, el enlace “casado con” muestra que está casado con Kay. ¿Tiene Sam algún hijo? Por supuesto el enlace “tiene hijo” al hijo Joe muestra que tiene uno. ¿Qué deporte juega? El enlace “juega” a golf suministra la respuesta. La computadora puede buscar hacia delante o hacia atrás a través de los arcos desde el nodo inicial para la búsqueda de las respuestas. Jerarquía en la Red Semántica Debido a que la red semántica es básicamente jerárquica, las características variadas de los nodos realmente heredan las características de los otros. Por ejemplo: El hecho de que el enlace que muestra que Sam es un hombre y el hombre en final es un ser humano, De aquí que Sam herede las propiedades del ser humano. Podremos hacer la pregunta que si Sam es un ser humano y debido al enlace jerárquico, podremos decir que lo es. Otro ejemplo de la herencia es la relación entre la compañía Acme para la cual trabaja Sam y que tiene una corporación padre, Ajax. Nuevamente podríamos realizar una pregunta: ¿Trabaja Sam para la corporación Ajax? Página 27 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora La respuesta es sí, porque esta es propietaria de Acme. Esta característica de herencia de la red semántica la hacen capaz de realizar una variedad de deducciones a partir de la información suministrada. Cantidad de Detalles en una Red Semántica La cantidad de detalles que se pueden incluir en la red semántica dependen del tipo de problema que pueden resolverse. Si los problemas son generales, menos son losdetalles requeridos. Si el problema involucra un lote de adicionales, será necesario dar más explicaciones de la que tiene la red original. Por ejemplo: el enlace que muestra que Sam es propietario de un carro podría ser expandido para mostrar que es propietario de otras cosas. Aquí Sam está enlazado a un nuevo nodo llamado propietario. Manteniendo en mente que los nodos pueden también representar condiciones, situaciones y acciones así como especificar los objetos y sus atributos. Ejercicio: elabore la red semántica para el siguiente conocimiento expresado a través de los siguientes hechos: 1) Víctor es un pingüino. 2) Todos los pingüinos son pájaros. 3) Todos los pájaros son animales. 4) Todos los mamíferos son animales. 5) Todos los perros son mamíferos. 6) Sultán es un sato. 7) Todos los satos son perros. 8) Una raza de perro es el pastor. 9) A Víctor le agrada Sultán y a Sultán le agrada Víctor. 10) Un pájaro puede volar. 11) Un perro puede correr. Página 28 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora 2.2.1.4 Frames (Marcos o Armazones) Un marco (frame) es una estructura de datos compleja que contiene un agregado de información usado para representar conceptos, clases de objetos o instancias individuales con características y experiencias bien conocidas. El marco describe ese objeto en gran detalle. El detalle está dado en forma de ranuras las cuales describen los varios atributos y características del objeto y situación. La información almacenada en una armadura se distribuye en diferentes campos, llamados aspectos o ranuras (slots). Cada aspecto tiene la información sobre un atributo del objeto que se modela, los cuales representan las propiedades del marco. Ejemplos: 1- Marco: Empleado Nombre Edad (entre 16 y 65) Piernas (2 por defecto) Ocupación 2- Marco: Hombre de familia Nombre Edad (entre 16 y 120) Estado civil (genérico:casado) Cónyuge (Apuntador al marco Mujer de familia) Se denomina ejemplificación de un marco a uno con sus ranuras llenas. Podemos ver entonces al marco como una clase de entidades y a una ejemplificación de él como una entidad particular. Ejemplos de ejemplificaciones de los marcos anteriores son: 1- Marco: Empleado Nombre: Jesús López Edad: 32 Piernas: 2 Ocupación: Programador 2- Marco: Hombre de familia Nombre: Jesús López Edad: 32 Estado civil: casado Cónyuge: (Apuntador a la ejemplificación para Mujer de familia de Mariela Pérez) A cada aspecto se le pueden asociar varios tipos de información, llamados facetas del aspecto. Algunas se las propiedades que nos gustaría ser capaces de representar y utilizar en el razonamiento incluyen: VALUE: Almacena el valor para el aspecto. PROCEDURE: Contiene un procedimiento para calcular el valor que debe ser almacenado en la faceta VALUE. Página 29 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora DEMONS: Contiene procedimientos que tienen que ser ejecutados cuando cambia el valor almacenado en VALUE. DEFAULT: Contiene un valor inicial, por omisión o valores comúnmente usados para la faceta VALUE. RESTRICTIONS: Contiene un conjunto de expresiones lógicas que tienen que ser verdaderas para el valor almacenado en VALUE. EXPLANATION: Almacena documentación sobre el aspecto. En general se puede plantear que la información almacenada usando como FRC las armaduras presenta cuatro niveles de detalle: ● La armadura (estructura compleja). ● Los aspectos o ranuras (información sobre atributos). ● Las facetas de cada aspecto (tipos de información asociada). ● Los valores almacenados en cada faceta (propiedades para representar y utilizar en el razonamiento). No necesariamente un aspecto incluye todas las facetas. Las armaduras pueden ser organizadas como una jerarquía, para lo cual es suficiente incluir en la armadura una o más aspectos que contengan un enlace a la armadura superior en la jerarquía, de la cual ella es una instancia, Cuando esta estructura jerárquica es usada, una armadura puede heredar las propiedades de otra armadura, o sea, compartir información a través de la herencia. Esta FRC es útil para almacenar el conocimiento sobre los elementos de un dominio de aplicación que tiene una descripción estereotipada o conocimientos basados en características bien conocidas o experiencias; además es fuerte para permitir que la información común sea almacenada de modo compartido para múltiples armaduras. Sin Página 30 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora embargo, las armaduras no ofrecen directamente facilidades para describir cómo se usa el conocimiento almacenado. Ejemplo de Ranura: Pitcher: es-un : Jugador de Base Ball Dominio : Rango : Persona Restricción del Rango: experiencia en Base Ball como pitcher. Right Field: es-un : Jugador de Base Ball Dominio: Rango: Persona Restricción del rango: Experiencia en Base Ball Jugador de Leon: es-un: Jugador de Base Ball Dominio: Rango: Persona Por omisión: Jugador de. Entrenador: Es-un: Jugador de Base Ball Dominio: Rango: Persona Restricción del Rango: Experiencia en Base Ball como entrenador Por omisión: Entrenador de. Jugador de Matagalpa: Es-un: Jugador de Base Ball Dominio: Rango: Persona Por omisión: Jugador de. Jugador de Liga Nacional: Es-un: Jugador de Base Ball Dominio: Rango: Persona Por omisión: Jugador de. Página 31 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Ejercicio: Usando el formato sugerido represente el siguiente conocimiento: 1. Los mamíferos tienen cuatro patas 2. Los perros son mamíferos 3. Los gatos son mamíferos 4. Fido es un perro 5. Fido tiene tres patas 6. Mini es un gato Nombre del Marco Ranura Valor de Ranura Nota: utilice el concepto de clases 2.2.1.5 Guiones (SCRIPTS) Un guión es una representación del conocimiento de secuencia que describe una secuencia de eventos en un contexto. Los guiones son estructuras de datos complejas, designadas para almacenar el conocimiento sobre una secuencia estereotipada de acciones. Este conocimiento informa a los sujetos que intervienen en la secuencia de eventos lo que puede suceder en una situación, cuál evento sigue y qué papel debe jugar cada quién en la actividad que se describe. Los guiones resultan útiles porque en el mundo real aparecen patrones en la ocurrencia de eventos. Estos patrones surgen debido a las relaciones de causalidad entre los eventos. Los eventos que se describen en un guión forman una gigantesca cadena causal. Para almacenar dicho conocimiento el guión usa un conjunto de ranuras que contiene información acerca de los sujetos que intervienen en al secuencia de eventos, lo que puede suceder en una situación, cuál evento sigue y qué papel debe jugar cada quien en la actividad que se describe. Si se sabe que un guión es apropiado para una situación dada, entonces puede resultar muy útil para poder predecir las ocurrencias de eventos que no se han mencionado explícitamente. Los guiones pueden resultar también útiles para indicar la forma en que los eventos mencionados se relacionan con los demás. La información en los guiones puede referirse a: Página 32 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora -Entry Condition. Condiciones bajo las cuales el evento a que se refiere el script debe efectuarse (estas condiciones describen situaciones que necesitan ser satisfechas antes que el evento se realice). -Roles. Sujetos que actúan en el evento descrito. -Props. Objetos utilizados por los sujetos. -Tracks. Lugar donde ocurre el evento. -Results. Condiciones que existen después de ocurrir el evento. Los guiones son útiles en la predicción de lo que va a suceder en cierta situación, aún sin observar algunos eventos. Entre las aplicaciones que usan scripts se encuentran: -Procesamiento del lenguaje natural. -Representación, procesamiento y generaciónde historietas. -En un sistema de EAC, para dar explicaciones y realizar modelos de conocimiento del estudiante. Pero en la práctica, esta estructura del conocimiento es inadecuada. Un ejemplo de un guión típico es la visita a un restaurante. GUION RESTAURANTE Sitio: Restaurante de autoservicio y su contorno. Sujetos: Cliente (C), Dependiente (D), Cajero (J). Objetos: Contadora, bandeja, comida, dinero. Condición: C tiene hambre, C tiene dinero. Escena 1: “Entrada al restaurante” - C entra al restaurante. - C se pone en cola ante la contadora. - C lee el menú en la pared y decide qué pedir. El episodio “C entra al restaurante” puede estar formado por los eventos “abrir la puerta” y “dirigirse a la línea de servicio”. Escena 2: “Tomar los alimentos” - C toma la bandeja vacía. - C le pide a D los alimentos. - D coloca los alimentos en la bandeja. - C le paga a J. Escena 3: “Comer los alimentos” - C toma la bandeja con los alimentos. - C coloca la bandeja en una mesa vacía. - C ingiere los alimentos. Escena 4: “Salida del restaurante” - C se levanta de la mesa. - C abandona el restaurante. Resultados: C no tiene hambre, C tiene menos dinero, C está satisfecho o no, C está demasiado lleno. Página 33 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora 2.2.2 Procedurales Como ventajas de las F.R.C. procedurales podemos señalar: ● Es fácil representar el conocimiento sobre cómo hacer cosas. ● Es fácil representar el conocimiento que no encaja bien en muchos esquemas declarativos simples, como por ejemplo razonamientos por defecto y probabilísticos. ● Es fácil representar conocimiento heurístico de cómo realizar las cosas eficientemente. 2.2.2.1 Strips (Sistemas de Planificación) La planificación es la generación de una secuencia de acciones o programa de acción para un agente, como por ejemplo el brazo de un robot. Estas acciones cambian de un estado del universo sobre el que se desarrolla la planificación a otro. Al igual que en las reglas de producción, los STRIPS transforman la descripción de un estado en otra. Un strip está compuesto por: ● Condiciones (Precondición): son los enunciados que deben cumplirse en un estado dado para poder ejecutar una acción expresada mediante una regla determinada. ● Lista de literales a ser eliminados (Suprimir): contiene los enunciados que dejan de ser válidos al aplicarse dicha regla. ● Lista de literales a ser añadidos (Añadir): contiene los enunciados que se hacen válidos en el nuevo estado una vez aplicada dicha regla. Cualquier enunciado que no esté incluido en las listas Suprimir o Añadir de un strip se supone que no queda afectado por él. Esto significa que, al especificar cada strip, no necesitamos considerar los aspectos del dominio que no se relacionan con él. Naturalmente, debe usarse algún otro mecanismo distinto de la simple demostración de teoremas para calcular las descripciones completas de los estados después de haber realizado las acciones. La esencia de esta F.R.C. es: Si la acción A transforma el estado S1 en el estado S2, entonces una proposición P es verdadera en el estado S2, si y sólo si P está en la lista Añadir de A o P es verdadera en S1 y no está en la lista Suprimir de A. Analicemos el problema clásico: el mundo de bloques. Este problema puede plantearse de la siguiente manera: Hay una superficie plana sobre la cual pueden colocarse bloques. Existe cierto número de bloques cúbicos, todos del mismo tamaño. Pueden apilarse uno encima del otro. Hay un brazo de robot que puede manipular los bloques. El brazo del robot sólo puede sostener un bloque a la vez. Cada bloque puede tener como máximo un único bloque encima de él, no entendiendo por esto que no pueda tener 3 bloques: uno encima del segundo y el segundo encima del tercero. Supongamos que se tiene sobre una mesa, una distribución inicial de tres bloques, como se muestra en la figura 2.14. Se desea elaborar un sistema que determine la secuencia de acciones a realizar por el brazo del robot para transformar dicha distribución en la mostrada en la figura 2.15. Página 34 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora A A B C B C Fig. 2.14. Distribución inicial Fig. 2.15. Distribución deseada Para transformar la distribución inicial (figura 2.14) en la deseada (figura 2.15) se necesitan definir una serie de acciones: TOMAR(x): Tomar el bloque x que está encima de la mesa y sostenerlo. Para ello, el bloque x debe estar encima de la mesa, el brazo del robot debe estar vacío y el bloque x no debe tener ningún bloque encima. DEJAR(x): Dejar el bloque x encima de la mesa. Para ello, el brazo del robot debe estar sosteniendo al bloque x. APILAR(x,y): Colocar el bloque x encima del bloque y. Para ello, el brazo del robot debe estar sosteniendo al bloque x y encima de y no debe existir ningún bloque. DESAPILAR(x,y): Quitar el bloque x de encima del bloque y. Para ello, el bloque x debe estar encima del bloque y, el brazo del robot debe estar vacío y el bloque x no debe tener bloques encima. Estas acciones se representan por medio de las siguientes reglas STRIPS: TOMAR(x) Precondición: ENMESA(x) BRAZOVACIO DESPEJADO(x) Suprimir: ENMESA(x) BRAZOVACIO Añadir: SOSTENIDO(x) DEJAR(x) Precondición: SOSTENIDO(x) Suprimir: SOSTENIDO(x) Añadir: ENMESA(x) BRAZOVACIO APILAR(x,y) Precondición: DESPEJADO(y) SOSTENIDO(x) Suprimir: DESPEJADO(y) SOSTENIDO(x) Añadir: ENCIMA(x,y) BRAZOVACIO DESAPILAR(x,y) Precondición: ENCIMA(x,y) DESPEJADO(x) BRAZOVACIO Suprimir: ENCIMA(x,y) BRAZOVACIO Añadir: SOSTENIDO(x) DESPEJADO(y) Las tres componentes de cada regla STRIP se definen usando algunos predicados básicos. Para este universo los predicados básicos más frecuentes son: DESPEJADO(x): el bloque x no tiene bloques encima. Página 35 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora SOSTENIDO(x): el brazo del robot está sosteniendo al bloque x. ENCIMA(x,y): el bloque x está encima del bloque y. ENMESA(x): el bloque está colocado directamente sobre la mesa. BRAZOVACIO: el brazo del robot está vacío. 2.2.2.2 Reglas de Producción El conocimiento procedimental especifica qué hacer en una determinada situación. Este conocimiento se suele especificar en la máquina como un código que hace algo. La máquina utiliza el conocimiento cuando ejecuta el código para llevar a cabo una determinada tarea. Es la técnica de representación del conocimiento procedimental más usada en la actualidad, para la cual se han desarrollado un mayor número de herramientas comerciales y constituyen un medio eficaz para la codificación del cómo conocer la resolución de problemas de los expertos humanos. Ellas consisten en sentencias de dos partes que incorporan pequeñas partes de conocimiento. La primera parte es el antecedente, expresa una situación o premisa, mientras que la segunda parte, llamada consecuencia, establece la acción particular o conclusión que se aplica si la situación o premisa es cierta. Las reglas siempre expresan una condicional con un antecedente (situación o premisa) y un consecuente (acción o conclusión). Si el antecedente es satisfecho o verdadero, entonces se obtiene el consecuente. La forma más común está dada por el formato: ANTECEDENTE ==> CONSECUENTE SITUACION ==> ACCION PREMISA ==> CONCLUSION Ellas representan una unidad relativamente independiente delconocimiento, las cuales pueden describir relaciones como las siguientes: Si situación S, entonces acción A. Si premisa P, entonces conclusión C. La parte izquierda de la regla es una sentencia con el prefijo IF. La segunda es con el prefijo THEN. Ejemplo: Si novena entrada, y Menos de dos outs, y Primera base vacía, y El bateador golpea mejor que el siguiente Entonces se embasa el bateador Una de las ventajas de las reglas de producción es la modalidad de tal enfoque, otra ventaja es que pueden captar conocimiento probabilístico útil o conocimiento de juicio que los humanos utilizamos a menudo al razonar. Página 36 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Las reglas de producción son una de las más flexibles formas de representar el conocimiento. Debido a la similitud entre las reglas de producción y las fórmulas de la lógica proposicional, muchos de los métodos y teoremas bien definidos de la lógica formal pueden ser aplicados a los sistemas de producción. Por lo que son fáciles de crear y comprender. Las RP pueden ser fácilmente comprendidas y tienen suficiente fuerza expresiva para: ● Representar reglas de inferencia dependientes del dominio. ● Almacenar el conocimiento que puede ser expresado como heurística experimental. ● Expresar conocimiento orientado a objeto. ● Expresar relaciones causales. Al usar las RP como FRC se pueden desarrollar sistemas con las siguientes características: ● Cada regla define una pequeña unidad de conocimiento relativamente independiente (modularidad). ● Se pueden añadir nuevas reglas con una relativa independencia del resto (incrementalidad). ● Las reglas viejas pueden ser modificadas con relativa independencia (modificabilidad). ● La habilidad del sistema crece proporcionalmente a la cantidad de reglas. ● El conocimiento existente puede ser refinado. Partes de un Sistema Basado en Reglas: Un sistema basado en reglas de producción consta de: a. Un conjunto de reglas denominadas reglas de producción. b. Un sistema de gestión de base de datos. c. Un intérprete de reglas. a. Un conjunto de reglas denominadas reglas de producción. Una “regla de producción” es un par condición/acción de la forma: Si C entonces A Donde C es alguna condición que tiene que ser satisfecha por los datos de la base de datos antes que la regla pueda ser aplicada y la acción A tomada. C puede ser una expresión compuesta, tal como se ilustra en la regla: Si [C1 y C2] o [C3 y NO C4], entonces A. Con las reglas se utilizan las conjunciones AND, OR, que son añadidas como funciones lógicas combinadas con IF si la representación del conocimiento así lo requiere. Un ejemplo de regla de producción es: Si manchas rojas, fiebre, y edad escolar, Página 37 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Entonces el paciente tiene varicela. Para definir algún dominio del conocimiento exactamente, muchas reglas de producción deben ser comúnmente utilizadas. Las reglas suministran detalles acerca de objetos, sus características y acciones a ser tomadas. Ellas toman un lote de detalles para cubrir precisamente un objeto. Las reglas son comúnmente interrelacionadas y referenciadas unas con otras. Estas reglas forman una base de conocimiento, la cual forma parte de un sistema de producción. Un sistema de producción consiste de una base de conocimiento más una base de datos y un mecanismo de inferencia. b. Un sistema de gestión de base de datos. El “sistema de gestión de base de datos” de un sistema de producción gestiona una base de datos que consta de un número de hechos relevantes en un problema en particular para el que está utilizándose el sistema de producción. En la base de datos están dadas las condiciones iniciales y el éxito a ser logrado. c. Un intérprete de reglas. El “intérprete de reglas” es un programa que identifica reglas aplicables, es decir, reglas en las que la parte condición está satisfecha; y determina el orden en el que las reglas aplicables deberían ser utilizadas. Los mecanismos de control e inferencia buscan sobre la base de conocimiento buscando las reglas que coinciden con las condiciones iniciales o con el éxito de la base de datos. Aquellas reglas que coincidieron con las condiciones o con el éxito buscado entonces nos proveen del conocimiento básico para resolver el problema. Ejemplo de Aplicación de las Reglas de Producción: Una característica muy importante es que la base de conocimientos es independiente del mecanismo de inferencia que se utiliza para resolver de inferencia que se utiliza para resolver los problemas. De esta forma, cuando los conocimientos almacenados se han quedado obsoletos, o cuando se dispone de nuevos conocimientos, es relativamente fácil añadir reglas nuevas, eliminar las antiguas o corregir errores en las existentes. No es necesario reprogramar todo el sistema experto. Las reglas suelen almacenarse en alguna secuencia jerárquica lógica, pero esto no es explícitamente necesario. Se pueden tener en cualquier secuencia y el motor de inferencia las usará en el orden adecuado que necesite para resolver un problema. Una base de conocimiento estructurada indica que hay hojas terminales en cada paso de un árbol de decisiones. En una base de conocimiento completamente estructurada es imposible para las reglas en la base de conocimiento estar fuera de orden según halla un paso y solo un paso para cada éxito en la base de conocimiento. Estos tipos de base de conocimiento, comúnmente toman un gran esfuerzo en construirse, pero son más satisfactorias en su comportamiento. Generalmente planificamos cómo la información deberá ser vista por el código. Por ejemplo: Página 38 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora Nótese que hay una hoja Terminal para cada paso en el árbol. En este tipo de árbol de la base de conocimiento la respuesta del usuario está limitada a Si o No. Una base de conocimientos muy ingenua, para identificar vehículo, podría ser la siguiente: Regla 1: SI tiene 2 ruedas Y utiliza motor ENTONCES es una motocicleta Regla 2: SI tiene 2 ruedas Y es movido por el hombre ENTONCES es una bicicleta Regla 3: SI tiene 4 ruedas Y utiliza motor Y pesa menos de 3500 Kgrs. ENTONCES es un coche 2.3 Representación con Incertidumbre Como veremos, una de las debilidades de la lógica tradicional es su inhabilidad para tratar con la incertidumbre. Las oraciones lógicas deben ser expresadas en términos de falso o verdadero –no es posible razonar, en lógica clásica, sobre posibilidades. Veremos diferentes versiones de lógica como lógica modal, abducción e inducción que proveen alguna habilidad para razonar sobre posibilidades, y hay también los métodos probabilísticos y la lógica difusa que proveen formas más rigurosas para razonar en Página 39 de 119 Inteligencia Artificial – Compilado por Ing. Irving Góngora situaciones de incertidumbre, que son parte de un curso más avanzado. Abducción y Razonamiento Inductivo El tipo de razonamiento que hemos ha sido el razonamiento deductivo, el que en general está basado en el uso del Modus Ponens y las otras reglas de razonamiento deductivo. Este tipo de razonamiento asume que estamos tratando con incertidumbres y no nos permite razonar sobre cosas de las cuales no estamos seguros. Hay otro tipo de razonamiento, el razonamiento inductivo, que no tiene la misma base lógica pero que puede ser extremadamente poderosa para tratar con situaciones en las que carecemos de certidumbre. Extrañamente, otra forma de razonamiento, abducción, esta basado en una mentira común que puede ser expresada como: Note que la abducción es muy similar al Modus Ponens, pero no es lógicamente razonable un ejemplo típico de esta regla puede ser “Cuando Roberto esta enfermo, no viene a trabajar. Roberto no está en el trabajo hoy. Por lo tanto está enfermo.” De hecho, Roberto puede estar de fiesta, o atendiendo un funeral, o quizás
Compartir