Table of Contents
Agentes Inteligentes...........................................................................................................2
Agentes y su entorno....................................................................................................................2
Buen comportamiento: el concepto de racionalidad..............................................................3
Medidas de rendimiento....................................................................................................................................3
Racionalidad........................................................................................................................................................3
Omnisciencia, aprendizaje y autonomía.........................................................................................................4
La naturaleza del entorno.............................................................................................................4
Especificación del entorno de trabajo.............................................................................................................4
Propiedades de los entornos de trabajo.........................................................................................................6
Estructura de los agentes............................................................................................................7
Programas de los agentes................................................................................................................................7
Agentes reactivos simples................................................................................................................................9
Agentes reactivos basados en modelos.......................................................................................................10
Agentes basados en objetivos........................................................................................................................11
Agentes basados en utilidad...........................................................................................................................12
Agentes que aprenden....................................................................................................................................13
Resolver problemas mediante búsqueda.....................................................................15
Agentes resolventes-problemas...............................................................................................15
Problemas y soluciones bien definidos...................................................................................16
Formular los problemas..............................................................................................................17
Ejemplos de problemas..............................................................................................................17
Búsqueda de soluciones............................................................................................................18
Medir el rendimiento de la resolución del problema.............................................................21
Estrategias de búsqueda no informada...................................................................................22
Búsqueda primero en anchura.......................................................................................................................22
Agentes Inteligentes
La observación de que algunos agentes se comportan mejor que otros nos lleva
naturalmente a la idea de agente racional, aquel que se comporta tan bien como
puede. La forma de actuar del agente depende de la naturaleza del medio; algunos
hábitats son más complejos que otros. Se proporciona una categorización cruda del
medio y se muestra cómo las propiedades de un hábitat influyen en el diseño de
agentes adecuados para ese entorno.
Agentes y su entorno
Un agente es cualquier cosa capaz de percibir su medioambiente con la ayuda de
sensores y actuar en ese medio utilizando actuadores.
Un agente humano tiene ojos, oídos y otros órganos sensoriales además de manos,
piernas, boca y otras partes del cuerpo para actuar. Un agente robot recibe pulsaciones
del teclado, archivos de información y paquetes vía red a modo de entradas sensoriales
y actúa sobre el medio con mensajes en el monitor, escribiendo ficheros y enviando
paquetes por la red. Se trabajará con la hipótesis general de que cada agente puede
percibir sus propias acciones (pero no siempre sus efectos).
El término percepción se utiliza en este contexto para indicar que el agente puede
recibir entradas en cualquier instante. La secuencia de percepciones de un agente
refleja el historial completo de lo que el agente ha recibido. En general, un agente
tomará una decisión en un momento dado dependiendo de la secuencia completa de
percepciones hasta ese instante.
En términos matemáticos se puede decir que el comportamiento del agente viene dado
por la función del agente que proyecta una percepción dada en una acción. la función
del agente para un agente artificial se imple-mentará mediante el programa del agente.
La función del agente es una descripción matemática abstracta; el programa del agente
es una implementación completa, que se ejecuta sobre la arquitectura del agente.
Ejemplo en la pagina 39.
Es necesario remarcar que la noción de agente es su-puestamente una herramienta
para el análisis de sistemas, y no una caracterización ab-soluta que divida el mundo
entre agentes y no agentes. Se puede ver una calculadora demano como un agente
que elige la acción de mostrar «4» en la pantalla, dada la secuencia de percepciones
«2 + 2 =». Pero este análisis difícilmente puede mejorar nuestro conocimiento acerca
de las calculadoras.
Buen comportamiento: el concepto de racionalidad
Un agente racional es aquel que hace lo correcto.
¿Qué significa hacer lo correcto?
Como primera aproximación, se puede decir que lo correcto es aquello que per-mite al
agente obtener un resultado mejor. Por tanto, se necesita determinar una forma de
medir el éxito. Ello, junto a la descripción del entorno y de los sensores y actuadores
del agente, proporcionará una especificación completa de la tarea que desempeña el
agente.
Medidas de rendimiento
Las medidas de rendimiento incluyen los criterios que determinan el éxito en el
comportamiento del agente. Cuando se sitúa un agente en un medio, éste genera una
secuencia de acciones de acuerdo con las percepciones que recibe. Esta secuencia de
acciones hace que su hábitat pase por una secuencia de estados. Si la secuencia es la
deseada, entonces el agente habrá actuado correctamente.
Como regla general, es mejor diseñar medidas de utilidad de acuerdo con lo que se
quiere para el entorno, más que de acuerdo con cómo se cree que el agente debe
comportarse.
Racionalidad
La racionalidad en un momento determinado depende de cuatro factores:
La medida de rendimiento que define el criterio de éxito.
El conocimiento del medio en el que habita acumulado por el agente.
Las acciones que el agente puede llevar a cabo.
La secuencia de percepciones del agente hasta este momento.
Esto nos lleva a la definición de agente racional:
En cada posible secuencia de percepciones, un agente racional deberá emprender
aquella acción que supuestamente maximice su medida de rendimiento, basándose en
las evidencias aportadas por la secuencia de percepciones y en el conocimiento que el
agente mantiene almacenado.
Omnisciencia, aprendizaje y autonomía
Es necesario tener cuidado al distinguir entre racionalidad y omnisciencia. Un agente
omnisciente conoce el resultado de su acción y actúa de acuerdo con él; sin embargo,
en realidad la omnisciencia no es posible. Considerando el siguiente ejemplo: estoy
paseando por los Campos Elíseos y veo un amigo al otro lado de la calle. No hay
tráfico alrededor y no tengo ningún compromiso, entonces, actuando racionalmente,
comenzaría a cruzar la calle. Al mismo tiempo, a 33.000 pies de altura, se desprende la
puerta de un avión, y antes de que termine de cruzar al otro lado de la calle me
encuentro aplastado.
Este ejemplo muestra que la racionalidad no es lo mismo que la perfección. La
racionalidad maximiza el rendimiento esperado, mientras la perfección maximiza el
resultado real.
Llevar a cabo acciones con la intención de modificar percepciones futuras, en
ocasiones proceso denominado recopilación de información, es una parte importante
de la racionalidad y se comenta en profundidad en el Capítulo 16.
La definición propuesta implica que el agente racional no sólo recopile información, sino
que aprenda lo máximo posible de lo que está percibiendo. Se dice que un agente
carece de autonomía cuando se apoya más en el conocimiento inicial que le
proporciona su diseñador que en sus propias percepciones.
La naturaleza del entorno
Especificación del entorno de trabajo
En la discusión de la racionalidad de un agente aspiradora simple, hubo que
especificarlas medidas de rendimiento, el entorno, y los actuadores y sensores del
agente. Todo ello forma lo que se llama el entorno de trabajo, para cuya denominación
se utiliza el acrónimo REAS (Rendimiento, Entorno, Actuadores, Sensores). En el
diseño de un agente, el primer paso debe ser siempre especificar el entorno de trabajo
de la forma más completa posible.
¿Cuál es el entorno en el que se encontrará el taxi?
Cualquier taxista debe estar preparado para circular por distintas carreteras, desde
caminos rurales y calles urbanas hasta autopistas de 12 carriles. En las carreteras se
pueden encontrar con tráfico, peatones, animales, obras, coches de policía, charcos y
baches.
Seguramente, nos podamos preguntar, «¿este no es un entorno real, verdad?». De
hecho, lo que importa no es la distinción entre un medio «real» y «artificial», sino la
complejidad de la relación entre el comportamiento del agente, la secuencia de
percepción generada por el medio y la medida de rendimiento.
Propiedades de los entornos de trabajo
Totalmente observable vs. Parcialmente observable
Determinista vs. Estocástico
Episódico vs. Secuencial
Estático vs. Dinámico
Discreto vs. Continuo
Agente individual vs. Multiagente
Estructura de los agentes
El trabajo de la IA es diseñar el programa del agente que implemente la función del
agente que proyecta las percepciones en las acciones. Se asume que este programa
se ejecutará en algún tipo de computador con sensores físicos y actuadores, lo cual se
conoce como arquitectura:
Agente = arquitectura + programa
Programas de los agentes
Los programas de los agentes que se describen en este libro tienen la misma
estructura: reciben las percepciones actuales como entradas de los sensores y
devuelven una acción a los actuadores. Hay que tener en cuenta la diferencia entre los
programas de los agentes, que toman la percepción actual como entrada, y la función
del agente, que recibe la percepción histórica completa. Los programas de los agentes
reciben sólo la percepción actual como entrada porque no hay nada más disponible en
el entorno; si las acciones del agente dependen de la secuencia completa de
percepciones, el agente tendría que recordar las percepciones.
programa de agente muy sencillo que almacena la secuencia de percepciones y
después las compara con las secuencias almacenadas en la tabla de acciones para
decidir qué hacer. La tabla representa explícitamente la función que define el programa
del agente. Para construir un agente racional de esta forma, los diseñadores deben
realizar una tabla que contenga las acciones apropiadas para cada secuencia posible
de percepciones.
Intuitivamente se puede apreciar por qué la propuesta de dirección-mediante-tabla para
la construcción de agentes está condenada al fracaso. Sea P el conjunto de posibles
percepciones y T el tiempo de vida del agente (el número total de percepciones que re-
T
cibirá). La tabla de búsqueda contendrá ∑ ¿1∨P∨t ¿ ¿ tentradas. Si consideramos
t
ahora el taxi automatizado: la entrada visual de una cámara individual es de 27
megabytes por segundo (30 fotografías por segundo, 640 x 480 pixels con 24 bits de
información de colores). Lo cual genera una tabla de búsqueda con más de
10^250.000.000.000 entradas por hora de con-ducción. Incluso la tabla de búsqueda
del ajedrez (un fragmento del mundo real pequeño y obediente) tiene por lo menos
10^150 entradas. El tamaño exageradamente grande de estas tablas (el número de
átomos en el universo observable es menor que 10^80) significa que (a) no hay agente
físico en este universo que tenga el espacio suficiente como para almacenar la tabla,
(b) el diseñador no tendrá tiempo para crear la tabla, (c) ningún agente podría aprender
todas las entradas de la tabla a partir de su experiencia, y (d) incluso si el entorno es lo
suficientemente simple para generar una tabla de un tamaño razona-ble, el diseñador
no tiene quien le asesore en la forma en la que rellenar la tabla.
los cuatro tipos básicos de programas para agentes que encarnan los principios que
subyacen en casi todos los sistemas inteligentes.
Agentes reactivos simples.
Agentes reactivos basados en modelos.
Agentes basados en objetivos.
Agentes basados en utilidad.
Agentes reactivos simples
El tipo de agente más sencillo es el agente reactivo simple. Estos agentes
seleccionanlas acciones sobre la base de las percepciones actuales, ignorando el resto
de las percepciones históricas.
También llamadas reglas de situación-acción, producciones, o reglas si-entonces.
Se utilizan rectángulos para denotar el estadointerno actual del proceso de toma de
decisiones del agente y óvalos para representar lainformación base utilizada en el
proceso.
Los agentes reactivos simples tienen la admirable propiedad de ser simples,
peroposeen una inteligencia muy limitada. El agente de la Figura 2.10 funcionará sólo
sise puede tomar la decisión correcta sobre la base de la percepción actual, lo cual
esposible sólo si el entorno es totalmente observable.
Los bucles infinitos son a menudo inevitables para los agentes reactivos simples que
operan en algunos entornos parcialmente observables. Salir de los bucles infinitos es
posible si los agentes pueden seleccionar sus acciones aleatoriamente.
Agentes reactivos basados en modelos
La forma más efectiva que tienen los agentes de manejar la visibilidad parcial es alma-
cenar información de las partes del mundo que no pueden ver. O lo que es lo mismo,el
agente debe mantener algún tipo de estado interno que dependa de la historia
percibida y que de ese modo refleje por lo menos alguno de los aspectos no
observables del estado actual.
Agentes basados en objetivos
El conocimiento sobre el estado actual del mundo no es siempre suficiente para
decidirqué hacer. Por ejemplo, en un cruce de carreteras, el taxista puede girar a la
izquierda,girar a la derecha o seguir hacia adelante. La decisión correcta depende de
dónde quiereir el taxi. En otras palabras, además de la descripción del estado actual, el
agente nece-sita algún tipo de información sobre su metaque describa las
situaciones que sondeseables, por ejemplo, llegar al destino propuesto por el
pasajero. El programa del agen-te se puede combinar con información sobre los
resultados de las acciones posibles (lamisma información que se utilizó para actualizar
el estado interno en el caso del agen-te reflexivo) para elegir las acciones que permitan
alcanzar el objetivo. La Figura 2.13muestra la estructura del agente basado en
objetivos.
Agentes basados en utilidad
Las metas por sí solas no son realmente suficientes para generar comportamiento de
gran calidad en la mayoría de los entornos. Por ejemplo, hay muchas secuencias de
acciones que llevarán al taxi a su destino (y por tanto a alcanzar su objetivo), pero
algunas son más rápidas, más seguras, más fiables, o más baratas que otras. Las
metas sólo proporcionan una cruda distinción binaria entre los estados de «felicidad» y
«tristeza», mientras que una medida de eficiencia más general debería permitir una
comparación entre estados del mundo diferentes de acuerdo al nivel exacto de felicidad
que el agente alcance cuando se llegue a un estado u otro. Como el término «felicidad»
no suena muy científico, la terminología tradicional utilizada en estos casos para indicar
que se prefiere un estado del mundo a otro es que un estado tiene más utilidad que
otro para elagente.
Una función de utilidad proyecta un estado (o una secuencia de estados) en un
número real, que representa un nivel de felicidad. La definición completa de una
función de utilidad permite tomar decisiones racionales en dos tipos de casos en los
que las metas son inadecuadas.
Agentes que aprenden
Un agente que aprende se puede dividir en cuatro componentes conceptuales, tal y
como se muestra en la Figura 2.15. La distinción más importante entre el elemento de
aprendizaje y el elemento de actuaciónes que el primero está responsabilizado de
hacer mejoras y el segundo se responsabiliza de la selección de acciones externas. El
elemento de actuación es lo 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
cómo se debe modificar el elemento de actuación para proporcionar mejores resultados
en el futuro.
El diseño del elemento de aprendizaje depende mucho del diseño del elemento de
actuación. Cuando se intenta diseñar un agente que tenga capacidad de aprender, la
primera cuestión a solucionar no es ¿cómo se puede enseñar a aprender?, sino ¿qué
tipo de elemento de actuación necesita el agente para llevar a cabo su objetivo, cuando
haya aprendido cómo hacerlo? Dado un diseño para un agente, se pueden construir los
mecanismos de aprendizaje necesarios para mejorar cada una de las partes del
agente. La crítica indica al elemento de aprendizaje qué tal lo está haciendo el agente
con respecto a un nivel de actuación fijo. La crítica es necesaria porque las
percepciones por sí mismas no prevén una indicación del éxito del agente.
El último componente del agente con capacidad de aprendizaje es el generador de
problemas. Es responsable de sugerir acciones que lo guiarán hacia experiencias nue-
vas e informativas. Lo interesante es que si el elemento de actuación sigue su camino,
puede continuar llevando a cabo las acciones que sean mejores, dado su
conocimiento. Pero si el agente está dispuesto a explorar un poco, y llevar a cabo
algunas acciones que no sean totalmente óptimas a corto plazo, puede descubrir
acciones mejores a largo plazo. El trabajo del generador de problemas es sugerir estas
acciones exploratorias.
Resolver problemas mediante búsqueda
Agentes resolventes-problemas
Los objetivos ayudan a organizar su comportamiento limitando las metas que intenta
alcanzar el agente. El primer paso para solucionar un problema es la formulación del
objetivo, basado en la situación actual y la medida derendimiento del agente.
Dado un objetivo, la formulación del problema es el proceso de decidir qué acciones
y estados tenemos que considerar.
un agente con distintas opciones inmediatas de valores desconocidos puede decidir
qué hacer, examinando las diferentes secuencias posibles de acciones que le con-
duzcan a estados de valores conocidos, y entonces escoger la mejor secuencia. Este
proceso de hallar esta secuencia se llama búsqueda. Un algoritmo de búsqueda toma
como entrada un problema y devuelve una solución de la forma secuencia de
acciones. Una vez que encontramos una solución, se procede a ejecutar las acciones
que ésta recomienda. Esta es la llamada fase de ejecución. Así, tenemos un diseño
simple de un agente «formular, buscar, ejecutar», como se muestra en la Figura 3.1.
Después de formular un objetivo y un problema a resolver, el agente llama al
procedimiento de búsqueda para resolverlo. Entonces, usa la solución para guiar sus
acciones, haciendo lo que la solución le indica como siguiente paso a hacer —
generalmente, primera acción de la secuencia— y procede a eliminar este paso de la
secuencia. Una vez ejecutada la solución, el agente formula un nuevo objetivo.
Problemas y soluciones bien definidos
Un problema puede definirse, formalmente, por cuatro componentes:
El estado inicial en el que comienza el agente.
Una descripción de las posibles acciones disponibles por el agente.
Implícitamente el estado inicial y la función sucesor definen el espacio de
estados del problema (el conjunto de todos los estados alcanzables desde el
estado inicial). El espacio de estados forma un grafo en el cual los nodos son
estados y los arcos entre los nodos son acciones.
El test objetivo, el cual determina si un estado es un estado objetivo.
Una función costo del camino que asigna un costo numérico a cada camino. El
costo individual de una acción a que va desde un estado x al estado y se denota
por c(x,a,y).
Una solución de un problema es un camino desde el estado inicial a un estado
objetivo. La calidad de la solución se mide por la función costo del camino, y una
solución óptima tiene el costo más pequeño del camino entre todas las soluciones.
Formular los problemas
Al proceso de eliminar detalles de una representación se le llama abstracción.
La elección de una buena abstracción implica quitar tantos detalles como sean posibles
mientras que se conserve la validez y se asegure que las acciones abstractas son
fáciles de realizar. Si no fuera por la capacidad de construir abstracciones útiles, los
agentes inteligentes quedarían totalmente absorbidos por el mundo real.
Ejemplos de problemas
Un problema de juguete se utiliza para ilustrar o ejercitar los métodos de resolución
de problemas. Éstos se pueden describir de forma exacta y concisa. Esto significa que
diferentes investigadores pueden utilizarlos fácilmente para comparar el funcionamiento
de los algoritmos. Un problema del mundo real es aquel en el que la gente se
preocupa por sus soluciones.
Una formulación incremental que implica a operadores que aumentan la descripción
del estado, comenzando con un estado vacío; para el problema de las 8-reinas, esto
significa que cada acción añade una reina al estado. Una formulación completa de
estados comienza con las ocho reinas en el tablero y las mueve. En cualquier caso, el
coste del camino no tiene ningún interés porque solamente cuenta el estado final.
Búsqueda de soluciones
La raíz del árbol de búsqueda es el nodo de búsqueda que corresponde al estado
inicial.
Hay muchas formas de representar los nodos, pero vamos a suponer que un nodo es
una estructura de datos con cinco componentes:
—ESTADO: el estado, del espacio de estados, que corresponde con el nodo;
—NODO PADRE: el nodo en el árbol de búsqueda que ha generado este nodo;
—ACCIÓN: la acción que se aplicará al padre para generar el nodo;
—COSTO DEL CAMINO: el costo, tradicionalmente denotado por g(n), de un camino
desde el estado inicial al nodo, indicado por los punteros a los padres; y
—PROFUNDIDAD: el número de pasos a los largo del camino desde el estado inicial.
Es importante recordar la distinción entre nodos y estados. Un nodo es una estructura
de datos usada para representar el árbol de búsqueda. Un estado corresponde a una
configuración del mundo.
También necesitamos representar la colección de nodos que se han generado, pero
todavía no se han expandido – a esta colección se le llama frontera. Cada elemento de
la frontera es un nodo hoja, es decir, un nodo sin sucesores en el árbol.
La representación más simple de la frontera sería como un conjunto de nodos.
La estrategia de búsqueda será una función que seleccione de este conjunto el
siguiente nodo a expandir. Aunque esto sea conceptualmente sencillo, podría ser
computacionalmente costoso, porque la función estrategia quizá tenga que mirar cada
elemento del conjunto para escoger el mejor. Por lo tanto, nosotros asumiremos que la
colección de nodos se implementa como una cola.
Con estas definiciones, podemos escribir una versión más formal del algoritmo general
de búsqueda en árboles.
Medir el rendimiento de la resolución del problema
La salida del algoritmo de resolución de problemas es fallo o una solución. (Algunos
algoritmos podrían caer en un bucle infinito y nunca devolver una salida.) Evaluaremos
el rendimiento de un algoritmo de cuatro formas:
Completitud: ¿está garantizado que el algoritmo encuentre una solución cuando
esta exista?
Optimización: ¿encuentra la estrategia la solución óptima, según lo definido en
la página 62?
Complejidad en tiempo: ¿cuánto tarda en encontrar una solución?
Complejidad en espacio: ¿cuánta memoria se necesita para el funcionamiento
de la búsqueda?
Costo de la búsqueda(que depende típicamente de la complejidad en tiempo pero
puede incluir también un término para el uso de la memoria)
Coste total, que combina el costo de la búsqueda y el costo del camino solución
encontrado.
Estrategias de búsqueda no informada
El término significa que ellas no tienen información adicional acerca de los estados más
allá de la que proporciona la definición del problema. Todo lo que ellas pueden hacer
es generar los sucesores y distinguir entre un estado objetivo de uno que no lo es. Las
estrategias que saben si un estado no objetivo es «más prometedor» que otro se
llaman búsqueda informada o búsqueda heurística.
Búsqueda primero en anchura