Segundo Ciclo
Segundo Ciclo
SEGUNDO CICLO
2 Agentes inteligentes
Donde se discutirá la naturaleza de los agentes ideales, sus diversos hábitats y las
formas de organizar los tipos de agentes existentes.
1
Se usa este término para indicar el elemento que reacciona a un estímulo realizando una acción (N. del RT).
38 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Agente Sensores
Percepciones
Medio ambiente
?
Acciones
Actuadores
Figura 2.1 Los agentes interactúan con el medioambiente mediante sensores y efectores.
SENSOR ple. 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
ACTUADOR
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 pa-
quetes por la red. Se trabajará con la hipótesis general de que cada agente puede perci-
bir sus propias acciones (pero no siempre sus efectos).
PERCEPCIÓN El término percepción se utiliza en este contexto para indicar que el agente puede
SECUENCIA DE
recibir entradas en cualquier instante. La secuencia de percepciones de un agente
PERCEPTORES 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 per-
cepciones hasta ese instante. Si se puede especificar qué decisión tomará un agente para
cada una de las posibles secuencias de percepciones, entonces se habrá explicado más
o menos todo lo que se puede decir de un agente. En términos matemáticos se puede de-
FUNCIÓN DEL AGENTE cir 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 que describe el comportamiento de un agente se puede presentar en for-
ma de tabla; en la mayoría de los casos esta tabla sería muy grande (infinita a menos
que se limite el tamaño de la secuencia de percepciones que se quiera considerar). Dado
un agente, con el que se quiera experimentar, se puede, en principio, construir esta ta-
bla teniendo en cuenta todas las secuencias de percepción y determinando qué acción
lleva a cabo el agente en respuesta2. La tabla es, por supuesto, una caracterización ex-
terna del agente. Inicialmente, la función del agente para un agente artificial se imple-
2
Si el agente selecciona la acción de manera aleatoria, entonces sería necesario probar cada secuencia mu-
chas veces para identificar la probabilidad de cada acción. Se puede pensar que actuar de manera aleatoria
es ridículo, pero como se verá posteriormente puede ser muy inteligente.
AGENTES INTELIGENTES 39
PROGRAMA DEL mentará mediante el programa del agente. Es importante diferenciar estas dos ideas.
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.
Para ilustrar esta idea se utilizará un ejemplo muy simple, el mundo de la aspirado-
ra presentado en la Figura 2.2. Este mundo es tan simple que se puede describir todo lo
que en él sucede; es un mundo hecho a medida, para el que se pueden inventar otras va-
riaciones. Este mundo en particular tiene solamente dos localizaciones: cuadrícula A y
B. La aspiradora puede percibir en qué cuadrante se encuentra y si hay suciedad en él.
Puede elegir si se mueve hacia la izquierda, derecha, aspirar la suciedad o no hacer nada.
Una función muy simple para el agente vendría dada por: si la cuadrícula en la que
se encuentra está sucia, entonces aspirar, de otra forma cambiar de cuadrícula. Una
muestra parcial de la función del agente representada en forma de tabla aparece en la
Figura 2.3. Un programa de agente simple para esta función de agente se mostrará
posteriormente en la Figura 2.8.
A B
Figura 2.3 Tabla parcial de una función de agente sencilla para el mundo de la aspiradora que se
muestra en la Figura 2.2.
40 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Revisando la Figura 2.3, se aprecia que se pueden definir varios agentes para el mundo
de la aspiradora simplemente rellenando la columna de la derecha de formas distintas.
La pregunta obvia, entonces es: ¿cuál es la mejor forma de rellenar una tabla? En otras
palabras, ¿qué hace que un agente sea bueno o malo, inteligente o estúpido? Estas pre-
guntas se responden en la siguiente sección.
Antes de terminar esta sección, 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 de
mano 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.
Medidas de rendimiento
MEDIDAS DE Las medidas de rendimiento incluyen los criterios que determinan el éxito en el com-
RENDIMIENTO
portamiento 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, enton-
ces el agente habrá actuado correctamente. Obviamente, no hay una única medida
adecuada para todos los agentes. Se puede preguntar al agente por su opinión subjetiva
acerca de su propia actuación, pero muchos agentes serían incapaces de contestar, y otros
podrían engañarse a sí mismos3. Por tanto hay que insistir en la importancia de utilizar
medidas de rendimiento objetivas, que normalmente determinará el diseñador encarga-
do de la construcción del agente.
Si retomamos el ejemplo de la aspiradora de la sección anterior, se puede proponer
utilizar como medida de rendimiento la cantidad de suciedad limpiada en un período de
3
Los agentes humanos son conocidos en particular por su «acidez», hacen creer que no quieren algo des-
pués de no haberlo podido conseguir, por ejemplo, «Ah bueno, de todas formas no quería ese estúpido Pre-
mio Nobel».
AGENTES INTELIGENTES 41
ocho horas. Con agentes racionales, por supuesto, se obtiene lo que se demanda. Un agen-
te racional puede maximizar su medida de rendimiento limpiando la suciedad, tirando
la basura al suelo, limpiándola de nuevo, y así sucesivamente. Una medida de rendimiento
más adecuada recompensaría al agente por tener el suelo limpio. Por ejemplo, podría ga-
nar un punto por cada cuadrícula limpia en cada período de tiempo (quizás habría que
incluir algún tipo de penalización por la electricidad gastada y el ruido generado). 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.
La selección de la medida de rendimiento no es siempre fácil. Por ejemplo, la no-
ción de «suelo limpio» del párrafo anterior está basada en un nivel de limpieza medio a
lo largo del tiempo. Además, este nivel medio de limpieza se puede alcanzar de dos for-
mas diferentes, llevando a cabo una limpieza mediocre pero continua o limpiando en pro-
fundidad, pero realizando largos descansos. La forma más adecuada de hacerlo puede
venir dada por la opinión de un encargado de la limpieza profesional, pero en realidad
es una cuestión filosófica profunda con fuertes implicaciones. ¿Qué es mejor, una vida
temeraria con altos y bajos, o una existencia segura pero aburrida? ¿Qué es mejor, una
economía en la que todo el mundo vive en un estado de moderada pobreza o una en la
que algunos viven en la abundancia y otros son muy pobres? Estas cuestiones se dejan
como ejercicio para los lectores diligentes.
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.
DEFINICIÓN DE
AGENTE RACIONAL Esto nos lleva a la definición de agente racional:
En cada posible secuencia de percepciones, un agente racional deberá emprender aque-
lla acción que supuestamente maximice su medida de rendimiento, basándose en las evi-
dencias aportadas por la secuencia de percepciones y en el conocimiento que el agente
mantiene almacenado.
Considerando que el agente aspiradora limpia una cuadrícula si está sucia y se mueve a
la otra si no lo está (ésta es la función del agente que aparece en la tabla de la Figu-
ra 2.3), ¿se puede considerar racional? ¡Depende! Primero, se debe determinar cuál es
la medida de rendimiento, qué se conoce del entorno, y qué sensores y actuadores tiene
el agente. Si asumimos que:
• La medida de rendimiento premia con un punto al agente por cada recuadro lim-
pio en un período de tiempo concreto, a lo largo de una «vida» de 1.000 períodos.
• La «geografía» del medio se conoce a priori (Figura 2.2), pero que la distribución
de la suciedad y la localización inicial del agente no se conocen. Las cuadrículas
se mantienen limpias y aspirando se limpia la cuadrícula en que se encuentre el
agente. Las acciones Izquierda y Derecha mueven al agente hacia la izquierda y
42 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
derecha excepto en el caso de que ello pueda llevar al agente fuera del recinto, en
este caso el agente permanece donde se encuentra.
• Las únicas acciones permitidas son Izquierda, Derecha, Aspirar y NoOp (no ha-
cer nada).
• El agente percibe correctamente su localización y si esta localización contiene su-
ciedad.
Puede afirmarse que bajo estas circunstancias el agente es verdaderamente racional; el
rendimiento que se espera de este agente es por lo menos tan alto como el de cualquier
otro agente. El Ejercicio 2.4 pide que se pruebe este hecho.
Fácilmente se puede observar que el agente puede resultar irracional en circunstan-
cias diferentes. Por ejemplo, cuando toda la suciedad se haya eliminado el agente osci-
lará innecesariamente hacia delante y atrás; si la medida de rendimiento incluye una pe-
nalización de un punto por cada movimiento hacia la derecha e izquierda, la respuesta
del agente será pobre. Un agente más eficiente no hará nada si está seguro de que todas
las cuadrículas están limpias. Si una cuadrícula se ensucia de nuevo, el agente debe iden-
tificarlo en una de sus revisiones ocasionales y limpiarla. Si no se conoce la geografía
del entorno, el agente tendrá que explorarla y no quedarse parado en las cuadrículas A
y B. El Ejercicio 2.4 pide que se diseñen agentes para estos casos.
4
Véase N. Henderson, «New door latches urged for Boeing 747 jumbo jets» (es urgente dotar de nuevas
cerraduras a las puertas de los Boeing jumbo 747), Washington Post, 24 de agosto de 1989.
AGENTES INTELIGENTES 43
cepción no le indicaría que se está acercando un gran camión a gran velocidad. ¿La
definición de racionalidad nos está indicando que está bien cruzar la calle? ¡Todo lo con-
trario! Primero, no sería racional cruzar la calle sólo teniendo esta secuencia de per-
cepciones incompleta: el riesgo de accidente al cruzarla sin mirar es demasiado grande.
Segundo, un agente racional debe elegir la acción de «mirar» antes de intentar cruzar la
calle, ya que el mirar maximiza el rendimiento esperado. Llevar a cabo acciones con la
intención de modificar percepciones futuras, en ocasiones proceso denominado reco-
RECOPILACIÓN DE
INFORMACIÓN pilación de información, es una parte importante de la racionalidad y se comenta en
profundidad en el Capítulo 16. Un segundo ejemplo de recopilación de información lo
EXPLORACIÓN proporciona la exploración que debe llevar a cabo el agente aspiradora en un medio ini-
cialmente desconocido.
La definición propuesta implica que el agente racional no sólo recopile información,
APRENDIZAJE sino que aprenda lo máximo posible de lo que está percibiendo. La configuración ini-
cial del agente puede reflejar un conocimiento preliminar del entorno, pero a medida que
el agente adquiere experiencia éste puede modificarse y aumentar. Hay casos excepcio-
nales en los que se conoce totalmente el entorno a priori. En estos casos, el agente no
necesita percibir y aprender; simplemente actúa de forma correcta. Por supuesto, estos
agentes son muy frágiles. Considérese el caso del humilde escarabajo estercolero. Des-
pués de cavar su nido y depositar en él su huevos, tomó una bola de estiércol de una pila
cercana para tapar su entrada. Si durante el trayecto se le quita la bola, el escarabajo con-
tinuará su recorrido y hará como si estuviera tapando la entrada del nido, sin tener la bola
y sin darse cuanta de ello. La evolución incorporó una suposición en la conducta del
escarabajo, y cuando se viola, el resultado es un comportamiento insatisfactorio. La avis-
pa cavadora es un poco más inteligente. La avispa hembra cavará una madriguera, saldrá
de ella, picará a una oruga y la llevará a su madriguera, se introducirá en la madriguera
para comprobar que todo está bien, arrastrará la oruga hasta el fondo y pondrá sus
huevos. La oruga servirá como fuente de alimento cuando los huevos se abran. Hasta
ahora todo bien, pero si un entomólogo desplaza la oruga unos centímetros fuera cuan-
do la avispa está revisando la situación, ésta volverá a la etapa de «arrastre» que figura
en su plan, y continuará con el resto del plan sin modificación alguna, incluso después
de que se intervenga para desplazar la oruga. La avispa cavadora no es capaz de apren-
der que su plan innato está fallando, y por tanto no lo cambiará.
Los agentes con éxito dividen las tareas de calcular la función del agente en tres
períodos diferentes: cuando se está diseñando el agente, y están los diseñadores encar-
gados de realizar algunos de estos cálculos; cuando está pensando en la siguiente opera-
ción, el agente realiza más cálculos; y cuando está aprendiendo de la experiencia, el agente
lleva a cabo más cálculos para decidir cómo modificar su forma de comportarse.
AUTONOMÍA 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. Un agente ra-
cional debe ser autónomo, debe saber aprender a determinar cómo tiene que compensar
el conocimiento incompleto o parcial inicial. Por ejemplo, el agente aspiradora que
aprenda a prever dónde y cuándo aparecerá suciedad adicional lo hará mejor que otro
que no aprenda. En la práctica, pocas veces se necesita autonomía completa desde el
comienzo: cuando el agente haya tenido poca o ninguna experiencia, tendrá que actuar
de forma aleatoria a menos que el diseñador le haya proporcionado ayuda. Así, de la
44 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
misma forma que la evolución proporciona a los animales sólo los reactivos necesarios
para que puedan sobrevivir lo suficiente para aprender por ellos mismos, sería razona-
ble proporcionar a los agentes que disponen de inteligencia artificial un conocimiento
inicial, así como de la capacidad de aprendizaje. Después de las suficientes experien-
cias interaccionando con el entorno, el comportamiento del agente racional será efecti-
vamente independiente del conocimiento que poseía inicialmente. De ahí, que la incor-
poración del aprendizaje facilite el diseño de agentes racionales individuales que tendrán
éxito en una gran cantidad de medios.
Medidas de
Tipo de agente Entorno Actuadores Sensores
rendimiento
Taxista Seguro, rápido, Carreteras, Dirección, Cámaras, sónar,
legal, viaje otro tráfico, acelerador, velocímetro,
confortable, peatones, freno, señal, GPS, tacómetro,
maximización clientes bocina, visualizador de
del beneficio visualizador la aceleración,
sensores del
motor, teclado
beneficio. Obviamente, alguno de estos objetivos entran en conflicto por lo que habrá
que llegar a acuerdos.
Siguiente, ¿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 ur-
banas hasta autopistas de 12 carriles. En las carreteras se pueden encontrar con tráfico,
peatones, animales, obras, coches de policía, charcos y baches. El taxista también tie-
ne que comunicarse tanto con pasajeros reales como potenciales. Hay también elecciones
opcionales. El taxi puede operar en California del Sur, donde la nieve es raramente un
problema, o en Alaska, donde raramente no lo es. Puede conducir siempre por la de-
recha, o puede ser lo suficientemente flexible como para que circule por la izquierda
cuando se encuentre en el Reino Unido o en Japón. Obviamente, cuanto más restringi-
do esté el entorno, más fácil será el problema del diseño.
Los actuadores disponibles en un taxi automático serán más o menos los mismos que
los que tiene a su alcance un conductor humano: el control del motor a través del acele-
rador y control sobre la dirección y los frenos. Además, necesitará tener una pantalla de
visualización o un sintetizador de voz para responder a los pasajeros, y quizás algún me-
canismo para comunicarse, educadamente o de otra forma, con otros vehículos.
Para alcanzar sus objetivos en el entorno en el que circula, el taxi necesita saber dónde
está, qué otros elementos están en la carretera, y a qué velocidad circula. Sus sensores
básicos deben, por tanto, incluir una o más cámaras de televisión dirigidas, un velocí-
metro y un tacómetro. Para controlar el vehículo adecuadamente, especialmente en las
curvas, debe tener un acelerador; debe conocer el estado mecánico del vehículo, de forma
que necesitará sensores que controlen el motor y el sistema eléctrico. Debe tener
instrumentos que no están disponibles para un conductor medio: un sistema de posicio-
namiento global vía satélite (GPS) para proporcionarle información exacta sobre su
posición con respecto a un mapa electrónico, y sensores infrarrojos o sonares para
detectar las distancias con respecto a otros coches y obstáculos. Finalmente, necesitará
un teclado o micrófono para que el pasajero le indique su destino.
La Figura 2.5 muestra un esquema con los elementos REAS básicos para diferentes
clases de agentes adicionales. Más ejemplos aparecerán en el Ejercicio 2.5. Puede
sorprender a algunos lectores que se incluya en la lista de tipos de agente algunos pro-
gramas que operan en la totalidad del entorno artificial definido por las entradas del
teclado y los caracteres impresos en el monitor. «Seguramente», nos podamos pregun-
46 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Medidas de
Tipo de agente Entorno Actuadores Sensores
rendimiento
Sistema de Pacientes sanos, Pacientes, Visualizar Teclado para
diagnóstico reducir costes, hospital, preguntas, la entrada de
médico demandas personal pruebas, síntomas,
diagnósticos, conclusiones,
tratamientos, respuestas de
casos pacientes
mente, por ejemplo, cuando se interrumpa la conexión con una fuente de información o
cuando aparezca una nueva. Internet es un medio cuya complejidad rivaliza con la del
mundo físico y entre cuyos habitantes se pueden incluir muchos agentes artificiales.
5
La primera edición de este libro utiliza los términos accesible e inaccesible en vez de total y parcialmen-
te observable; no determinista en vez de estocástico; y no episódico en vez de secuencial. La nueva ter-
minología es más consistente con el uso establecido.
48 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
minista, como ya se describió, pero las variaciones pueden incluir elementos es-
tocásticos como la aparición de suciedad aleatoria y un mecanismo de succión
ineficiente (Ejercicio 2.12). Si el medio es determinista, excepto para las acciones
ESTRATÉGICO de otros agentes, decimos que el medio es estratégico.
EPISÓDICO • Episódico vs. secuencial6.
SECUENCIAL
En un entorno de trabajo episódico, la experiencia del agente se divide en episo-
dios atómicos. Cada episodio consiste en la percepción del agente y la realización
de una única acción posterior. Es muy importante tener en cuenta que el siguien-
te episodio no depende de las acciones que se realizaron en episodios previos. En
los medios episódicos la elección de la acción en cada episodio depende sólo del
episodio en sí mismo. Muchas tareas de clasificación son episódicas. Por ejem-
plo, un agente que tenga que seleccionar partes defectuosas en una cadena de mon-
taje basa sus decisiones en la parte que está evaluando en cada momento, sin tener
en cuenta decisiones previas; más aún, a la decisión presente no le afecta el que
la próxima fase sea defectuosa. En entornos secuenciales, por otro lado, la deci-
sión presente puede afectar a decisiones futuras. El ajedrez y el taxista son
secuenciales: en ambos casos, las acciones que se realizan a corto plazo pueden
tener consecuencias a largo plazo. Los medios episódicos son más simples que los
secuenciales porque la gente no necesita pensar con tiempo.
ESTÁTICO • Estático vs. dinámico.
DINAMICO
Si el entorno puede cambiar cuando el agente está deliberando, entonces se dice
que el entorno es dinámico para el agente; de otra forma se dice que es estático.
Los medios estáticos son fáciles de tratar ya que el agente no necesita estar
pendiente del mundo mientras está tomando una decisión sobre una acción, ni
necesita preocuparse sobre el paso del tiempo. Los medios dinámicos, por el con-
trario, están preguntando continuamente al agente qué quiere hacer; si no se ha
decidido aún, entonces se entiende que ha tomado la decisión de no hacer nada.
Si el entorno no cambia con el paso del tiempo, pero el rendimiento del agente cam-
SEMIDINÁMICO bia, entonces se dice que el medio es semidinámico. El taxista es claramente
dinámico: tanto los otros coches como el taxi se están moviendo mientras el
algoritmo que guía la conducción indica qué es lo próximo a hacer. El ajedrez, cuan-
do se juega con un reloj, es semideterminista. Los crucigramas son estáticos.
DISCRETO • Discreto vs. continuo.
CONTINUO
La distinción entre discreto y continuo se puede aplicar al estado del medio, a la
forma en la que se maneja el tiempo y a las percepciones y acciones del agente.
Por ejemplo, un medio con estados discretos como el del juego del ajedrez tiene
un número finito de estados distintos. El ajedrez tiene un conjunto discreto de
percepciones y acciones. El taxista conduciendo define un estado continuo y un
problema de tiempo continuo: la velocidad y la ubicación del taxi y de los otros
vehículos pasan por un rango de valores continuos de forma suave a lo largo del
6
La palabra «secuencial» se utiliza también en el campo de la informática como antónimo de «paralelo».
Los dos significados no están relacionados.
AGENTES INTELIGENTES 49
tiempo. Las conducción del taxista es también continua (ángulo de dirección, etc.).
Las imágenes captadas por cámaras digitales son discretas, en sentido estricto, pero
se tratan típicamente como representaciones continuas de localizaciones e inten-
sidades variables.
AGENTE INDIVIDUAL • Agente individual vs. multiagente.
MULTIAGENTE
La distinción entre el entorno de un agente individual y el de un sistema mul-
tiagente puede parecer suficientemente simple. Por ejemplo, un agente resol-
viendo un crucigrama por sí mismo está claramente en un entorno de agente
individual, mientras que un agente que juega al ajedrez está en un entorno con
dos agentes. Sin embargo hay algunas diferencias sutiles. Primero, se ha descrito
que una entidad puede percibirse como un agente, pero no se ha explicado qué
entidades se deben considerar agentes. ¿Tiene el agente A (por ejemplo el agen-
te taxista) que tratar un objeto B (otro vehículo) como un agente, o puede tra-
tarse méramente como un objeto con un comportamiento estocástico, como las
olas de la playa o las hojas que mueve el viento? La distinción clave está en iden-
tificar si el comportamiento de B está mejor descrito por la maximización de una
medida de rendimiento cuyo valor depende del comportamiento de A. Por
ejemplo, en el ajedrez, la entidad oponente B intenta maximizar su medida de
rendimiento, la cual, según las reglas, minimiza la medida de rendimiento del
COMPETITIVO agente A. Por tanto, el ajedrez es un entorno multiagente competitivo. Por otro
lado, en el medio definido por el taxista circulando, el evitar colisiones maxi-
miza la medida de rendimiento de todos los agentes, así pues es un entorno mul-
COOPERATIVO tiagente parcialmente cooperativo. Es también parcialmente competitivo ya
que, por ejemplo, sólo un coche puede ocupar una plaza de aparcamiento. Los
problemas en el diseño de agentes que aparecen en los entornos multiagente son
a menudo bastante diferentes de los que aparecen en entornos con un único agen-
te; por ejemplo, la comunicación a menudo emerge como un comportamiento
racional en entornos multiagente; en algunos entornos competitivos parcial-
mente observables el comportamiento estocástico es racional ya que evita las
dificultades de la predicción.
7
Hay otras posibilidades para definir la estructura del programa para el agente; por ejemplo, los programas
para agentes pueden ser subrutinas que se ejecuten asincrónicamente en el entorno de trabajo. Cada una de
estas subrutinas tienen un puerto de entrada y salida y consisten en un bucle que interpreta las entradas del
puerto como percepciones y escribe acciones en el puerto de salida.
52 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Figura 2.7 El programa AGENTE-DIRIGIDO-MEDIANTE TABLA se invoca con cada nueva percepción
y devuelve una acción en cada momento. Almacena la secuencia de percepciones utilizando su pro-
pia estructura de datos privada.
En lo que resta de esta sección se presentan los cuatro tipos básicos de programas
para agentes que encarnan los principios que subyacen en casi todos los sistemas inte-
ligentes.
• Agentes reactivos simples.
• Agentes reactivos basados en modelos.
• Agentes basados en objetivos.
• Agentes basados en utilidad.
Después se explica, en términos generales, cómo convertir todos ellos en agentes que
aprendan.
Figura 2.8 Programa para el agente aspiradora de reactivo simple en el entorno definido por las
dos cuadrículas. Este programa implementa la función de agente presentada en la Figura 2.3.
8
También llamadas reglas de situación-acción, producciones, o reglas si-entonces.
54 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Los humanos también tienen muchas de estas conexiones, algunas de las cuales son res-
puestas aprendidas (como en el caso de la conducción) y otras son reacciones innatas
(como parpadear cuando algo se acerca al ojo). A lo largo de esta obra, se estudiarán
diferentes formas en las que se pueden aprender e implementar estas conexiones.
El programa de la Figura 2.8 es específico para el entorno concreto de la aspirado-
ra. Una aproximación más general y flexible es la de construir primero un intérprete de
propósito general para reglas de condición-acción y después crear conjuntos de reglas
para entornos de trabajo específicos. La Figura 2.9 presenta la estructura de este programa
general de forma esquemática, mostrando cómo las reglas de condición-acción permi-
ten al agente generar la conexión desde las percepciones a las acciones. No se preocu-
pe si le parece trivial; pronto se complicará. Se utilizan rectángulos para denotar el estado
interno actual del proceso de toma de decisiones del agente y óvalos para representar la
información base utilizada en el proceso. El programa del agente, que es también muy
simple, se muestra en la Figura 2.10. La función INTERPRETAR-ENTRADA genera una
descripción abstracta del estado actual a partir de la percepción, y la función REGLA-COIN-
CIDENCIA devuelve la primera regla del conjunto de reglas que coincide con la descrip-
ción del estado dada. Hay que tener en cuenta que la descripción en términos de «reglas»
Agente Sensores
Cómo es el mundo
Medio ambiente
ahora
Actuadores
estado ; INTERPRETAR-ENTRADA(percepción)
regla ; REGLA-COINCIDENCIA(estado, reglas)
acción ; REGLA-ACCIÓN[regla]
devolver acción
Figura 2.10 Un agente reactivo simple, que actúa de acuerdo a la regla cuya condición coincida
con el estado actual, definido por la percepción.
AGENTES INTELIGENTES 55
otros aspectos de la conducción, como un cambio de carril, el agente tiene que mante-
ner información de la posición del resto de los coches si no los puede ver.
La actualización de la información de estado interno según pasa el tiempo requiere
codificar dos tipos de conocimiento en el programa del agente. Primero, se necesita al-
guna información acerca de cómo evoluciona el mundo independientemente del agen-
te, por ejemplo, que un coche que está adelantando estará más cerca, detrás, que en un
momento inmediatamente anterior. Segundo, se necesita más información sobre cómo
afectan al mundo las acciones del agente, por ejemplo, que cuando el agente gire hacia
la derecha, el coche gira hacia la derecha o que después de conducir durante cinco mi-
nutos hacia el norte en la autopista se avanzan cinco millas hacia el norte a partir del pun-
to en el que se estaba cinco minutos antes. Este conocimiento acerca de «cómo funcio-
na el mundo», tanto si está implementado con un circuito booleano simple o con teorías
científicas completas, se denomina modelo del mundo. Un agente que utilice este mo-
AGENTE BASADO
EN MODELOS delo es un agente basado en modelos.
Sensores
Estado
Cómo evoluciona el mundo Cómo es el mundo
ahora
Medio ambiente
Qué efectos causan mis acciones
Agente Actuadores
Figura 2.12 Un agente reactivo basado en modelos, que almacena información sobre el estado
actual del mundo utilizando un modelo interno. Después selecciona una acción de la misma forma
que el agente reactivo.
AGENTES INTELIGENTES 57
La Figura 2.11 proporciona la estructura de un agente reactivo simple con estado in-
terno, muestra cómo la percepción actual se combina con el estado interno antiguo para
generar la descripción actualizada del estado actual. La Figura 2.12 muestra el progra-
ma del agente. La parte interesante es la correspondiente a la función Actualizar-Esta-
do, que es la responsable de la creación de la nueva descripción del estado interno. Ade-
más de interpretar la nueva percepción a partir del conocimiento existente sobre el
estado, utiliza información relativa a la forma en la que evoluciona el mundo para co-
nocer más sobre las partes del mundo que no están visibles; para ello debe conocer cuál
es el efecto de las acciones del agente sobre el estado del mundo. Los Capítulos 10 y 17
ofrecen ejemplos detallados.
Sensores
Estado
Cómo es el mundo
Cómo evoluciona el mundo ahora
Medio ambiente
Agente Actuadores
Figura 2.13 Un agente basado en objetivos y basado en modelos, que almacena información del
estado del mundo así como del conjunto de objetivos que intenta alcanzar, y que es capaz de se-
leccionar la acción que eventualmente lo guiará hacia la consecución de sus objetivos.
58 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
siones, puede ser más complicado, cuando el agente tiene que considerar secuencias com-
plejas para encontrar el camino que le permita alcanzar el objetivo. Búsqueda (Capítu-
los del 3 al 6) y planificación (Capítulos 11 y 12) son los subcampos de la IA centra-
dos en encontrar secuencias de acciones que permitan a los agentes alcanzar sus metas.
Hay que tener en cuenta que la toma de decisiones de este tipo es fundamentalmen-
te diferente de las reglas de condición–acción descritas anteriormente, en las que hay que
tener en cuenta consideraciones sobre el futuro (como «¿qué pasará si yo hago esto y
esto?» y «¿me hará esto feliz?»). En los diseños de agentes reactivos, esta información
no está representada explícitamente, porque las reglas que maneja el agente proyectan
directamente las percepciones en las acciones. El agente reactivo frena cuando ve luces
de freno. Un agente basado en objetivos, en principio, puede razonar que si el coche que
va delante tiene encendidas las luces de frenado, está reduciendo su velocidad. Dada la
forma en la que el mundo evoluciona normalmente, la única acción que permite alcan-
zar la meta de no chocarse con otros coches, es frenar.
Aunque el agente basado en objetivos pueda parecer menos eficiente, es más flexi-
ble ya que el conocimiento que soporta su decisión está representado explícitamente y
puede modificarse. Si comienza a llover, el agente puede actualizar su conocimiento so-
bre cómo se comportan los frenos; lo cual implicará que todas las formas de actuar re-
levantes se alteren automáticamente para adaptarse a las nuevas circunstancias. Para el
agente reactivo, por otro lado, se tendrán que rescribir muchas reglas de condición-ac-
ción. El comportamiento del agente basado en objetivos puede cambiarse fácilmente para
que se dirija a una localización diferente. Las reglas de los agentes reactivos relaciona-
das con cuándo girar y cuándo seguir recto son válidas sólo para un destino concreto y
tienen que modificarse cada vez que el agente se dirija a cualquier otro lugar distinto.
9
La palabra «utilidad» aquí se refiere a «la cualidad de ser útil».
AGENTES INTELIGENTES 59
Sensores
Estado
Cómo es el mundo
Cómo evoluciona el mundo ahora
Medio ambiente
Qué efectos causan Qué pasará si realizo
mis acciones la acción A
Agente Actuadores
Figura 2.14 Un agente basado en utilidad y basado en modelos. Utiliza un modelo del mundo,
junto con una función de utilidad que calcula sus preferencias entre los estados del mundo. Des-
pués selecciona la acción que le lleve a alcanzar la mayor utilidad esperada, que se calcula haciendo
la media de todos los estados resultantes posibles, ponderado con la probabilidad del resultado.
canzar algunos de ellos (por ejemplo, velocidad y seguridad), la función de utilidad de-
termina el equilibrio adecuado. Segundo, cuando haya varios objetivos por los que se
pueda guiar el agente, y ninguno de ellos se pueda alcanzar con certeza, la utilidad pro-
porciona un mecanismo para ponderar la probabilidad de éxito en función de la impor-
tancia de los objetivos.
En el Capítulo 16, se mostrará cómo cualquier agente racional debe comportarse como
si tuviese una función de utilidad cuyo valor esperado tiene que maximizar. Por tanto,
un agente que posea una función de utilidad explícita puede tomar decisiones raciona-
les, y lo puede hacer con la ayuda de un algoritmo de propósito general que no dependa
de la función específica de utilidad a maximizar. De esta forma, la definición «global»
de racionalidad (identificando como racionales aquellas funciones de los agentes que pro-
porcionan el mayor rendimiento) se transforma en una restricción «local» en el diseño
de agentes racionales que se puede expresar con un simple programa.
La Figura 2.14 muestra la estructura de un agente basado en utilidad. En la Parte IV
aparecen programas de agentes basados en utilidad, donde se presentan agentes que to-
man decisiones y que deben trabajar con la incertidumbre inherente a los entornos par-
cialmente observables.
ría deseable utilizar algún método más rápido». El método que propone es construir má-
quinas que aprendan y después enseñarlas. En muchas áreas de IA, éste es ahora el mé-
todo más adecuado para crear sistemas novedosos. El aprendizaje tiene otras ventajas,
como se ha explicado anteriormente: permite que el agente opere en medios inicialmente
desconocidos y que sea más competente que si sólo utilizase un conocimiento inicial.
En esta sección, se introducen brevemente las principales ideas en las que se basan los
agentes que aprenden. En casi todos los capítulos de este libro se comentan las posibi-
lidades y métodos de aprendizaje de tipos de agentes concretos. La Parte VI profundi-
za más en los algoritmos de aprendizaje en sí mismos.
Un agente que aprende se puede dividir en cuatro componentes conceptuales, tal y
ELEMENTO DE
APRENDIZAJE
como se muestra en la Figura 2.15. La distinción más importante entre el elemento de
aprendizaje y el elemento de actuación es que el primero está responsabilizado de hacer
ELEMENTO DE
ACTUACIÓN
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 rea-
CRÍTICA limenta con las críticas sobre la actuación del agente y determina cómo se debe modi-
ficar 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 pri-
mera 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 me-
canismos 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. Por ejemplo, un programa de
Nivel de actuación
Crítica Sensores
retroalimentación
Medio ambiente
cambios
Elemento de Elemento
aprendizaje de actuación
conocimiento
objetivos a
aprender
Generador
de problemas
Agente Actuadores
ajedrez puede recibir una percepción indicando que ha dado jaque mate a su oponente,
pero necesita tener un nivel de actuación que le indique que ello es bueno; la percepción
por sí misma no lo indica. Es por tanto muy importante fijar el nivel de actuación. Con-
ceptualmente, se debe tratar con él como si estuviese fuera del agente, ya que éste no
debe modificarlo para satisfacer su propio interés.
GENERADOR DE El último componente del agente con capacidad de aprendizaje es el generador de
PROBLEMAS
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 pla-
zo. El trabajo del generador de problemas es sugerir estas acciones exploratorias. Esto
es lo que los científicos hacen cuando llevan a cabo experimentos. Galileo no pensaba
que tirar piedras desde lo alto de una torre en Pisa tenía un valor por sí mismo. Él no tra-
taba de romper piedras ni de cambiar la forma de pensar de transeúntes desafortunados
que paseaban por el lugar. Su intención era adaptar su propia mente, para identificar una
teoría que definiese mejor el movimiento de los objetos.
Para concretar el diseño total, se puede volver a utilizar el ejemplo del taxi automa-
tizado. El elemento de actuación consiste en la colección de conocimientos y procedi-
mientos que tiene el taxi para seleccionar sus acciones de conducción. El taxi se pone
en marcha y circula utilizando este elemento de actuación. La crítica observa el mundo
y proporciona información al elemento de aprendizaje. Por ejemplo, después de que el
taxi se sitúe tres carriles hacia la izquierda de forma rápida, la crítica observa el lenguaje
escandaloso que utilizan otros conductores. A partir de esta experiencia, el elemento de
aprendizaje es capaz de formular una regla que indica que ésta fue una mala acción, y
el elemento de actuación se modifica incorporando la nueva regla. El generador de pro-
blemas debe identificar ciertas áreas de comportamiento que deban mejorarse y sugerir
experimentos, como probar los frenos en carreteras con tipos diferentes de superficies
y bajo condiciones distintas.
El elemento de aprendizaje puede hacer cambios en cualquiera de los componentes
de «conocimiento» que se muestran en los diagramas de agente (Figuras 2.9, 2.11, 2.13,
y 2.14). Los casos más simples incluyen el aprendizaje directo a partir de la secuencia
percibida. La observación de pares de estados sucesivos del entorno puede permitir que
el agente aprenda «cómo evoluciona el mundo», y la observación de los resultados de
sus acciones puede permitir que el agente aprenda «qué hacen sus acciones». Por ejem-
plo, si el taxi ejerce una cierta presión sobre los frenos cuando está circulando por una
carretera mojada, acto seguido conocerá cómo decelera el coche. Claramente, estas dos
tareas de aprendizaje son más difíciles si sólo existe una vista parcial del medio.
Las formas de aprendizaje mostradas en los párrafos precedentes no necesitan el ac-
ceso a niveles de actuación externo, de alguna forma, el nivel es el que se utiliza uni-
versalmente para hacer pronósticos de acuerdo con la experimentación. La situación es
ligeramente más compleja para un agente basado en utilidad que desee adquirir infor-
mación para crear su función de utilidad. Por ejemplo, se supone que el agente conduc-
tor del taxi no recibe propina de los pasajeros que han recorrido un trayecto de forma
incómoda debido a una mala conducción. El nivel de actuación externo debe informar
62 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
2.5 Resumen
En este capítulo se ha realizado un recorrido rápido por el campo de la IA, que se ha pre-
sentado como la ciencia del diseño de los agentes. Los puntos más importantes a tener
en cuenta son:
• Un agente es algo que percibe y actúa en un medio. La función del agente para
un agente especifica la acción que debe realizar un agente como respuesta a cual-
quier secuencia percibida.
• La medida de rendimiento evalúa el comportamiento del agente en un medio. Un
agente racional actúa con la intención de maximizar el valor esperado de la me-
dida de rendimiento, dada la secuencia de percepciones que ha observado hasta el
momento.
• Las especificaciones del entorno de trabajo incluyen la medida de rendimiento,
el medio externo, los actuadores y los sensores. El primer paso en el diseño de un
agente debe ser siempre la especificación, tan completa como sea posible, del en-
torno de trabajo.
• El entorno de trabajo varía según distintos parámetros. Pueden ser total o parcial-
mente visibles, deterministas o estocásticos, episódicos o secuenciales, estáticos
o dinámicos, discretos o continuos, y formados por un único agente o por varios
agentes.
• El programa del agente implementa la función del agente. Existe una gran va-
riedad de diseños de programas de agentes, y reflejan el tipo de información que
se hace explícita y se utiliza en el proceso de decisión. Los diseños varían en efi-
ciencia, solidez y flexibilidad. El diseño apropiado del programa del agente de-
pende en gran medida de la naturaleza del medio.
• Los gentes reactivos simples responden directamente a las percepciones, mien-
tras que los agentes reactivos basados en modelos mantienen un estado interno
AGENTES INTELIGENTES 63
que les permite seguir el rastro de aspectos del mundo que no son evidentes según
las percepciones actuales. Los agentes basados en objetivos actúan con la inten-
ción de alcanzar sus metas, y los agentes basados en utilidad intentan maximizar
su «felicidad» deseada.
• Todos los agentes pueden mejorar su eficacia con la ayuda de mecanismos de
aprendizaje.
te del trabajo realizado en el campo de la IA considera que los agentes reactivos puros
con estado interno son demasiado simples para ser muy influyentes, pero los trabajos
de Rosenschein (1985) y Brooks (1986) cuestionan esta hipótesis (véase el Capítulo 25).
En los últimos años, se ha trabajado intensamente para encontrar algoritmos eficientes
capaces de hacer un buen seguimiento de entornos complejos (Hamscher et al., 1992).
El programa del Agente Remoto que controla la nave espacial Deep Space One (descrito
en la página 27) es un admirable ejemplo concreto (Muscettola et al., 1998; Jonsson et
al., 2000).
Los agentes basados en objetivos están presentes tanto en las referencias de Aristó-
teles sobre el razonamiento práctico como en los primeros artículos de McCarthy sobre
IA lógica. El robot Shakey (Fikes y Nilsson, 1971; Nilsson, 1984) fue el primer robot
construido como un agente basado en objetivos. El análisis lógico completo de un agen-
te basado en objetivos aparece en Genesereth y Nilsson (1987), y Shoham (1993) ha
desarrollado una metodología de programación basada en objetivos llamada programa-
ción orientada a agentes.
La perspectiva orientada a objetivos también predomina en la psicología cogniti-
va tradicional, concretamente en el área de la resolución de problemas, como se mues-
tra tanto en el influyente Human Problem Solving (Newell y Simon, 1972) como en
los últimos trabajos de Newell (1990). Los objetivos, posteriormente definidos como
deseos (generales) y las intenciones (perseguidas en un momento dado), son funda-
mentales en la teoría de agentes desarrollada por Bratman (1987). Esta teoría ha sido
muy influyente tanto en el entendimiento del lenguaje natural como en los sistemas
multiagente.
Horvitz et al. (1988) sugieren específicamente el uso de la maximización de la uti-
lidad esperada concebida racionalmente como la base de la IA. El texto de Pearl (1988)
fue el primero en IA que cubrió las teorías de la probabilidad y la utilidad en profundi-
dad; su exposición de métodos prácticos de razonamiento y toma de decisiones con in-
certidumbre fue, posiblemente, el factor individual que más influyó en el desarrollo de
los agentes basados en utilidad en los 90 (véase la Parte V).
El diseño general de agentes que aprenden representado en la Figura 2.15 es un clá-
sico de la literatura sobre aprendizaje automático (Buchanan et al., 1978; Mitchell,
1997). Ejemplos de diseños, implementados en programas, se remontan, como poco, has-
ta los programas que aprendían a jugar al ajedrez de Arthur Samuel (1959, 1967). La
Parte VI está dedicada al estudio en profundidad de los agentes que aprenden.
El interés en los agentes y en el diseño de agentes ha crecido rápidamente en los úl-
timos años, en parte por la expansión de Internet y la necesidad observada de desarro-
llar softbots (robots software) automáticos y móviles (Etzioni y Weld, 1994). Artículos
relevantes pueden encontrarse en Readings in Agents (Huhns y Singh, 1998) y Funda-
tions of Rational Agency (Wooldridge y Rao, 1999). Multiagent Systems (Weiss, 1999)
proporciona una base sólida para muchos aspectos del diseño de agentes. Conferencias
dedicadas a agentes incluyen la International Conference on Autonomous Agents, la In-
ternational Workshop on Agent Theories, Architectures, and Languages, y la Interna-
tional Conference on Multiagent Systems. Finalmente, Dung Beetle Ecology (Hanski y
Cambefort, 1991) proporciona gran cantidad de información interesante sobre el com-
portamiento de los escarabajos estercoleros.
AGENTES INTELIGENTES 65
EJERCICIOS
2.1 Defina con sus propias palabras los siguientes términos: agente, función de agente,
programa de agente, racionalidad, autonomía, agente reactivo, agente basado en modelo,
agente basado en objetivos, agente basado en utilidad, agente que aprende.
2.2 Tanto la medida de rendimiento como la función de utilidad miden la eficiencia del
agente. Explique la diferencia entre los dos conceptos.
2.3 Este ejercicio explora las diferencias entre las funciones de los agentes y los programas
de los agentes.
a) ¿Puede haber más de un programa de agente que implemente una función de
agente dada? Proponga un ejemplo, o muestre por qué una no es posible.
b) ¿Hay funciones de agente que no se pueden implementar con algún programa
de agente?
c) Dada una arquitectura máquina, ¿implementa cada programa de agente exacta-
mente una función de agente?
d) Dada una arquitectura con n bits de almacenamiento, ¿cuántos posibles pro-
gramas de agente diferentes puede almacenar?
2.4 Examínese ahora la racionalidad de varias funciones de agentes aspiradora.
a) Muestre que la función de agente aspiradora descrita en la Figura 2.3 es real-
mente racional bajo la hipótesis presentada en la página 36.
b) Describa una función para un agente racional cuya medida de rendimiento mo-
dificada deduzca un punto por cada movimiento. ¿Requiere el correspondiente
programa de agente estado interno?
c) Discuta posibles diseños de agentes para los casos en los que las cuadrículas lim-
pias puedan ensuciarse y la geografía del medio sea desconocida. ¿Tiene senti-
do que el agente aprenda de su experiencia en estos casos? ¿Si es así, qué debe
aprender?
2.5 Identifique la descripción REAS que define el entorno de trabajo para cada uno de
los siguientes agentes:
a) Robot que juega al fútbol;
b) Agente para comprar libros en Internet;
c) Explorador autónomo de Marte;
d) Asistente matemático para la demostración de teoremas.
2.6 Para cada uno de los tipos de agente enumerados en el Ejercicio 2.5, caracterice el
medio de acuerdo con las propiedades dadas en la Sección 2.3, y seleccione un diseño de
agente adecuado.
Los siguientes ejercicios están relacionados con la implementación de entornos y agen-
tes para el mundo de la aspiradora.
2.7 Implemente un simulador que determine la medida de rendimiento para el entorno
del mundo de la aspiradora descrito en la Figura 2.2 y especificado en la página 36. La
implementación debe ser modular, de forma que los sensores, actuadores, y las caracte-
rísticas del entorno (tamaño, forma, localización de la suciedad, etc.) puedan modificar-
66 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
2.8 Implemente un agente reactivo simple para el entorno de la aspiradora del Ejercicio
2.7. Ejecute el simulador del entorno con este agente para todas las configuraciones ini-
ciales posibles de suciedad y posiciones del agente. Almacene la puntuación de la actua-
ción del agente para cada configuración y la puntuación media global.
2.9 Considere una versión modificada del entorno de la aspiradora del Ejercicio 2.7, en
el que se penalice al agente con un punto en cada movimiento.
a) ¿Puede un agente reactivo simple ser perfectamente racional en este medio? Ex-
plíquese.
b) ¿Qué sucedería con un agente reactivo con estado? Diseñe este agente.
c) ¿Cómo se responderían las preguntas a y b si las percepciones proporcionan al
agente información sobre el nivel de suciedad/limpieza de todas las cuadrícu-
las del entorno?
2.10 Considere una versión modificada del entorno de la aspiradora del Ejercicio 2.7,
en el que la geografía del entorno (su extensión, límites, y obstáculos) sea desconocida,
así como, la disposición inicial de la suciedad. (El agente puede ir hacia arriba, abajo, así
como, hacia la derecha y a la izquierda.)
a) ¿Puede un agente reactivo simple ser perfectamente racional en este medio? Ex-
plíquese.
b) ¿Puede un agente reactivo simple con una función de agente aleatoria superar
a un agente reactivo simple? Diseñe un agente de este tipo y medir su rendimiento
en varios medios.
c) ¿Se puede diseñar un entorno en el que el agente con la función aleatoria ob-
tenga una actuación muy pobre? Muestre los resultados.
d) ¿Puede un agente reactivo con estado mejorar los resultados de un agente reac-
tivo simple? Diseñe un agente de este tipo y medir su eficiencia en distintos me-
dios. ¿Se puede diseñar un agente racional de este tipo?
2.11 Repítase el Ejercicio 2.10 para el caso en el que el sensor de localización sea
reemplazado por un sensor «de golpes» que detecte si el agente golpea un obstáculo o si
se sale fuera de los límites del entorno. Supóngase que el sensor de golpes deja de fun-
cionar. ¿Cómo debe comportarse el agente?
2.12 Los entornos de la aspiradora en los ejercicios anteriores han sido todos determi-
nistas. Discuta posibles programas de agentes para cada una de las siguientes versiones
estocásticas:
a) Ley de Murphy: el 25 por ciento del tiempo, la acción de Aspirar falla en la lim-
pieza del suelo si está sucio y deposita suciedad en el suelo si el suelo está lim-
pio. ¿Cómo se ve afectado el agente si el sensor de suciedad da una respuesta
incorrecta el diez por ciento de las veces?
b) Niño pequeño: en cada lapso de tiempo, cada recuadro limpio tiene un diez por
ciento de posibilidad de ensuciarse. ¿Puede identificar un diseño para un agen-
te racional en este caso?
Resolver problemas
3 mediante búsqueda
Los agentes más simples discutidos en el Capítulo 2 fueron los agentes reactivos, los cua-
les basan sus acciones en una aplicación directa desde los estados a las acciones. Tales
agentes no pueden funcionar bien en entornos en los que esta aplicación sea demasiado
grande para almacenarla y que tarde mucho en aprenderla. Por otra parte, los agentes
basados en objetivos pueden tener éxito considerando las acciones futuras y lo deseable
de sus resultados.
AGENTE RESOLVENTE- Este capítulo describe una clase de agente basado en objetivos llamado agente re-
PROBLEMAS
solvente-problemas. Los agentes resolventes-problemas deciden qué hacer para en-
contrar secuencias de acciones que conduzcan a los estados deseables. Comenzamos de-
finiendo con precisión los elementos que constituyen el «problema» y su «solución», y
daremos diferentes ejemplos para ilustrar estas definiciones. Entonces, describimos
diferentes algoritmos de propósito general que podamos utilizar para resolver estos pro-
blemas y así comparar las ventajas de cada algoritmo. Los algoritmos son no informa-
dos, en el sentido que no dan información sobre el problema salvo su definición. El
Capítulo 4 se ocupa de los algoritmos de búsqueda informada, los que tengan cierta idea
de dónde buscar las soluciones.
Este capítulo utiliza los conceptos de análisis de algoritmos. Los lectores no fami-
liarizados con los conceptos de complejidad asintótica (es decir, notación O()) y la NP
completitud, debería consultar el Apéndice A.
1
Observe que cada uno de estos «estados» se corresponde realmente a un conjunto de estados del mundo,
porque un estado del mundo real especifica todos los aspectos de realidad. Es importante mantener en men-
te la distinción entre estados del problema a resolver y los estados del mundo.
2
Suponemos que la mayoría de los lectores están en la misma situación y pueden fácilmente imaginarse cómo
de desorientado está nuestro agente. Pedimos disculpas a los lectores rumanos quienes no pueden aprove-
charse de este recurso pedagógico.
RESOLVER PROBLEMAS MEDIANTE BÚSQUEDA 69
Figura 3.1 Un sencillo agente resolvente de problemas. Primero formula un objetivo y un pro-
blema, busca una secuencia de acciones que deberían resolver el problema, y entonces ejecuta las
acciones una cada vez. Cuando se ha completado, formula otro objetivo y comienza de nuevo. No-
temos que cuando se ejecuta la secuencia, se ignoran sus percepciones: se supone que la solución
encontrada trabajará bien.
70 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
neas de acción alternativas» supone que el entorno puede verse como discreto. Final-
mente, y más importante, el agente diseñado supone que el entorno es determinista.
Las soluciones a los problemas son simples secuencias de acciones, así que no pueden
manejar ningún acontecimiento inesperado; además, las soluciones se ejecutan sin
prestar atención a las percepciones. Los agentes que realizan sus planes con los ojos
cerrados, por así decirlo, deben estar absolutamente seguros de lo que pasa (los teóri-
LAZO ABIERTO cos de control lo llaman sistema de lazo abierto, porque ignorar las percepciones rom-
pe el lazo entre el agente y el entorno). Todas estas suposiciones significan que trata-
mos con las clases más fáciles de entornos, razón por la que este capítulo aparece tan
pronto en el libro. La Sección 3.6 echa una breve ojeada sobre lo que sucede cuando
relajamos las suposiciones de observancia y de determinismo. Los Capítulos 12 y 17
entran más en profundidad.
3
Una formulación alternativa utiliza un conjunto de operadores que pueden aplicarse a un estado para ge-
nerar así los sucesores.
RESOLVER PROBLEMAS MEDIANTE BÚSQUEDA 71
Oradea
71
Neamt
Zerind 87
75 151
Iasi
Arad
140
92
Sibiu Fagaras
99
118
Vaslui
80
Rimnicu Vilcea
Timisoara
142
111 Pitesti 211
Lugoj 97
70 98
85 Hirsova
Mehadia 146 101 Urziceni
75 138 86
Bucarest
Dobreta 120
90
Craiova Eforie
Giurgiu
COSTO DEL CAMINO • Una función costo del camino que asigna un costo numérico a cada camino. El
agente resolvente de problemas elige una función costo que refleje nuestra medida
de rendimiento. Para el agente que intenta llegar a Bucarest, el tiempo es esencial,
así que el costo del camino puede describirse como su longitud en kilómetros. En
este capítulo, suponemos que el costo del camino puede describirse como la suma
de los costos de las acciones individuales a lo largo del camino. El costo indivi-
COSTO INDIVIDUAL
dual de una acción a que va desde un estado x al estado y se denota por c(x,a,y).
Los costos individuales para Rumanía se muestran en la Figura 3.2 como las dis-
tancias de las carreteras. Suponemos que los costos son no negativos4.
Los elementos anteriores definen un problema y pueden unirse en una estructura de da-
tos simple que se dará como entrada al algoritmo resolvente del problema. Una solución
de un problema es un camino desde el estado inicial a un estado objetivo. La calidad de
SOLUCIÓN ÓPTIMA la solución se mide por la función costo del camino, y una solución óptima tiene el cos-
to más pequeño del camino entre todas las soluciones.
4
Las implicaciones de costos negativos se exploran en el Ejercicio 3.17.
72 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Problemas de juguete
El primer ejemplo que examinaremos es el mundo de la aspiradora, introducido en el
Capítulo 2. (Véase Figura 2.2.) Éste puede formularse como sigue:
• Estados: el agente está en una de dos localizaciones, cada una de las cuales pue-
de o no contener suciedad. Así, hay 2 22 8 posibles estados del mundo.
• Estado inicial: cualquier estado puede designarse como un estado inicial.
• Función sucesor: ésta genera los estados legales que resultan al intentar las tres
acciones (Izquierda, Derecha y Aspirar). En la Figura 3.3 se muestra el espacio
de estados completo.
• Test objetivo: comprueba si todos los cuadrados están limpios.
• Costo del camino: cada costo individual es 1, así que el costo del camino es el
número de pasos que lo compone.
Comparado con el mundo real, este problema de juguete tiene localizaciones discretas,
suciedad discreta, limpieza fiable, y nunca se ensucia una vez que se ha limpiado. ( En
la Sección 3.6 relajaremos estas suposiciones). Una cosa a tener en cuenta es que el es-
tado está determinado por la localización del agente y por las localizaciones de la su-
ciedad. Un entorno grande con n localizaciones tiene n 2n estados.
D
I D
I
A A
D D
I D I D
I I
A A
A A
D
I D
A A
Figura 3.3 Espacio de estados para el mundo de la aspiradora. Los arcos denotan las acciones: I
Izquierda, D Derecha, A Aspirar.
8-PUZZLE El 8-puzle, la Figura 3.4 muestra un ejemplo, consiste en un tablero de 3 3 con ocho
fichas numeradas y un espacio en blanco. Una ficha adyacente al espacio en blanco pue-
de deslizarse a éste. La meta es alcanzar el estado objetivo especificado, tal como se mues-
tra a la derecha de la figura. La formulación estándar es como sigue:
• Estados: la descripción de un estado especifica la localización de cada una de las
ocho fichas y el blanco en cada uno de los nueve cuadrados.
74 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
• Estado inicial: cualquier estado puede ser un estado inicial. Nótese que cualquier
objetivo puede alcanzarse desde exactamente la mitad de los estados iniciales po-
sibles (Ejercicio 3.4).
• Función sucesor: ésta genera los estados legales que resultan de aplicar las cua-
tro acciones (mover el blanco a la Izquierda, Derecha, Arriba y Abajo).
• Test objetivo: comprueba si el estado coincide con la configuración objetivo que
se muestra en la Figura 3.4. (son posibles otras configuraciones objetivo).
• Costo del camino: el costo de cada paso del camino tiene valor 1, así que el cos-
to del camino es el número de pasos.
¿Qué abstracciones se han incluido? Las acciones se han abstraído a los estados ini-
ciales y finales, ignorando las localizaciones intermedias en donde se deslizan los
bloques. Hemos abstraído acciones como la de sacudir el tablero cuando las piezas no
se pueden mover, o extraer las piezas con un cuchillo y volverlas a poner. Nos dejan con
una descripción de las reglas del puzle que evitan todos los detalles de manipulaciones
físicas.
7 2 4 1 2
5 6 3 4 5
8 3 1 6 7 8
PIEZAS DESLIZANTES El 8-puzle pertenece a la familia de puzles con piezas deslizantes, los cuales a menu-
do se usan como problemas test para los nuevos algoritmos de IA. Esta clase general
se conoce por ser NP completa, así que no esperamos encontrar métodos perceptible-
mente mejores (en el caso peor) que los algoritmos de búsqueda descritos en este
capítulo y en el siguiente. El 8-puzle tiene 9!2 181,440 estados alcanzables y se
resuelve fácilmente. El 15 puzle (sobre un tablero de 4 4) tiene alrededor de 1,3 tri-
llones de estados, y configuraciones aleatorias pueden resolverse óptimamente en pocos
milisegundos por los mejores algoritmos de búsqueda. El 24 puzle (sobre un tablero de
5 5) tiene alrededor de 1025 estados, y configuraciones aleatorias siguen siendo ab-
solutamente difíciles de resolver de manera óptima con los computadores y algoritmos
actuales.
PROBLEMA 8-REINAS
El objetivo del problema de las 8-reinas es colocar las ocho reinas en un tablero de
ajedrez de manera que cada reina no ataque a ninguna otra. (Una reina ataca alguna pie-
za si está en la misma fila, columna o diagonal.) La Figura 3.5 muestra una configura-
ción que no es solución: la reina en la columna de más a la derecha está atacando a la
reina de arriba a la izquierda.
RESOLVER PROBLEMAS MEDIANTE BÚSQUEDA 75
Figura 3.5 Casi una solución del problema de las 8-reinas. (La solución se deja como ejercicio.)
Aunque existen algoritmos eficientes específicos para este problema y para el problema
general de las n reinas, sigue siendo un problema test interesante para los algoritmos de
FORMULACIÓN búsqueda. Existen dos principales formulaciones. Una formulación incremental que im-
INCREMENTAL
plica a operadores que aumentan la descripción del estado, comenzando con un estado
FORMULACIÓN
vacío; para el problema de las 8-reinas, esto significa que cada acción añade una reina
COMPLETA DE al estado. Una formulación completa de estados comienza con las ocho reinas en el
ESTADOS
tablero y las mueve. En cualquier caso, el coste del camino no tiene ningún interés porque
solamente cuenta el estado final. La primera formulación incremental que se puede
intentar es la siguiente:
• Estados: cualquier combinación de cero a ocho reinas en el tablero es un estado.
• Estado inicial: ninguna reina sobre el tablero.
• Función sucesor: añadir una reina a cualquier cuadrado vacío.
• Test objetivo: ocho reinas sobre el tablero, ninguna es atacada.
En esta formulación, tenemos 64 63 57 3 1014 posibles combinaciones a in-
vestigar. Una mejor formulación deberá prohibir colocar una reina en cualquier cuadra-
do que esté realmente atacado:
• Estados: son estados, la combinación de n reinas (0 n 8), una por columna
desde la columna más a la izquierda, sin que una reina ataque a otra.
• Función sucesor: añadir una reina en cualquier cuadrado en la columna más a la
izquierda vacía tal que no sea atacada por cualquier otra reina.
Esta formulación reduce el espacio de estados de las 8-reinas de 3 1014 a 2.057, y las
soluciones son fáciles de encontrar. Por otra parte, para 100 reinas la formulación ini-
cial tiene 10400 estados mientras que las formulaciones mejoradas tienen cerca de 1052
estados (Ejercicio 3.5). Ésta es una reducción enorme, pero el espacio de estados mejo-
rado sigue siendo demasiado grande para los algoritmos de este capítulo. El Capítulo 4
76 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Figura 3.6 Árboles de búsqueda parciales para encontrar una ruta desde Arad hasta Bucarest. Se
sombrean los nodos que se han expandido; los nodos que se han generado pero todavía no se han
expandido se rodean en negrita; los nodos que todavía no se han generado se marcan con líneas
discontinuas.
configuración del mundo. Así, los nodos están en caminos particulares, según lo defi-
nido por los punteros del nodo padre, mientras que los estados no lo están. En la Figu-
ra 3.8 se representa la estructura de datos del nodo.
También necesitamos representar la colección de nodos que se han generado pero
FRONTERA todavía no se han expandido – a esta colección se le llama frontera. Cada elemento de
80 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
NODO-PADRE
Figura 3.8 Los nodos son estructuras de datos a partir de los cuales se construye el árbol de bús-
queda. Cada uno tiene un padre, un estado y varios campos. Las flechas señalan del hijo al padre.
NODO HOJA la frontera es un nodo hoja, es decir, un nodo sin sucesores en el árbol. En la Figura 3.6,
la frontera de cada árbol consiste en los nodos dibujados con líneas discontinuas. La re-
presentació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 ex-
pandir. Aunque esto sea conceptualmente sencillo, podría ser computacionalmente cos-
toso, 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 im-
COLA plementa como una cola. Las operaciones en una cola son como siguen:
— HACER-COLA(elemento, …) crea una cola con el(los) elemento(s) dado(s).
— VACIA?(cola) devuelve verdadero si no hay ningún elemento en la cola.
— PRIMERO(cola) devuelve el primer elemento de la cola.
— BORRAR-PRIMERO(cola) devuelve PRIMERO(cola) y lo borra de la cola.
— INSERTA(elemento,cola) inserta un elemento en la cola y devuelve la cola resul-
tado. (Veremos que tipos diferentes de colas insertan los elementos en órdenes
diferentes.)
— INSERTAR-TODO(elementos,cola) inserta un conjunto de elementos en la cola y de-
vuelve la cola resultado.
Con estas definiciones, podemos escribir una versión más formal del algoritmo general
de búsqueda en árboles. Se muestra en la Figura 3.9.
Figura 3.9 Algoritmo general de búsqueda en árboles. (Notemos que el argumento frontera pue-
de ser una cola vacía, y el tipo de cola afectará al orden de la búsqueda.) La función SOLUCIÓN de-
vuelve la secuencia de acciones obtenida de la forma punteros al padre hasta la raíz.
5
Algunos textos miden el tiempo en términos del número de las expansiones del nodo. Las dos medidas se
diferencian como mucho en un factor b. A nosotros nos parece que el tiempo de ejecución de la expansión
del nodo aumenta con el número de nodos generados en esa expansión.
82 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
COSTE TOTAL cluir también un término para el uso de la memoria) o podemos utilizar el coste total,
que combina el costo de la búsqueda y el costo del camino solución encontrado. Para el
problema de encontrar una ruta desde Arad hasta Bucarest, el costo de la búsqueda es
la cantidad de tiempo que ha necesitado la búsqueda y el costo de la solución es la lon-
gitud total en kilómetros del camino. Así, para el cálculo del coste total, tenemos que
sumar kilómetros y milisegundos. No hay ninguna conversión entre los dos, pero quizá
sea razonable, en este caso, convertir kilómetros en milisegundos utilizando una esti-
mación de la velocidad media de un coche (debido a que el tiempo es lo que cuida el
agente.) Esto permite al agente encontrar un punto óptimo de intercambio en el cual el
cálculo adicional para encontrar que un camino más corto llegue a ser contraproducen-
te. El problema más general de intercambios entre bienes diferentes será tratado en el
Capítulo 16.
A A A A
B C B C B C B C
D E F G D E F G D E F G D E F G
Figura 3.10 Búsqueda primero en anchura sobre un árbol binario sencillo. En cada etapa, el pró-
ximo nodo a expandir se indica con una marca.
Figura 3.11 Requisitos de tiempo y espacio para la búsqueda primero en anchura. Los nú-
meros que se muestran suponen un factor de ramificación b 10; 10.000 nodos/segundo; 1.000
bytes/nodo.
84 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
dad d de la solución. La tabla supone que se pueden generar 10.000 nodos por segundo
y que un nodo requiere 1.000 bytes para almacenarlo. Muchos problemas de búsqueda
quedan aproximadamente dentro de estas suposiciones (más o menos un factor de 100)
cuando se ejecuta en un computador personal moderno.
Hay dos lecciones que debemos aprender de la Figura 3.11. Primero, son un problema
más grande los requisitos de memoria para la búsqueda primero en anchura que el tiem-
po de ejecución. 31 horas no sería demasiado esperar para la solución de un problema
importante a profundidad ocho, pero pocos computadores tienen suficientes terabytes
de memoria principal que lo admitieran. Afortunadamente, hay otras estrategias de bús-
queda que requieren menos memoria.
La segunda lección es que los requisitos de tiempo son todavía un factor importan-
te. Si su problema tiene una solución a profundidad 12, entonces (dadas nuestras supo-
siciones) llevará 35 años encontrarla por la búsqueda primero en anchura (o realmente
alguna búsqueda sin información). En general, los problemas de búsqueda de comple-
jidad-exponencial no pueden resolverse por métodos sin información, salvo casos pe-
queños.
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
Figura 3.12 Búsqueda primero en profundidad sobre un árbol binario. Los nodos que se han ex-
pandido y no tienen descendientes en la frontera se pueden quitar de la memoria; estos se muestran
en negro. Los nodos a profundidad 3 se suponen que no tienen sucesores y M es el nodo objetivo.
86 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
de m es la profundidad máxima de cualquier nodo. Nótese que m puede ser mucho más
grande que d (la profundidad de la solución más superficial), y es infinito si el árbol es
ilimitado.
Figura 3.14 Algoritmo de búsqueda de profundidad iterativa, el cual aplica repetidamente la bús-
queda de profundidad limitada incrementando el límite. Termina cuando se encuentra una solución
o si la búsqueda de profundidad limitada devuelve fracaso, significando que no existe solución.
son muy modestas: O(bd) para ser exacto. La búsqueda primero en anchura, es completa
cuando el factor de ramificación es finito y óptima cuando el coste del camino es una
función que no disminuye con la profundidad del nodo. La Figura 3.15 muestra cuatro
iteraciones de la BÚSQUEDA-PROFUNDIDAD-ITERATIVA sobre un árbol binario de búsque-
da, donde la solución se encuentra en la cuarta iteración.
La búsqueda de profundidad iterativa puede parecer derrochadora, porque los esta-
dos se generan múltiples veces. Pero esto no es muy costoso. La razón es que en un ár-
bol de búsqueda con el mismo (o casi el mismo) factor de ramificación en cada nivel, la
mayor parte de los nodos está en el nivel inferior, entonces no importa mucho que los
niveles superiores se generen múltiples veces. En una búsqueda de profundidad iterati-
va, los nodos sobre el nivel inferior (profundidad d ) son generados una vez, los ante-
riores al nivel inferior son generados dos veces, etc., hasta los hijos de la raíz, que son
generados d veces. Entonces el número total de nodos generados es
N(BPI) (d )b (d 1)b2 ... (1)bd,
que da una complejidad en tiempo de O(bd). Podemos compararlo con los nodos gene-
rados por una búsqueda primero en anchura:
N(BPA) b b2 ... bd (bd1 b).
Notemos que la búsqueda primero en anchura genera algunos nodos en profundidad
d 1, mientras que la profundidad iterativa no lo hace. El resultado es que la profun-
didad iterativa es en realidad más rápida que la búsqueda primero en anchura, a pesar
de la generación repetida de estados. Por ejemplo, si b 10 y d 5, los números son
N(BPI) 50 400 3.000 20.000 100.000 123.450
N(BPA) 10 100 1.000 10.000 100.000 999.990 1.111.100
En general, la profundidad iterativa es el método de búsqueda no informada preferido cuan-
do hay un espacio grande de búsqueda y no se conoce la profundidad de la solución.
La búsqueda de profundidad iterativa es análoga a la búsqueda primero en anchura
en la cual se explora, en cada iteración, una capa completa de nuevos nodos antes de con-
tinuar con la siguiente capa. Parecería que vale la pena desarrollar una búsqueda itera-
tiva análoga a la búsqueda de coste uniforme, heredando las garantías de optimización
del algoritmo evitando sus exigencias de memoria. La idea es usar límites crecientes de
costo del camino en vez de aumentar límites de profundidad. El algoritmo que resulta,
RESOLVER PROBLEMAS MEDIANTE BÚSQUEDA 89
Límite 0 A
Límite 1 A A A
B C B C C
Límite 2 A A A A
B C B C B C B C
D E F G D E F G D E F G D E F G
A A A A
B C B C B C B C
D E F G D E F G D E F G D E F G
A A A A
Límite 3
B C B C B C B C
D E F G D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O
A A A A
B C B C B C B C
D E F G D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O
A A A A
B C B C B C B C
D E F G D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O
Figura 3.15 Cuatro iteraciones de la búsqueda de profundidad iterativa sobre un árbol binario.
BÚSQUEDA DE llamado búsqueda de longitud iterativa, se explora en el Ejercicio 3.11. Resulta, la-
LONGITUD ITERATIVA
mentablemente, que la longitud iterativa incurre en gastos indirectos sustanciales com-
parado con la búsqueda de coste uniforme.
Búsqueda bidireccional
La idea de la búsqueda bidireccional es ejecutar dos búsquedas simultáneas: una hacia
delante desde el estado inicial y la otra hacia atrás desde el objetivo, parando cuando las
dos búsquedas se encuentren en el centro (Figura 3.16). La motivación es que bd2 bd2
es mucho menor que bd, o en la figura, el área de los dos círculos pequeños es menor
que el área de un círculo grande centrado en el inicio y que alcance al objetivo.
La búsqueda bidireccional se implementa teniendo una o dos búsquedas que com-
prueban antes de ser expandido si cada nodo está en la frontera del otro árbol de bús-
90 INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
Inicio Objetivo
Figura 3.16 Un esquema de una búsqueda bidireccional que está a punto de tener éxito, cuando
una rama desde el nodo inicio encuentra una rama desde el nodo objetivo.
queda; si esto ocurre, se ha encontrado una solución. Por ejemplo, si un problema tiene
una solución a profundidad d 6, y en cada dirección se ejecuta la búsqueda primero
en anchura, entonces, en el caso peor, las dos búsquedas se encuentran cuando se han
expandido todos los nodos excepto uno a profundidad 3. Para b 10, esto significa un
total de 22.200 nodos generados, comparado con 11.111.100 para una búsqueda prime-
ro en anchura estándar. Verificar que un nodo pertenece al otro árbol de búsqueda se puede
hacer en un tiempo constante con una tabla hash, así que la complejidad en tiempo de
la búsqueda bidireccional es O(bd2). Por lo menos uno de los árboles de búsqueda se
debe mantener en memoria para que se pueda hacer la comprobación de pertenencia, de
ahí que la complejidad en espacio es también O(bd2). Este requerimiento de espacio es
la debilidad más significativa de la búsqueda bidireccional. El algoritmo es completo y
óptimo (para costos uniformes) si las búsquedas son primero en anchura; otras combi-
naciones pueden sacrificar la completitud, optimización, o ambas.
La reducción de complejidad en tiempo hace a la búsqueda bidireccional atractiva,
PREDECESORES pero ¿cómo busca hacia atrás? Esto no es tan fácil como suena. Sean los predecesores
de un nodo n, Pred(n), todos los nodos que tienen como un sucesor a n. La búsqueda bi-
direccional requiere que Pred(n) se calcule eficientemente. El caso más fácil es cuando
todas las acciones en el espacio de estados son reversibles, así que Pred(n) Succ(n).
Otro caso puede requerir ser ingenioso.
Consideremos la pregunta de qué queremos decir con «el objetivo» en la búsqueda
«hacia atrás». Para el 8-puzle y para encontrar un camino en Rumanía, hay solamente
un estado objetivo, entonces la búsqueda hacia atrás se parece muchísimo a la búsque-
da hacia delante. Si hay varios estados objetivo explícitamente catalogados (por ejem-
plo, los dos estados objetivo sin suciedad de la Figura 3.3) podemos construir un nuevo
estado objetivo ficticio cuyos predecesores inmediatos son todos los estados objetivo
reales. Alternativamente, algunos nodos generados redundantes se pueden evitar vien-
RESOLVER PROBLEMAS MEDIANTE BÚSQUEDA 91
do el conjunto de estados objetivo como uno solo, cada uno de cuyos predecesores es
también un conjunto de estados (específicamente, el conjunto de estados que tienen a
un sucesor en el conjunto de estados objetivo. Véase también la Sección 3.6).
El caso más difícil para la búsqueda bidireccional es cuando el test objetivo da sólo
una descripción implícita de algún conjunto posiblemente grande de estados objetivo,
por ejemplo, todos los estados que satisfacen el test objetivo «jaque mate» en el aje-
drez. Una búsqueda hacia atrás necesitaría construir las descripciones de «todos los es-
tados que llevan al jaque mate al mover m1», etcétera; y esas descripciones tendrían que
ser probadas de nuevo con los estados generados en la búsqueda hacia delante. No hay
ninguna manera general de hacer esto eficientemente.
INTRODUCCIÓN A LA
COMPUTACIÓN NEURONAL
1
1.1. Introducción
1.2. Características de las Redes Neuronales Artificiales
1.3. Estructura Básica de una Red Neuronal
1.4. Computación Tradicional y Computación Neuronal
1.5. Historia de la Computación Neuronal
1.6. Aplicaciones de las Redes Neuronales Artificiales
1.7. Implementación y Tecnologías Emergentes
1.1.- INTRODUCCIÓN
El resurgimiento del interés en esta nueva forma de realizar los cálculos tras dos
décadas de olvido se debe al extraordinario avance y éxito tanto en el aspecto teórico
como de aplicación que se está obteniendo estos últimos años.
Las Redes Neuronales Artificiales, ANN (Artificial Neural Networks) están inspiradas
en las redes neuronales biológicas del cerebro humano. Están constituidas por
elementos que se comportan de forma similar a la neurona biológica en sus funciones
más comunes. Estos elementos están organizados de una forma parecida a la que
presenta el cerebro humano.
Aprender: adquirir el conocimiento de una cosa por medio del estudio, ejercicio
o experiencia. Las ANN pueden cambiar su comportamiento en función del entorno. Se
les muestra un conjunto de entradas y ellas mismas se ajustan para producir unas salidas
consistentes.
La salida del PE se puede conectar a las entradas de otras neuronas artificiales (PE)
mediante conexiones ponderadas correspondientes a la eficacia de la sinapsis de las
conexiones neuronales.
Existen dos capas con conexiones con el mundo exterior. Una capa de entrada, buffer de
entrada, donde se presentan los datos a la red, y una capa buffer de salida que mantiene
la respuesta de la red a una entrada. El resto de las capas reciben el nombre de capas
ocultas. La Figura (1.3) muestra el aspecto de una Red Neuronal Artificial.
Programación/Entrenamiento.-
Arquitectura.-
Sistemas Expertos.-
Algunas ANN presentan la característica de ser "asociativas" que significa que para una
entrada parcial la red elegirá la entrada más parecida en memoria y generará una salida
que corresponda a la entrada completa.
Esta característica se debe a que las ANN tienen la información distribuida a lo largo de
toda la red y no está contenida en un único lugar.
Nathaural Rochester del equipo de investigación de IBM presentó el modelo de una red
neuronal que él mismo realizó y puede considerarse como el primer software de
simulación de redes neuronales artificiales.
En 1982 John Hopfield con la publicación del artículo Hopfield Model o Crossbar
Associative Network, junto con la invención del algoritmo Backpropagation se
consiguió devolver el interés y la confianza en el fascinante campo de la computación
neuronal tras dos décadas de casi absoluta inactividad y desinterés.
Existen muchos grupos con sede en diferentes universidades de todo el mundo que están
realizando trabajos de investigación en el área de las redes neuronales artificiales. Cada
grupo tiene diferente énfasis y motivación con los neurólogos, psicólogos del
conocimiento, físicos, programadores y matemáticos. Todos ellos ofrecen nuevos
puntos de vista e intuiciones en esta área de la técnica.
grupos de investigación de los últimos años ha sido el grupo PDP (Parallel Distributed
Processing) formado por Rumelhart, McClelland y Hinton.
Bart Kosko ha diseñado una red llamada BAM (Bidirectional Associate Memory)
basado en la red de Grossberg. Por último indicar la existencia de grandes grupos de
investigación como los de California Institute of Technology, Massachussets Institute of
Technology, University of California Berkeley y University of California San Diego.
Conviene no olvidar el esfuerzo económico y técnico que están realizando las empresas
privadas tanto en USA como en Japón y en la Comunidad Económica Europea. Como
botón de muestra de las inversiones en estos países baste conocer que sólo en USA se
gasta más de 100 millones de dólares al año.
Las características especiales de los sistemas de computación neuronal permiten que sea
utilizada esta nueva técnica de cálculo en una extensa variedad de aplicaciones.
Filtro de Ruido: las ANN también pueden ser utilizadas para eliminar el ruido
de una señal. Estas redes son capaces de mantener en un alto grado las estructuras y
valores de los filtros tradicionales.
Simuladores Software: constituyen una de las formas más versátiles con las que
se pueden implementar redes neuronales. Estos programas constituyen todo un sistema
de desarrollo y realización de prototipos de redes neuronales. Estos programas se
utilizan para diseñar, construir, entrenar y probar redes neuronales artificiales para
resolver problemas complejos y problemas del mundo real.
Robert Hecht-Nielsen desarrolló el acelerador hardware Mark III que constaba de 8100
procesadores y trabajaba como un periférico de un VAX. La mayoría de las casas
comerciales dedicadas al diseño de las ANN han desarrollado diferentes tarjetas basadas
en los diferentes procesadores existentes, diseñadas para trabajar en el entorno de un
ordenador personal PC y presentando un progresivo ratio de actualizaciones de
interconexiones por segundo.
2
2.1. El Prototipo Biológico
2.2. La Neurona Artificial
2.3. Redes Neuronales Artificiales de una capa y Multicapa
2.4. Entrenamiento de las Redes Neuronales Artificiales
Las diferentes configuraciones y algoritmos que se diseñan para las redes neuronales
artificiales están inspiradas en la organización del complejo sistema neuronal del
cerebro humano. No obstante conviene aclarar que esta inspiración no supone que las
ANN lleguen a emular al cerebro como algunos optimistas lo desean ya que entre otras
limitaciones el conocimiento sobre el modo de funcionamiento y comportamiento del
cerebro es bastante simple y reducido. De hecho los diseñadores de redes artificiales van
más lejos del conocimiento biológico actual y prueban nuevas estructuras que presentan
un comportamiento adecuado y útil.
El sistema nervioso humano constituido por células llamadas neuronas presenta una
estructura muy compleja. El número estimado de neuronas es de 1011 y las
interconexiones entre ellas son del orden de 1015 .
Cada neurona comparte muchas características con otras células del cuerpo humano
pero tiene propiedades particulares y especiales para recibir, procesar y transmitir
señales electroquímicas a través de todas las interconexiones del sistema de
comunicación del cerebro.
estas entradas son dirigidas al núcleo donde se suman. Algunas de las entradas tienden a
excitar a la célula y otras sin embargo tienden a inhibir la célula. Cuando la excitación
acumulada supera un valor umbral, las neuronas envían una señal a través del axón a
otras neuronas.
La neurona artificial fue diseñada para "emular" las características del funcionamiento
básico de la neurona biológica. En esencia, se aplica un conjunto de entradas a la
neurona, cada una de las cuales representa una salida de otra neurona. Cada entrada se
multiplica por su "peso" o ponderación correspondiente análogo al grado de conexión
de la sinapsis. Todas las entradas ponderadas se suman y se determina el nivel de
excitación o activación de la neurona. Una representación vectorial del funcionamiento
básico de una neurona artificial se indica según la siguiente expresión de la ecuación
(2.1).
Normalmente la señal de salida NET suele ser procesada por una función de activación
F para producir la señal de salida de la neurona OUT. La función F puede ser una
función lineal, o una función umbral o una función no lineal que simula con mayor
exactitud las características de transferencia no lineales de las neuronas biológicas.
La Figura (2.2) representa una neurona artificial con una función de activación F.
Este tipo de modelo de neurona artificial ignora muchas de las características de las
neuronas biológicas. Entre ellas destaca la omisión de retardos y de sincronismo en la
generación de la salida. No obstante, a pesar de estas limitaciones las redes construidas
con este tipo de neurona artificial presentan cualidades y atributos con cierta similitud a
la de los sistemas biológicos.
La red más simple es un grupo de neuronas ordenadas en una capa como se muestra en
la Figura (2.3). Los nodos circulares sólo son distribuidores de las entradas y no se
consideran constituyentes de una capa.
Cada una de las entradas está conectada a través de su peso correspondiente a cada
neurona artificial. En la práctica existen conexiones eliminadas e incluso conexiones
entre las salidas y entradas de las neuronas de una capa. No obstante la figura muestra
una conectividad total por razones de generalización.
Normalmente las redes más complejas y más grandes ofrecen mejores prestaciones en el
cálculo computacional que las redes simples. Las configuraciones de las redes
construidas presentan aspectos muy diferentes pero tienen un aspecto común, el
ordenamiento de las neuronas en capas o niveles imitando la estructura de capas que
presenta el cerebro en algunas partes.
Las redes multicapa se forman con un grupo de capas simples en cascada. La salida de
una capa es la entrada de la siguiente capa. Se ha demostrado que las redes multicapa
presentan cualidades y aspectos por encima de las redes de una capa simple. La Figura
(2.4) muestra una red de dos capas.
Los sistemas no supervisados son modelos de aprendizaje más lógicos en los sistemas
biológicos. Desarrollados por Kohonen (1984) y otros investigadores, estos sistemas de
aprendizaje no supervisado no requieren de un vector de salidas deseadas y por tanto no
se realizan comparaciones entre las salidas reales y salidas esperadas. El conjunto de
Existe una gran variedad de algoritmos de entrenamiento hoy en día. La gran mayoría
de ellos han surgido de la evolución del modelo de aprendizaje no supervisado que
propuso Hebb (1949). El modelo propuesto por Hebb se caracteriza por incrementar el
valor del peso de la conexión si las dos neuronas unidas son activadas o disparadas. La
ley de Hebb se representa según la ecuación (2.2).