ITD Inteligencia Artificial
Unidad 1 Fundamento Fundamento s de d e la Inteligencia Artificial (I.A)
Contenido Índice de Figuras ................................................................................................................................. 2 Unidad 1. Fundamentos de la Inteligencia Artificial ........................................................................... 3 1.1. Historia de la IA ........................................................................................................................ 3 1.2. Conceptos y técnicas (Estado del arte) .................................................................................... 5 1.3. Desarrollos actuales. ................................................................................................................ 6 1.3.1. Procesamiento de Lenguaje Natural (PLN). ...................................................................... 6 1.3.2. Reconocimiento de patrones. ........................................................................................... 7 1.3.3. Robótica. ........................................................................................................................... 8 1.3.4. Sistemas Expertos. ............................................................................................................ 8 1.3.5. Lógica Difusa (Fuzzy logic). ................................................................................................ 9 1.4. Modelos de agente inteligente. ............................................................................................... 9 Agentes reflejos simples ........................................................................................................... 12 Agentes reflejos basados en modelos....................................................................................... 13 Agentes basados en objetivos ................................................................................................... 13 Agentes basados en utilidad ..................................................................................................... 14 Agentes que aprenden .............................................................................................................. 15 1.5. Heurística. .............................................................................................................................. 16
Índice de Figuras Figu Figura ra 1. Los Los age agent ntes es inte intera ract ctúa úan n con con el medi medioa oamb mbie ient ntee medi median ante te sens sensor ores es y ac actuad tuador ores es.......... .......... 10 Figura 2. Diagrama esquemático de un agente simple ................................................................... 12 Figura 3. Agente basado en modelos ............................................................................................... 13 Figura 4. Agente basado en objetivos y modelos............................................................................. 14 Figura 5. Agente basado en utilidad y basado en modelos.............................................................. 15 Figura 6. Modelo general para agentes que aprenden .................................................................... 16
Inteligencia Artificial – Unidad 1
Unidad 1. Fundamentos de la Inteligencia Artificial 1.1. Historia de la IA Introducción
En caso de buscar en las antiguas civilizaciones, podríamos encontrar algunas evidencias del interés del hombre por emular por medio de artefactos la inteligencia humana, pero no fue hasta 1941, con el desarrollo de las computadoras electrónicas, que se vislumbró como posible, el hecho de poder crear finalmente, máquinas inteligentes. El término inteligencia artificial fue acuñado en 1956, durante la conferencia de Dartmouth, y desde entonces, la Inteligencia Artificial se ha expandido gracias a las teorías y principios desarrollados por los investigadores. En la época moderna actual, esto es los últimos 20 años, hemos presenciado grandes avances en el campo, pero no hay resultados tan significativos como inicialmente se supuso, y sin embargo, existen una gran variedad de sistemas inteligentes que han impactado de manera significativa diversas áreas de muchos grupos de avances tecnológicos. La era de la computadora
En 1941, un invento revoluciono todos los aspectos relacionados con el almacenamiento y proceso de información. Este invento, desarrollado en paralelo en Estados Unidos y Alemania, fue la computadora electrónica. Después de su aparición, los avances significativos se fechan en 1949, cuando ya fue posible almacenar programas en las computadoras, haciendo más fácil en trabajo de introducir un programa para su ejecución, y los avances en la teoría computacional condujeron los conocimientos hacia lo que hoy conocemos como ciencias computacionales y eventualmente hacia la Inteligencia Artificial. Entonces, con el invento de un medio electrónico de almacenamiento y procesamiento de datos, apareció un medio que hacía posible la Inteligencia Artificial. Inicios de la IA.
Aunque las computadoras proveyeron la tecnología necesaria para la IA, no fue hasta la década de los 50’s que se hizo evidente la relación entre inteligencia humana y maquinas. Norbert Wiener fue uno de los primeros investigadores en hacer observaciones del principio de la teoría de retroalimentación. El ejemplo más familiar de esta teoría es el termostato: este aparato controla la temperatura de su entorno tomando en cuenta la temperatura real de ese contexto, comparándola con la temperatura deseada, y respondiendo con un incremento o decremento en el mecanismo de control del calentador o enfriador. Lo que resultó importante en estas investigaciones acerca de los ciclos de retroalimentación es que Wiener teorizaba que todos los comportamientos inteligentes son el resultado de mecanismos de retroalimentación. Mecanismos Mecanismos que posiblemente podrían ser simulados en una máquina. Este descubrimiento influyó notablemente los desarrollos iniciales de la IA.
Inteligencia Artificial – Unidad 1
En 1955, Newel y Simon, desarrollaron “el teorista de la lógica” (The Logic Theorist), considerado por muchos el primer programa de IA. Este programa, representaba cada problema como un modelo de árbol, intentando resolverlo seleccionando la rama que deba mayores esperanzas para llegará una conclusión correcta. El impacto de este programa dentro de la opinión pública y de la investigación, representó un avance crucial en el desarrollo formal del campo de la IA. En 1956 John McCarthy, considerado el padre de la IA, organizó una conferencia donde se expusieron los talentos y habilidades de otros investigadores interesados en los temas de inteligencia de las máquinas, durante un mes se generó una intensa lluvia de ideas, finalmente se efectuó en Vermont : “The DArtmouth summer research Project on artificial intelligence”., a partir de entonces y gracias a McCarthy, este campo se conoce como Inteligencia Artificial. Expansión del conocimiento c onocimiento
En los siguientes siete años después de la conferencia, la IA inició su despegue. A pesar de que el campo de acción no se encotraba muy bien delimitado ni especificado, las ideas originales de la conferencia fueron examinadas y expandidas. Se formaron centros de investigación de IA en Carnegie Mellon y MIT, se plantearon nuevos retos: crear sistemas que pudieran resolver problemas eficientemente, limitando la búsqueda de soluciones, y desarrollar sistemas que pudieran aprender por si mismos. En 1957, se probó la primera versión de un nuevo programa “The General Problem Solver”, el solucionador general de problemas, desarrollado también por Newell y Simon. Este programa era una extensión del principio de retroalimentación de Wiener, y era capaz de resolver una gran cantidad de problemas de sentido común. Un par de años después, IBM contrato un equipo de investigación en IA. Herbert Gelemeter pasó tres años trabajando en un programa para resolver teoremas geométricos. Mientras se desarrollaban más programas de IA, McCarthy se ocupaba de desarrollar un parteaguas en la historia de la IA. En 1958, McCArthy anunció su nuevo desarrollo: el lenguaje de programación LISP, el cual se usa hasta hoy. LISP significa procesador de listas, y pronto fue adoptado como el lenguaje preferido por muchos desarrolladores de programas de IA. En 1963, el MIT recibió un premio de 2.2 millones de dólares por parte del gobierno de Estados Unidos para ser usados en investigación de conocimiento asistido por máquinas (inteligencia artificial). Este financiamiento de parte del Departamento de defensa de Estados Unidos, pretendía asegurar el mantenerse delante de la unión soviética en avances tecnológicos. La multitud de programas
En los siguientes años, se desarrollaron una gran cantidad de programas de IA. Los investigadores del MIT, encabezados por Marvin Minsky, demostraron que cundo los programas se confinan a un pequeño espacio de acción (problemas específicos), es posible resolver problemas espaciales y de lógica. En los 70´s aparecieron los sistemas expertos, que predicen la probabilidad de una solución bajo un conjunto de ciertas condiciones. Los sistemas expertos avanzaron rápidamente, se encontraron soluciones para predecir el comportamiento de la bolsa de valores, ayudas de diagnósticos
Inteligencia Artificial – Unidad 1
médicos, y ayudar a los mineros a encontrar vetas de minerales. Todo esto gracias a la capacidad de los sistemas expertos para almacenar reglas y almacenar información relevante de un problema específico. En 1972 aparece el lenguaje PROLOGUE, antecesor del actual Prolog, muy utilizado en IA. En los años 80´s, se presentó una disminución en la demanda de sistemas expertos, pero se tuvo un gran avance en las subárea división computacional y apareció el desarrollo de la lógica difusa (Fuzzy Logic), que hasta hoy es un herramienta muy importante en el desarrollo de sistemas de control, tomando decisiones bajo ciertas condiciones de incerteza. También, las redes neuronales se reconsideraron como técnicas aceptables para desarrollos de IA. Actualmente la IA se encuentra presenta en una gran cantidad de productos de uso cotidiano como: video vigilancia, ayuda en las labores del hogar, cámaras fotográficas y de video, desde los inicios del año 2000, la IA se encuentra presente en nuestra vidas, y seguramente así seguirá siendo, por la gran gr an cantidad de desarrollos en prácticamente todas las áreas de la tecnología.
1.2. Conceptos y técnicas (Estado del arte) Hasta ahora, ninguna combinación máquina-programa a conseguid pasar la prueba de Turing. Pero la caza de la Inteligencia artificial se mueve en diferentes y muy excitantes direcciones, que involucran la creatividad, procesamiento de lenguaje natural, visión, robótica e incluso el campo de las artes, como la música y pintura, considerado como un bastión exclusivo de la humanidad. La prueba diseñada por Alan Turing, consiste en presentar ante un nuez humano a una persona y a la máquina que desea ser probada, el juez establece un dialogo con ambas entidades y al final decide quíen es el humano y quien la máquina, si el juez es incapaz de tomar una decisión o si decide de forma incorrecta, se considera que aquella máquina a pasado la prueba de Turing. Existen competencias y premios ofrecidos para la primera máquina o software que pasen la prueba, pero hasta hoy, nadie ha aprobado. Hay diversas historias en los últimos años acerca de programas y computadoras que se han considerado como ejemplos de Inteligencia Artificial y que en un contexto cerrado demostraros tener un mejor desempeño que un humano. Watson, es un programa diseñado por IBM para jugar Jeoprady!, que consiste en encontrar la pregunta apropiada para la respuesta que ofrece el conductor del juego. Quizá podríamos pensar en primera instancia que cualquiera que tenga acceso a Internet podría ser el triunfador, pero durante la competencia, Watson no se conectó a Internet, y más aun, la interpretación de la pregunta se hace exclusivamente con su software de reconocimiento de lenguaje natural, lo que por cierto es un avance significativo y deslumbrante acerca de cómo un programa puede interpretar un conjunto de frases. Después, debe acceder a su enorme base de datos que
Inteligencia Artificial – Unidad 1
contienen información de los temas más variados posible y la búsqueda de información debe hacerse de manera eficaz en fracciones de segundo. Otro ejemplo de la evolución y estado actual de la IA es el robot Asimo de la compañía Honda. http://asimo.honda.com/ . Asimo es un proyecto de Honda iniciado en 1986, en estos casi 30 años, el robot a evolucionado en todos aspectos, es posible ver como se ha mejorado en el sistema de locomoción, visión, reconocimiento de lenguaje natural y razonamiento. Aunque para los humanos nos parece que estas tareas son sencillas, recordemos como un niño aprende a caminar, y cuantos años necesita para poder comunicarse adecuadamente, uno de los grandes logros de Asimo ha sido el conseguir subir escaleras y correr en círculos. Otra creación de IBM es también un ejemplo de la evolución de la IA. En 1997, Deeper Blue, consiguió derrotar a Gary Kaspárov, campeón mundial de ajedrez. El ajedrez siempre fue una de las atracciones para los investigadores de IA. Existen en el mercado una gran cantidad de programas que permiten desarrollar partidas compitiendo contra el programa y una gran cantidad de ellos no son fáciles de derrotar, pero Deeper Blue ha demostrado que es casi imposible poder ganarle si el oponente es un humano. Quizá alguien se ha preguntado ¿Cómo realiza el enfoque mi cámara fotográfica?, ¿Cómo detecta la sonrisa para realizar la toma?, ¿Cómo mi teléfono móvil reconoce mi voz?, como se utiliza mi iris o huella digital para reconocerme?, ¿Cómo se conducen “solos” algunos trenes como el del aeropuerto de la ciudad de México?, ¿Cómo funciona la aspiradora que limpia mi casa sin asistencia?... y así como estas, existen muchas posibles preguntas cuya respuesta es la misma: por medio de un mecanismo que utiliza una técnica de IA. Actualmente, se realizan en una gran cantidad de universidades y laboratorios privados investigaciones para aplicar las técnicas conocidas y encontrar nuevas para resolver más problemas. Un ejemplo es la competencia Robocup, que se realiza cada año, consiste en ganar un torneo de futbol. Hay varias categorías y las principales áreas de la IA involucradas son: robótica, reconocimiento de patrones, visión artificial, navegación autónoma y razonamiento. http://www.robocup-2015.org/.. http://www.robocup-2015.org/
1.3. Desarrollos actuales. En los últimos años, han aparecido una gran cantidad de aplicaciones en el campo de la IA. Estas, son el producto de la investigación en una o varias áreas de conocimiento relacionadas relacionadas con la IA 1.3.1. Procesamiento de Lenguaje Natural (PLN).
Todas las áreas de la IA tienen sus propias características que las hacen particularmente complejas. En el PLN, podemos identificar algunas que hacen la tarea especialmente difícil de realizar. Podemos comentar alguna como la ambigüedad. Dentro del idioma Español, existen
Inteligencia Artificial – Unidad 1
palabras conocidas como homófonas, esto es que suenan suenan igual pero tienen diferente significado significado (http://www.juegosdepalabras.com/p-hom (http://www.juegosdepalabras.com/p-homofona.htm), ofona.htm), el reto consiste en identificar exactamente a que se refiere la persona que expresa una frase, por ejemplo: la baca es negra y está bien sujeta al coche. Si prescindiéramos de la segunda oración y oyéramos solo la primera, de acuerdo a nuestra experiencia pensaríamos en un animal rumiante, pero cuando se presenta el complemento, sabemos exactamente que se refiere a los dispositivos para cargar bultos arriba de un coche. Todo esto lo aprende un humano con la experiencia y sus vivencias que le hacen tener un cierto grado de conocimiento del mundo, pero ¿Cómo integramos esto en un programa?, un ejemplo de cómo se ha vencido esta dificultad es el programa Watson de IBM del que hablamos en una lectura anterior. El problema del PLN se puede separar en dos grandes áreas, el reconocimiento del lenguaje y la síntesis de voz. Del que acabamos de hablar, es un problema de reconocimiento, y se pueden enumerar varios de este tipo, como la sintaxis, que es importante para formar apropiadamente una frase, esto se puede ver en los traductores automáticos que se encuentran disponibles en Internet (https://translate.google.com.mx/ https://translate.google.com.mx/)) , que cuando pasamos un texto por él, encontramos una traducción que no cumple con los requerimientos para llamarla apropiada. La semántica juega también un papel determinante, por ejemplo: ayer te vi cuando caminabas por el parque con un telescopio…. ¿podemos ver los diferentes significados para esta frase? ¿Cómo saber cuál es el correcto? Podemos encontrar algunas aplicaciones que utilizan técnicas de IA en los teléfonos móviles, aquella que podemos utilizar para indicar al dispositivo que deseamos hacer una llamada, o una más complicada, la que utilizamos para saber cuál es el título, autores e intérpretes de una canción escuchando una parte de ella!. El otro problema de síntesis de voz, se refiere a reproducir de manera apropiada un conjunto de voces. Existen aplicaciones que ayudan a los débiles visuales a “leer” un texto. Este texto se pasa por un programa que toma las palabras escritas y emite sonidos como si estuviera leyéndolas. Claro, estos programas no pueden, aun, dar una cierta entonación a lo leído, leerían de igual manera un poema que un manual técnico. Dentro de la IA, existen diversas técnicas para resolver los problemas presentados y claro día con día hay mejores herramientas disponibles en el mercado gracias a la investigación en IA.
1.3.2. Reconocimiento de patrones.
Este campo tiene múltiples aplicaciones como el detectar el tipo de nubes que hay en el cielo y hacer un pronóstico del tiempo, detectar la carga de un camión trocero y poder saber cuántos metros cúbicos componen la carga y también decidir cuáles son los cortes recomendados para aprovechar de manera óptima los trozos. Quizá las aplicaciones que encontramos como cotidianas sean las relacionadas con la biométrica. Hay dos campos de acciones principales, el registro de personal y el relacionado con seguridad. En los últimos años, se pueden ver en empresas y organizaciones que se ha reemplazado el registro manual del personal por el registro automatizado, reconociendo a las personas por medio de huella digital, que debido a su característica de ser única para cada persona permite identificarla.
Inteligencia Artificial – Unidad 1
Existen diversas técnicas para hacer este tipo de reconocimiento, todos ellas desarrolladas desde el enfoque de reconocimiento de patrones. Las aplicaciones enfocadas a seguridad son múltiples también. Con la huella digital podemos acceder al uso de dispositivos electrónicos como teléfonos o cámaras digitales, o bien es posible utilizar el iris o la voz para acceder a lugares restringidos. Esto se presentaba en las películas de hace 20-30 años como ciencia ficción, pero ahora son parte de la realidad.
1.3.3. Robótica.
Esta área combina diversos campos de la IA. Ya hemos hablado antes del robot Asimo de honda y de la competencia Robocup. También se han diseñado robots para actuar bajo el agua o que puedan comportarse como dependientes en una tienda. Las aplicaciones de la robótica suelen ser para resolver problemas que a los humanos nos desagradan por difíciles o aburridas, como las tareas desarrolladas por los robots industriales y sobre todo en la industria automotriz. Pero también encontramos robots que son muy útiles en tareas de rescate en desastres naturales, pueden llegar a lugares que son imposibles para personas o sus ayudantes animales. Dentro de la seguridad, hay grandes aplicaciones, aviones no tripulados y robots navegantes para resguardar una propiedad delimitada. Un reto grande que se ha venido resolviendo es la navegación autónoma. Ahora ya hay en el mercado productos que son resultado de investigaciones en campos muy concretos, como el estacionarse automáticamente. Durante años, se realizaron competencias internacionales con prototipos de vehículos y software para encontrar las técnicas más adecuadas que permitieran a un vehículo estacionar sin la intervención de los humanos, lo que vemos en los nuevos vehículos, son el resultado de aquellas investigaciones. Hay una competencia de navegación autónoma que es la más importante en el mundo por los premios y la calidad de los equipos que compiten es la Darpa Robotics Challenge (http://www.theroboticschallenge.org/ http://www.theroboticschallenge.org/)) . Ahí se compite con vehículos reales que navegan de manera autónoma para llegar a un destino especificado por medio de un mapa. Esto conducirá sin duda a los vehículos que navegarán autónomamente por las ciudades y sin duda se disminuirán los accidentes.
1.3.4. Sistemas Expertos.
Este tipo de sistemas se conoce con este nombre porque tratan de “capturar” la experiencia de un experto humano en un campo específico. Generalmente, estos sistemas utilizan una representación de conocimiento por medio de reglas, que son definidas por los expertos. Uno de los primeros desarrollos en este campo fue el sistema MYCIN (http://sites.google.com/site/net202pnu/mycin http://sites.google.com/site/net202pnu/mycin)) , que hacia un diagnóstico médico después de analizar los síntomas de un paciente.
Inteligencia Artificial – Unidad 1
La parte más importante de un sistema experto es su base de conocimientos y su capacidad para adquirir nuevos conocimientos. Los sistemas expertos son especialmente importantes en organizaciones que requieren conocimientos muy especializados sobre el dominio de algún problema específico, especialmente si este conocimiento no puede ser transferido de manera fácil y práctica. Ya mencionamos a MYCIN en el campo de la medicina, y así también existen ejemplos de aplicación en datos geofísicos para encontrar depósitos de petróleo o otros minerales (PROSPECTOR). Se utilizan también en análisis de inversiones, telecomunicaciones, son esenciales en robótica, procesamiento de lenguaje natural, prueba de teoremas, recuperación inteligente desde bases de datos, monitoreo y control de tráfico aéreo.
1.3.5. Lógica Difusa (Fuzzy logic).
A pesar de que este artículo es de 1996 (www.stosberg.com/Tech/fuzzy/role_in_ai.html), sigue siendo vigente el concepto de la lógica difusa es quizá el avance más prometedor en IA. Las aplicaciones de la lógica difusa son múltiples y muy variados. Esta apareció al final de los años 60’s y fue menospreciada por hacer una propuesta cotrapuesta a lógica clásica, que se mantuvo por más de 2 milenios como la única existente. Después de varios años de estar fuera de cualquier consideración se encontró que en realidad representaba de muy buena manera a la manera en que los humanos razonamos, dejando de lado las decisiones tajantes de “si o no” por “más o menos”. Por ejemplo, en general no podemos clasificar a las personas por su estatura en solo dos conjuntos: altos y bajos, como lo hace la lógica clásica, en todo caso, lo hacen diciendo algo como “es un poco alto” o bien “no es tan bajo”. Incluso, una misma persona puede ser clasificada clasificada como 30 % alta y 60 % poco alta. Esta nueva visión ha permitido desarrollar sistemas de control que incluso mejoran el desempeño humano en ciertas tareas, como la conducción de un sistema de trenes o vagones del metro en Sendai Japón (www.calvin.edu/~pribeiro/othrlnks/Fuzzy/apps.htm www.calvin.edu/~pribeiro/othrlnks/Fuzzy/apps.htm)). Dentro de las cámaras digitales de foto o video hay una gran cantidad de aplicaciones de lógica difusa, en el disparo automático, enfoque y mejora de la imagen.
1.4. Modelos de agente inteligente. Desde el punto de vista de IA, un agente puede ser cualquier cosa (en nuestro caso, un robot, una persona o un programa) que percibe su entorno a través de sensores y actúa sobre el medio ambiente por medio de sus actuadores. Ya revisaremos más adelante en detalle algunos conceptos, por ahora consideraremos que los agentes pueden percibir sus propias acciones, pero no pueden predecir los efectos de estas acciones.
Inteligencia Artificial – Unidad 1
Figura 1. Los agentes interactúan con el medioambiente mediante sensores y actuadores
Medio ambiente, percepción, acción, sensores, agente, actuadores, imagen es tomadas del libro de Russell y norvig. Es posible encontrar a nuestro alrededor diferentes tipos de agentes, como pueden ser los agentes humanos, en lo que identificamos sus sensores:ojos, oídos, y otros órganos que ayudan a percibir el medio ambiente. Como actuadores tenemos las piernas, brazos, boca y otras partes del cuerpo que pueden modificar el entorno o bien la posición del agente. Para un robot, sus sensores pueden ser cámaras o detectores de movimiento, incluso algún dispositivo GPS y como actuadores generalmente hay motores. Existen también los agentes de software, que son de los que nos ocuparemos principalmente en este curso, que poseen como sensores un teclado, contenido de archivos, y pueden participar como actuadores los medios donde se muestran las salidas del software o los paquetes que envía en una red. Es claro que estamos interesados en agentes que se comporten de manera favorable para que realicen las actividades que esperamos de ellos, por esto, hablaremos de los agentes racionales. Si un agente es racional, debe esforzarse por realizar siempre “la acción correcta”, basado en las percepciones que realiza y las acciones que puede realizar. La acción correcta será la que permita al agente tener un mayor existo en su misión. Para seleccionarla, debe existir una forma de medir el desempeño del agente, por ejemplo en las aspiradoras que encontramos en el mercado, podemos medir su desempeño de acuerdo a la cantidad de basura que dejan en el suelo, la cantidad de tiempo que tardan en limpiar un cuarto, la cantidad de ruido que hacen, la cantidad de energía eléctrica consumida, etc. Como regla general, es preferible diseñar medidas de desempeño de acuerdo a lo que realmente deseamos en el medio ambiente, en lugar de nuestras consideraciones acerca de cómo creemos que un agente debe comportarse, entonces, para la aspiradora, será muy conveniente considerar una medida de desempeño de acuerdo a que tan limpio deja el piso. Cuando se diseña un agente, se espera de él que se comporte de manera racional, entendiendo esto como la dependencia de cuatro factores: • • • •
La medida del desempeño que define el criterio para el éxito. El conocimiento previo que tenga el agente acerca del entorno Las acciones que el agente puede ejecutar Las percepciones en tiempo real del agente
Inteligencia Artificial – Unidad 1
Entonces, un agente racional será el que para cada posible secuencia de percepciones, selecciona una acción que se espera maximice su medida de desempeño, dada la evidencia provista por la secuencia de percepciones y el conocimiento (cualquiera que sea y sin importar como está construido) que el agente tiene. La racionalidad no es lo mismo que la omnisapiencia, nuestros agentes no tienen un conocimiento infinito, no lo saben todo. La racionalidad implica maximizar el desempeño esperado, mientras que la perfección maximiza el desempeño en la realidad, y claro, como en los humanos, esperar la perfección es prácticamente imposible. Es importante decir que un agente será autónomo si su comportamiento está determinado por su propia experiencia, aprendiendo de sus acciones y con las capacidades de adaptarse y aprender. Para especificar las tareas a realizar dentro del entorno de trabajo de un agente, seguimos un ciclo que llamaremos PEAS por sus siglas en ingles(Performance measure, Environment, Actuators, Sensors), medida de desempeño, entorno, actuadores y sensores. Al diseñar un agente, el primer paso debe ser el especificar la tareas a realizar (PEAS), tan detalladamente y completas como sea posible. Por ejemplo, para un agente conductor de un taxi: Las medidas de desempeño pueden ser: seguridad del pasajero y conductor, rapidez del servicio, no cometer infracciones, confort durante el viaje, maximizar las utilidades. El entorno estará definido por las calles de transito, otros agentes dentro del trafico, peatones, clientes. Los actuadores son el volante, acelerador, freno, señalizadores y bocina. Los sensores: cámaras, sonares, velocímetros, GPS, odómetro. Sensores del motor, teclado. Otro ejemplo de agentes, un sistema para diagnóstico médico: Medida de desempeño: salud del paciente, minimización de costos, legalidad en tratamiento. Entorno: paciente, hospital, consultorio, personal del hospital. Actuadores: pantalla de salida (preguntas, pruebas, diagnósticos, tratamientos). Sensores: teclado t eclado (ingresar síntomas, respuestas del paciente). Ejemplo de agente tutor de enseñanza de idioma inglés: Medida de desempeño: maximizar las calificaciones obtenidas por el estudiante en una prueba. Entorno: conjunto de estudiantes. Actuadores: Pantalla de salida (ejercicios, sugerencias, correcciones), bocinas. Sensores: teclado, micrófono. Un agente se especifica completamente por medio de una función, que mapea la secuencia de percepciones en acciones. Esta función debe cumplir con el concepto de racionalidad que expusimos antes, entonces, debemos encontrar la forma de implementar la función que describe el comportamiento del agente y hacerlo de manera concisa, esto es a fin de cuentas diseñar un programa de agente. El agente es la suma de un programa y la arquitectura donde se ejecutará ese programa. La arquitectura es algún dispositivo computacional con sensores físicos y actuadores.
Inteligencia Artificial – Unidad 1
El programa que implementa al agente realiza las percepciones por medio de los sensores y regresa un conjunto de acciones que serán ejecutadas por los actuadores. Puede ser que el agente “recuerde” toda la secuencia de percepciones, aunque solo las entradas son únicamente las percepciones actuales, con ellas decidirá qué acciones realizar. De manera muy simple e instintivamente, podríamos visualizar un agente como una tabla que será indexada por medio del conjunto de percepciones realizadas en un momento dado, en la tabla se especificarán el conjunto de acciones a realizar. Es claro que esta tabla tendría que ser demasiado grande y sería necesaria una enorme cantidad de espacio, además, el agente no tendría autonomía. En lugar de construir una tabla gigantesca, es mejor considerar diversos tipos de agente que disminuyan el código necesario para implementarlo. En seguida describiremos 4 diferentes tipos de agente.
Agentes reflejos simples simples
Este tipo de agentes selecciona la acción con base únicamente en las percepciones actuales, sin tomar en cuenta el resto de la historia de percepciones. Generalmente se implementan por medio de reglas condición-acción. Por ejemplo para un agente de conducción de un auto: Si el-carro-de-enfrente-frena Entonces frenar-de-inmediato frenar-de-inmediato
Figura 2. Diagrama esquemático esquemático de un agente simple
Estas imágenes se tomaron del libro de Russel y Norvig (Agente, sensores, ¿Cómo es el mundo ahora?, reglas condición-acción, ¿Qué acciones debo realizar ahora?, actuadores, entorno).
Inteligencia Artificial – Unidad 1
Los agentes reflejos son muy simples y fáciles de construir, pero tienen un grado de inteligencia muy limitado. Estos agentes funcionarán únicamente si es posible tomar la decisión correcta con base a la percepción actual, cuando el entorno es totalmente observable.
Agentes reflejos basados basados en modelos modelos
Este tipo de agentes lleva un registro de la parte del mundo que no puede ver ahora. El agente debe mantener algún tipo de estados internos que dependa de la historia de las percepciones y refleje al menos algunos de los aspectos que no se observan en el estado actual. El actualizar el estado interno conforme pasa el tiempo requiere de dos tipos de conocimiento a ser codificados en el programa del agente: información acerca de cómo evoluciona el mundo independientemente del agente e ir guardando información acerca de cómo afectan al mundo las propias acciones del agente.
Figura 3. Agente basado en modelos
(Estados, cómo evoluciona el mundo, como afectan al mundo mis acciones, sensores, ¿Cómo es mundo ahora?, reglas r eglas condición-acción, ¿Qué acciones debo realizar ahora?, entorno).
Agentes basados en objetivos
El conocimiento acerca del estado actual del entorno no siempre es suficiente para decidir qué hacer, por ejemplo si un agente conductor de automóvil llega a una bifurcación en el camino. El agente necesita algún tipo de información sobre el objetivo a conseguir, que describa las situaciones deseables. El programa del agente puede combinar esto con información acerca del resultado de posibles acciones, de tal manera que se seleccione la acción que lleve al agente cerca del objetivo, usualmente se requiere de un proceso de búsqueda y planeación, que hace la implementación más compleja.
Inteligencia Artificial – Unidad 1
Figura 4. Agente basado en objetivos y modelos
(Estado, cómo evoluciona el mundo, que hacen mis acciones, el objetivo es, sensores, como es el mundo ahora, ¿Qué pasaría si hago la acción A?, ¿Qué acción debo realizar?, entorno) Con respecto a los agentes reflejos, aunque los agentes basados en objetivos parecen menos eficientes, son más flexibles puesto que el conocimiento en el que se basan sus decisiones es representado explícitamente y puede ser modificado. Por otro lado, para los agentes reflejos, podría ser necesario reescribir muchas reglas condición-acción. El comportamiento de los agentes basados en objetivos puede ser cambiado fácilmente. Las reglas de los agentes reflejos deben ser cambiadas para representar una nueva situación.
Agentes basados en utilidad
En realidad, el objetivo por sí mismo no es necesariamente suficiente para generar un comportamiento de alta calidad en ciertos entornos. Únicamente proveen una distinción binaria entre estados deseables y estados indeseables. Una medida de desempeño más general podría permitir una comparación entre diferentes estados del mundo de acuerdo a exactamente saber que tan feliz hace al agente el llegar a cierto estado, donde la felicidad es directamente proporcional a la utilidad, o sea la cualidad de ser útil. Una función de utilidad mapea un estado en un valor numérico real, que describe el grado de asociación entre la felicidad y la utilidad.
Inteligencia Artificial – Unidad 1
Figura 5. Agente basado en utilidad y basado en modelos
Estado, cómo evoluciona el mundo, que efecto tienen mis acciones, utilidad, sensores, cómo es el mundo ahora, como cambiaria el mundo si realizo la acción A, que tan feliz seré en tal estado, que acción debo tomar, actuadores, entorno).
Agentes que aprenden
Un agente que aprende se puede dividir en cuatro componentes. El elemento de aprendizaje se responsabiliza de hacer mejoras y el elemento de actuación se responsabiliza de la selección de acciones externas. El elemento de actuación es el que anteriormente se había considerado como el agente completo: recibe estímulos y determina las acciones a realizar. El elemento de aprendizaje se realimenta con las críticas sobre la actuación del agente y determina como se debe modificar el elemento de actuación para proporcionar mejores resultados en el futuro. La crítica indica al elemento de aprendizaje que tal lo está haciendo el agente con respecto a un nivel de actuación fijo. Las críticas son necesarias porque las percepciones por sí mismas no prevén una indicación del éxito del agente. El último componente del agente es el generador de problemas. Es responsable de sugerir acciones que lo guiaran hacia experiencias nuevas e informativas.
Inteligencia Artificial – Unidad 1
Figura 6. Modelo general para agentes que aprenden
1.5. Heurística. De acuerdo al diccionario de la real academia española: Heurístico, ca.
(Del griego εὑρίσκειν, hallar, inventar, y tico)
1. 2. 3. 4.
adj. Perteneciente o relativo a la heurística. f. Técnica de la indagación y del descubrimiento. f. Busca o investigación de documentos o fuentes históricas. f. En algunas ciencias, manera de buscar la solución de un problema mediante métodos no rigurosos, como por tanteo, reglas r eglas empíricas, etc.
Para nosotros en IA, las acepciones 2, 3 y 4 son apropiadas, pero ahondaremos un poco en el concepto. Desde los mediados de la década de los 50´s, la noción de heurística ha jugado un papel crucial para la investigación en IA. Pero algunos problemas se han presentado debido a que no existe una uniformidad en la percepción de lo que es una heurística. Por ejemplo, en seguida mostraremos algunas definiciones propuestas por varios autores: Un método heurístico es un procedimiento provisional y plausible cuyo propósito es descubrir la solución de un problema particular. (Polya). Una heurística es , en un sentido muy real, un filtro que se interpone entre un generador de soluciones y un evaluador de soluciones. (Gelemter)
Inteligencia Artificial – Unidad 1
Por heurística entendemos los principios o dispositivos que contribuyen en promedio, a la reducción de la búsqueda en la actividad de resolución de problemas. (Tonge) El adjetivo “heurística” se ha utilizado ampliamente en la literatura, relacionando su significado a la mejora en el desempeño de la solución de problemas; como sustantivo, es también utilizado sin importar qué truco o método se utilice para mejorar mejorar la eficiencia de un un sistema de resolución de de problemas. Para considerar como exitoso a un programa heurístico, debe trabajar bien en una variedad de problemas, y puede ser entendible que falle para aluno de ellos. … el término heurístico no necesariamente debe ser contrapuesto al concepto “a prueba de tontos”, puesto que algunas heurísticas no son convenientes para cierto tipo de problemas.(Minsky) problemas.(Minsky) Una heurística (regla heurística, método heurístico), es una regla simple, estrategia, truco, simplificación o cualquier otro tipo de dispositivo que limite de manera drástica la búsqueda de soluciones en un problema con un espacio de estados grande. Una heurística no garantiza soluciones óptimas, de hecho, no garantiza que se encuentre una solución, , lo único que se puede decir de una heurística útil, es que ofrece soluciones que son suficientemente buenas la mayoría de las veces. (Feldman) Programación heurística se refiere a programas computacionales que posiblemente aunque no se pueden probar como correctos, pero que son plausibles. Muchos de los problemas que son considerados por los investigadores de IA, son del tipo para los que no se conoce ningún procedimiento práctico completamente correcto, para resolverlos; entonces, por heurística, entendemos alguna regla básica simple que usualmente reduce el trabajo requerido para obtener una solución a un problema. (Jackson) A partir de estas y muchas otras definiciones de heurística, y si son tan diferentes, entonces ¿Por qué es la heurística tan importante para la IA?. Si uno tiene alguna información parcial acerca de la estructura del dominio de un problema, pero no suficiente como para proveer un algoritmo para resolver tal problema, entonces, esta información puede ser útil en forma de heurística para mejorar el desempeño de la actividad de resolución de problemas. Puesto que una gran cantidad de problemas del mundo real presentan estas características, es fácil entender porque la heurística se ha hecho tan popular y se siguen estudiando. Así pues, tenemos enfrente un espectro amplio de niveles de confianza en la toma de decisiones. En un extremo, están los algoritmos eficientes y otros procesos que creemos son óptimos aunque no garantizan el encontrar una solución, en el otro extremo se encuentran los algoritmos más ineficientes y otros procesos en los que no se puede confiar. La heurística se encuentra en medio, son procesos plausibles, plausibles, sin contar con una certeza absoluta. Es posible que combinando varias definiciones de heurística, podríamos tener una definición concluyente: Una heurística en IA es cualquier dispositivo, ya sea un programa, una regla, una pieza de conocimiento, etc. Que no es del todo confiable para proveer una solución práctica, pero que existen para creer que es útil y que incluye en un sistema de resolución de problemas esperando que en promedio, mejore el desempeño del sistema (Romanycia).