ISI 504 Inteligencia Artificial UNIVERSIDAD DEL AZUAY FACULTAD DE CIENCIAS DE LA ADMINISTRACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS A) DATOS GENERALES Materia: Nivel: 5 Número de créditos: Prerrequisito: Periodo Lectivo: Profesor: ISI 504 Inteligencia Artificial 4 ISI 405 Programación Declarativa Marzo 2006 a Julio 2006 Ing. Pablo Pintado [email protected] 097031452 B) OBJETIVO GENERAL Y ESPECÍFICOS DE LA MATERIA Conseguir que el alumno conozca los principales problemas y técnicas relacionadas con la Inteligencia Artificial y los Sistemas Expertos, proporcionándole una visión unificada de la misma. C) CONTENIDO DE LA MATERIA Introducción Concepciones de la Inteligencia Artificial (IA) Áreas de la Inteligencia Artificial Juegos Inteligentes (I trabajo práctico - programación) Min-Max Estrategia de Poda Procesamiento de lenguaje natural Niveles de procesamiento de lenguaje natural Arquitectura Dificultades Aplicaciones Robótica Leyes Morfología Clasificación Categorías Grados de libertad Sensores y efectores Formas de comunicarse con el robot Metodología del diseño de un Robot Aplicaciones Videos Redes Neuronales (I trabajo práctico - programación) Red neuronal artificial 1 ISI 504 Inteligencia Artificial Entrenamiento Red Perceptron Red Adaline Red Hebb Red Hopfield Algoritmos Genéticos Lógica borrosa (fuzzy logic) Diseño de un algoritmo genético (GA) Operadores genéticos SMA (MAS) Sistemas multiagentes Agentes Inteligentes Tipos de Agentes Ambientes Características de agentes Clasificación de agentes Características de los SMA Estructura de los SMA Pilares de los SMA Estrategia para representar el Conocimiento Redes semánticas especializadas Ternas objeto-atributo-valor Reglas Marcos Expresiones lógicas Lógica proporcional Lógica de predicados especializadas Sistemas Expertos Concepto Sistemas Expertos Componentes (subsistemas) de un Sistemas Experto Experto Humano Ingeniero del Conocimiento Subsistema del control de la coherencia Subsistema de Adquisición del conocimiento Conocimiento abstracto Conocimiento concreto Base del Conocimiento La memoria de trabajo El motor de inferencia Conclusiones simples Conclusiones compuestas Mecanismo resolución Técnicas de razonamiento incierto Estrategia de encadenamientos Subsistema de demanda de información Interfase de Usuario Subsistema de ejecución de órdenes Subsistema de explicación Subsistema de propagación de la incertidumbre Medidas de Incertidumbre 2 ISI 504 Inteligencia Artificial Subsistema de aprendizaje Subsistema de experiencias Funciones del Sistema Experto Etapas de desarrollo de un Sistema Experto Tipos de Sistemas Expertos Algoritmo de sistema experto basado en reglas (II Trabajo practico - programación) Solución de problemas mediante búsqueda Definición del problema y soluciones Estructura de datos para árboles de búsqueda Búsquedas sin respaldo de información (ciega) (III Trabajo practico - programación) Búsqueda de costo uniforme Búsqueda limitada por profundidad Búsqueda por profundización interactiva Búsqueda bidireccional Búsqueda con respaldo de información (III Trabajo practico programación) Búsqueda heurística avara Búsqueda heurística admisible Búsqueda por ascenso de cima Endurecimiento simulado Sistemas expertos modelos Sistemas de diagnostico Sistemas aproximaciones asociativa y causal Sistemas de reducción de grandes espacios de búsqueda mediante podas. D.- METODOLOGÍA Se desarrollará el temario planteado en el transcurso de las clases de una forma dinámica insertando la participación del estudiante, conjuntamente con la expresión de experiencias reales tanto por parte del Profesor como del estudiante. Se tomaran lecciones orales al inicio de cada clase sobre la clase anterior, las mismas que serán evaluadas como parte del aprovechamiento. Se desarrollaran trabajos, los mismos que serán sustentados en clases o en el Laboratorio de Cómputo. Adicionalmente se tomarán al menos tres pruebas sobre el contenido de la materia, las mismas que serán avisadas con anticipación de una semana. Y finalmente se tomara un examen final. E.- EVALUACIÓN 1 Aporte Lecciones Trabajos Pruebas Total 1 Aporte 1 puntos 6 puntos 3 puntos -------10 puntos 3 ISI 504 Inteligencia Artificial 2 Aporte Lecciones Trabajo Pruebas Total 2 Aporte 3 Aporte Lecciones Trabajo Pruebas Total 3 Aporte Total Aporte del ciclo Examen Final Total general del ciclo 1 puntos 5 puntos 4 puntos -------10 puntos 1 puntos 5 puntos 4 puntos -------10 puntos 30 puntos 20 puntos ------50 puntos F) BIBLIOGRAFÍA INTELIGENCIA ARTIFICIAL, UN ENFOQUE MODERNO, Stuart Russell, Peter Norving, SISTEMAS EXPERTOS, Nebendahl Dieter SISTEMAS EXPERTOS, PRINCIPIOS Y PROGRAMACION, Giarratono Joseph, Riley Gary, Internacional Thomson Editores AI AND EXPERT SYSTEMS, Robert levine, McGraw-Hill REDES NEURONALES ALGORITMOS, APLICACIONES Y TECNICAS DE PROGRAMACION, James A Freeman, David M Skapura, SMA o MAS (sistemas multiagentes conceptos) – Universidad de los Andes de Colombia, http://agamenon.uniandes.edu.co/yubarta/agentes/agentes2.htm SMA o MAS (sistemas multiagentes) – Universidad Alberta (links a otras universidades ciencia de la computación) – aprendizaje Bayesiano, redes de conocimiento, http://www.cs.ualberta.ca Programas de procesamiento de lenguaje natural, http://www.zonagratuita.com/_vti_bin/shtml.exe/buscador.htm ga (algoritmos genéticos) conceptos, programa en visual basic, http://www.geocities.com/siliconValley/Byte/4713/ga/E-GA8.htm robótica, http://www.robotica.org robótica Universidad de Leida.incluye matlab, http://www.micropic.arrakis.es/marcos.htm http://robotics.stanford.edu 4 ISI 504 Inteligencia Artificial http://www.stanford.edu/ inteligencia artificial, redes neuronales, procesamiento de lenguaje natural, http://csone.kaist.ac.kr/~chopin/bookmark.htm DESARROLLO DEL TEMARIO Introducción La Inteligencia al ser humano le permite tener la habilidad de: Tener actitudes mentales (creer, deseo, intención) Aprender (habilidad de adquirir nuevos conocimientos) Resolver problemas (habilidad de romper problemas complejos en pequeños) Comprender Planificación y predicción de consecuencias por acciones contempladas Conocer sus limitaciones de conocimiento y habilidades Deducir diferencias entre situaciones aparentemente similares Ser original (adquirir sus nuevas propias ideas y conceptos) Generalizar (encontrar situaciones comunes de situaciones superficialmente distintas) Percibir y modelar el mundo externo Comprender y usar los lenguajes y utilitarios de símbolos relacionados. Inteligencia Artificial: “Es simplemente una vía para crear computadoras pensando inteligentemente”. Áreas de la IA Varias son las áreas entre ellas tenemos: Juegos Inteligentes Los programas de juegos han alcanzado gran desarrollo hoy en día, llegando a ganar a expertos en el tema como es el caso del ajedrez (eje: ID3 genera programas de ajedrez, MEPHISTO IV: programa de ajedrez) ANEXO (tres en raya) MIN-MAX (simulación) MÍN-MAX (SIMULACIÓN) - Algunos antecedentes para la explicación del método: o Estado inicial: que incluye la posición inicial en el tablero y una indicación de a quien le toca jugar 5 ISI 504 Inteligencia Artificial - o Operadores: quienes definen que jugadas están permitidas a un jugador o Prueba Terminal: que define el termino del juego, es decir, los estados donde termina el juego o Utilidad: conocida como función resultado, donde asigna un valor numérico al resultado obtenido en un juego Lo que se trata es hacer que MAX encuentre una estrategia que conduzca a un estado Terminal ganador, independiente de lo que haga MIN 6 ISI 504 Inteligencia Artificial grafico pag. 133 (inteligencia artificial) 7 ISI 504 Inteligencia Artificial donde se observa un árbol de búsqueda parcial del juego del tres en raya y al final en cada nodo hoja un numero que representa el valor de utilidad del estado Terminal desde el punto de vista de MAX y malos para MIN - de ahí que nace el algoritmo MÍN-MAX que sirve para obtener la estrategia mas optima para MAX, posee 5 pasos: o Generación de todo el árbol de juego, completamente hasta alcanzar los estados terminales o Aplicación de la función de utilidad a cada estado Terminal y obtención de su valor respectivo o Uso de la utilidad de los estados terminales para calcular la utilidad de los nodos del siguiente nivel superior en el árbol de búsqueda. - Es así que si la utilidad que estamos calculando del nivel superior es cuando le toca jugar a MIN se deberá escoger o poner la menor utilidad (en referencia que estamos buscando el algoritmo de MAX) de los nodos descendientes, - En cambio, si la utilidad que estamos calculando del nivel superior es cuando le toca jugar a MAX se deberá escoger o poner la mayor utilidad (en referencia que estamos buscando el algoritmo de MAX) de los nodos descendientes o Continuación de esta transferencia de utilidad en dirección a la raíz, una capa a la vez o Finalmente si los valores transferidos llegan a la parte superior del árbol, en este sitio MAX elige la jugada que le permita obtener el valor mas alto, esta decisión se la conoce como decisión min-max PODA ALFA-BETA (SIMULACIÓN) - - - Si se nota en la búsqueda anterior, se debe barrer todos los nodos del árbol de búsqueda, lo cual es valido para casos de pocos nodos, pero si el árbol es demasiado grande es recomendable buscar un algoritmo correcto sin tener que explorar todo, esto se denomina PODA y específicamente Poda-alfa-beta que se aplica al árbol mínmax estándar Donde hará la misma jugada pero elimina las ramas que no le representan alternativas positivas y no influyan en la decisión final Recuérdese que la búsqueda mín-max es preferente por profundidad, es decir, que en todo momento es necesario considerar todos los nodos que están en una sola ruta del árbol o Sea α el valor mejor opción encontrada hasta entonces en un punto dentro de la ruta MAX o β el valor mejor opción encontrada hasta entonces en un punto dentro de la ruta MIN (valor mas bajo) 8 ISI 504 Inteligencia Artificial o estos dos valores anteriores irán variando a lo largo de la búsqueda, en donde se encuentra un subárbol que es peor valor que α y β y se lo elimina. Procesamiento de lenguaje natural Lenguaje Natural “Lenguaje natural es el sistema de comunicación entre el hombre y el ordenador” PLN es la área de IA que hace que los ordenadores lean, hablen y entiendan en lenguaje de las personas. Este tipo de programas denominados “proceso de lenguaje natural”. Facilitar la comunicación hombre-computadora por medio del lenguaje humano, o lenguaje natural 9 ISI 504 Inteligencia Artificial producir sistemas informáticos que posibiliten dicha comunicación, por medio de la voz o del texto disciplina tan antigua como el uso de las computadoras (años 50), de gran profundidad, y con aplicaciones tan importantes como la traducción automática o la búsqueda de información en Internet Niveles de Procesamiento de Lenguaje Natural Estos son utilizados para la explicación de la arquitectura de un sistema de PLN. Nivel Fonológico: cómo las palabras se relacionan con los sonidos que representan. Nivel Morfológico (léxico): Cómo las palabras se construyen a partir de unidades de significado mas pequeñas llamadas morfemas. Ejemplo: Rápida + Mente = Rápidamente. Sufijo (ando, endo) trabajando Raíz (ar, ir) salir Prefijo (in) incomodar. Nivel Sintáctico: cómo las palabras pueden unirse para formar oraciones, mediante reglas gramaticales tenemos: Frase nominal: FN (nombre), (articulo, nombre), (articulo, nombre, adjetivo), etc. Frase Verbal: FV (Verbo), (Verbo, complemento), (verbo, nombre), (verbo, adverbio, nombre) etc. Nivel Semántico: trata del significado de las palabras y de cómo los significados se unen para dar significado a una oración Ejemplo: de una oración con artículo, nombre, verbo; se la define reglas por el orden de las palabras. ANEXO (análisis gramatical grafico) Nivel Pragmático: Cómo las oraciones se usan en distintas situaciones y de cómo el uso afecta al significado de las oraciones. Se suele reconocer un subnivel recursivo: discursivo, que trata de cómo el significado de una oración se ve afectado por las oraciones inmediatamente anteriores. El problema de la Ambigüedad Uno de los grandes problemas del PLN se produce cuando una expresión en LN posee más de una interpretación. Este problema de la ambigüedad se presenta en todos los niveles del lenguaje, sin excepción. Ejemplo: "Juan vio a María, con el telescopio” "Juan vio a María con el telescopio” Al presentarse en todos los niveles del lenguaje, se tienen que desarrollar programas (en lenguaje formal) para solucionarlos en cada caso. Arquitectura de un sistema de PLN Conocidos los niveles del lenguaje, el siguiente paso es la elaboración de la arquitectura del sistema de PLN, o sea, como va la computadora a interpretar y analizar las oraciones que le sean proporcionadas, basándose en el siguiente esquema: El usuario le expresa a la computadora que es lo que desea hacer. 10 ISI 504 Inteligencia Artificial La computadora analiza las oraciones proporcionadas, en el sentido morfológico y sintáctico, es decir, si las frases contienen palabras compuestas por morfemas y si la estructura de las oraciones es correcta. El siguiente paso, es analizar las oraciones semánticamente, es decir saber cual es el significado de cada oración, y asignar el significado de estas a expresiones lógicas (T o F). Luego se realiza el análisis pragmático de la instrucción, obteniéndose la expresión final. Una vez obtenida la expresión final, el siguiente paso es la ejecución de esta, para obtener así el Resultado y poder proporcionárselo al usuario. Dificultades en el PLN Detección de separación entre las palabras En la lengua hablada, no se suelen hacer pausas entre palabra y palabra. Mientras que en la lengua escrita, idiomas como el idioma chino mandarín tampoco tienen separaciones entre las palabras Ambigüedad semántica Cualquier palabra puede tener varios significados, se selecciona el significado que tiene un mayor sentido dentro del contexto Ambigüedad sintáctica La gramática de lenguas naturales tienen normalmente ambigüedades estructurales, pudiéndose construir distintos árboles sintácticos. Para escoger el más apropiado, a menudo, hay que tener en cuenta información semántica y contextual Información pragmática Una oración, a menudo, no significa lo que realmente se está diciendo. Elementos tales como la ironía tienen un papel importante en la interpretación del mensaje Recepción imperfecta de datos Acentos extranjeros, regionalismos o dificultades en la producción del habla, errores de mecanografiado o expresiones no gramaticales. Aplicaciones del PLN Traducción automática: la traducción correcta de un lenguaje a otro, tomando en cuenta lo que se quiere expresar en cada oración, y no solo palabra por palabra. Ejemplo Babilón, Recuperación de la información: Se da una instrucción en LN y el computador responde lo referente al tema Extracción de Información y Resúmenes: Programas que tienen capacidad de crear un resumen de un documento Resolución cooperativa de problemas: Cooperar con los humanos para la solución de problemas complejos, proporcionando datos e información, debiendo existir una excelente interactividad Tutores inteligentes: Es una aplicación académica, ya que se refiere a la enseñanza asistida por computadora, con capacidad de evaluar al educando y tener la capacidad de adaptarse a cada tipo de alumno Reconocimiento de Voz: El reconocimiento de voz puede tener dos posibles usos: para identificar al usuario o para procesar lo que el usuario dicte, existiendo ya programas comerciales, que son accesibles por la mayoría de los usuarios, ejemplo: ViaVoice. 11 ISI 504 Inteligencia Artificial Robótica El objetivo de esta área es que los ordenadores interaccionen con el mundo exterior desarrollándoles capacidades sensoriales (SHRDLU robot que puede mover bloques, hablar y otras funciones mas) Una maquina puede hacer el trabajo de 100 hombres, pero ninguna maquina puede hacer el trabajo de un hombre extraordinario. Robot, un manipulador reprogramable de uso general con sensores externos e internos que puede realizar diferentes tareas específicas. La robótica es un área formada por: Mecánica: Diseño, Análisis Estático y Dinámico Microelectrónica: Transmitir información Informática: Programas, coordinación mecánica Locomoción y manipulación: ligados con componentes mecánicos Percepción: ligada con dispositivos que proveen información Razonamiento: seleccionan acciones que deben tomar para realizar una tarea Ambientes Preparados y ambientes no predecibles. Leyes de la Robótica: Primera Ley: Un robot no puede dañar a un humano Segunda Ley: Deben obedecer al humano excepto cuando este en contra de la primera ley Tercera Ley: Proteger su existencia siempre y cuando no este en conflicto con la 1 y la 2 ley. Morfología del Robot: 12 ISI 504 Inteligencia Artificial Clasificación de los Robots: De acuerdo a: Generación o Robots Play-back, regeneran una secuencia de instrucciones grabadas, ejemplo: robot utilizado para recubrimiento de spray o soldadura por arco. Estos robots comúnmente tienen un control de lazo abierto. 13 ISI 504 Inteligencia Artificial o Robots controlados por sensores, estos tienen un control en lazo cerrado de movimientos manipulados, y hacen decisiones basados en datos obtenidos por sensores. o Robots controlados por visión, donde los robots pueden manipular un objeto al utilizar información desde un sistema de visión. 14 ISI 504 Inteligencia Artificial o Robots controlados adaptablemente, donde los robots pueden automáticamente reprogramar sus acciones sobre la base de los datos obtenidos por los sensores. o Robots con inteligencia artificial, donde los robots utilizan las técnicas de inteligencia artificial para hacer sus propias decisiones y resolver problemas. 15 ISI 504 Inteligencia Artificial A su nivel de inteligencia o Dispositivos de manejo manual, controlados por una persona. o Robots de secuencia arreglada. o Robots de secuencia variable, un operador puede modificar la secuencia fácilmente. o Robots regeneradores, el operador humano conduce el robot a través de la tarea. o Robots de control numérico, el operador alimenta la programación del movimiento, hasta que se enseñe manualmente la tarea. o Robots inteligentes, los cuales pueden entender e interactuar con cambios en el medio ambiente. A su nivel de control o Nivel de inteligencia artificial, el programa aceptará un comando como "levantar el producto" y descomponerlo dentro de una secuencia de comandos de bajo nivel basados en un modelo estratégico de las tareas. o Nivel de modo de control, los movimientos del sistema son modelados, para lo que se incluye la interacción dinámica entre los diferentes mecanismos, trayectorias planeadas, y los puntos de asignación seleccionados. o Niveles de servosistemas, los actuadores controlan los parámetros de los mecanismos con el uso de una retroalimentación interna de los datos obtenidos por los sensores, y la ruta es modificada sobre la base de los datos que se obtienen de sensores externos. Todas las detecciones de fallas y mecanismos de corrección son implementadas en este nivel. A su nivel de lenguaje de programación: La clave para una aplicación efectiva de los robots, es el desarrollo de lenguajes de alto nivel. Existen muchos sistemas de programación de robots, aunque la mayoría del software más avanzado se encuentra en los laboratorios de investigación 16 ISI 504 Inteligencia Artificial o Sistemas guiados, en el cual el usuario conduce el robot a través de los movimientos a ser realizados. o Sistemas de programación de nivel-robot, en los cuales el usuario escribe un programa de computadora al especificar el movimiento y el sensado. o Sistemas de programación de nivel-tarea, el usuario especifica la operación por sus acciones sobre los objetos que el robot manipula. Categorías de los Robots: Cartesiano (horizontal, vertical), Cilíndrico (rota en un eje), Esférico Polar(rotación esférica: rotación, angular, lineal), Brazo Articulado (movilización en todo sentido) 17 ISI 504 Inteligencia Artificial Grados de libertad: Es el número y tipo de movimientos del robot se obtiene observando los movimientos del brazo y de la muñeca 18 ISI 504 Inteligencia Artificial tanto en el brazo como la muñeca se encuentra la variación de tres grados de libertad en la muñeca pueden existir los siguientes grados: o giro (hand rotate) o elevación (wrist flex) o desviación (wrist rotate) en el brazo los grados de libertad dependen de su anatomía o configuración. Sensores de Robots: • Posición y proximidad: Internos o externos. • Velocidad y aceleración. • Dimensiones y entornos de objetos • Sensores de Temperatura, Presión (Presductores), etc. • Sensores Optoeléctricos: led, fotodiodos, fototransistores • Galgas Extensiométricas: medir fuerza, material flexible Sensores de proximidad: inductivos, capacitivos, triangulación Sensores Eléctricos: Estado de motores de corrientes continuas Sensores Electromecánicos: tacómetros, transductores de vibración, sensores de efecto Hall • Sensores Ultrasónicos. Efectores: dispositivos que producen efectos en el entorno bajo el control del robot herramientas para ejecución es el “actuador” Formas de comunicarse con el Robot: reconocimiento de palabra discreta y continua, reconocimiento por parte del robot de cierto grupo de palabras discretas (lenguaje natural) enseñar y reproducir(propiocepcion), se lo hace en tres pasos o se lo dirige lentamente al robot con control manual o edición y reproducción del movimiento enseñado o si es correcta la enseñanza se ejecuta a una velocidad apropiada y de forma repetitiva lenguajes de programación de alto nivel, los conocidos son el AL (Universidad de Stanford) y al AML (IBM). Enviando estímulos a los sensores. Metodología del diseño de un Robot El proyecto consta básicamente de cuatro etapas; Etapa de Investigación, Etapa de Síntesis Informativa, Etapa de Diseño y Construcción, Etapa de pruebas, calibración y control. I. Etapa de Investigación a) Adquisición de Bibliografía. • • • 19 ISI 504 Inteligencia Artificial b) Búsqueda de las fuentes de información específicas de aquellos elementos que constituyen el prototipo. c) Investigación de las variables que intervienen en el proceso de control del prototipo. d) Adquisición y estudio del software para el desarrollo e implementación de los algoritmos de control. II. Etapa de Síntesis de la Información Se basa en la etapa anterior y da como resultado una serie de elementos que son necesarios para el desarrollo de las siguientes etapas de el proyecto. III. Etapa de Diseño y Construcción Se aplica toda la información que se recaba y consulta, y que el diseño del prototipo requiere para el cumplimiento de los objetivos planteados anteriormente. En base a estos lineamientos se construyen las piezas que conforman el prototipo, con el material y componentes adecuados. IV. Etapa de Pruebas, Calibración y Control Ésta es la etapa final, se adoptan las medidas necesarias para alcanzar los objetivos planteados. Se aplican los algoritmos de control y se prueban hasta conseguir el resultado esperado. Para que sirven los Robots: - fabricación y manejo de materiales o en actualidad existen 600.000 robots, de los cuales el 70% están en USA, Japón y Francia o industria automotriz, microelectrónica o presencia en la construcción para mover objetos muy pesados con precisión y eficiencia o esquila de ovejas(Australia) (automáticos, percepción sensorial, retroalimentación táctil) 20 ISI 504 Inteligencia Artificial - - - Mensajero o Móviles o En edificios, hospitales, al fondo de mar o Sus requerimientos son pedidos a través de terminales de computo o Gran disponibilidad o Confiabilidad o Monitoreo Ambiente peligrosos o Disminución de riesgos para la vida humana o Mantenimiento rutinario a plantas nucleares o Eliminación de residuos tóxicos o Rescate a profundidad o Exploración minera o No deberán producir daño a los seres humanos presentes en el entorno Tele presencia y Realidad Virtual o Sitios remotos y/o imaginarios o Para diversión o Robots teleoperador para dar solución al desarmado de bombas o Ingenieros y arquitectos utilizan para mostrar sus proyectos en detalle o Médicos especialistas que consultan e intervienen quirúrgicamente a miles de kilómetros o Sentido de tacto remoto 21 ISI 504 Inteligencia Artificial Ampliación de capacidades humanas o Duplicar extremidades humanas perdidas o Perros lazarillos o Visión artificial o Los brazos biónicos y las articulaciones artificiales. En los Estados Unidos ya hay 85.000 rodillas mecánicas, 120.000 caderas y 70.000 hombros. Parte de ellos ya cuentan con sistemas robóticos para su implantación. o En Israel están perfeccionando un sistema de “retroalimentación continuo”, proveniente de los sensores implantados en los nervios del hombro del miembro amputado, que produce una respuesta inmediata a la comunicación eléctrica de un nervio, en la misma forma en que se comporta el sistema nervioso. Eso permite que el brazo biónico (que encierra una mini computadora) funcione suavemente, casi como uno normal. Videos - 22 ISI 504 Inteligencia Artificial Redes Neuronales Neurona - - - El tejido nervioso está constituido por células nerviosas, fibras nerviosas y la neuroglia, La célula nerviosa se denomina neurona, las hay neuronas bipolares, con dos prolongaciones de fibras y multipolares, con numerosas prolongaciones. Pueden ser neuronas sensoriales, motoras y de asociación Se estima que en cada milímetro del cerebro hay cerca de 50.000 neuronas. El cuerpo de la neurona o Soma contiene el núcleo, el cual se encarga de todas las actividades metabólicas de la neurona y recibe la información de otras neuronas vecinas a través de las conexiones sinápticas. Las dendritas son las conexiones de entrada de la neurona. El axón es la "salida" de la neurona y se utiliza para enviar impulsos o señales a otras células nerviosas. que forman sinápsis con el soma o axones de otras células. Esta unión puede ser "inhibidora" o "excitadora" según el transmisor que las libere. La Red Neuronal - - El sistema de neuronas biológicas esta compuesto por neuronas de entrada (sensores) conectados a una compleja red de neuronas "calculadoras" (neuronas ocultas), las cuales, a su vez, están conectadas a las neuronas de salidas que controlan, por ejemplo, los músculos. Los sensores pueden ser señales de los oídos, ojos, etc. las respuestas de las neuronas de salida activan los músculos correspondientes. En el cerebro hay una gigantesca red de neuronas "calculadoras" u ocultas que realizan la computación necesaria. De esta manera similar, una red neuronal artificial debe ser compuesta por sensores del tipo mecánico o eléctrico. Funcionamiento de las sinapsis 23 ISI 504 Inteligencia Artificial - - - Cientos de datos fluyen por los nervios hasta cada sinapsis, donde son procesados. Una vez analizada y tratada la información esta sale ya transformada por los canales nerviosos En los seres vivos no pueden permitirse el lujo de la especialización ya que si algo se rompe otro elemento debe hacerse cargo de la función. Por eso cada sinapsis es simultáneamente una compuerta Ad, Or, Not etc. Una sinapsis suma las tensiones de los impulsos entrantes. Cuando se sobrepasa un determinado nivel de tensión; el llamado umbral de indicación; esta se enciende, esto es deja libre el camino para que pasen los impulsos. o Si el umbral de indicación de tensión es demasiado bajo, la sinapsis es como una puerta lógica del tipo Or, pues en tal caso pocos impulsos bastan para que tenga lugar la conexión. o En cambio cuando el umbral de indicación es alto, la sinapsis actúa como una puerta And, ya que en ese caso hace falta que lleguen la totalidad de los impulsos para que el camino quede libre. o También existen conducciones nerviosas que tienen la particularidad de bloquear el paso apenas llegan los impulsos. Entonces la sinapsis hace la función de una compuerta inversora. Esto demuestra la flexible del sistema nervioso. REDES REURONALES ARTIFICIALES La Neurona Artificial - - - Un circuito eléctrico que realiza la suma ponderada de las diferentes señales que recibe de otras unidades iguales y produzca en la salida un uno o un cero según el resultado de la suma con relación al umbral o nivel de disparo, a función de transferencia para la activación o disparo de la neurona puede ser: o de umbral lógico o de limitación duración o de función tipo. Se produce un entrenamiento, cuando se presenta un mismo tipo de ambiente varias veces y cierto numero de neuronas se activan, esto produce un refuerzo, la red queda entrenada y con el peso de conexiones definido. Así, se puede cargar a la neurona con los valores predeterminados. 24 ISI 504 Inteligencia Artificial Redes Neuronales Artificiales 25 ISI 504 Inteligencia Artificial Son construidos imitando el proceso de aprendizaje biológico humano inteligente, auto modificación, y aprendizaje por creación de inferencias, proveen un aprendizaje por experiencia dinámica. Funcionan con la interconexión de neuronas que ejecutan cálculos dando resultados que son transmitidos a otras neuronas a lo largo de todas las vías. Esos resultados o señales son igualmente procesados y enviados a otras si los resultados del proceso lo permiten. Si la entrada esta inhibida es señal negativa y si es exitosa es valor positivo. Si la suma de valores positivos y negativos superan el “threshold Level” (Umbral), la neurona puede enviar señal a otras, este proceso se conoce con el nombre “firing” (encendiendo). Estructuras de conexión de atrás hacia delante Hay tres tipos de capas de neuronas: de entrada, ocultas y de salida. Entre dos capas de neuronas existe una red de pesos de conexión que pueden ser de los tipos: Hacia delante, hacia atrás, lateral y de retardo. Conexiones hacia delante: los datos de las neuronas de una capa inferior son propagadas hacia las neuronas de la capa superior. Conexiones hacia atrás: llevan los datos de las neuronas de una capar superior a otras de la capa inferior. Conexiones laterales: ejemplo es el circuito(winner-takes-all, “el ganador toma todo” que cumple un papel importante en la elección del ganador. Conexiones con retardo: se incorporan en las conexiones para implementar modelos dinámicos y temporales, es decir, modelos que precisan de memoria. Entrenamiento Redes Neuronales Supervisadas y no Supervisadas 26 ISI 504 Inteligencia Artificial Las redes neuronales se clasifican comúnmente en términos de sus correspondientes algoritmos o métodos de entrenamiento: Redes de Pesos Fijos: - no existe ningún tipo de entrenamiento. Redes de entrenamiento Supervisado: - - - modelos de redes más desarrolladas desde el inicio. Los datos para el entrenamiento están constituidos por varios pares de patrones de entrenamiento de entrada y de salida. El hecho de conocer la salida implica que el entrenamiento se beneficia la supervisión de un maestro. Dado un nuevo patrón de entrenamiento, por ejemplo, (m+1)-ésimo, los pesos serán adaptados de la siguiente forma: Wij(m+1) = Wij(m) + ∆Wij(m) un diagrama esquemático de un sistema de entrenamiento supervisado: tienen 2 fases: o o Fase de Prueba: los parámetros de diseño de la red neuronal se han obtenido a partir de unos patrones representativos de las entradas que se denominan patrones de entrenamiento. Los resultados pueden ser tanto calculados de una vez como adaptados iterativamente, según el tipo de red neuronal, y en función de las ecuaciones dinámicas de prueba. Una vez calculados los pesos de la red, los valores de las neuronas de la última capa, se comparan con la salida deseada para determinar la validez del diseño. Fase de Aprendizaje: Aprenden por la actualización o cambio de los pesos sinápticos que caracterizan a las conexiones. 27 ISI 504 Inteligencia Artificial - Los pesos son adaptados de acuerdo a la información extraída de los patrones de entrenamiento nuevos que se van presentando. Normalmente, los pesos óptimos se obtienen optimizando (minimizando o maximizando) bajo una función determinada ejemplos típicos (supervisados) son: o red perceptron: en la fase de entrenamiento determina funciones discriminantes, que dictaminan las regiones de decisión o red adaline: usa la fórmula de aproximación basada en el criterio del error cuadrático medio lineal. Minimizar E = ½ ∑Mm=1(y(m) – t(m))2 Redes de entrenamiento No Supervisado - El conjunto de datos de entrenamiento consiste sólo en los patrones de entrada - Por lo tanto, la red es entrenada sin el beneficio de un maestro - La red aprende a adaptarse basada en las experiencias recogidas de los patrones de entrenamiento anteriores. - El diagrama esquemático es similar al supervisado sino sin el Maestro (teacher), pero igual con retroalimentación. - Ejemplos típicos (no supervisados) son: o Regla de Aprendizaje de Hebb: consiste en reforzar el peso que conecta dos nodos que se excitan simultáneamente o Regla de Aprendizaje Competitiva: si un patrón nuevo se determina que pertenece a una clase reconocida previamente, entonces se da la inclusión de este nuevo patrón a esta clase. Si el patrón de la entrada se determinó que no pertenece a ninguna de las clases reconocidas anteriormente, entonces la estructura y los pesos de la red neuronal serán ajustados para reconocer la nueva clase. ALGORITMOS GENETICOS COMO EVOLUCIONA LA VIDA - 2 hipótesis: - el azar o random: - cuantificar la influencia de casualidad en la creación de resultados inteligentes, - “se puede decir que una computadora programada para escribir textos al azar continuamente, terminara, la obra de cualquier autor conocido con el tiempo” - la diferencia de los seres vivos es por pura casualidad, - este patrón manifiesta la elevación o disminución de habilidades sin un orden preestablecido, sin importar niveles anteriores 28 ISI 504 Inteligencia Artificial - plantea un crecimiento exponencial de datos, lo que hace que se no viable en la practica - la evolución acumulativa: - la vida se desarrolla a partir de las mejoras introducidas por la naturaleza en las generaciones pasadas - influenciado por las capacidades adquiridas de generación en generación, se van acumulando, - se toma en cuenta que existe la mutación al azar, y estas solo dan pequeños cambios de entre las grandes variaciones evolutivas - se habla que al unirse dos seres el ser resultante adquiere características de los anteriores, e inclusive se da la sinergia (mejor resultados que los 2 anteriores) - es así, que se incrementa las capacidades - A-life(vida artificial): - Son modelos de n-variables en paralelo que están sujetos a restricciones, donde se los hace competir y se selecciona los mas robustos - Estos modelos actúan bajo un entorno “mundo” con reglas generales - Una forma de representación es por medio de Objetos (POO), donde se manejan datos y métodos que representan el comportamiento del objeto - En el mundo están los objetos que contienen: - Un numero variable de descendientes de si mismo - Y que pueden desactivarse “morir” luego de un determinado tiempo o condición - Se forma una estructura de generaciones ALGORITMOS GENETICOS (DEFINICIÓN) - como se dijo que los ejemplares u objetos compiten por sobrevivir en el mundo o entorno, pudiendo los mas fuertes reproducirse - algoritmos genéticos (GA) son: “funciones matemáticas o rutinas de software que toma como entrada los objetos y retorna como salida cuales de ellos deben generar descendencia para nuevas generaciones” - unas versiones mas avanzadas de GA son aquellos que hacen un ciclo interactivo donde toma a los objetos y crea una nueva generación un numero de veces determinado, de acuerdo al diseño - si este concepto lo trasladamos a la resolución de problemas, podemos decir, que al utilizar GA optimizaremos la solución descartando la soluciones no deseables y la selección de las mas robustas - es una especialidad de sistemas expertos, donde va perfeccionando su propia heurística en el proceso de ejecución, por lo que no requiere de largos procesos de entrenamiento por parte del ser humano COMPARACIÓN DE METODOS DE OPTIMIZACION GA VS MATEMÁTICAS - Existen problemas de optimización que pueden ser resueltos con métodos tradicionales - Matemáticas - Función “es el doble de” f(x) = 2x 29 ISI 504 Inteligencia Artificial - Función “el numero mas grande” - GA - Función de problema continuo, esto no es computable, donde GA encuentra un mínimo aceptable si no es posible encontrar el optimo - Función del problema dinámico, cuando la relación entre variables cambia dependiendo de los valores que tomen las mismas. “X es igual a Y si el valor de X es chico; X es 1.5 de Y si el valor de X es grande” no se sabe que pasa para los valores medios de X. GA VS METODOS ENUMERATIVOS - encontrar soluciones a problemas enumerando todas las soluciones posibles para todos los casos, entonces, se limita a una búsqueda eficiente. Ejemplo: la tabla de logaritmos tiene todos los valores usuales, donde la solución consiste solo en buscar en la lista el número decimal y retornar el logaritmo dado. - Este método manejable siempre y cuando sean valores manejables. Para el caso del juego de ajedrez, es mal complicado, para esto se utilizan otros métodos que ayudan a optimizar como podas, jugadas de acuerdo a tal situación o jugadas preestablecidas, etc. Que igualmente tienen su dificultad en la practica - GA utiliza heurística para resolución de problemas, lo cual limita los datos a utilizar LOGICA BORROSA (FUZZY LOGIC) - la lógica borrosa trata de acercar la matemática a lenguaje impreciso del hombre común. Ejemplo: hace mucho calor, hace frió, hoy llovió mucho, no llovió casi nada, apenas unas gotitas (conceptos vagos). A diferencia de decir: En este momento hay 30 grados centígrados, y se espera para el resto del día la temperatura se eleve hasta 35 grados, que luego a lo largo de la noche decaerá a los 20 grados. - La lógica es considerado un método “optimizado de control”, hace que sea flexible. Muy usado en manejo de electrodomésticos (lavadora, heladeras japonesas con logotipo fuzzy logic incorporado). - SI hay poco vapor en el sistema ENTONCES abra las compuertas y libere mas vapor, - SI hay mucho vapor en el sistema ENTONCES cierre las compuertas de vapor - SI la temperatura es alta ENTONCES abra el conducto de agua fría hasta que la temperatura vuelva a ser normal - FUNCIONES BORROSAS - La lógica borrosa trabaja con llamadas a funciones borrosas - Ejemplo: definir función “mucho” dentro de una serie de valores - Se toma la serie, se la ordena de mayor a menor y se extrae el valor mas grande (limite superior) y el valor mas chico (limite inferior) LI(a0..an) = Minimo(a0..an) LS(a0..an) = Maximo(a0..an) - Se establece como amplitud de la serie como la diferencia del limite superior e inferior: A = LS(a0..an) – LI(a0..an) - La función “mucho”: f(x, A) = x/A 30 ISI 504 Inteligencia Artificial - - - esto variara entre: 0 <= f(x, A) <= 1 si normalizamos los limites LS1 y LI1 entre el rango (0, n) tenemos: LI1(a0..an) = LI0(a0..an) – LI0(a0..an) = 0 LS1(a0..an) = LS0(a0..an) – LI0(a0..an) (normalizado) se dispone de una muestra de 20 veces que se tomaron la temperatura desde las 09h00 hasta las 18h00 y sus temperaturas varían desde 3 grados hasta 35 grados. Se hace la pregunta ¿hizo mucho calor a las 16h00? Esto no es posible responder con métodos tradicionales, pero con la ayuda de lógica borrosa es posible LS0 = Máximo(t1..t10) = 35 LI0 = Mínimo(t1..t10) = 3 LS1 = Máximo(t1..t10) = 35 – 3 = 32 LI1 = Mínimo(t1..t10) = 3 – 3 = 0 A = LS(t1..t10) – LI(t1..t10) = 35 – 3 = 32 f(34-3, 32) = 31/32 = 0,9685 96,85% (34% a las 16h00) cuando mas cercano esta a 100% mas valida es la información de “mucho” si quisiéramos la función “poco” simplemente debemos restar de 1 y el resto es igual f(x, A) = 1 – mucho(x, A) ETAPAS DEL DISENO DE UN GA (8 etapas) ETAPA 1: Análisis de factibilidad de utilizar un GA - encuadrar el problema a tratar, puesto que el GA es un método adecuado para optimizar o minimizar problemas. Si es de este tipo de problemas muy bien, caso contrario buscar otro método. ETAPA 2: Definición del problema en particular - supongamos que tenemos 2 series de datos y se desea establecer una correlación lineal entre los mismos (supongamos que no tenemos la ecuación ni la forma de poder saber) Serie A Serie B 1 5 2 7 3 9 4 11 5 13 6 15 7 17 8 19 9 21 10 23 - entonces la función seria: f(a(i) = b(i) f(a(i)) – b(i) = 0 31 ISI 504 Inteligencia Artificial ETAPA 3: Definición de las variables pertinentes - una función lineal tiene una estructura del tipo: - y = ax + b - donde x = serie A - y = serie B - es obvio que nuestras variables a utilizar son a y b - entonces el objetivo del GA es obtener un cromosoma con dos genes, el mismo que va evolucionando hasta alcanzar los valores deseados para la ecuación de la recta ETAPA 4: Definición del cromosoma y los genes - para construir cromosomas es recomendable cadenas binarias - creamos una cadena binaria que represente al cromosoma, este a su vez se definirá como la unión de dos genes, cada uno representado por a y b - la estructura básica de cada gen: - un bit para identificar el signo (+ o -) - varios bits para identificar la parte entera - varios bits para identificar la parte decimal - como se sabe que la representación de números en binario, se necesita la potencia de 2 mas una unidad en numero de bits, es decir, para representar 23 se necesita (3+1) bits - f(x) = x + 1 - necesitamos 2 genes y cada uno tendrá 3 elementos: - el signo de la variable (1 digito) - la parte entera de la variable, para el ejemplo +- 215 es decir, se necesita (15+1) = 16 dígitos - la parte decimal de la variable, para el caso de 2 decimales (100 valores posibles) necesitaremos 7 bits Elemento Bits Signo del termino dependiente 1 Dígitos enteros del termino dependiente 16 Dígitos decimales del termino dependiente 7 Signo del termino independiente 1 Dígitos enteros del termino independiente 16 Dígitos decimales del termino independiente 7 TOTAL 48 - los genes tendrán 48 bits para cada gene - al concatenar (+) los genes y armar el cromosoma tendremos: - CROMOSOMA = GENE A + GENE B - Es decir, CROMOSOMA = 48 + 48 = 96 bits Tendremos entonces que: GENE A= 00000000000000000000000000000000000000000000000000 GENE B = 00000000000000000000000000000000000000000000000000 32 ISI 504 Inteligencia Artificial el gene y la correspondencia de sus bits a las variables del modelo Cuadro GA 10 Estructura del Gene CROMOSOMA 0 = 000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000 Podemos partir de un cromosoma con valores nulos como el precedente cromosoma 0 de uno generado al azar como el cromosoma 1. CROMOSOMA 1 = 010001000010000100001000001000010000100010010 010001000010000100001000010000100001000010001000100101. ETAPA 5: Elección de la arquitectura del GA - depende del criterio del programador - algunas arquitecturas podrán ayudar a maximizar o minimizar el tiempo de búsqueda o pueden abarcar mas numero de variables - e aquí algunas arquitecturas - PRIMERA ARQUITECTURA: los GA fueron concebidos para hallar valores “posibles” (mínimos y/o máximos locales) mientras van iterando, y a medida de su ejecución estos locales van siendo reemplazados por valores mas cercanos a la solución absoluta. (en la mayoría de casos dinámicos no-lineales reales se prefiere soluciones posible en un plazo determinado antes que optimo en un plazo indeterminado. GA proporciona los 2. eje: damas, ajedrez) - SEGUNDA ARQUITECTURA: los GA con estructura de tipo Anulativa, aquí se genera una función de convergencia iteractiva, la cual contiene la totalidad de las ecuaciones (funciones) del modelo 33 ISI 504 Inteligencia Artificial - De esta función se anulan estructuradamente variables, las cuales se incorporan como cromosomas al GA para su evolución - Una vez terminado el proceso anterior, se vuelve a activar dicha variable con sus valores optimizados y la iteración continua hasta que no existan genes por optimizar - Esta arquitectura tiene gran ventaja por ser ahorradora de tiempo de procesamiento - Aunque su desventaja es que tiene que tener mayor intuición “a priori” del modelo al cual se quiere llegar - Se insiste en el tiempo, por cuanto la cantidad crece de forma exponencial con respecto a la longitud del cromosoma. Si se trata de implicar varios genes en el mismo, el tiempo crecerá. Esta parte se ve superada hoy en día con equipos con procesadores muy potentes, antes, los autores corrían sus laboratorios en mainframe o batería de servidores para evitar estas desventajas. ETAPA 6: Diseño de la función de convergencia y control - construir una función de convergencia y control adecuada para el GA - consiste en crear una ecuación que mida la diferencia entre los valores que posee el cromosoma en el estado actual y los valores objetivo, de tal manera de conocer el nivel de acercamiento que el GA posee con la realidad y servir de retroalimentación para el mismo. - En el ejemplo: esta la función de convergencia que mide la diferencia entre los valores de la serie objetivo (SERIE B) y los valores de la serie original (SERIEA A), para luego compararlos. (esto hasta llegar al estado de convergencia y se para el proceso (margen de error)) (Función de convergencia: grado de cercanía o adaptabilidad que el cromosoma posee con lo que se espera de el) ETAPA 7: Introducción del cromosoma en el programa de GA y programación en el mismo de la función de convergencia - la forma de introducción de los cromosomas y funciones de convergencia depende del diseño: - algunos los ponen dentro del fuente, tiene ventaja que aceleran el tiempo de ejecución, pero tienen la desventaja que cada vez que introducen datos deben recompilar el programa fuente para poder ejecutarse - Otros diseños incluyen tablas, o bases de datos en donde se cargan los cromosomas y las funciones de convergencia. Cuando el programa se 34 ISI 504 Inteligencia Artificial ejecuta empieza por leer estos datos y luego sigue su procesamiento. Este diseño tiene la ventaja de ser mas flexible, ya que no requiere estar compilando la aplicación ante un cambio de los datos, pero vuelve al programa notoriamente mas lento. ETAPA 8: Ejecución del GA - Una vez introducidos los datos, se ejecuta el programa. - El GA estará programado para mostrar los resultados por pantalla o impresora - Si el GA se utiliza como módulo dentro de un modelo mas complejo, el resultado obtenido por el mismo sera comunicado al módulo oportuno. Resumen del funcionamiento del GA Un algoritmo genético consiste, en un programa de computadora que: Aceptará datos de entrada correspondientes a los cromosomas originales o los generará al azar y a los cromosomas objetivo o datos del entorno Tendrá una función de convergencia que mida el grado de asimilación del cromosoma al entorno. Elaborará " generaciones " de cromosomas compuestas por varios cromosomas actuando al mismo momento La generación tiene un tiempo establecido de vida. Los especimenes de las generaciones competirán entre sí utilizando los operadores genéticos. Sólo los mas aptos se reproducen. La generación siguiente solamente contiene hijos de los mas aptos, que heredan estas características. Entrará en Convergencia. Esto significa que no se percibe incremento en los ejemplares de las generaciones siguientes. Cada nuevo ejemplar tiene los mismos genes. En este punto el proceso evolutivo termina. Comunicará al operador humano este hecho o ejecutará una acción preprogramada para este evento. En cuanto a la programación de los GA no necesitan de ningún lenguaje específico para su programación. o En el ámbito de la Inteligencia Artificial se han utilizado tradicionalmente lenguajes ad-hoc. Los dos mas conocidos son el LISP , usado mayoritariamente en Estados Unidos y el PROLOG para Europa y Japón. Estos lenguajes manejan bien la lógica de predicados y por ende los operadores lógicos , por lo que su uso en IA facilita la tarea. o Los GA , por otro lado , manejan operadores genéticos , los cuales deben ser programados ya que no están incorporados a ningún lenguaje. Por ende , da lo mismo elegir uno u otro entorno de programación. Se puede utilizar Visual BASIC (visual.net), el lenguaje más popular en este momento. Algoritmos en visual Basic de GA esta en: http://www.geocities.com/siliconValley/Byte/4713/ga/E-GA8.htm OPERADORES GENÉTICOS 35 ISI 504 Inteligencia Artificial El GA trabaja en base a los operadores genéticos. Un operador genético consiste en una serie de pasos estructurados que se aplican a los cromosomas y forman resultados concretos, al igual que las operaciones matemáticas y lógicas. Los operadores matemáticos usuales son suma, resta, multiplicación, división y exponenciación. aunque todos pueden ser calculados a partir de la suma , que es la operación básica. Los operadores lógicos o booleanos más comunes son: conjunción (Y/AND lógico), disyunción (O/OR lógico) negación (NO/NOT/FALSE/FALSO lógico) afirmación (SI/TRUE/VERDADERO lógico) O exclusivo (XO/XOR LOGICO) El tema de algoritmos genéticos ha creado sus propios operadores para trabajar, que cumplen funciones similares a los detallados anteriormente. Se utilizan algunos vocablos en inglés por ser de amplia familiaridad en la literatura específica. Los más usuales son: crossover (apareamiento) mutation (mutación) fitness (adaptatibilidad) clonación inversión = inverso de clonación El autor sugiere también la posibilidad de usar los siguientes operadores: REVERSIÓN, en donde un cromosoma de bajo fitness se intercambia por sí mismo revirtiendo el orden de los bits. ANULACIÓN o PAVLOV: En donde se anulan genes determinados. los cuales se fuerzan a evolucionar por separado y se reinsertan al cromosoma a posteriori. Fitness Este operador mide y opera con la adaptación al entorno o competitividad. Mediante el uso de funciones como la función de convergencia el sistema reconoce el grado de cercanía o adaptabilidad que el cromosoma posee con lo que se espera de él. Los mas parecidos son seleccionados para sobrevivir y los demás para morir. Solo los seleccionados tendrán descendencia , por lo que en la siguiente generación , solamente quedarán hijos de estos ejemplares para seguir compitiendo. 36 ISI 504 Inteligencia Artificial Crossover Este operador trata de sacar ventaja de la reproducción sexual de las especies superiores. El razonamiento es el siguiente: Si un macho tiene algunos genes que lo vuelven mas competitivo , y se aparea con una hembra que posee otros genes igualmente importantes , algunas de sus crías tendrán ambos genes , por lo se volverán mas competitivos que sus respectivos padres. Este esquema no es posible en una reproducción asexuada (clonación) , en donde la cría es genéticamente igual al padre. El operador extrae genes o pedazos de genes de cromosomas diferentes y crea un nuevo cromosoma imitando la reproducción sexual. Si este nuevo cromosoma es mas competitivo , sobrevivirá a la siguiente vez que se le aplique el operador fitness. En caso contrario , no sobrevivirá a la competencia. El cuadro GA 10 esquematiza un proceso de apareamiento entre dos genes. Cuadro GA 11 Esquema de un Crossover Mutation Los genes pueden mutar por influencia de factores naturales (rayos cósmicos , luz ultravioleta ) o artificiales (radioactividad ). La mutación consiste en el cambio de valor de uno a mas bits por otro. Si bien el porcentaje de mutación es bajo , la acumulación a lo largo de los siglos puede producir efectos acumulativos importantes. En el ámbito de los GA este efecto se acelera para no esperar este tiempo , pero se hace de manera de que su incidencia no sea un factor preponderante , ya que de hacerlo cambiaría el concepto de evolución acumulativa por la de evolución al azar. El cuadro GA12 muestra el esquema de una mutación genética. Cuadro GA12 Mutación genética 37 ISI 504 Inteligencia Artificial Clonación La clonación consiste en la duplicación de la estructura genética de un cromosoma para la generación siguiente. Esto hace que ese ejemplar sobreviva intacto para competir en la nueva generación. La clonación se puede producir en forma explícita: Cuando el software de GA prevé que ante ciertas circunstancias un cromosoma se duplique a si mismo implícita: Cuando el programa no prohíbe que en el proceso de crossover un cromosoma sea seleccionado como pareja de sí mismo para generar descendencia. Los cuadros GA13 y GA14 muestran esquemas de los procesos de clonación implícita y explícita. Cuadro GA 13 Proceso de clonación explícita 38 ISI 504 Inteligencia Artificial Cuadro GA 14 Proceso de clonación implícita Inversión La inversión consiste en la operación contraria a la clonación. Puede ser: Total: Un cromosoma muta totalmente por su inverso. Ej.: Dado el cromosoma 00011, su inverso será 11100. Parcial: Un gen o parte de un gen mutan por su inverso. Si la mutación es de un solo bit, el efecto es igual al de la mutación simple. De hecho , la mutación puede considerarse como un caso especial de la inversión. Los cuadros GA15 y GA16 muestran esquemas de los procesos de inversión total y parcial. Cuadro GA 15 Inversión total Cuadro GA 16 Inversión parcial 39 ISI 504 Inteligencia Artificial Reversión La reversión consiste en la operación que cambia el cromosoma por sí mismo ordenado de atrás para adelante. Esta operación no existe en la naturaleza , pero se basa un la presunción de que algunos cromosomas poco competitivos podrían revertir su estado en el orden contrario. Al igual que con la inversión , la reversión puede ser: Total: Un cromosoma se revierte totalmente. Ej.: Dado el cromosoma 00011, su reverso será 11000. Parcial: Un gen o parte de un gen cambian por su reverso. Los cuadros GA17 y GA18 muestran esquemas de los procesos de inversión total y parcial. Cuadro GA 17 Reversión total 40 ISI 504 Inteligencia Artificial Cuadro GA 18 Reversión parcial Anulación o Pavlov Este operador ha sido inspirado en la metodología utilizada por el conocido médico ruso , aunque su trabajo no tenga que ver en absoluto con los GA. Pavlov investigó durante más de 20 años la fisiología de los mamíferos superiores , preponderantemente de los perros. Sus difundidos trabajos sobre reflejos condicionados emanan de este hecho. Su metodología se basaba en la aislamiento de los componentes anatómicos a estudiar , con independencia del resto de la morfología. En otras palabras, el estudio se centraba en un órgano u órganos específicos cada vez y se trataba de medir la influencia del entorno en este tejido en particular. Pavlov intentaba aislar alguna variable y medir el impacto en la misma de cambios en el entorno. De esta manera , podía acostumbrar a un perro a estar a oscuras y sin sonidos para averiguar la preponderancia del olfato ante la estimulación de la comida en un perro privado del sentido visual. y auditivo. A algunos especimenes se les llegó a cortar las conexiones nerviosas (equivalente a anular las respuestas del órgano conectado) para lograr el mismo resultado. (Recordemos que sólo en los últimos tiempos florece un debate sobre los procedimientos utilizados con los especimenes para la investigación científica. En la época analizada , tal planteo no existía) El organismo del mamífero superior consta de una serie de sustancias químicas (asimilables a las variables de un sistema matemático) que interactúan entre sí dinámicamente. Una postura integradora argumentaría que la investigación debe ser hecha sobre el cuerpo tomado como un todo, ya que todas las variables (las enzimas) están interrelacionadas. La posición de Pavlov fue la contraria , ya que basó su método en inferir el comportamiento de todo estudiando características de las partes o deducir el todo anulando alguna de ellas. 41 ISI 504 Inteligencia Artificial Este tipo de planteo es aplicable a los GA, que constan al igual que el cuerpo de una serie de genes interdependientes. En los seres vivos existen generalmente mecanismos de compensación, en donde ciertos genes impulsan acciones en un sentido determinado y ciertos otros en sentido opuesto. La acción final se produce como consecuencia de la medición de estas fuerzas La anulación estructurada de alguno de ellos puede servir como base para el entendimiento del comportamiento del resto del sistema. En el ámbito de la biología estos genes reciben el nombre de aleles o alelos Si se identificaran y anularan algunos de los genes que condicionan el valor esperado en sentido opuesto, esto representaría una mejora idéntica a la de mejorar los valores de los restantes. Un operador Pavlov anulará sistemáticamente algunos de los bits del cromosoma y medirá de esa manera el incremento o no del fitness del mismo. Dado que el GA tiene los cromosomas estructurados como cadenas binarias , la anulación se simplifica enormemente ya que para realizarla es suficiente con cambiar los valores a "0" de los bits "1" o viceversa. El cuadro GA19 muestra el esquema del operador pavloviano en un GA Cuadro GA 19 Operador Pavloviano en un GA En los párrafos precedentes se han vertido los conceptos necesarios para el entendimiento básico del funcionamiento de un algoritmo genético, sin ahondar en su mecanismo de funcionamiento. El lector interesado en conocer profundamente el diseño del mismo , puede continuar la lectura de la segunda parte , en donde se desarrolla la programación de un GA en la computadora. Quien solo esté buscando una descripción sumaria de este tema, puede discontinuar la lectura en este punto. 42 ISI 504 Inteligencia Artificial SMA – MAS SISTEMAS MULTIAGENTES Agente: Es un Sistema computacional que opera de forma autónoma, con capacidad de reaccionar dinámicamente a estímulos externos y comunicarse entre sí y que posee conocimientos e intencionalidad para resolver problemas específicos. Agente Inteligente: es aquel que emprende la mejor acción posible en una situación dada. Percibe su ambiente mediante sensores y que responde mediante efectores en el caso de agentes de software sus percepciones o acciones son las cadenas de bits codificados estos agentes deben poseer conocimiento. Agente racional: aquel que hace correcto las cosas, es decir, con mejor desempeño (como y cuando hacer). Secuencia de percepciones: todo lo que el agente haya percibido hasta el momento, como una historia. Agente inteligente racional ideal: en todos los casos de secuencia de percepciones, deberá hacer todas las acciones que favorezcan a tener el máximo rendimiento, basándose en evidencias aportadas por la secuencia de percepción y de todo el conocimiento incorporado en el agente. Tipos de Agentes Existen varios tipos de agentes, como podemos observar de acuerdo al manejo de programas se consideran cuatro tipos de agentes: Agente de reflejo simple: 43 ISI 504 Inteligencia Artificial basados en reglas de condición-acción o situación-acción, o reglas sientonces; toma una acción de acuerdo a una conexión el agente establece conexión entre percepciones y acciones ejemplo: si el carro de adelante frena, se prende la luces de alto, la cámara capta y entonces debe frenar (regla condición-acción: SI el carro de adelante está frenado ENTONCES empiece a frenar) gráfico (pag 43- figura 2.7) (los rectángulos son estado internos en un momento dado de la decisión del agente, los óvalos son información de base) Agente bien informado de todo lo que pasa: no siempre los sensores no informan acerca del estado del mundo si se produce una percepción el agente debe tener un cierto tipo de estado interno que no es demasiado extenso el agente necesita actualizar algo de información en el estado interno que permita diferenciar entre estados del mundo que generan la misma entrada de percepciones esta actualización de información es de dos tipos: de como evoluciona el mundo, independiente de los agentes de como afecta al mundo las acciones que puede tomar el agente ejemplo: si se quiere cambiar de carril y se ve por retrovisor si existe carros atrás, se debe tener cuidado si existe carros en el ángulo que el espejo no ve, y que luego de tomar la acción en que afectara al mundo, se dejara vacío el espacio que antes ocupaba el carro, etc (grafico pag 45 figura 2.9) 44 ISI 504 Inteligencia Artificial Agente basado en metas: no siempre basta con tener información del estado actual del ambiente, sino también ¿que sucedería si hago tal o cual cosa? se requiere de cierta información sobre su meta (situaciones deseables) el agente debe combinar la información anterior con esta nueva información y como resultado se producirán las posibles acciones que se emprendan se habla de agente reflejo donde se permiten elegir aquellas acciones que permitan alcanzar la meta en situaciones sencillas en fácil elegir, pero en situaciones mayores es necesario tener métodos de búsqueda y planificación que ayudaran a encontrar la secuencia de acciones que permitan alcanzar las metas de un agente es mas flexible que el anterior, ya que permite dirigirse a varios destinos, modificando su conducta. ejemplo: si esta en una autopista y hay una Y, se debe decidir por donde ir izquierda o derecha dependiendo cual sea su meta (gráfico pag. 46 figura 2.11) Agente basado en utilidad: las metas no bastan para determinar una conducta de alta calidad (velocidad, seguridad, confiables, etc.) de acuerdo a tal o cual resultado se sentirá mayor “felicidad” que traducido a nuestra área se dice que es Utilidad (calidad de ser útil) Utilidad “es una función que correlaciona un estado y un número real mediante el cual se caracteriza el correspondiente grado de satisfacción” esta utilidad se ve implicada al momento que el agente debe elegir entre varias metas, entonces debe medir la posibilidad de tener éxito considerando la importancia de las diferentes metas (gráfico pag. 48 figura 2.12) 45 ISI 504 Inteligencia Artificial Propiedades de los Ambientes Accesible y no accesible o Si el aparato sensorial del agente le permite tener acceso al estado total de un ambiente o si sus sensores detectan todos los aspectos relevantes a la elección de una acción o no necesita de que el agente mantenga un estado interno para estar al tanto que sucede en el mundo o ejemplos de accesible: un sistema de análisis de imágenes, capta todos los aspectos relevantes; ajedrez; backgammon o ejemplos de no accesible: conducir un taxi; sistema de diagnostico medico. Determinista y no determinista o Si el estado siguiente de un ambiente se determina completamente mediante el estado actual y las acciones escogidas por los agentes o es un punto de vista mejor que el anterior, visto desde el agente o ejemplos son los mismos de los casos de accesibles y no Episódicos y no episódicos o la experiencia del agente se divide en episodios (partes) o cada episodio consta de un agente que percibe y actúa o la calidad actuación dependerá del episodio mismo ya que no depende de las otras partes o episodios o ejemplo, tenemos el sistema de análisis de imágenes donde se tiene episodios de captura de imagen, interpretación de imagen, edición de imagen, manipulación de imagen Estáticos y dinámicos o dinámico, cuando existe la posibilidad de que el ambiente sufra modificaciones mientras el agente se encuentra deliberando (cuando pasa el tiempo) (ejemplo: conducir un taxi, diagnostico medico) o estático, cuando no varia el ambiente mientras el agente se encuentra deliberando, (ejemplo: ajedrez sin reloj) o existe otro tipo que es la mezcla de los dos anteriores donde básicamente no varía los aspectos principales del ambiente y no modifica la calificación asignada al agente, estos se denominan semidinámico (ejemplo: el ajedrez con reloj, varia el tiempo pero no importa para tomar una acción) 46 ISI 504 Inteligencia Artificial Discretos y continuos o discreto, si existe una cantidad limitada de percepciones y acciones distintas y claramente discernibles (ejemplo: el ajedrez) o continuo, la cantidad ilimitada de percepciones y acciones distintas (ejemplo: el conducir un taxi, análisis de imágenes). En SMA se intenta dividir los problemas en subproblemas cada vez más sencillos de resolver Los agentes, tienden a un planteamiento en el que múltiples agentes autónomos interactúan, se coordinan y todo ello de una forma adaptativa Porque usar SMA: Al ser un solo agente existe problemas de escalabilidad y pérdida de eficiencia Es mejor dividir, consiguiendo así modularidad, flexibilidad, robustez, modificabilidad, escalabilidad conocimiento concentrado: ya que si aparecen problemas en el manejo de un solo agente que concentra todo el conocimiento, se propagan a todo el sistema distribución de la carga, de este modo, los agentes de un SMA pueden diseñarse como componentes autónomos que actúan en paralelo para resolver problemas de ámbito general Para problemas excesivamente complejos Interconexión con otros mecanismos clásicos, como son los sistemas expertos. Características de los agentes: Intencionalidad: Declaración de metas y medios para llegar a ellas. Racionalidad: Capacidad de evaluar y realizar acciones a ejecutar. Compromiso: Planificación de las tareas coordinado y negociado entre agentes. Adaptabilidad: Control comportamientos de acuerdo con las funciones que ejecuta. 47 ISI 504 Inteligencia Artificial Clasificación de los agentes: Estáticos o Móviles según su movilidad. Deliberativos y Reactivos de acuerdo con su capacidad de reacción. Autónomos o no, si operan sin necesidad de intervención humana. En IA los agentes de mayor interés son los autónomos, pues presentan características que los acercan al comportamiento humano, tales como: racionalidad, habilidad social, cooperación, capacidad de aprendizaje, reactividad y proactividad Características principales de SMA La no existencia de benevolencia, los agentes son menos vulnerables a desviaciones del objetivo principal por las influencias externas. La obtención de Múltiples metas, capacidad de resolver problemas y enfrentar el problema de varias formas. La Autonomía permite seleccionar la mejor manera para cumplir con sus objetivos. La Heterogeneidad hace necesaria la existencia de un sistema de comunicación que permita la interacción entre los diferentes agentes. Estructura organizacional de los SMA Estructura Centralizada: Un agente controla la interacción entre los otros agentes. Estructura Horizontal: Todos los agentes están en el mismo nivel, por lo tanto no hay agentes controladores. Estructura Jerárquica o Formal. Cuando un agente de menor nivel solo puede recibir ordenes del agente de su nivel inmediatamente superior o Informal. Cuando puede recibir ordenes de cualquier agente de un nivel superior al suyo. 48 ISI 504 Inteligencia Artificial Estructura ‘Ad Hoc’ : Es una mezcla de las anteriores y eso le da una característica de dinamismo. Los diferentes grupos de agentes se ajustan entre ellos. Pilares de los SMA Cooperación Cooperación compartiendo tareas y resultados Con los resultados generados por los demás agentes, un agente realiza sus propias tareas. Cooperación por delegación Agente supervisor divide una tarea en subtareas, asigna a sus agentes para ejecutarlas, y las integra para hallar solución global. Cooperación por ofrecimiento: El agente supervisor divide una tarea en subtareas las ubica, en una lista esperando que los agentes del sistema se ofrezcan a realizarlas dependiendo de sus habilidades. El supervisor elige entre los ofrecimientos y las distribuye. Coordinación Coordinación Global: Cuando el SMA determina y planifica las acciones de los diferentes agentes. Coordinación Individual: El SMA da autonomía a los agentes, es decir cada agente decide qué hacer y resuelve localmente los conflictos que detecte con otros agentes. Control Provee apoyo en la implementación de mecanismos de coordinación. El control puede ser considerado desde el punto e vista local y global. Si se asigna mucho control global aumentaría el tiempo de computo, mientras que cuando se desborda control local se pierde eficiencia en operación. Planificación Incluye factores importantes en el tiempo de ejecución: o Recursos computacionales, o Disponibilidad de los Agentes, o Tiempo de ejecución empleado por cada agente. Esta información se obtiene del sistema de información histórica Proceso o Inicialmente recibe la Información del Problema o Subdivide en tareas o Busca qué agente(s) puede(n) realizarlas o Negocia con éste las características de la ejecución o Se crea el cronograma de trabajo o Se confirman las características de la ejecución o Se asignan tareas a los agentes o Luego, durante la ejecución del trabajo, el agente planificador realizará auditorias periódicas con el fin de verificar la correcta ejecución del sistema. ESTRATEGIAS PARA REPRESENTAR EL CONOCIMIENTO 49 ISI 504 Inteligencia Artificial Redes Semánticas Especializadas Es el sistema de representación mas general de todos y mas antiguo es una colección de objetos, también llamados nodos(representan objetos) unidos mediante arcos o enlaces formando una red (representan relaciones entre esos objetos) (es, tiene, colabora, etc.) Estos elementos llevan asociado una etiqueta o palabra, en el caso de los nodos un nombre, y en los enlaces es un verbo. Trabaja en Pedro -----------------> departamento de producción Para poder interpretar situaciones donde una serie de objetos diferentes son ocurrencias del mismo concepto general, ese necesario diferenciar los nodos específicos especiales denominados “muestra” (token) (<pd-1>), mientras que los nodos normales se denominaran desde ahora “tipo”. Además, que podemos utilizar otro concepto nuevo que es la “herencia”, con esto simplificamos nuestra representación, esto aumenta considerable su velocidad de procesamiento. grafico pag. 67 hechos relativos a los Empleados llamados “pedro” Con lo anterior solo podemos expresar relaciones binarias entre sustantivos, y la realidad es otra donde necesitamos en algunas ocasiones relacionar sucesos que por lo general están con límites de espacio o tiempo. Expresar Pedro-2 trabajó para Pedro-1 desde Abril de 2001 hasta Mayo de 2005, para esto es necesario relaciones en torno a los verbos, manteniendo distinción entre: nodo verbal muestra: representa un suceso especifico (<tb-1>) nodo verbal tipo: representa un suceso “prototipo” . 50 ISI 504 Inteligencia Artificial Trabajar Acto Desde Enero 1998 Hasta Mayo 2005 <tb-1> Dativo <pd-1> Agente <pd-2> Grafico pag. 69 representación de un suceso organizada alrededor del verbo Para dar una gramática de casos se han definido un conjunto típico de relaciones: o Agente: iniciador de la acción identificada por el verbo o Objeto: sustantivo afectado por la acción o estado identificado por el verbo o Localización: localización de la acción o estado identificado por el verbo o Dativo: persona afectada por la acción o estado identificado o Acto: acción. Ternas objeto-atributo-valor: es un caso especial de la red semántica, donde existen tres nodos: objetos, atributos y valores y se suprimen los enlaces Hay ocasiones donde se añade a las ternas un factor de certeza que sirve para medir la confianza que se tiene de que la terna sea correcta En otras ocasiones se suprime el atributo y se trabaja solo con parejas objeto-valor Reglas: Las reglas se usan para representar relaciones y constan de dos partes: “la premisa” y “la conclusión” A su vez la premisa consta del condicional “Si” y de una expresión lógica (constituida por una o varias ternas objeto-atributo-valor unidas por los operadores “y”, “o” y “no”). Alguna ocasiones, cuando el sistema amerita 51 ISI 504 Inteligencia Artificial se forza a que solo exista el operador lógico “y” y solo se maneje con objeto-valor La conclusión consta del adverbio “entonces” y de una expresión lógica Si luego de evaluar la premisa y esta resulta correcta, entonces se hace que la expresión lógica de la conclusión sea cierta. Marcos: Es otro de las formas de representar objetos y relaciones Casos particulares de redes semánticas Un marco suministra toda la información existente sobre un objeto Esta información puede ser declarativa o descriptiva y de tipo indirecta, es decir directamente características del objeto o dar procedimientos o reglas para determinarlas Esta forma indirecta hizo popular su uso Expresiones Lógicas: La lógica es una disciplina que esta relacionada con la validez de argumentos, determinar si unas conclusiones pueden deducirse correctamente a partir de unos hechos En la lógica se comparan los hechos o supuestos contra una serie de patrones abstractos (modelos que están conformados por reglas que previamente han sido comprobados y validados de una forma matemática o formal) Existen 2 tipos comunes de notaciones lógicas: lógica proporcional: o es un sistema de lógica común en el que las proposiciones son expresiones que pueden ser verdaderas o falsas, las mismas que están unidas por conectivos “y”, “o”, “implica”, “equivalente” y se denominan expresiones compuestas o la lógica proporcional se ocupa de las expresiones compuestas 52 ISI 504 Inteligencia Artificial o Existen diferentes reglas para propagar la veracidad de las expresiones dependiendo de los conectivos. (eje: si X es verdadero y Y es falso, la expresión compuesta X e Y es falso; Mientras X o Y es verdadero. Otras reglas permiten inferencias como, si X es verdadero y X implica a Y se puede decir que Y es verdadero) lógica de predicados: o es una extensión de lo anterior o la unidad fundamental es un objeto o las expresiones acerca del objeto se llaman predicados (a veces los predicados expresan relación entre objetos) o Las relaciones se denominan “predicados” y los objetos “argumentos”, todo esto conforman las “proposiciones” y estas toman o valor Verdad o Falso o Es un (pedro, científico en computadoras) o Es un (pedro, masoquista) o Es un (pedro, muerto) o Se deben tomar en cuenta 2 cuestiones: o El orden de los argumentos o Que el predicado puede tener cualquier numero de argumentos Trabaja (pedro, IBM, científico en computadoras) o Existen 2 tipos de proposiciones: o Individuales o llamadas “atómicas”, que constan del predicado y de los argumentos o Compuestas, que mediante el uso de conectivas lógicas unen o combinan a proposiciones las atómicas (^)=Y (v)=O (~)=NO ()=implica, o también SI ... ENTONCES ... o ejemplos: es un (pedro, científico en computadoras) ^ lee (pedro, ciencia-ficción) o sea “Pedro es un científico en computadoras y lee ciencia-ficción”. informa-a (pedro, Juan) supervisa (Juan, pedro) o sea “Si Pedro informa a Juan ENTONCES Juan supervisa a Pedro”. o Los objetos de las proposiciones pueden ser expresados como constantes (comienzan con una minúscula) que representa un individuo o una clase determinada o como variable que representa un individuo o una clase sin especificar Es un (X, científico en computadoras) o Si una variable es sustituida por un nombre de un objeto o constante se particulariza 53 ISI 504 Inteligencia Artificial o Cuantificadores: se utilizan para indicar cuantas particularizaciones de variables necesitan tomar el valor “verdad” para que toda la proposición sea verdad o cuantificador universal: representado por “¥” (A invertida), aquí todas las sustituciones de la variable por elementos del dominio deben tomar el valor “verdad”, es como decir “Todo” o cuantificador existencial: representado por ”Э” (E dado la vuelta), aquí en cambio solamente algunas de las sustituciones de la variable por elementos del dominio deben tomar el valor “verdad”, es como decir “Alguno” o ejemplos: “todos los científicos en computadoras son programadores” como ¥(X)(científico en computadoras(X) programador(X)) “algunos científicos en computadoras son optimistas” como Э(X)(científico en computadoras(X) optimista(X)) o Se pueden mezclar los tipo de cuantificadores dentro de una misma expresión, importando el orden como se introduzcan los cuantificadores o Ejemplos: ¥(X)Э(Y)(empleado(X) supervisa(Y, X)) Podría leerse como “todo empleado tiene un supervisor” Э(Y)¥(X)(empleado(X) supervisa(Y, X)) Es muy diferenta y podría leerse como “Hay una persona que supervisa a todos” o Las conectivas lógicas pueden rescribirse en función de otras ~(~ Científico en computadoras(pedro) v ~ supervisor(pedro)) puede leerse como científico en computadoras(pedro) ^ supervisor(pedro) informa-a (Juan, pedro) supervisa(pedro, Juan) puede representarse como ~ informa-a (Juan, pedro) v supervisa(pedro, Juan). Sistemas Expertos: “Es un sistema informático que simula el proceso de aprendizaje, de memorización, de razonamiento, de comunicación, y de acción de un experto humano en una determinada rama de la ciencia, suministrando, de esta forma, un consultor que puede sustituirse con unas ciertas garantías de éxito”. Componentes de un SE: 54 ISI 504 Inteligencia Artificial Los elementos más importantes de un sistema experto son: Experto Humano: Es quien aporta el conocimiento en el área de interés Ingeniero del Conocimiento: Esta persona interpreta este conocimiento en forma tal que hace capaz que el sistema asimile. o Estos dos anteriores van hablar lenguajes distintos, o Multitud de preguntas de IC al EH, o IC no se contentará con las respuestas, exigiendo razones, o IC controlara la coherencia del conocimiento en su conjunto o EH queda mas especializado, por orden de ideas, Subsistema de control de la coherencia: o Sirve para mantener coherencia con el conocimiento, o Es un nuevo concepto puesto en SE, muchos SE algunos de los sistemas actuales no disponen del mismo, o permite forma mas ordenada, o mas fiable, o avisará de las imperfecciones antes señaladas, o para evitar que existan reglas que se contradigan, o el sistema debe suministrar información para que controle incoherencias, o evita que pase la información mala a la base del conocimiento, Subsistema de Adquisición del conocimiento: o encargado de recibir los elementos de conocimiento, o comprobar que sean elementos nuevos (aun no en Base del Conocimiento) o el conocimiento de 2 tipos: o abstracto: validez general (reglas, espacios probabilisticos), forma parte del sistema (eje: todas las diferentes enfermedades, nombres, tratamientos...) o concreto: validez particular, no forma parte del sistema, es efímero, es decir se destruye (eje: síntomas de un paciente en particular) Base del Conocimiento: o Elemento que almacena el conocimiento abstracto o Pone el conocimiento a disposición del motor de inferencia para su tratamiento o Cuando la premisas de algunas reglas coinciden en su totalidad o parte con las conclusiones de otras, se llama lo que se produce 55 ISI 504 Inteligencia Artificial “encadenamiento de reglas”, es decir, las premisas de ciertas reglas son conclusiones de otras La memoria de trabajo: o es la que almacena el conocimiento concreto o igualmente almacena todos los procedimientos de los diferentes sistemas y subsistemas o es de carácter transitorio o cambiante El motor de inferencia: o Es el corazón de todo sistema experto o Su función es aplicar el conocimiento abstracto al conocimiento concreto o Con la acción de obtener conclusiones o (eje: el diagnostico de una paciente, consiste en analizar los síntomas (concreto) y detectar la enfermedad que posee mediante el análisis de diferentes sintomatologías (abstracto)) o existen 2 tipos de conclusiones: o Conclusiones simples: aquellas que resultan de la aplicación de sólo una regla o Conclusiones compuestas: aquellas que resultan del encadenamiento de varias reglas o No siempre resulta la conclusiones del análisis de un regla o encadenamiento de reglas; en estos casos el motor de inferencia podrá optar por: o abandonar la regla por no poder concluir nada (luego de un rango de interacciones) o preguntar, a través del subsistema de demanda de información, sobre la verdad o falsedad de las premisas y continuar con el proceso hasta producir la conclusión o para obtener conclusiones se utilizan diferentes tipos de estrategias de inferencia y control de razonamiento: o para las conclusiones simples: o modus ponens estrategia más común afirma que si se tiene la regla “Si A es cierto entonces B es cierto” Si se conoce que “A es cierto”, entonces puede afirmarse que “B es cierto”, es una afirmación trivial por su familiaridad o modus tollens estrategia bastante menos corriente que la anterior afirma si se sabe que “B es falso”, entonces puede afirmarse que “A es falso” 56 ISI 504 Inteligencia Artificial es curioso que algunos SE no incluyen este tipo de estrategia de inferencia, a pesar que resulta muy sencilla y práctica su aplicación o Para conclusiones compuestas: o mecanismo de resolución, consta de los siguientes pasos o se sustituye las reglas por expresiones lógicas equivalentes o se combinan éstas entre si para dar una nueva expresión lógica o se combina ésta con la evidencia de los hechos Un ejemplo de este mecanismo: Sustitución de reglas por expresiones lógicas “Si llueve las calles de mojan” = “No llueve o las calles se mojan” Combinar expresiones lógicas “No llueve” o “se producen filtraciones” Combinar con evidencias Evidencia es “lluvia” “Si llueve las calles de mojan” “Si las calles de mojan se producen filtraciones” la conclusión es: “Se producen filtraciones” o técnicas de razonamiento incierto: (lógica incierta) (gráfico de implicaciones inciertas pag 52) o Lógica clásica: donde se parte que si la premisa de una regla es cierta la conclusión también lo será. “Si A es cierto entonces B es cierto” donde A implica a B con probabilidad 1. (caso I del gráfico implicaciones inciertas) este modelo tiene limitaciones, ya que existen varios casos donde no siempre es así (en el caso de enfermedades donde los síntomas no necesariamente da cierta enfermedad) 57 ISI 504 Inteligencia Artificial toda afirmación es siempre segura es una lógica de tipo determinista o Lógica incierta: “toda afirmación debe ir acompañada de una medida de incertidumbre, que expresa la confianza que se tiene de que esa afirmación sea cierta” Incertidumbre (medida de la aleatoriedad de algún suceso) cuando se trabaja con implicaciones inciertas, las afirmaciones hay que entenderlas como posibles en vez de como seguras “A implica B con una probabilidad P(B|A)” (probabilidad de B condicionada por A o probabilidad de B supuesto que A es cierta) (caso II del gráfico implicaciones inciertas) o Para el caso de no implicación “A no implica B” puede tratarse como caso extremo de implicación “A implica B con probabilidad nula”. (caso III del gráfico implicaciones inciertas) o estrategias de encadenamiento o de estas depende la total eficacia del sistema o en estas estrategias se debe tener presente: o procedimientos para decidir por donde empezar, ya que tenemos los datos en la Base de datos estática y debemos tener mecanismo que lo pongan a funcionar, como es la forma de localizar reglas que hagan referencia a un valor de un cierto objeto. o además, debe tener mecanismos para que el sistema pueda decidir como continuar cuando se le presenten varias alternativas al mismo tiempo o las estrategias mas comunes: encadenamiento hacia adelante y hacia atrás o Durante el proceso de evaluación de las premisas o conclusiones de las reglas, se da lo que se denomina concluir una regla, se dice que esa regla se ha “disparado” o que esta “activa”. Estas reglas serán tomadas en cuenta al momento o forman parte de la base del subsistema de explicación o existen búsquedas verticales y horizontales en un árbol de reglas encadenadas búsqueda vertical es buscar primero los detalles, es decir penetrando cada vez más en los detalles siguiendo una cadena de reglas mas usado insiste sobre el mismo tema hasta que obtiene toda la información ejemplo: realiza preguntas relacionadas con el tema al mismo tiempo similar a lo que un medico especialista haría búsqueda horizontal 58 ISI 504 Inteligencia Artificial se barre todas las premisas de una regla, antes de enterarse de ningún detalle eficiente cuando una regla funciona y aparece rápidamente el valor del objetivo hay ocasiones que pregunta el sistema preguntas aparentemente raras, debido a que mezcla temas diferentes ejemplo: hace preguntas fuera del tema; si esta haciendo la pregunta de análisis de sangre, le empieza a preguntar como es el análisis, como es su respiración, como es el color de su piel…. similar a lo que un medico general haría o Existe el razonamiento monótono y no monótono monótono, si los hechos de las reglas siempre tienen el mismo valor en la sesión de consulta no monótono, si se permite variar los valores de los hechos de las reglas durante la sesión de consulta; es complejo esto porque se debe controlar si varia un valor hacerlo también en sus derivados o Encadenamiento hacia adelante en esta estrategia se diferencian claramente la memoria de trabajo y la de la base del conocimiento, en memoria de trabajo esta los datos que surgen en la consulta, y en la base del conocimiento las reglas estos dos tipo de información son comparados, que sus resultados de esto pasan a incrementar el conocimiento esta estrategia se utiliza en problemas orientados a los datos o de diagnostico, en donde se tiene unos hechos (síntomas) y se quiere saber cuales son las conclusiones (enfermedades) que pueden derivarse de ellos o Encadenamiento hacia atrás esta estrategia se utiliza en problemas orientados al objetivo (enfermedades), en donde se quiere saber que hechos (síntomas) son necesarios para conseguirlos 59 ISI 504 Inteligencia Artificial Subsistema de demanda de información: o Se recurre a este subsistema cuando el conocimiento concreto es muy limitado y que no se puede sacar conclusiones fiables o Completa ese conocimiento para proceder de nuevo a la reelaboración y repetir este ciclo hasta conseguir conclusiones validas Interfase de Usuario: o Permite que el usuario introduzca información al sistema o Se debe usar hardware (ratones, pantallas gráficas, a color, etc.) y software (menús, Windows, gráficos, etc). Para que sea atractivo al usuario. Subsistema de ejecución de ordenes: o para realizar acciones pertinentes luego de haber sacado las conclusiones o (eje: Un sistema de control de una central nuclear puede producir apertura de ciertas válvulas, la activación de alarmas, etc). Subsistema de explicación: o De igual manera luego de tener las conclusiones, el usuario puede pedir razones o Que por medio de los procesos hechos por el motor de inferencia, comunique al usuario el forma ordenada los hechos o Es recomendable tener un mecanismo de elección que permita elegir el nivel de contenido de explicación (mas detallada o no) Subsistema de propagación de la incertidumbre: o Por su complejidad es el elemento mas débil de los SE o Entenderlo en el sentido que la propagación de la incertidumbre es normalmente incorrecto, dando como resultado que las conclusiones no son muy fiables o Existen medidas como probabilidades, factores, de certeza, teoría de la evidencia, lógica difusa o Básicamente, lo que se hace es asociar a cada hecho una cierta medida de incertidumbre (probabilidad) o En el motor de inferencia, una de las formas para obtener conclusiones compuestas son las técnicas de razonamiento incierto, pero causa propagación de la incertidumbre, para esto se exponen medidas de incertidumbre: Probabilidad: Espacio probabilistico, consta de 2 elementos (U, A): un conjunto U y una clase A de subconjuntos de U. (ejemplo: el conjunto U es la población de pacientes y la clase A constituida por conjuntos que cumplen ciertas condiciones (sintomas-enfermedades)) “Se dice que se tiene definido una probabilidad en el espacio probabilistico (U, A) si a cada subconjunto de A se le asocia un número real (entre 0 y 1) de tal forma que se cumpla que la probabilidad del conjunto universal U 60 ISI 504 Inteligencia Artificial siempre sea 1 y que la probabilidad de cualquier conjunto unión de conjuntos disyuntos es la suma de sus probabilidades” Existe también el caso especial, y es la probabilidad condicional P(A|E), (P= número de elementos que pueda ocurrir (A y E) / número de elementos que ocurra E) (ejemplo: A aparece un dos por lo menos en un dado, E suma es 6; P(A|E)=2/5) Factor de Certeza: medida de certeza que se tiene de un hecho o suceso, su valor oscila entre (-1, 1) medida de credibilidad: mide el decremento relativo de incredibilidad de una hipótesis A debida a una evidencia o información E. MC(A, E) = (P(A|E) - P(A)) / (1 - P(A)) y si el valor sale negativo se pone 0 medida de incredibilidad: mide el decremento relativo de credibilidad de una hipótesis A debida a una evidencia o información E. MI(A, E) = (P(A) - P(A|E)) / P(A) y si el valor es negativo se pone 0 FC(A|E) = MC(A, E) - MI(A|E). Subsistema de aprendizaje: o Es uno de los elementos últimamente incorporados o Dan el concepto de que los SE son capaces de aprender (demostrado) o Dos tipos aprendizaje: Aprendizaje Estructural: Relacionado con la estructura del conocimiento (reglas, espacios probabilisticos, etc) La incorporación de nuevas reglas a la base del conocimiento constituye aprendizaje estructural Aprendizaje Parametrico: Se refiere a los parámetros de la base del conocimiento La determinación de probabilidades en los hechos constituyen aprendizaje parametrico Se pueden manipular estas probabilidades (desde hacerle nula para evitar el hecho, para luego si la hipótesis es incorrecta simplemente modificar los parámetros (probabilidades) para incluir al hecho) (eje: medico). o Subsistema de experiencias: o Es la inclusión de la base de datos de experiencias existentes sobre el tema en el cual se esta aplicando el SE o Se puede decir que un SE podría generar sin la necesidad de un Experto Humano (contradictorio con el concepto), partiendo de datos o experiencias recogidas por no expertos, con garantías casi iguales como si se lo hiciese con un experto humano. Funciones de un SE: 61 ISI 504 Inteligencia Artificial Los elementos anteriores nos sirven para definir claramente las funciones de un SE, siendo la mejor forma de entender que es lo realmente hay detrás de estos sistemas y conocer sus posibilidades. - Adquirir conocimiento - Almacenar conocimiento - Razonar e inferir - Demandar nueva información - Aprender - Propagar incertidumbre - Asistir al experto a dar información coherente - Explicar las conclusiones - Realizar ciertas acciones como consecuencia del razonamiento - Controlar la coherencia del conocimiento del sistema A estas se le pueden ir adicionando mas conforme avance la tecnología que en esta área es bien agresiva. Etapas de desarrollo de un SE: 1. Definición del problema a resolver (Análisis) No escatimar tiempo trabajar con precisión 2. Búsqueda de un EH o de los datos o experiencia EH que este en condiciones de resolver el problema con posibilidades de éxito (abierto) En algunos casos bastara con bases de datos, experiencias que sustituirán al EH prácticamente en todos los casos se cambian algunos aspectos que ya se definieron en la primera etapa, por orientaciones del EH 3. Diseño del SE Donde se incluyen las estructuras para almacenamiento del conocimiento, motor de inferencia, los sistemas de explicación, interfase con el usuario, etc Se dejaran ventanas abiertas para acceso a información estadístico y de control. 4. Elección del grado de intervención del usuario 5. Selección de la herramienta, concha o lenguaje de desarrollo la etapas 4 y 5, muy necesarias en su elección para evitar esfuerzos inútiles, por otro lado son caras las herramientas o conchas, el uso de conchas es mas fiable por su control de calidad 6. desarrollo de un prototipo 7. prueba del prototipo las etapas 6 y 7, se convierten en un ciclo de repetición hasta que se obtengan resultados apetecidos 8. refinamiento y generalización relacionado con la anterior, aquí se van puliendo defectos o incluyendo nuevos casos no contemplados en el diseño inicial 9. mantenimiento 10.actualización 62 ISI 504 Inteligencia Artificial Las dos ultimas etapas son muy importantes para obtener un producto de calidad y/o con éxito comercial En estas etapas habrá que atender las demandas de los clientes, resolviendo sus problemas, actualizando el sistema con nuevos avances. Tipos de SE: Entre los SE que se destacan están los: basados en Reglas basados en Probabilidades Comparación de elementos en los dos sistemas: Elementos Modelo Probabilistico Base del Conocimiento Abstracto: Estructura Probalisitica Concreto: hechos Motor de Inferencia Evaluación de probabilidades Subsistema de explicación Basado en probabilidades condicionales (Por condiciones especiales como edad, sexo, etc, que tienen historial de que esto ya haya ocurrido antes) Adquisición conocimiento Espacio probabilistico, Parámetros Subsistema aprendizaje Modelo Basado en Reglas Abstracto: Reglas Concreto: Hechos Encadenamiento hacia atrás y hacia adelante Basados en reglas activas Reglas, factores de certeza(medida de certeza que se tiene de un hecho. Una de las medidas de la Incertidumbre) Cambio en la estructura del Nuevas reglas espacio probabilistico Cambio en los factores de Cambio en los parametros certeza (historial) ALGORITMO SHELL BASADO EN REGLAS (anexo programa en pascal shell.pas) BuscarObjeto: busca un objeto en la lista de objetos y devuelve un puntero que apunta al objeto buscado y otro al anterior. Si alguno de ellos no existe devuelve “Nill” - inicializa el indicarencontrado con falso y punteroanterior con nill - busca desde el primer objeto, es decir, asigna primerobjeto a punteroobjetoactual - realiza un bucle: mientras no se acabe la lista de objetos (nill) y el indicadorencontrado sea falso o se busca por nombre del objeto o si el nombre del objeto es igual se activa el incadorencontrado, caso contrario asigna punteroobjetoactual a punteroanterior y asigna al punteroobjetoactual el punteroobjetosiguiente 63 ISI 504 Inteligencia Artificial CrearObjeto: Reserva espacio en memoria para un objeto, lo inicializa con su nombre y valor=desconocido y conocido=falso (para ver si ya fue usado) y se agrega a la lista de objetos - se incrementa el numeroobjetos - coloca en la cabeza de la lista de objetos el objeto creado o asigna primerobjeto a apuntadorsiguiente(objeto) o asigna punteroactual a primerobjeto DarExpresion: Pide una premisa(objeto valor) y comprueba que el objeto implicado esta en la lista de objetos; sino existe el objeto lo crea - busca el objeto en la lista de objetos con BuscarObejto y si no existe crea el objeto con CrearObjeto CrearRegla: Reserva espacio en memoria para una regla, la inicializa, solicita sus premisas y su conclusión, almacena los punteros correspondientes de las premisas y conclusión en la regla y a su vez coloca la regla en la lista de reglas - aumenta el numero o contador de reglas - coloca en la cabeza de la lista de reglas la regla creada o crea los campos de la regla nueva y deja vacio “nill” los apuntadores a las premisas y conclusión. Asigna primeraregla a apuntadorsiguiente(regla) - pide datos de la primera premisa con Darexpresion con apuntadorsiguiente(premisa) en “nill” - luego pide las siguientes premisas Darexpresion hasta cierto limite, siempre controlando los apuntadores (con el truco de apuntadoranterior) para ir actualizando el apuntadorsiguiente(premisa) de la premisa anterior (guardar apuntador hacia primera premisa desde regla) - una vez terminado las premisas pide la conclusión con Darexpresion (similar a como se hizo con la premisa se hace con la conclusion) - asigna punteroactual a primeraregla BuscarRegla: Busca una regla en la lista de reglas y devuelve un puntero que apunta a la regla buscada y otra a la anterior, si alguno de ellos no existe devuelve “nill” - inicializa el indicadorencontrado con falso y punteroanterior con nill - busca desde la primera regla, es decir, asigna primeraregla a punteroreglaactual - realiza un bucle: mientras no se acabe la lista reglas (nill) y el indicadorencontrado sea falso o se busca por nombre de la regla o si el nombre de la regla es igual se activa el indicadorencontrado, caso contrario asigna punteroreglaactual a punteroanterior y asigna al punteroreglaactual el punteroreglasiguiente BorrarRegla: borra la regla de la lista de reglas y sus premisas y conclusión - elimina primero las premisas, - luego elimina la conclusión - y por ultimo la regla, reordenando los apuntadores de la lista - baja en uno el contador de reglas 64 ISI 504 Inteligencia Artificial HayObjetoenReglas: comprueba si un objeto aparece en la lista de reglas, bien en las premisas o su conclusión, y lo indica - inicializa el indicadorencontrado con falso - busca desde la primera regla, es decir, asigna primeraregla a punteroreglaactual - realiza un bucle: mientras no se acabe la lista de reglas (nill) y el indicadorencontrado sea falso - realiza un bucle: mientras no se acabe la lista de premisas y el indicadorencontrado sea falso o se busca por nombre de la regla - busca en la conclusión si no existe el objeto - se comunica el nombre de la regla si el objeto aparece en dicha regla BorrarObjeto: borra un objeto de la lista de objetos - comprueba si el objeto existe o es usado en la reglas (premisas y conclusión) por medio del procedimiento HayObjetoenReglas - si el objeto es el primero de la lista guarda en el apuntador primerobjeto el apuntador que apunta el elemento segundo de la lista, caso contrario hace el juego de traspaso de apuntadores entre el objeto anterior y el siguiente - reduce en uno el contador de numero de objetos InicializarObjetos: Inicializa valores de los objetos (hechos) haciendoles de valor desconocido - se barre toda la lista de objetos y pone en valor=desconocido y en conocido=falso DarValorObjetos: pide por pantalla el nombre del objeto, busca en la lista de objetos y si encuentra pide valor, en el caso que no existe confirma si quiere crearlo y si se crea luego pide el valor - la búsqueda lo hace con el procedimiento buscarobjeto - si se da valor al objeto se actualiza el valor del objeto incluyendo tambien conocido=verdadero BuscaRegla: busca la primera regla que incluye a un objeto dado en su conclusión - inicializa el indicadorencontrado con falso - busca desde la regla que pasan como parámetro - realiza un bucle: mientras no se acabe la lista de reglas (nill) y el inidicadorencontrado sea falso o se busca en el objeto conclusión de cada regla EncadenamientoHaciaAtras: realiza el encadenamiento de la reglas hacia atrás - previo a invocar al procedimiento EncadenamientoHaciaAtras se pide el nombre del objeto a investigar y se verifica si existe en la lista de objetos mediante el procedimiento BuscarObjeto - y luego de ejecutar el procedimiento EncadenamientoHaciaAtras y sino se ha pedido explicación se muestra el nombre del objeto con su valor - ahora si nos toca indicar como funciona propiamente el EncadenamientoHaciaAtras: o analiza si el objeto buscado ya tiene valor, es decir, si ya es conocido no hace el proceso 65 ISI 504 Inteligencia Artificial o sino no es conocido, inicializa el indicadorencontrado=falso, busca la primera regla que tenga objeto en la conclusión (buscaregla) o crea un bucle: mientras no se acabe la lista de reglas y el indicadorencontrado=falso - inicializa el indicador mal=falso - crea un bucle: mientras no se acabe la lista de premisas de la regla que se esta analizando e indicador mal=falso realiza EncadenamientoHaciaAtras con el objeto de la premisa de la regla Si el valor del objeto de la premisa <> al valor del objeto Entonces activamos el indicador mal=verdadero Caso contrario repite el proceso con la siguiente premisa - Si el indicador mal=falso Entonces se activa la regla porque todas las premisas son ciertas: Valor del objeto=valor de la conclusión de la regla Objeto_Conocido=verdadero Indicadorencontrado=verdadero Si Indicadorexplicacion=verdadero Entonces visualizamos “concluye que: objeto tal=valor tal, basado en regla: regla tal” - Repite el proceso con la siguiente regla, mediante el juego de apuntadores (apuntador siguiente) o Si indicadorencontrado=falso Entonces solicita el valor del objeto porque no pudo concluir el encadenamiento de las reglas (esto pasa cuando el objeto a buscar(Premisa) no encuentra, pide el valor para valorar o comparar con los valores del objeto abstracto(Premisa)) . Igualmente: - Valor del objeto=valor ingresado - Conocido=verdadero EncadenamientoHaciaAdelante: realiza el encadenamiento hacia delante de las reglas - crea un bucle: repeat (until indicadorconcluye=falso) (para revisar todas las reglas y no solo salir a la primera regla activada) o inicializo indicadorconcluye=falso o comienzo desde la primera regla, punteroreglaactual=primeraregla o crea un bucle: repeat (until punteroreglaactual=nill), es decir, hasta que se acaben de analizar todas las reglas - Si el objeto conclusión de la regla analizada es desconocido (conocido=falso) Entonces, analiza las premisas de la regla o Inicializa indicador mal=falso 66 ISI 504 Inteligencia Artificial - o Crea un bucle: mientras no se acabe la lista de premisas de la regla que se esta analizando e indicador mal=falso Si el valor del objeto de premisa <> al valor del objeto evidencia Entonces activamos el indicador mal=verdadero Caso contrario repite el proceso con la siguiente premisa o Si el indicador mal=falso Entonces aplicar la regla si todas las premisas se verifican: Valor del objeto=valor de la conclusión Objeto_Conocido=verdadero Indicadorconcluye=verdadero Si Indicadorexplicacion=verdadero Entonces visualizamos “ concluye que: objeto tal = valor tal, basado en regla: regla tal”; es decir, comunica que regla ha aplicado para concluir el valor del objeto Caso contrario, solo dice que concluye pero no dice con que regla o Repite el proceso con la siguiente regla (punteroreglaactual=punteroreglasiguiente ) Until punteroreglaactual=nill, es decir, hasta que se acaben de analizar todas las reglas Until indicadorconcluye=falso. SOLUCION DE PROBLEMAS MEDIANTE BÚSQUEDA esto esta relacionado con agentes basados en metas, donde el agente deberá determinar secuencias de acciones que les permita obtener datos deseables, teniendo como meta el solucionar el problema formulación de metas: poner los objetivos que el agente quiere alcanzar, y permiten organizar el curso de acciones búsqueda: evaluar de entre diversas secuencias de acciones posibles que le conducen a cuyo estado que se lo conoce y por ultimo decidir por la mejor. Su entrada es el problema y su salida es la solución que adopta la forma de secuencia de acciones “ejecución”. DEFINICIÓN DEL PROBLEMA Y SOLUCIONES problema: es un conjunto de información que el agente utiliza para decidir lo que va a hacer formulación de un problema: es el proceso que consiste en decidir que acciones y estados habrán de considerarse Elementos de un problema:(que serán usados en las búsquedas) 67 ISI 504 Inteligencia Artificial - Estado inicial: es el estado actual en el que se encuentra el - Conjunto de acciones: conjunto posible de acciones que agente agente puede emprender o Operador: denota la descripción de una acción en función de la cual se alcanzara un estado o Función subsecuente S: partimos de un estado particular X, y por medio de una acción obtenemos un conjunto de estados. S(x) (estado inmediato siguiente) - Espacio de estados: es el conjunto de todos los posibles estados que pueden alcanzarse a partir del estado inicial mediante cualquier secuencia de acciones - Prueba de meta: es lo que al agente aplica a un estado para decidir si se trata de un estado meta - Costo de ruta: es una función que se asigna un costo a una ruta determinada ESTRUCTURA DE DATOS PARA ÁRBOLES DE BÚSQUEDA generación de secuencia de acciones: se logra con la expansión de estados y no es más que partir de un estado inicial en donde se aplica operadores que hacen que se generen un conjunto de nuevos estados. Esto hace que tengamos un árbol de búsqueda, y es donde vamos a aplicar la estrategia de búsqueda que mas nos convenga estructuras de datos para los árboles de búsqueda: son muchas la formas de representar los nodos, pero al menos lo básico del nodo debe contener: - estado, en el espacio de estados al que corresponda el nodo, - el nodo padre, es el nodo que genero el árbol de búsqueda - el operador, que se aplico para generar el nodo (algoritmo de expansión de estados) - profundidad del nodo, cuantos nodos de la ruta hay desde la raíz hasta dicho nodo - el costo de ruta, de la ruta que va del estado inicial al nodo. descripción informal de un algoritmo general de búsqueda función BÚSQUEDA-GENERAL(problema, estrategia) produce una solución, o falla inicializa el árbol de búsqueda empleando el estado inicial del problema hacer un bucle Si no hay candidatos para la expansión, Responda con falla Caso Contrario Escoja un nodo hoja para hacer la expansión, de conformidad con la estrategia Si el nodo contiene un estado meta, Responda con la solución respectiva Caso Contrario expanda el nodo y añada los nodos resultantes al árbol de búsqueda 68 ISI 504 Inteligencia Artificial Fin del bucle Fin de la función margen o frontera, son los nodos que están a la espera de ser expandidos, donde la estrategia de búsqueda actuaría sobre los mismos para escoger cual es el próximo a expandir. Podemos tener una lista de espera que tendrá los siguientes procesos: o Hacer lista de espera: crea una lista de nodos con base en los nodos dados o Esta Vacía?: Se pregunta a la lista de espera, responderá afirmativo solo cuando no haya mas elementos en la lista o Quitar frente: elimina el elemento que encabeza la lista y lo devuelve para que sea procesado o Función poner en lista: pone un conjunto de elementos en la lista de espera. La variación de cómo hacerlo hace que varié los algoritmos de búsqueda Algoritmo general de búsqueda función BÚSQUEDA-GENERAL(problema, Función-lista-deespera) Responde una solución, o falla nodos <-- Hacer-lista-de-espera(hacer nodo(estadoinicial[problema])) (inicializa con el nodo padre) hacer un bucle Si nodos esta vació Responda con falla Caso Contrario nodo <-- Quitar-frente(nodos) Si Prueba-meta[problema] se aplica a Estado(nodo) y se tiene éxito Responda con nodo Caso Contrario nodos <-función-lista-de-espera(nodos, Expandir(nodo, Operadores[problema])) Fin del bucle Fin de la función. BÚSQUEDA SIN RESPALDO DE INFORMACIÓN (CIEGA) Son búsquedas que no cuentan con información, es decir, no existe información sobre los pasos necesarios, ni el costo de la ruta para pasar del estado actual a la meta, lo único que se tiene es como saber si se llego al estado meta. Dentro de este tipo de búsquedas tenemos: BÚSQUEDA PREFERENTE POR AMPLITUD - Esta es la mas sencilla, pues se comienza con la expansión del nodo raíz, luego todos los nodos generados por este, luego, sus sucesores y así sucesivamente - En general los nodos que están en nivel d se expanden mas rápido de los que están en d+1 - Para implementar esta búsqueda, se utiliza el algoritmo de búsqueda-general con una función de lista de espera mediante la 69 ISI 504 Inteligencia Artificial - que vamos poniendo los estados recién generados al final de la lista (porque evaluara nivel por nivel), a continuación de los todos los estados generados previamente Es muy sistemático, se parte con las rutas de nivel 1, luego de nivel 2, etc. Dejando activos las expansiones de los nodos, consume mas memoria, porque luego tiene que utilizar los nodos expandidos Si hay varias soluciones, encontrara la primera del estado meta mas próximo Es muy eficiente si el costo de ruta es una función que no disminuye al aumentar la profundidad del árbol grafico pag. 80 (inteligencia artificial) BÚSQUEDA DE COSTO UNIFORME - Se modifica a la búsqueda preferente por amplitud para que al momento de expandir, lo haga al nodo de menor costo (medido por el costo de ruta g(n) en vez del nodo de menor profundidad) - Se encuentra una solución mas barata siempre y cuando el costo de ruta es una función que no disminuye al aumentar la profundidad del árbol - g(Sucesor(n) >= g(n) en todos los nodos n - g(n)= costo de ruta desde la partida al nodo n 70 ISI 504 Inteligencia Artificial grafico pag. 82 (inteligencia artificial) BÚSQUEDA PREFERENTE POR PROFUNDIDAD - Consiste en expandir uno de los nodos que se encuentre en lo mas profundo del árbol. Solo si la búsqueda se conduce a un callejón sin salida se revierte la búsqueda y se expanden los nodos de niveles menos profundos - Para implementar esta búsqueda, se utiliza el algoritmo de búsqueda-general con una función de lista de espera mediante la que vamos poniendo los estados recién generados a la cabeza de la lista, puesto que el nodo recién expandido fue el mas profundo, los respectivos sucesores estarán a profundidades cada vez mayores - Optimiza la memoria, porque libera las ramas de los árboles ya probados hasta su profundidad porque ya no van ha ser evaluados luego - Es peligroso cuando hay árboles de profundidad infinita 71 ISI 504 Inteligencia Artificial grafico pag. 83 (inteligencia artificial) BÚSQUEDA LIMITADA POR PROFUNDIDAD - Se elimina el problema de búsqueda preferente por profundidad, donde se podría ir al infinito su búsqueda, esto se supera poniendo limites de profundidad - Se debe buscar un calculo adecuado para medir estos limites, de pronto se escoge algo básico como podría ser el numero de elementos, ejemplo: buscar rutas entre 20 ciudades, no podría haber profundidad de mas 20 niveles BÚSQUEDA POR PROFUNDIZACION ITERACTIVA - Es una mezcla de búsqueda preferente por profundidad y preferente por amplitud, (libera ramas del arbol en cada búsqueda de profundidad) - - porque prueba todos los limites de profundidad posibles (profundidad 0, profundidad 1, profundidad 2, etc.), es decir, hace ejecutar el método de búsqueda limitada de profundidad con la limite (0, 1, 2, etc.) En donde Optimiza la memoria, porque libera las ramas de los árboles ya probados hasta su profundidad Es mucho mas optimo y completo que los anteriores 72 ISI 504 Inteligencia Artificial grafico pag. 85 (inteligencia artificial) BÚSQUEDA BIDIRECCIONAL - Es una búsqueda simultanea que comienza a partir del estado inicial y que retrocede a partir de la meta (en paralelo) hasta que se detenga cuando ambas búsquedas se encuentren en un punto intermedio - Es mucho mas compleja ya que se debe poder arrancar desde inicio como el resto de búsquedas, pero también desde la meta hacia atrás. BÚSQUEDA CON RESPALDO DE INFORMACIÓN (Heurística) En esta modalidad de búsquedas se cuenta con información, es decir existe información que nos permite facilitar la búsqueda (obtener la mejor ruta) para pasar del estado actual a la meta. Mas eficiente que la otra modalidad siempre y cuando exista información que lo respalde - Para efectos de decidir que nodo se debe expandir, se debe contar con una “función de evaluación”, que es la representación de los deseable (o no deseable) con un numero - Si los nodos se ordenan de tal modo que se expanda aquel con mejor evaluación, estaremos hablando de una “búsqueda preferente por lo mejor”, donde se evalúan 2 tipos de aproximaciones básicas: o Se trata de expandir el nodo mas cercano a la meta o Y utilizar la ruta de menor costo Función BÚSQUEDA-PREFERENTE-POR-LO-MEJOR(problema, FUNCION-EVALUACION) Responde con una secuencia de solución 73 ISI 504 Inteligencia Artificial Entradas: problema, un problema función-Evaluación, una función de evaluación Función-lista-de-espera una función que ordena los nodos mediante FUNCION-EVALUACION Responde con BUSQUEDA-GENERAL(problema, funciónlista-de-espera) BÚSQUEDA HEURÍSTICA AVARA - O denominada “reducir al mínimo el costo estimando para alcanzar una meta” - Lo que se pretende es expandir el nodo que este mas cercano a la meta - En la mayoría de veces no es posible calcular exacto el costo que implica el llegar a la meta, por lo que se estima y se dan las funciones heurísticas (h) “palabra griega encontrar o descubrir” - h(n)= costo estimado de la ruta mas barata que une el estado del nodo n con un estado meta, donde h(n)=0 cuando n es una meta - aquella búsqueda preferente por lo mejor que utiliza (h) para escoger cual es el siguiente nodo a expandir se denomina “búsqueda avara” función BÚSQUEDA-AVARA(problema) Responde con solución o falla responde con BÚSQUEDA-PREFERENTE-POR-LOMEJOR(problema, h) - como dijimos (h) puede ser cualquier función que ayude a estimar el costo mas barato de un ruta, es así, que uno de los mas populares es la distancia en línea recta hDLR(n) que mide la línea entre n y la ubicación de la meta nodo partida ------ nodo n ---h(n)-- nodo meta - la búsqueda avara se parece a la búsqueda preferente por profundidad, porque su método es utilizar una sola ruta hasta llegar a la meta, pero se atoran cuando existe callejones sin salida, es decir puede existir los problemas del infinito. BÚSQUEDA HEURÍSTICA ADMISIBLE - La búsqueda avara permite reducir al mínimo el costo de la meta mediante una función heurística (h) que estima el costo desde el nodo n hasta la meta, pero no es suficiente; En cambio la búsqueda por costo mínimo g(n) lo que trata es encontrar el costo mínimo desde el nodo de partida hasta el nodo n. nodo partida ---g(n)-- nodo n ---h(n)-- nodo meta - - Por esto que se necesita mezclar estas dos metodologías y conseguir una completa y es la heurística admisible A*, donde sumamos las 2 funciones anteriores y obtenemos f(n) o F(n) = g(n) + (h(n) Con esto encontramos una solución completa mas barata 74 ISI 504 Inteligencia Artificial - - Lo importante en esta metodología es nunca sobreestimar (admisible) el costo que implica alcanzar una meta, porque puede ser mas cercano a la meta pero puede ser mas costoso Ejemplo: si queremos conseguir llegar a un nodo, donde, por el un lado debe pasar por dos nodos de distancias mas largas, que pasar por otra vía que solo tengo un nodo mas corto, pero resulta ser que el de dos nodos es menos costoso a pesar que es mas largo. BUSQUEDA POR ASCENSO A LA CIMA Es una búsqueda donde se tiene toda la información de cómo encontrar la solución, siendo irrelevante la ruta a través de la cual se obtiene la solución. Para estos casos es mejor los algoritmos de mejoramiento iteractivo. La idea básica es empezar con una configuración completa y efectuar modificaciones para mejorar su calidad. Si hacemos una analogía es como si todos los estados están sobre una superficie de un paisaje; la altura de cada uno de los puntos corresponde a la función de evaluación del estado de ese punto (fig 4.13). El objetivo de estos algoritmos es explorar en el paisaje las cimas más altas, es decir de soluciones más optimas. Dos son los tipos de búsquedas de mejoramiento iteractivo: ascenso a la cima y endurecimiento simulado. La búsqueda por ascenso a la cima, consiste en un bucle que constantemente se desplaza en dirección de un valor ascendente. Este algoritmo no mantiene un árbol de búsqueda, la estructura de cada nodo tiene básicamente el registro del estado y su evaluación (VALOR), es importante mencionar que cuando existe mas de un sucesor idóneo se escoge al azar o si son muchos se puede tomar una estrategia especial de decisión (horizontal, vertical). Al tomar al azar puede causar ciertos inconvenientes: Máximos locales: es cuando se encontró una máxima cima local y no es global, dejando de buscar en el resto de la superficie 75 ISI 504 Inteligencia Artificial Planicie: donde no se encuentra valores superiores para seguir y se debe aplicar el concepto de azar Riscos: cuando las pendientes son muy pronunciadas y llega fácilmente al pico, pero luego cae. Para estos problemas anteriores se debe aplicar el ascenso a la cima con reinicio aleatorio, en donde si caemos en los inconvenientes anteriores debemos reiniciar la búsqueda, almacenando lo que se hizo para luego comparar con los futuros intentos y escoger el mejor. BUSQUEDA DE ENDURECIMIENTO SIMULADO En la búsqueda por ascenso a la cima, si teníamos inconvenientes al quedarnos atorados en máximos locales hacíamos un reinicio al azar, pero en este caso descendemos unos cuantos pasos para escapar del máximo local. El algoritmo internamente tiene la búsqueda por ascenso a la cima (azar) si mejora la situación lo ejecuta, de lo contrario el algoritmo realizara la acción con cierta probabilidad inferior a 1, haciendo que la probabilidad disminuya con lo”malo” de la acción. 76 ISI 504 Inteligencia Artificial SISTEMAS EXPERTOS MODELOS - Lo que se ha hecho hasta el momento es dar una base para entender los principios de SE, de modo que se puede saber la fortaleza y limitaciones de las técnicas actuales - Los modelos que veremos se basan en”la programación del conocimiento” que han cubierto varias áreas de la ciencia como sistemas de enseñanza, comprensión de lenguaje natural, diagnostico, entre otros. Además, han cubierto la generación de su propio conocimiento. - Así describiremos algunos de los sistemas modelos de diagnostico(conocimiento-incierto y de aproximación asociativacausal), por otra parte los de reducción de grandes espacios de búsqueda mediante podas. (1) SISTEMAS DE DIAGNOSTICO A PARTIR DE CONOCIMIENTO INCIERTO - basados en reglas con razonamiento a partir de datos y conocimiento inciertos (no es certero, puede ser P(E|A), FC, etc.) - estos sistemas son para problemas con conocimiento indefinido y de datos imprecisos, en vez de los que manejan el espacio del problema. - Dado lo delicado del dominio de diagnostico, el espacio de búsqueda se puede mantener aceptablemente pequeño, porque se utiliza una simple técnica de reducir el problema bajo el concepto de “probar” una solución determinada - Razona sin necesidad de conocimientos “causales o teóricos”, tan solo de conocimiento de “primeros principios” - Hablamos de mycin(enfermedades infecciosas) y el prospector(geología: evaluación de lugares yacimientos, la 77 ISI 504 Inteligencia Artificial evaluación de recursos geológicos, y evaluación de mejores lugares de perforación) - Mycin utiliza factores de certeza y en cambio Prospector probabilidades condicionales y teorema de bayes - Ambos sistemas son creados con estructuras de control simples, cuya arquitectura se basa en métodos de producción (hechos-clasesrelaciones, reglas-relaciones y estructura de control) o Micyn: - colección de hechos (de forma objeto-atributo-valor), - conjunto de reglas de producción (Si premisa ENTONCES acción(FC)), ejemplo de regla: Si No se sabe si el organismo fue capaz de desarrollarse en presencia del aire(aeróbicamente) Y (El lugar de cultivo es la sangre O El laboratorio ha intentado que el organismo se desarrolle sin la presencia del aire (anaerobicamente)) Y el organismo fue capaz de desarrollarse anaerobicamente ENTONCES Hay evidencia de que el organismo es aerobico (.5) o anaerobico (.2) - generador de inferencias con encadenamiento hacia delante y hacia atrás, junto con una estructura de conocimiento que capacita a la estructura de control para decidir que reglas utilizar de todas la posibles para hacer el mecanismo de inferencia o Prospector: - colección de hechos (de forma objeto-atributo-valor), - conjunto de reglas de producción, - los espacios son evidencias observables donde cada uno tiene un valor de probabilidad para su certidumbre. Los espacios pueden ser premisas (Y, O o No) y otras pueden ser acciones, formando así redes. Si algún espacio de probabilidad cambia, este se propaga en la red - un mecanismo que realice inferencias con conocimiento incierto por medio de probabilidad condicional (2) SISTEMAS APROXIMACIONES ASOCIATIVA Y CAUSAL AL DIAGNOSTICO - es el típico razonamiento de médicos clínicos, dando el diagnostico exacto en situaciones complejas donde se presenta mas de una enfermedad. - Se presentan bajo diferentes tipos de redes asociativas de enfermedades con sus síntomas 78 ISI 504 Inteligencia Artificial Se basa en armar un conjunto de enfermedades como posibles candidatas causantes de los síntomas, y, entonces, se emplea alguna estrategia que depende del numero de candidatos en el propósito de elegir entre ellos. Hablamos de Internist o Aquí se eligen inicialmente las enfermedades que tienen alguna o todas las manifestaciones del paciente, para luego continuar con la búsqueda de enfermedades con las restantes manifestaciones y así hasta que no haya síntomas que queden sin aplicar o Dentro de la información de las enfermedades contiene: - Lista de manifestaciones observadas que no se relacionan con la enfermedad - Lista de manifestaciones observadas que se relacionan con la enfermedad - Lista de manifestaciones que son relacionadas con la enfermedad pero no están presentes en el paciente o Utiliza el modelo de “diagnostico diferencial”, es decir, de enfermedades mutuamente exclusivas - Existen otros que a más de determinar la enfermedad presente puede también predecir el progreso de la enfermedad en un intervalo de tiempo y por supuesto nos da el tratamiento. Hablamos de Casnet(fortran). o Basado en “planes de conocimiento”: 3 para enfermedades y 1 para tratamiento, y todos estos relacionados: 1) observaciones (síntomas) 2) estados patofisiologicos 3) categorías de la enfermedad 4) planes de tratamiento (3) SISTEMAS DE REDUCCION DE GRANDES ESPACIOS DE BUSQUEDA MEDIANTE PODAS - enfrente las dificultades derivados del tamaño de espacio del problema - para esta solución se ocupa una técnica de planificar-generar y probar, como es el caso de DENDRAL y META-DENDRAL (determina la estructura química de algún compuesto desconocido) - donde se genera un árbol con nodos de estados hasta una profundidad dada con estados elegidos. Después se aplica pruebas heurísticas y se toma la decisión de seguir elaborando la rama o podarla, interrumpiendo la posible propagación - el éxito de la técnica de planificar-generar-probar depende mucho de la forma de desarrollar el espacio de estados y también de la capacidad de predecir pronto en el desarrollo del árbol del problema que ramas conducirán a la solución. - Se necesita que el ingeniero del conocimiento conozca del tema por cuanto el sistema no trata de simular o reemplazar al Químico, sino mas bien ayudar para descubrir las estructuras - DENDRAL: o Se compone de 3 etapas: - 79 ISI 504 Inteligencia Artificial Planificación: Se emplea para inferir unas listas con las subestructuras necesarias(Lista correcta) y con las prohibidas(lista incorrecta). Al armar la lista correcta se encontrara con encadenamiento de reglas que se consideran Puede existir un efecto muy drástico al momento de eliminar subestructuras, tener cuidado - Generador: Es el centro del sistema Dendral, que genera el espacio de búsqueda con las posibles estructuras químicas, que un inicio no tenia controles para evitar generar estructuras que los Químicos habrían eliminado de inmediato - Prueba: Maneja 2 programas para probar las estructuras, un primero que es general y un segundo que es mas especifico (Prueba meta) Como resultado de esto se exponen las estructuras propuestas META-DENDRAL: o Igualmente tiene 3 etapas: - Planificación (especifico): Interpretación de los datos y resumen - - - - (semiautomática) Genera reglas especificas de fragmentación de moléculas Generador (general): A partir de las reglas especificas de la etapa anterior, genera reglas generales Generan un conjunto de reglas candidatas Prueba: Es necesario probar para quitar redundancia, eliminando evidencia negativa, Dando como resultado reglas generales depurados. 80