Inteligencia Artificial I. CONTENIDO 1. 2. 3. 4. 5. 6. 7. Introducción y Conceptos de la Inteligencia Artificial. Agentes Inteligentes. Búsqueda a Ciegas. Búsqueda Heurística. Representación Formal del Conocimiento. Representación “No Formal” del Conocimiento. Sistemas Expertos. 7.1. Sistemas Expertos Determinísticos Decisionales. 7.2. Sistemas Expertos Probabilísticos de Aprendizaje Bayesiano. 7.2.1. Aprendizaje Bayesiano. 7.2.2. ID3 Redes Neuronales Artificiales. 8.1. Algoritmos 8.1.1. Perceptivos 8.1.2. Retropropagación 8.1.2.1. Estocástica 8.1.2.2. Difusa 8. II. EVALUACIÓN 9. 60% Examen Presencial 10. 30% Trabajos Prácticos Grupales 11. 10% Asistencia III. BIBLIOGRAFÍA 12. 13. 14. 15. “Inteligencia Artificial – Un Enfoque Moderno” Russel and Norvig “Inteligencia Artificial – Un Paso al Conocimiento” Alfredo Pajares CAPITULO 1 1. Introducción a la Inteligencia Artificial 1.1. Definición Como la combinación de ciencias tales como: Computación Fisiología Filosofía Otras Que se engloban para un fin común que es el de “construir máquinas de tal manera que puedan pensar y razonar como los seres humanos; reduciendo el tiempo en tareas complejas. 1.2. Categorías Sistemas que piensan como humanos Sistemas que actúan como humanos Sistemas que piensan de manera racional Sistemas que actúan racionalmente 1.2.1. Sistemas que piensan como humanos Conocida como: “Las leyes del pensamiento”. Si se empieza por premisas (antecedentes) correctos; logramos pensar correctamente. 1.2.2. Sistemas que piensen racionalmente Agente racional, que se asemejen a los pensamientos de los seres vivos. Teorías del funcionamiento del cerebro humano dado que éste posee y procesa información en paralelo. 1.2.3. Sistemas que actúen racionalmente Que satisfagan a los requerimientos de los humanos. 1.2.4. Sistemas que actúen como humanos “El enfoque de la prueba de Turing Si existe una comunicación satisfactoria humano vs ordenador entonces vamos en buen camino a esta ciencia. El computador deberá ser capaz de: • Procesar en lenguaje natural. (comunicación eficiente) • Autoaprender. • Razonar de manera autónoma. 1.3. Propósito Conseguir emular el comportamiento humano en habilidades concernientes a: Percibir Razonar – Sistemas Expertos – Redes Neuronales – Robótica y Exploración Aprender – Sistemas Expertos – Redes Neuronales – Robótica y Exploración 1.4. Fundamentos de la Inteligencia Artificial Las ciencias que dieron vida a la Inteligencia Artificial son: 1.4.1. Filosofía Si una persona puede razonar, ¿por qué no un ordenador? 1.4.2. Matemáticas Lógica de Predicado y Proposicional. Parte probabilística. 1.4.3. Lingüística Define a la estructura semántica. • El lenguaje debería de estar estructurado. • La semántica del lenguaje. 1.4.4. Psicología Teorías avanzadas sobre como aprende, actúa y razona un humano. 1.4.5. Computación Hardware. Software. Etc. 1.5. Estrategias de la Inteligencia Artificial 1.5.1. Sistemas Expertos Conjunto de “saberes” de distintas personas o especialistas para lograr un fin en común. Saberes: • Conocimientos • Habilidades • Actitudes – Actos 1.5.2. Redes Neuronales Artificiales Emulan el proceso de aprendizaje neuronal biológico con el proces de lograr aprendizaje en base al “entrenamiento”. 1.5.3. Lógica Difusa “Fuzzy Logic” – Lógica Borrosa. Representa también el conocimiento con cierto grado de incertidumbre. 1.5.4. Algoritmos Genéticos Forman parte de las estrategias del campo de investigación de la Inteligencia Artificial. Estudia y evalúa los genes humanos, con el objetivo de encontrar el “gen ganador” (mutación, ruleta, crossover). 1.6. Reseña Histórica 1.6.1. 1.6.2. 1.6.3. Primer Periodo – 1955 al 1965 • Juegos • RNA (Perception, Adaline) • SE • Lisp, Prolog – Matlab Segundo Periodo – 1965 al 1975 • Representacion general del conocimiento. • Redes semánticas (IS-A, AKO (A Kind Of)) • Marcos (). • Guiones. Tercer Periodo – 1975 a la actualidad • RNA´s (Mejoradas, Aplicaciones) - Reconocimiento de voz. - Reconocimiento de imágenes. • Exploraciones (de tipo robótico). • Juegos sofisticados. • Algoritmos genéticos. • Lógica difusa. Todas fueron aplicadas a: • Ingeniería. • Rama militar. • Medicina CAPITULO 2 2. Agentes Inteligentes 2.1. Introducción Caracterizadas generalmente por actuar en un entorno y realizar una serie de acciones en el mismo en base a percepciones, con el objeto de conseguir metas del usuario. 2.2. Concepto Se llama Agente Inteligente a todo aquello que pueda percibir de su ambiente mediante sus “sensores” y que pueda actuar en el ambiente mediante sus “efectores” 2.2.1. Inteligencia • Habilidad de Aprender. • Capacidad de resolver problemas. • Habilidad de adaptarse. • Capacidad de captar y procesar “conocimiento”. 2.2.2. Conocimiento • Información adquirida y transformada. • Valores. • Saber hacer. 2.2.3. Agentes Inteligentes Autónomos Satisfacen a los requerimientos de los usuarios, y siguen “interactuando” con otros agentes o entidades. 2.3. Propiedades de los Agentes Inteligentes 2.3.1. Continuidad Temporal Siguen funcionando y/o ejecutando tareas. 2.3.2. Racionalidad Hacer lo correcto. 2.3.3. Personalidad Actuar con otros agentes. 2.3.4. Adaptabilidad 2.4. Generaciones de los Agentes Inteligentes 2.4.1. Primera Generación Comparación de precios. 2.4.2. Segunda Generación Comparación de precios y tipos. 2.4.3. Tercera Generación “Actual”. Se pretende desarrollar todo el “proceso” de comparación, compra, precio, detalle, etc. Autonomía completa de los Agentes Inteligentes en la “Navegación de la red”. 2.5. Clasificación de los Agentes Inteligentes Están clasificados: 2.5.1. Movilidad Pueden ser: • Estáticos • Dinámicos 2.5.2. Deliberativos Consiguen un razonamiento simbólico y consiguen también determinar: • Planeaciones • Negociaciones Ejemplo: Cuando un navegador me ofrece un hotel con el que estoy de acuerdo con la cama pero no con el transporte, entonces negocia con otros transportes en la web. 2.5.3. Reactivos Se comportan bajo un concepto estímulo/reacción. Buscan solo lo que se les pide. No provocan negociación. 2.5.4. Cooperan, Aprendizaje, Autónomos C A Agente deliberativo Agente de interfaz Autónomo AI Ideal Agente Colaborativo 2.6. Estructura de un Agente Inteligente Agente = Programa de Agente + Arquitectura 2.6.1. Programa de Agente Función que procesa la transformación de una secuencia de percepciones. 2.6.2. Arquitectura ݒ݅ݐ݅ݏݏ݅ܦൠ ݊݁ ݏ݁݊݅ܿܿܽ ݏ݈ܽ ܽݐݑ݆ܿ݁݁ ݁ݑݍ ݏ݁݊݅ܿ݁ܿݎ݁ ݏ݈ܽ ܽ ݁ݏܾܽ ݎ݀ܽݐݑ݉ܥ Para poder “diseñar y desarrollar” un programa de agente, se deben considerar los siguientes componentes: P = Percepciones capturadas por los “sensores”. A = Acciones en respuesta a las percepciones “efectores”. M = Meta a lograr, máximo rendimiento. A = Ambiente Ejemplo.- Marcapaso Inteligente P • Pulso. • Signos QRS. • Segmentos T, P. A • Reportar falla del latido, pulso, frecuencia cardiaca. M • Evitar la muerte. A • • • Corazón Paciente Hospital Ejemplo.- Automóvil detector de personas ebrias P • Sensores olfativos en el cabezal del piloto. A • Inhabilita el motor de arranque. M • Evitar accidentes de tránsito. A • Automóvil. 2.7. Ejemplos de Agentes Inteligentes Simples 2.7.1. Agente Robótico • Sensores – Cámaras infrarrojas • Efectores – Motores, servomotores 2.7.2. Agente de Software • Sensores + Efectores = Combinados por las instrucciones codificadas. 2.7.3. Agentes Aplicativos 2.7.3.1. WARREN Ámbito Financiero. Tienen la capacidad de hacer un reporte financiero detallado. 2.7.3.2. AHOY “Universidad de Washington”, detecta a personas particulares y reporta un listado filtrado de posibles candidatos. 2.7.3.3. SMART NEWREADER Anuncia noticias de interés al lector. 2.7.3.4. Recomendación de Cartelera Cines, eventos de interés. TV. 2.7.3.5. SHOPBOT “Prototipo” de compra de productos. Version ampliada -- E-Commerce. B2B C2C B2C CAPITULO 3 3. Resolución de Problemas Mediante Búsqueda 3.1. Introducción General El Agente Inteligente resuelva problemas optimizando tiempo, recorrido, mediante medios o herramientas legales para su ejecución. 3.2. Técnicas a) b) c) d) Describir el estado actual del “ambiente”. Describir el punto de partida. (NODO RAIZ) Describir el objetivo del problema a resolver. (NODO META) Describir los medios permisibles que generen una transición o transformación de estados. (OPERADORES) Ejemplo: 2 3 4 1 5 8 6 7 1 1 2 3 8 4 7 6 5 2 Descripción a) El ambiente está reflejado en un tablero de 3 x 3 casillas con 8 dígitos en las casillas y una casilla en “blanco”. b) Nodo Raíz → Figura 1 c) Nodo Meta → Figura 2 d) D1 Desplazar o intercambiar la “casilla en blanco” a la derecha. D2 Desplazar o intercambiar la “casilla en blanco” a la izquierda. D3 Desplazar o intercambiar la “casilla en blanco” hacia abajo. D4 Desplazar o intercambiar la “casilla en blanco” hacia arriba. Estos operadores son la “Secuencia de Acciones”, ésta secuencia debe ser respetada en su orden. → → → → 3.3. Espacio de Estados Indicar el “conjunto” total de los estados que se han generado al aplicar los operadores (válidos), siguiendo secuencialmente todos los operadores. Ejemplo: El mundo de los bloques. A B A B C C Nodo Raiz 1) A B Nodo Meta C B A C 3) A B C 4) C A B 2) …. 3.4. Estrategias de Búsqueda 3.4.1. Búsqueda a Ciegas (Sin información) Explora los nodos de un árbol, sin previa información del mejor recorrido, exceptuando “el nodo raíz y el nodo meta” Tenemos los siguientes algoritmos de búsqueda a ciegas: 3.4.1.1. BPA (Breath First Search) Este algoritmo sugiere una búsqueda de recorrido de IZQDER, bajo una estructura tipo cola (FIFO). La exploración debe realizarse por niveles; respetando que primero se explore el nivel “i” antes de explorar o analizar el nivel “i+1”. Características del BPA • Completo – Recorre todos los nodos hasta llegar a la solución. • Óptimo – Siempre halla la solución. Estructura Para la solución, se presentan 2 tipos de listas. open [[ <= ABIERTA := Los nodos generados, pero no expandidos. closed [[ <= CERRADA := Los nodos expandidos y computados Ejemplo: Buscar el camino recorrido del siguiente árbol: Grafico 1.1 del Cuaderno. ABIERTA A DFG FGHJ GHJ CE HJCE CERRADA Ø A D Nodos Expandidos F G B ÉXITO Camino recorrido: A, D, F, G, B Ejemplo: Transformar el siguiente grafo cíclico a una estructura acíclica, luego aplicar el algoritmo por anchuraamplitud y encontrar el camino recorrido. Grafico 1.2 del Cuaderno ABIERTA A BGF GFCG CERRADA Ø Nodos Expandidos B G Camino recorrido: A, B, G 3.4.1.2. Algoritmo por búsqueda en profundidad Explorar el primer nodo raíz y luego solo explorar la primera rama de la izquierda. Solo retorna a un nodo inmediato inferior si este produce un “callejón sin salida”. Su estructura es: Cuaderno 1.3, 1.4 La estructura aplicada responde a una lista tipo LIFO Se tienen 2 listas: ABIERTA:= Componen los nodos generados. CERRADA:=Componen los nodos explorados (expandidos, computados.) Cuaderno 1.5 ABIERTA A DFG HJFG BJFG JFG CERRADA Ø A A, D A, D, H A, D, H, B 3.4.1.3. Costo Uniforme Varia a la búsqueda mediante el algoritmo de amplitud solamente por los “costes asociados” en cada camino. Característica Principal Todos los costes deberán ser “positivos”, de otra manera el algoritmo no es adecuado para la búsqueda de resolución. Su análisis deberá satisfacer lo siguiente: ݃(௦௨௦) ≥ ݃() Parámetros de Fiabilidad a) Completo: Si existe una solución de la estructura de análisis, este algoritmo encontrará. b) Complejidad Temporal: Indica el tiempo qu se requiere para hallar la solución. c) Complejidad Espacial: Indica “cuanta” memoria requiere para hallar la solución. d) Optima: Halla la solución con el menor costo (en caso que exista más de una solución (Nodo Meta)). Ejemplo Hallar la solución de menor costo de la siguiente estructura, e indicar el camino reorrido. Cuaderno 1.6 3.4.1.4. Búsqueda Bidireccional Se trata de explorar la estructura (árbol, grafo) mediante dos aspectos: • Del nodo inicial al nodo meta. • Del nodo meta al nodo inicial. Desarrollo que deberá realizarse simultáneamente, hasta encontrar un “nodo intermedio común”. Características Al menos una de las búsquedas, desde el (nodo inicial al nodo meta) ó (del nodo meta al nodo inicial) deberá cumplir con la búsqueda por amplitud Estructura Cuaderno 1.7 Ejemplo Realizar la búsqueda mediante el algoritmo de búsqueda bidireccional. Cuaderno 1.8 Cuando se trabaja con árboles o grafos dirigidos no es necesaria la transformación. 3.4.2. Búsqueda Heurística Es un desarrollo de búsqueda de solución de “estimación”, para la búsqueda cuenta con una información adicional sea esta (maximizar (∞), o minimizar (0, -∞)) de acuerdo al problema a resolver. La información adicional se la conoce como: ݂௩ = ݂݅ܿ݊ݑó݊ ݀݁ ݁݅ܿܽܿݑ݈ܽݒó݊ ݎݑ݁ܪíܽܿ݅ݐݏ 3.4.2.1. Heurísticas Comunes H1 = Las distancias de “Manhattan” Taxi → Avenidas H2 = Fichas mal colocadas respecto al estado meta. → Ejemplo: 2 3 4 1 5 6 8 7 Ei 1 2 3 8 4 7 6 5 Em Secuencia de operadores: → ← ↑ ↓ Entonces tenemos que partiendo del nodo inicial: 2 3 4 1 5 6 8 7 Ei Tenemos: → 2 3 4 1 5 6 8 7 Ei ℎ1 = 1 2 3 4 5 6 7 8 = 1 + 1 + 1 + 1 + 2 + 1 + 2 + 2 = 11 ← 2 3 1 6 8 Ei ↑ 2 1 3 6 8 Ei 4 5 7 4 5 7 ↓ 2 3 4 1 8 5 6 7 Ei ℎ1 = 1 2 3 4 5 6 7 8 ℎ1 = 9 Expandimos el nodo con el menor recorrido, supones que es el último. Si utilizando la misma heurística, este nodo tiene a h1 como 5, 8, 5, entonces prevalece el de la izquierda. NOTA: El orden de búsqueda no tiene restricción ya que la “fev (función de evaluación)” guía el recorrido. Si al aplicar los operadores con la misma heurística en un mismo nivel hay 2 valores fev iguales, el nodo a expandir será siempre el de la izquierda. 3.4.2.2. Algoritmos de Búsqueda Heurística – El primero el mejor Se genera una “Cola de prioridades”, explorando siempre el nodo más prometedor para llegar a la meta, por tanto el orden de expansión no está restringida por una dirección, solo esta dirigido en base a la fev (mas, min) – (+∞, -∞) Cuaderno Camino recorrido: A, B, D, H, L, M 3.4.2.3. Algoritmo de Búsqueda Heurística A* Introducción Característica: Es la combinación del algoritmo de búsqueda de “primero el mejor” y “costo uniforme”. ݂௩() = ݃() + ℎ() ݂௩() = El costo de estimación de llegar de un “nodo inicial” a un “nodo meta” mínimo. ݃() = El costo • Aula • Distancia de menor coste (real) • Camino desde un nodo “n” ℎ() = El costo de llegar desde un nodo “n” al nodo “meta” (h=heurística) → Ejemplo: Desarrollar la siguiente TAB mediante A*. Ejemplo: Resolver el problema del mundo de los bloques mediante el algoritmo de búsqueda “A”. Suponga que cada cambio de recorrido tiene un costo 1. B C A A B C Estado Inicial Estado Meta La heurística empleada: ∗ ℎ() = #݀݁ ܾ݈ݏ݈݀ܽܿܿݏ݁݀ ݏ݁ݑݍ Condiciones: 1) 1 solo bloque pueda moverse en un tiempo dado. 2) El bloque podrá estar en la tabla, o encima de otro bloque. 3) El bloque puede moverse “solo” si está libre “encima” B C A ∗ ݂௩ =0+2=2 C B A ∗ ݂௩ =1+3=4 1 es el Costo añadido a la heurística C B A ∗ ݂௩ = 2 + 3 = 5 ∗ ݂௩ B A C =1+3=4 C B A ∗ =2+3=5 ݂௩ C B A ܺ = ݎ݅ݎ݁ݐ݊ܣ ݀ܽݐݏܧ C B A ܺ = ݎ݅ݎ݁ݐ݊ܣ ݀ܽݐݏܧ A B C ∗ ݂௩ = 4 + 0 = 4 B A C ∗ ݂௩ =1+3=4 B B A C A C ∗ ∗ ݂௩ = 3 + 2 = 5 ݂௩ =3+1=4 A A B C B C ∗ ∗ ݂௩ = 3 + 2 = 5 ݂௩ = 3 + 1 = 4 B A C ܺ = ݎ݅ݎ݁ݐ݊ܣ ݀ܽݐݏܧ 3.5. Estrategias entre adversarios 3.5.1. Algoritmo Minimax – Algoritmo Poda α β Se basa en la presencia de dos jugadores. • • MAX: Trata de maximizar su ganancia MIN: Intenta minimizar la ganancia de MAX Se desarrolla por niveles donde cada nivel corresponde a un jugador sea (MAX, MIN), donde se desarrolla de manera alternada. El nodo inicio, se determina mediante las “reglas de juego” ¿Quién empieza? ¿Cuál el tiempo de juego? ¿Cuál el límite de profundidad? Ejemplo: 4 MAX 1 3.5.2. MIN 4 8 3 1 4 6 5 fev fev fev fev fev fev MAX Poda α – β Características: El juego siempre se inicia con los valores: α = -∞ β=∞ En un nivel MAX el valor de α nunca disminuye. En un nivel MIN el valor de α = Hereda del padre. En un nivel MIN el valor β = Hereda del padre. En un nivel MAX el valor β trata de minimiza su valor respecto a ∞ Poda: Evita el estudio o análisis de: • • Nodos Ramas Siempre y cuando α≥β Si el nodo Raíz = MAX, entonces, (el valor de α cambia, y β se mantiene) Si el nodo Raíz = MIN, entonces, (α =-∞ (mantiene su valor) y β cambia) NOTA: El procedimiento siempre se realiza de forma “ASCENDENTE”. NOTA 2: No siempre es necesario que se presente como estructura final un árbol (equilibrado) en el cual los nodos finales representan los nodos “terminales”; asociados cada uno de ellos a una utilidad (fev). Ejemplo: MIN MAX MIN -1 3 9 MAX 4-5=-1 #de filas, columnas o diagonales libres para X - # de filas, columnas y diagonales libres para O; para ganar el juego (En un 3 en raya)