You are on page 1of 37

Curso:

Inteligencia Articial
Unidad III:
Solucin de problemas por bsqueda
M. en I.A. Daniel Alejandro Garca Lpez
19 de enero de 2009
Resumen
La resolucin de problemas se describe a menudo como una bsqueda en un enorme laberinto de posibili-
dades, un laberinto que describe el entorno. Para resolver existosamente un problema se requiere explorar
el laberinto de forma selectiva y con ello reducirlo a proporciones manejables. Las mquinas an no pueden
reducir automticamente los problemas a proporciones manejables, es por ello que los seres humanos tienen
que formular los problemas y proponer estrategias para encontrar su solucin.
En esta unidad se tratar temas relacionados con la bsqueda en el espacio de estados(que es como
el laberinto de posibilidades). En algunos tipos de problemas lo importante es encontrar una solucin,
aunque esta no sea la mejor debe ser una solucin aceptable, en otros casos es necesario encontrar el
camino que nos lleva a esa solucin. De manera general, cualquiera de las estrategias de bsqueda que se
tratan en esta unidad pueden resolver ambos requisitos, slo se requieren pequeos ajustes en sus mtodos
generales.
La mayora de las estrategias de bsqueda que son tratadas en esta unidad son enfocadas a ejemplos
para maximizar la comprensin de las tcnicas y de esta manera pueda ser llevarlo rpidamente a la
implementacin.
Las estrategias de bsqueda clsicas que se abordarn son: bsqueda en profundidad, bsqueda en
amplitud, bsqueda con retroceso, bsqueda primero el mejor y A*, adems de Minimax.
ndice general
ndice de Tablas II
ndice de Figuras III
1. Introduccin 1
2. Formulacin y resolucin de problemas. 4
2.1. Denicin formal del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Anlisis del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Problemas de juego y problemas reales. 8
3.1. Problemas de juguete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Problemas del mundo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Bsqueda en profundidad 11
4.1. Evaluacin de una bsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2. La tcnica de bsqueda primero en profundidad . . . . . . . . . . . . . . . . . . . . . . . . 12
5. Bsqueda en amplitud 16
5.1. La tcnica de bsqueda primero en amplitud . . . . . . . . . . . . . . . . . . . . . . . . . 16
6. Bsqueda con retroceso(Backtracking) 18
6.1. La tcnica de bsqueda con retroceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7. Bsqueda primero el mejor 20
7.1. La tcnica de bsqueda primero el mejor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8. Bsqueda A* 23
8.1. La tcnica de bsqueda A-Estrella(A*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9. Bsqueda Minimax 25
9.1. La tcnica de bsqueda Minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Conclusin 27
Apndices 29
i
ndice de Tablas
4.1. Distancias aproximadas entre terminales de la lnea ADO-GL R . . . . . . . . . . . . . . . 12
9.1. Tabla comparativa de estrategias de bsqueda en espacios de estados . . . . . . . . . . . . 27
9.2. Tabla de las posibles combinaciones de tres objetos . . . . . . . . . . . . . . . . . . . . . . 31
ii
ndice de guras
1.1. Plano de casa del problema de las llaves perdidas . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Grafo del camino solucin para encontrar las llaves perdidas . . . . . . . . . . . . . . . . . . . 2
4.1. Rutas de la lnea de autobuses ADO-GL R . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2. rbol parcial de rutas de ADO-GL R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3. Representacin de la estructura de pila del problema del agente de viajes . . . . . . . . . . . . . 14
4.4. Representacin de la estructura de pila del problema del agente de viajes al agregar los estados
sucesores de la terminal Salina Cruz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.5. Continuacin de la representacin de la estructura de pila del problema del agente de viaje para
llegar a Ciudad Reynosa, este procedimiento puede seguir el camino que se muestra en la gura 4.2 15
5.1. Representacin de la estructura de cola del problema del agente de viajes . . . . . . . . . . . . 17
5.2. Representacin de la estructura de cola del problema del agente de viajes al agregar los estados
sucesores de la terminal Salina Cruz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3. Continuacin de la representacin de la estructura de cola del problema del agente de viaje para
llegar a Ciudad Reynosa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.1. Representacin de la estructura de rbol para solucin por bsqueda con retroceso . . . . . . . . 19
7.1. Representacin de la estructura de cola con prioridad del problema del agente de viajes . . . . . 21
7.2. Representacin de la estructura de cola con prioridad del problema del agente de viajes al agregar
los estados sucesores de la terminal Salina Cruz . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.3. Continuacin de la representacin de la estructura de cola con prioridad del problema del agente
de viaje para llegar a Ciudad Reynosa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.1. Representacin de la estructura de cola con prioridad del problema del agente de viajes para la
estrategia A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.2. Representacin de la estructura de cola con prioridad del problema del agente de viajes al agregar
los estados sucesores de la terminal Salina Cruz para la estrategia A* . . . . . . . . . . . . . . 24
8.3. Continuacin de la representacin de la estructura de cola con prioridad del problema del agente
de viaje para llegar a Ciudad Reynosa para la estrategia A* . . . . . . . . . . . . . . . . . . . 24
9.1. Un rbol de juegos de dos capas. Los nodos son nodos MAX, en los que le toca mover a MAX,
y los nodos son nodos MIN. Los nodos terminales muestran los valores de utilidad para MAX;
los otros nodos son etiquetados por sus valores minimax. El mejor movimiento de MAX en la raz
es a1, porque conduce al sucesor con el valor minimax ms alto, y la mejor respuesta de MIN es
b1 , porque conduce al sucesor con el valor minimax ms bajo. . . . . . . . . . . . . . . . . 26
iii
Seccin 1
Introduccin
La resolucin de problemas es fundamental para la mayora de las aplicaciones de Inteligencia Arti-
cial(IA). De hecho, la capacidad de resolver problemas suele usarse como una medida de la inteligencia
tanto para el ser humano como para la computadora. Hay principalmente dos clases de problemas. Una
primera clase puede ser resuelta usando algn tipo de procedimiento determinista cuyo xito est garanti-
zado. A este procedimiento se le llama de computacin. La resolucin por computacin normalmente slo
se aplica a aquellos tipos de problemas para los que existan tales procedimientos, como en matemticas.
Se puede con frecuencia traducir los mtodos usados para resolver estos problemas de manera fcil, a un
algoritmo que pueda ser ejecutado por una computadora. No obstante, a pesar de que pocos problemas
reales se prestan a soluciones computables, deben ser situados en la segunda categora, que consiste en
problemas que se resuelven con la bsqueda de una solucin. Este es el mtodo de resolucin de problemas
del que se preocupa la IA.
Figura 1.1: Plano de casa del problema de las llaves perdidas
Por ejemplo, imagine que ha perdido las llaves de su coche. Sabe que estn en algn lugar de la casa,
cuyo plano esta en la gura 1.1
La X indica que usted est en la puerta principal. Al empezar su bsqueda primero comprueba la
sala de estar. Luego va por el saln hacia el primer dormitorio, despus vuelve al saln y va al segundo
dormitorio, y vuele de nuevo al saln para ir al dormitorio principal. Como an no ha encontrado las
llaves, vuelve hacia atrs pasando por la sala de estar hacia la cocina, donde encontrar sus llaves. La
gura 1.2 presenta un grafo del camino que se ha seguido.
El hecho de que pueda representar la solucin a esta clase de problemas en forma de grafos es importante
1
Figura 1.2: Grafo del camino solucin para encontrar las llaves perdidas
porque le ofrece una forma sencilla de observar cmo funcionan las diferentes tcnicas de bsqueda [6].
Para entender este tema es necesario tener presente las siguientes deniciones:
Un estado es la representacin de un problema en un instante dado. Para denir el espacio de
estados o espacio de bsqueda(El conjunto de todos los nodos) no es necesario hacer una exhaustiva
enumeracin de todos los estado vlidos, sino que es posible denirlo de manera ms general.
El estado inicial consiste en uno o varios estados en los que puede comenzar el problema. El estado
objetivo o estado meta consiste en uno o varios estados nales que se consideran solucin aceptable.
Las reglas describen las acciones u operadores que posibilitan un pasaje de estados. Podramos decir
que una regla tiene una parte izquierda y una derecha. La parte izquierda determina la aplicabilidad de
la regla, es decir, describe los estados a los que puede aplicarse la regla. La parte derecha describe la
operacin que se lleva a cabo si se aplica la regla(accin).
La heurstica es la informacin acerca de la posibilidad de que un nodo especco sea mejor para
intentar la prxima eleccin que cualquier otro nodo.
El camino solucin es el grafo dirigido de los nodos visitados que nos llevan a la solucin.
Por ejemplo, en el problema de jugar al ajedrez:
Espacio de estados: La totalidad de tableros que se pueden generar en un juego de ajedrez;
Estado Inicial: Puede ser el tablero de 8 x 8 donde cada cuadro contiene un smbolo(p.ej.

corre-
sponde a Torre) de acuerdo a las piezas situadas.
Objetivo o estado nal: Cualquier posicin de tablero en la que el contrario no puede realizar ningn
movimiento legal y su rey est amenazado;
Reglas: Son los movimientos legales, que pueden describirse mediante una parte patrn para ser
contrastado con la posicin actual del tablero y otra parte que describe el cambio que debe producirse
en el tablero. Dado que escribir todas las posiciones del tablero, las reglas deben escribirse de manera
ms general posible.
Heurstica: Podemos elegir tableros en donde el contrincante tenga el menor nmero de piezas
desplegadas.
Camino solucin: El conjunto de movimientos para llegar al estado nal.
La bsqueda de una solucin no es tan simple como empezar en el principio y seguir su camino hasta
su conclusin. En un caso extremadamente simple de las llaves perdidas, este mtodo de bsqueda es una
buena manera de llevarlo a cabo. No obstante, en la mayora de los problemas en los que quiera usar
una computadora para hallar la solucin, la situacin es diferente. Generalmente, usar una computadora
para resolver problemas en los que le nmero de nodos en el espacio de bsqueda sea muy grande y, como
2
el espacio de bsqueda va creciendo, de igual modo se incrementarn el nmero de diferentes caminos
posibles hasta la meta. El problema estriba en que cada nodo aadido al espacio de bsqueda aade ms
de un camino; por lo que el nmero de caminos hasta la meta se incrementar rpidamente con cada
nuevo nodo(para mejor explicacin vase Explosin combinatoria en el anexo ).
Debido a que el nmero de posibilidades crece tan rpidamente, tan slo los problemas ms simples
se prestan a bsquedas exhaustivas( Una bsqueda exhaustiva examina todos los nodos). Mientras que la
tcnica exhaustiva, o de fuerza bruta, tericamente siempre funciona, normalmente no es prctica porque
consume o demasiado tiempo o demasiado recursos de computacin, e incluso ambos. Por esa razn, otras
tcnicas de bsqueda han sido desarrolladas.
En la primera seccin veremos los puntos bsicos para formular y resolver problemas relacionados con
la Inteligencia Articial. Continuaremos con algunos problemas de juego con los cuales se han probado la
eciencia y ecacia de diversos algoritmos de IA, as como tambin algunos problemas reales en los que
se haya aplicado las tcnicas de bsqueda en IA. En las siguientes seis secciones veremos las principales
tcnicas de bsqueda informada y no informada que existen en la literatura. En la ltima seccin se dar
una breve conclusin de la unidad.
3
Seccin 2
Formulacin y resolucin de
problemas.
Para construir un sistema de computacin que resuelva un problema especco, es necesario:
Denir el problema formalmente con precisin.
Analizar el problema.
Representar el conocimiento necesario para resolver el problema.
Elegir una tcnica de resolucin del problema y aplicarla.
2.1. Denicin formal del problema
El primer paso para disear un programa que resuelva un problema es crear una descripcin formal
y manejable del propio problema. Sera adecuado contar con programas que produzcan descripciones
formales a partir de descripciones informales, proceso denominado operacionalizacin. Dado que por ahora
no se conoce la forma de construir estos programas este proceso debe hacerse manualmente.
Hay problemas que por ser articiales y estructurados son fciles de especicar (por ej. el ajedrez,
el problema de las jarras de agua, etc. ). Otros problemas naturales, como por ej. la comprensin del
lenguaje, no son tan sencillos de especicar(vase seccin 3).
Para producir una especicacin formal de un problema se deben denir:
espacio de estados vlidos.
estado inicial del problema.
estado objetivo o nal.
reglas que se pueden aplicar para pasar de un estado a otro.
La representacin como espacio de estados forma parte de la mayora de los mtodos de Inteligencia
Articial(IA)[7]. Su estructura se corresponde con la resolucin de problemas porque:
Permite denir formalmente el problema, mediante la necesidad de convertir una situacin dada en
una situacin deseada mediante un conjunto de operaciones permitidas;
Permite denir el proceso de resolucin de un problema como una combinacin de tcnicas conocidas
y bsqueda(la tcnica general de exploracin del espacio intenta encontrar alguna ruta desde el estado
actual hasta un estado objetivo).
4
2.2. Anlisis del problema
Luego de denir el problema formalmente, el segundo paso en la resolucin del problema es el anlisis
del mismo. A n de poder elegir el mtodo ms apropiado para resolver un problema particular, es
necesario analizar distintas cuestiones que afectan a la denicin del mismo y a las caracterticas de la
solucin deseada. Existen varias preguntas a responder acerca del problema:
Puede descomponerse el problema en subproblemas ms pequeos?
Pueden deshacerse pasos inadecuados hacia la solucin?
Es predecible el universo del problema?
Una solucin es buena de manera absoluta o relativa?
La solucin deseada es un estado o la ruta hacia un estado?
El conocimiento se necesita para resolver el problema o para restringir la bsqueda de la solucin?
El programa que soluciona el problema busca la solucin solo o necesita interactuar con una per-
sona?
Puede descomponerse el problema en subproblemas ms pequeos?
Algunos problemas pueden descomponerse en subproblemas independientes, de manera que encontrar
una solucin global es la composicin de soluciones particulares. Por ej. en la resolucin de integrales, una
integral puede descomponerse por partes, y resolver las partes simples directamente o descomponerlas
recursivamente.
Por otra parte, existen otros problemas que no pueden descomponerse y componer la solucin a partir
de las soluciones parciales de sus partes p. ej. problemas de planicacin de rutas con restricciones o el
mundo de los bloques. Por el contrario, una solucin necesita considerar globalmente el problema.
Pueden deshacerse pasos inadecuados hacia la solucin?
Algunos problemas permiten deshacer uno o varios pasos hacia una solucin una vez realizados(vase
tambin la seccin 6). En este aspecto, existen tres categoras en las que puede dividirse un problema:
Recuperables: en un punto dado es posible deshacer todos los pasos inadecuados hacia la solucin.
Por ej. en el juego 8-puzzle. La estructura de control se implementa con una pila en la que se
almacenan las decisiones para poder volver atrs.
No recuperables: en un punto dado no es posible deshacer ningn paso realizado. Por ej. en una
partida de ajedrez no se puede volver atrs una vez movidas las piezas. En estos problemas el sistema
debe esforzarse en la toma de decisiones pues stas son irrevocables. Algunos usan una planicacin
en la que se analiza por adelantado una secuencia de pasos antes de realizar el primer paso para
descubrir a donde conduce.
Ignorables: en un punto dado es posible ignorar los pasos realizados hasta el momento y comen-
zar de nuevo con una nueva solucin. Por ej. un demostrador de teoremas puede abandonar una
demostracin basada en un lema dado y comenzar nuevamente. Estos problemas se resuelven con
estrategias de control sencillas que nunca vuelven hacia atrs.
Es predecible el universo del problema?
Los problemas pueden ser de:
5
Consecuencia cierta: es posible planicar una secuencia de movimientos estando seguros del resultado
a obtener. Se puede realizar una planicacin para generar operadores que garanticen llegar a la
solucin.
Consecuencia incierta:no es posible planicar con certeza pues no se sabe que ocurrir luego del
siguiente movimiento. Sin embargo, se puede realizar una planicacin para generar operadores que
tengan una buena probabilidad de llegar a la solucin.
Los problemas ms difciles de resolver son los no recuperables de consecuencia incierta. Por ej. el
control del brazo de un robot: es de consecuencia incierta pues alguien puede interponer un objeto en la
ruta del brazo, se puede atascar, etc.
Una solucin es buena de manera absoluta o relativa? La solucin de un problema puede consistir en
encontrar:
Algn camino: slo importa encontrar una solucin sin importar si existen otros caminos que con-
ducen a la solucin. Generalmente se resuelven con heursticas. Por ej. programa de respuestas a
preguntas.
El mejor camino: importa encontrar la ruta ms corta hacia la solucin. Son problemas ms com-
plicados de computar. Algunos requieren una bsqueda ms exhaustiva que usando heursticas. Por
ej. en el problema del viajero importa encontrar la ruta ms corta entre las ciudades a visitar.
La solucin deseada es un estado o la ruta hacia un estado? La solucin de un problema puede
consistir en encontrar:
Un estado nal: no es necesario el registro del proceso seguido, slo importa arribar a la solucin
nal. Por ej. interpretar texto.
Una ruta hacia un estado nal: se necesita dar el camino seguido desde el estado inicial al estado
nal. Por ej. problema de las jarras de agua.
El conocimiento se necesita para resolver el problema o para restringir la bsqueda de la solucin?
El conocimiento puede emplearse para:
Reconocer la solucin: se necesita gran cantidad de conocimiento acerca del problema para poder
encontrar una solucin. Por ej. comprensin de texto.
Acotar la bsqueda: la solucin bsica puede encontrarse con poco conocimiento, pero para restringir
el rbol de bsqueda y encontrar la solucin de manera ms eciente es necesario contar ms
conocimiento. Por ej. en el ajedrez se necesita bsicamente poco conocimiento para conocer los
movimientos legales y un mecanismo sencillo de bsqueda. Pero dado que para aumentar la eciencia
de la bsqueda sta debe restringirse, se necesita conocimiento de heursticas de buenas estrategias
y tcticas para jugar.
El programa que soluciona el problema busca la solucin solo o necesita interactuar con una persona?
Con respecto a la relacin programa-usuario, existen dos tipos de programas que solucionan el problema:
Solitarios: reciben como entrada el problema y dan como salida la solucin. No importa el razon-
amiento que haya seguido la mquina para encontrar la solucin. Por ej. problema de las jarras de
agua.
6
Conversacionales: existe una comunicacin hombre-mquina de manera que el usuario puede ayudar
a la mquina o la mquina puede informar al usuario durante la bsqueda de la solucin. Para que
esta comunicacin sea posible debe existir una correspondencia entre el razonamiento seguido por la
mquina y la forma de razonamiento humano. Por ej. en un sistema experto de diagnstico mdico,
el usuario no aceptara el veredicto de una mquina si no puede comprender el razonamiento que la
llev a l .
7
Seccin 3
Problemas de juego y problemas
reales.
Existen dos tipos de problemas que se han estado investigando en el rea de Inteligencia Articial:
Los denominados problemas de juguete y problemas del mundo real[1].
3.1. Problemas de juguete
Un problema de juguete se utiliza para ilustrar o ejercitar los mtodos de resolucin de problemas.
stos se pueden describir de forma exacta y concisa. Esto signica que diferentes investigadores pueden
utilizarlos fcilmente para comparar el funcionamiento de los algoritmos. Un problema del mundo real es
aquel en el que la gente se preocupa por sus soluciones. Ellos tienden a no tener una sola descripcin, sin
embargo se podra dar la forma general de sus formulaciones.
El mundo de la aspiradora es un problema de juguete, como se vio en la seccin previa(Seccin 2) este
problema puede formularse como sigue:
Espacio de estados: La aspiradora est en una de dos habitaciones, cada una de lass cuales puede o
no contener suciedad(8 posibles estados del mundo);
Estado Inicial: Cualquier estado puede designarse como un estado inicial.
Objetivo o estado nal: Cuando todos las habitaciones estn limpias;
Reglas: La aspiradora puede: moverse a la habitacin izquierda, moverse a la habitacin derecha o
aspirar la habitacin.
Comparado con el mundo real, este problema de juguete tiene localizaciones discretas(esta o no en
una habitacin), suciedad discreta(esta limpio o no lo esta, no existe el termino medio), nunca se ensucia
una vez que se ha limpiado(suponemos que mientras esta limpiando la habitacin no se esta volviendo a
ensuciar).
El 8-puzle consiste en un tablero de 3 x 3 con ocho chas numeradas y un espacio en blanco. Una cha
adyacente al espacio en blanco puede deslizarse a ste. La meta es alcanzar el estado objetivo especicado.
La formulacin de este problema podra ser:
Espacio de estados: La descripcin de un estado especica la localizacin de cada una de las ocho
chas y el blanco en cada uno de los nueve cuadrados;
Estado Inicial: cualquier estado puede ser un estado inicial.
8
Objetivo o estado nal: Cualquier conjunto de conguraciones puede ser el objetivo;
Reglas: Mover el blanco a la izquierda, a la derecha, arriba o abajo.
En este juego no hemos considerado acciones como la de sacudir el tablero cuando las piezas no se puedan
mover, o que se puedan extraer las piezas con un cuchillo y volverlas a poner.
El 8-puzle pertenece a la familia de puzles con piezas deslizantes, los cuales a menudo se usan como
problemas de prueba para los nuevos algoritmos de IA.
El Problema de las 8 reinas consiste en colocar las ocho reinas en un tablero de ajedrez de manera
que cada reina no ataque a ninguna otra(Una reina ataca alguna pieza si est en la misma la, columna
o diagonal).
Para este problema existen dos principales formulaciones. Una formulacin incremental que implica a
operadores que aumenten la descripcin del estado, comenzando con un estado vaco; esto signica que
cada accin aade una reina al estado. Una formulacin completa de estados comienza con las ocho reinas
en el tablero y las mueve.
Espacio de estados: La totalidad de tableros que se pueden generar con 8 reinas en el tablero;
Estado Inicial: Un tablero donde esta una reina por columna.
Objetivo o estado nal: Un tablero de manera que cada reina no ataque a ninguna otra;
Reglas: Mover una reina a otro cuadro en la misma columna.
3.2. Problemas del mundo real
Los problemas de bsqueda de una ruta estn denidos en trminos de posiciones y transiciones a lo
largo de ellas. Los algoritmos de bsqueda de rutas de han utilizando en una variedad de aplicaciones, tales
como rutas en redes de computadores, planicacin de operaciones militares, y en sistemas de planicacin
de viajes de lneas areas. Estos problemas son complejos de especicar[2].
Por ejemplo, los sistemas comerciales de viajes utilizan formulaciones con muchas complicaciones como
son el precio que imponen las lneas areas. Adems deben incluir planes de contingencia(tales como reserva
de vuelos alternativos) hasta el punto de que stos estn justicados por el coste y la probabilidad de la
falla en el plan original.
Los problemas tursticos estn estrechamente relacionados con los problemas de bsqueda de una ruta,
pero con una importante diferencia, el espacio de estados, en este cada estado debe incluir las ciudades
que ha visitado (para conocer si ha visitado ya las demas ciudades).
El problema del viajante de comercio es un problema de ruta en la que cada ciudad es visitada
exactamente una vez.La tarea principal es encontrar el viaje ms corto.
Un problema de distribucin VLSI requiere la colocacin de millones de componentes y de conexiones
en un chip vericando que el rea es mnima, que se reduce al mnimo el circuito, que se reduce al mnimo
las capacitaciones, y se maximiza la produccin de fabricacin. El problema de la distribucin viene
despus de la fase de diseo lgico, y est dividido generalmente en dos partes: distribucin de celdas y
direccin del canal. En la distribucin de celdas, los componentes primitivos del circuito se agrupan en
las celdas, cada una de las cuales realiza una cierta funcin. Cada celda tiene una caracterstica ja(el
tamao y la forma) y requiere un cierto nmero de conexiones a cada una de las otras celdas. El objetivo
principal es colocar las celdas en el chip de manera que no se superpongan y que quede espacio para que
los alambres que conectan celdas puedan colocarse entre ellas. La direccin del canal encuentra una ruta
especca para cada alambre por los espacios entre las celdas.
9
La navegacin de un robot es una generalizacin del problema de encontrar una ruta. Ms que un
conjunto discreto de rutas, un robot puede moverse en un espacio continuo con un conjunto innito de
acciones y estados posibles. Para un robot circular que se mueve en una supercie plana, el espacio es
esencialmente de dos dimensiones. Cuando el robot tiene manos y piernas o ruedas que se deben controlar
tambin, el espacio de bsqueda llega a ser de muchas dimensiones[1][2].
La secuenciacin para el ensamblaje automtico por un robot de objetos complejos son factibles. En los
problema de ensamblaje, lo principal es encontrar el orden en los objetos a ensamblar. Si se elige un orden
equivocado, no habr forma de aadir posteriormente una parte de la secuencia sin deshacer el trabajo ya
hecho. Vericar un paso para la viabilidad de la sucesin es un problema de bsqueda geomtrico difcil
muy relacionado con la navegacin del robot. As, la generacin de sucesores legales es la parte costosa
de la secuenciacin para el ensamblaje.
El diseo de protenas, es otro problema de ensamblaje en el que el objetivo es encontrar una secuencia
de aminocidos que se plegarn en una protena de tres dimensiones con las propiedades adecuadas para
curar alguna enfermedad.
10
Seccin 4
Bsqueda en profundidad
4.1. Evaluacin de una bsqueda
La evaluacin de la eciencia de una tcnica de bsqueda esta fuera del alcance de este curso ya que
puede ser muy complicada. De hecho, esta evaluacin se lleva gran parte de la investigacin en IA. Sin
embargo, veremos dos medidas elementales que son importantes para obtener una idea de las ventajas y
desventajas de utilizar una u otra tcnica:
1. La rpidez con que se encuentra la solucin.
2. La calidad de la solucin.
Hay varios tipos de problemas para los cuales lo principal es encontrar una solucin con el mnimo esfuerzo.
Para ese tipo de problemas, la primera medida es importante. Sin embargo, en otras situaciones, lo ms
importante es que la solucin sea lo ms aproximado a una solucin ptima.
Tanto la longitud del camino para la solucin como el nmero real de nodos que atraviesa, determina
la velocidad de bsqueda.
Es importante entender la diferencia entre encontrar una solucin ptima y una solucin buena. La
diferencia radica en el hecho de que encontrar una solucin ptima a menudo nos exige una bsqueda
exhaustiva porque puede que sea este el nico camino para determinar si hemos encontrado o no la
mejor solucin. No obstante, encontrar una buena solucin signica encontrar una que est inmersa en un
conjunto de restricciones(sin importar si hay o no una mejor solucin)
Describiremos un ejemplo que utilizaremos en varias de las tcnicas de bsqueda que veremos en las
siguientes secciones. Se trata del problema de un agente de viajes. Imagine que usted es agente de viajes y
un cliente bastante molesto quiere que le reserve un boleto de Salina Cruz a Ciudad Reynosa con la lnea
de autobuses ADO-GL R . A pesar de que usted le dice al cliente que la lnea de autobuses ADO GL R no
tiene rutas directas, ste insiste en viajar exclusivamente con ADO-GL R . Mirando la lista(supuesta) de
rutas de ADO-GL R , encuentra que es posible(vase tabla 4.1).
Entonces puede verse que hay una forma de llegar de Salina Cruz a Ciudad Reynosa con la lnea de
autobuses ADO-GL R usando trasbordos. As pues reserva un boleto para el cliente.
La informacin extrada del libro de rutas del ADO-GL R puede ser trasladada al grafo no dirigido
mostrado en la gura 4.1.
Puede encontrarse la informacin de las rutas ms fcil si se dibuja de nuevo el grafo como un rbol,
como se muestra en la gura 4.2. Ciudad Reynosa, aparece en un crculo, y algunas ciudades no aparecen
en el rbol para simplicar su construccin.
11
Tabla 4.1: Distancias aproximadas entre terminales de la lnea ADO-GL R
Origen Destino Distancia Kms en lnea recta de Origen a Ciudad Reynosa
Salina Cruz Tehuantepec 23 Kms 1181 Kms
Tehuantepec Oaxaca 248 Kms 1160 Kms
Juchitn Tehuantepec 26 Kms 1120 kms
Juchitn Ixtepec 19 Kms 1120 Kms
Ixtepec Ixtaltepec 4 Kms 1115 Kms
Juchitn Tonal 172 Kms 1120 Kms
Tonal Pijijiapan 76 Kms 1240 Kms
Pijijiapan Huixtla 93 Kms 1300 Kms
Huixtla Tapachula 42 Kms 1340 Kms
Tonal Tuxtla Gutirrez 173 Kms 1240 Kms
Tuxtla Gutirrez Villahermosa 252 Kms 1237 Kms
Comitn San Cristbal 88 Kms 1296 Kms
San Cristbal Ocosingo 88 Kms 1260 Kms
Ocosingo Palenque 103 Kms 1242 Kms
Palenque Villahermosa 145 Kms 1200 Kms
Salina Cruz Huatulco 153 Kms 1181 Kms
Huatulco Puerto Escondido 106 Kms 1175 Kms
Oaxaca Puebla 342 Kms 1022 Kms
Villahermosa Crdenas 49 Kms 1077 Kms
Villahermosa Ciudad del Carmen 170 Kms 1077 Kms
Ciudad del Carmen Campeche 206 Kms 1120 Kms
Campeche Mrida 174 Kms 1178 Kms
Mrida Cancn 310 Kms 1172 Kms
Cancn Playa del Carmen 68 Kms 1378 Kms
Playa del Carmen Chetumal 328 Kms 1350 Kms
Campeche Chetumal 372 Kms 1168 Kms
Crdenas Coatzacoalcos 128 Kms 930 Kms
Coatzacoalcos Minatitln 22 Kms 1040 Kms
Minatitln Acayucan 52 Kms 1050 Kms
Acayucan Cordoba 251 Kms 1100 Kms
Acayucan Juchitan 206 Kms 1100 Kms
Cordoba Orizaba 26 Kms 758 Kms
Orizaba Puebla 149 Kms 770 Kms
Puebla Ciudad de Mxico 124 Kms 804 Kms
Acayucan Veracruz 255 Kms 1100 Kms
Veracruz Xalapa 102 Kms 915 Kms
Veracruz Poza Rica 249 Kms 915 Kms
Poza Rica Tuxpan 52 Kms 720 Kms
Tuxpan Tampico 180 Kms 690 Kms
Tampico Matamoros 508 Kms 420 Kms
Matamoros Reynosa 86 Kms 84 Kms
4.2. La tcnica de bsqueda primero en profundidad
Una bsqueda primero en profundidad explora cada camino posible hasta su conclusin(meta) antes
de intentar otro camino. Esta tcnica de bsqueda pertenece a las estrategias de bsqueda no informada,
es decir la bsqueda no utiliza ms que la informacin proporcionada por la denicin del problema. En
cambio existen otros tipos de bsqueda(vase por ejemplo seccin 7) en la cual las estrategias saben si un
estado no objetivo es mas prometedor que otro, a este ltimo se le conoce como bsquedas informadas o
bsquedas heursticas[1].
Esta estrategia de bsqueda en profundidad puede implementarse a travs de una estructura de tipo
pila(ltimo en entrar primero en salir) o alternativamente puede aplicarse como una funcin recursiva que
se llama en cada uno de sus hijos.
La bsqueda primero en profundidad tiene unos requisitos muy modestos de memoria. Necesita alma-
cenar slo un camino desde la raz a un nodo hoja, junto con los nodos hermanos restantes no expandidos
para cada nodo del camino. Una vez que un nodo se ha expandido, se puede quitar de la memoria tan
pronto como todos sus descendientes han sido explorados.
12
Figura 4.1: Rutas de la lnea de autobuses ADO-GL R
El inconveniente de la bsqueda primero en profundidad es que puede hacer una eleccin equivocada y
obtener un camino muy largo(o innito) a un cuando una eleccin diferente llevara a una solucin cerca
de la raz del rbol de bsqueda.
Utilicemos como ejemplo el problema descrito anteriormente, el problema del agente de viajes, si
queremos llegar de Salina Cruz a Ciudad Reynosa, y para simplicar el problema, suponemos que no hay
perdida de tiempo entre trasbordo y trasbordo. La formulacin de nuestro problema es de la siguiente
manera:
Espacio de estados: Todas las terminales de ADO-GL R
Estado Inicial: La terminal de Salina Cruz
Objetivo o estado nal: La terminal de Ciudad Reynosa;
Reglas: Moverse a alguna ciudad adyacente desde la terminal en la que se encuentre el cliente en ese
momento
Si tenemos una estructura de datos de tipo pila para implementar esta estrategia de bsqueda:
1. Primero agregamos el estado inicial, en este caso Salina Cruz, y nos queda la estructura de pila
como se muestra en la gura 4.3,
2. el siguiente paso es vericar si el elemento tope de la estructura de pila es el estado objetivo, en
caso de serlo la bsqueda termina, porque encontramos lo que buscbamos, sin embargo si no es
el caso, como en este ejemplo que vamos a Ciudad Reynosa, entonces procedemos a eliminar(pop)
este elemento de la estructura de pila,
3. y agregamos(push) todos las terminales desde la que podemos llegar desde el estado en que nos
encontramos, vase gura 4.4(desde la terminal actual, obteniendo los estados sucesores, por conve-
niencia omit agregar una terminal de la que parti en una iteracin anterior) y volvemos a realizar
el paso 2 hasta encontrar lo que buscamos, vase gura 4.5
Notese que si en el tope de la pila nos queda una terminal que no nos lleva directamente por el camino
correcto hacia el objetivo, ocurre que:
13
Figura 4.2: rbol parcial de rutas de ADO-GL R
Se llegue al objetivo, pero con un recorrido ms largo, al pasar por terminales que estn a mayor
distancia
Puede que nunca lleguemos al objetivo, porque puede formarse ciclos innitos como ir de Ixtepec-
Juchitn, y despus ir de Juchitn-Ixtepec, as sucesivamente
por lo que la implementacin para este problema en el cul el grafo es no dirigido, producir ciclos
innitos muy probablemente, una forma de evitar esta deciencia es almacenar en memoria todas los
estados ya visitados, y antes de agregar a la estructura de pila un nuevo estado comparar si ya han sido
visitados.
Figura 4.3: Representacin de la estructura de pila del problema del agente de viajes
Existen variantes la bsqueda de primero en profundidad, tales como bsqueda hacia atrs (backtrack-
ing), bsqueda de profundidad limitada y bsqueda primero en profundidad con profundidad iterativa.
Una ventaja de la bsqueda hacia atrs, es que utiliza todava menos memoria, ya que slo se genera un
sucesor a la vez; cada nodo parcialmente expandido recuerda qu sucesor(un nodo hijo vlido) se expande
14
Figura 4.4: Representacin de la estructura de pila del problema del agente de viajes al agregar los estados
sucesores de la terminal Salina Cruz
Figura 4.5: Continuacin de la representacin de la estructura de pila del problema del agente de viaje para llegar
a Ciudad Reynosa, este procedimiento puede seguir el camino que se muestra en la gura 4.2
a continuacin. Adems facilita an otro ahorro de memoria: la idea de generar un sucesor modicando
directamente la descripcin actual del estado ms que copiarlo. Esto reduce los requerimientos de memoria
a solamente una descripcin del estado y sus acciones correspondientes. Para hacer esto, se requiere poder
deshacer cada modicacin cuando volvemos hacia atrs para generar el siguiente sucesor, dicho de otra
manera las operaciones deben ser reversibles(para mayor comprensin vase la seccin 6).
La siguiente variante, con profundidad limitada, consiste en aplicar un lmite de profundidad l a la
bsqueda de primero en profundidad. Es decir, los nodos a profundidad l se tratan como si no tuviera
ningn sucesor. El lmite de profundidad resuelve el problema del camino innito. Sin embargo tambin
agrega un inconveniente: si escogemos el valor de l menor a la profundidad necesaria para encontrar un
posible nodo meta, no encontraremos la solucin. Por ejemplo, si estuviramos en un juego de ajedrez, y
sabemos que el mnimo nmero de tiros para dar jaque mate es de 3(ganando las blancas), no podemos
esperar que en un nmero de tiros(llamemosle l) menor a 3 terminemos el juego, es decir que no existe
un camino para terminar el juego de ajedrez en menos de 3 tiros.
La bsqueda con profundidad iterativa es una estrategia general, usada a menudo en combinacin
con la bsqueda primero en profundidad, la cual encuentra el mejor lmite de profundidad. Esto se hace
aumentando gradualmente el lmite(primero 0, despus 1, despus 2, etc.) hasta que encontramos un
objetivo.
15
Seccin 5
Bsqueda en amplitud
5.1. La tcnica de bsqueda primero en amplitud
La bsqueda primero en amplitud o en anchura es una estrategia sencilla en la que se expande primero
el nodo raz, a continuacin se expanden todos los sucesores del nodo raz, despus sus sucesores, etc.
En general, se expanden todos los nodos a una profundidad en el rbol de bsqueda antes de expandir
cualquier nodo del prximo nivel.
La bsqueda primero en anchura se puede implementar utilizando una estructura de tipo cola primero
en entrar primero en salir, asegurndose que los nodos primeros visitados sern los primeros expandidos.
La principal desventaja de la bsqueda en anchura es los requisitos de memoria para almacenar todos
los nodos que no han sido expandidos durante la bsqueda.
Continuaremos con el ejemplo del problema del agente de viajes con la misma formulacin vista en la
bsqueda en profundidad.
Si tenemos una estructura de datos de tipo cola para implementar esta estrategia de bsqueda:
1. Primero agregamos el estado inicial, en este caso Salina Cruz, y nos queda la estructura de cola
como se muestra en la gura 5.1,
2. el siguiente paso es vericar si el elemento tope de la estructura de cola es el estado objetivo, en caso
de serlo la bsqueda termina, porque encontramos lo que buscbamos, sin embargo si no es el caso,
como en este ejemplo que vamos a Ciudad Reynosa, entonces procedemos a eliminar este elemento
de la estructura de cola,
3. y agregamos todos las terminales desde la que podemos llegar desde el estado en que nos encon-
tramos(por conveniencia omit agregar una terminal de la cual parti en una iteracin anterior), vese
gura 5.2(desde la terminal actual, obteniendo los estados sucesores) y volvemos a realizar el paso
2 hasta encontrar lo que buscamos, vase gura 5.3
Notese que estamos recorriendo el camino por niveles en el rbol de la gura 4.2, por lo que esta
estrategia tiene la ventaja, en comparacin con la de bsqueda en profundidad, de que no se crean ciclos,
ya que si llegar a ocurrir un camino Ixtepec-Juchitn ;Juchitn Ixtepec entonces cuando llegue a cierto
nmero de repeticiones, y est sea igual al tamao de la ruta solucin, optar por la solucin antes de
continuar, por lo tanto encuentra un camino corto hacia el objetivo, a costa de la cantidad de estados que
tiene que almacenar en cada nivel.
Una variante de bsqueda en amplitud es la de costo uniforme, que consiste en expandir todos los
nodos por costos. Si el costo es igual a la profundidad se tiene la bsqueda en amplitud.
La bsqueda de costo uniforme encuentra la solucin ms barata si el costo nunca decrece al aumentar
los caminos.
16
Figura 5.1: Representacin de la estructura de cola del problema del agente de viajes
Figura 5.2: Representacin de la estructura de cola del problema del agente de viajes al agregar los estados
sucesores de la terminal Salina Cruz
Figura 5.3: Continuacin de la representacin de la estructura de cola del problema del agente de viaje para llegar
a Ciudad Reynosa
17
Seccin 6
Bsqueda con
retroceso(Backtracking)
6.1. La tcnica de bsqueda con retroceso
Como vimos anteriormente esta tcnica tambin es llamada bsqueda con vuelta atrs o backtracking,
el trmino se utiliza para la bsqueda primero en profundidad que elige valores para una variable a la
vez(slo genera un sucesor a la vez) y vuele atrs cuando una variable no tiene ningn valor legal para
asignarle.
La idea es encontrar la mejor combinacin en un momento determinado, por eso se dice que este
tipo de algoritmo es una bsqueda en profundidad. Durante la bsqueda, si se encuentra una alternativa
incorrecta, la bsqueda retrocede hasta el paso anterior y toma la siguiente alternativa. Cuando se han
terminado las posibilidades, se vuelve a la eleccin anterior y se toma la siguiente opcin. Si no hay mas
alternativas la bsqueda falla. De esta manera, se crea un rbol implcito, el en que cada nodo es un
estado de la solucin.
Normalmente, se suele implementar este tipo de algoritmos como un procedimiento recursivo. As en
cada llamada al procedimiento se toma una variable y se le asignan todos los valores posible, llamando a
su vez al procedimiento para cada uno de los nuevos estados.
Esta tcnica es utilizadas en algunos problemas con satisfaccin de restricciones, es decir problemas
de bsqueda en los que haya que cumplir ciertas restricciones, y en caso de que no exista ya una salida en
el camino elegido, entonces poder regresar a un estado anterior(puede verse como un comando Deshacer
accin). Tambin algunos lenguajes de programacin en IA utilizan esta tcnica para su funcionamiento(p.
ej. PROLOG[8]).
Una ventaja es el ahorro de memoria al expandir un nodo sucesor a la vez. Su desventaja es el no
poder incluir informacin para evaluar cual de los sucesores es mejor.
Para esta estrategia de bsqueda utilizaremos un ejemplo sencillo, dado un conjunto de nmeros enteros
(13,11,7), encontrar si existe algn subconjunto cuya suma sea exactamente 20. Este problema es posible
resolverlo al decidir si cada vez que se aade un elemento del conjunto dado la suma es 20.
Veamos la solucin por medio de una representacin de rbol. Los elementos del conjunto posibles estn
representados por valores, elemento1=13, elemento2=11, elemento3=7. La representacin de la solucin
(s1,...,sm), donde m <= n y s
i
1, 2, 3. Cada nodo es una posible solucin Ser valida si la suma es 20.
Cmo puede verse en la gura 6.1, el primer nodo tiene como suma actual cero, como no es el resultado
bscado(valor 20), al seleccionar un elemento del conjunto, en este caso el elemento 1 que representa al
13, pasa al estado 2, con suma igual a 13, como este valor tampoco es el bscado pasa al estado 3, al
agregar otro elemento del resto(puede ser elemento 2 o elemento 3), el elemento 2, por lo que su suma
es 24, como no es lo que bscamos entonces procede a seleccionar otro elemento del conjunto restante,
18
solamente queda el elemento 3, con lo que pasa al estado 4, sin embargo la suma sigue siendo diferente de
20, y como no hay ms elementos, entonces retrocede posicionandose en el estado 3 nuevamente, como en
ese estado ya prob con el nico elemento, vuelve a retroceder y pasa al estado 2, como le queda probar
con el elemento 2, pasa al estado 5, y la suma en ese estado es igual a lo que buscamos por lo que el
procedimiento termina.
Figura 6.1: Representacin de la estructura de rbol para solucin por bsqueda con retroceso
19
Seccin 7
Bsqueda primero el mejor
7.1. La tcnica de bsqueda primero el mejor
La bsqueda primero el mejor trata de expandir el nodo ms cercano al objetivo, alegando que prob-
ablemente conduzca rpidamente a una solucin. Esta tcnica de bsqueda pertenece a las estrategias de
bsqueda informada, ya que utilizan conocimiento especco del problema ms all de la denicin del
problema en s mismo, por lo que puede encontrar soluciones de manera ms eciente que una estrategia
de bsqueda no informada.
La bsqueda voraz primero el mejor se parece a la bsqueda primero en profundidad en el modo que
preere seguir un camino hacia el objetivo, pero volver atrs cuando llegue a un callejn sin salida.
La bsqueda primero el mejor selecciona un nodo para la expansin basada en una funcin de eval-
uacin. Tradicionalmente, se selecciona en la expansin el nodo con la evaluacin ms baja, porque la
evaluacin mide la distancia al objetivo. Puede implementarse con una estructura de datos de tipo cola
con prioridad, ordenados por su valor de evaluacin en orden ascendente.
Aunque el nombre de esta tcnica parece venerable es inexacto, ya que si realmente pudiramos ex-
pandir primero el mejor nodo, esto ya no sera una bsqueda en absoluto; sera una marcha directa al
objetivo. Por lo tanto todo lo que podemos hacer es escoger el nodo que parece ser el mejor segn la
funcin de evaluacin. Si la funcin de evaluacin es exacta, entonces de verdad sera el mejor nodo; en
realidad,la funcin de evaluacin no ser as, y puede dirigir la bsqueda por mal camino.
Las funciones heursticas son la forma ms comn de transmitir el conocimiento adicional del problema
al algoritmo de bsqueda.
Para ejemplicar esta tcnica tomemos nuevamente el problema del agente de viajes, pero ahora
tomando informacin adicional del problema, como es la distancia en lnea recta que existe entre las
terminales de origen y destino(Salina Cruz-Ciudad Reynosa), que se muestran en la tabla 4.1.
Si tenemos una estructura de datos de tipo cola con prioridad para implementar esta estrategia de
bsqueda:
1. Primero agregamos el estado inicial, en este caso Salina Cruz, y nos queda la estructura de cola con
prioridad como se muestra en la gura 7.1, observe que debemos ordenar en orden ascendente con
respecto a la distancia en lnea recta entre terminales de origen y destino
2. el siguiente paso es vericar si el elemento tope de la estructura de cola con prioridad es el estado
objetivo, en caso de serlo la bsqueda termina, porque encontramos lo que buscbamos, sin embargo
si no es el caso, como en este ejemplo que vamos a Ciudad Reynosa, entonces procedemos a eliminar
este elemento de la estructura de cola con prioridad,
3. y agregamos todos las terminales desde la que podemos llegar desde el estado en que nos encon-
tramos, recuerde que deben agregarse en orden ascendente(notese que omit por conveniencia agregar
20
una terminal del cual parti en una iteracin anterior), vase gura 7.2(desde la terminal actual, obte-
niendo los estados sucesores) y volvemos a realizar el paso 2 hasta encontrar lo que buscamos, vase
gura 7.3
Note que utilizamos como valor heurstico la distancia en lnea recta que existe entre Salina Cruz
y Ciudad Reynosa, esta funcin consulta la tabla mostrada anteriormente(tabla 4.1), sin embargo si
requerimos viajar a otra terminal o partir de otro origen, entonces necesitaramos contar con una tabla
de distancias de lneas rectas al destino diferente. No siempre es necesario de tablas, para obtener valores
heursticos, puede crearse una funcin heurstica que reciba como parmetros el estado actual y el estado
objetivo, y a partir de ello obtener un valor heurstico calculado con alguna ecuacin, denir la heurstica
no es tarea fcil, requiere de un anlisis complejo y detallado del problema[5].
Figura 7.1: Representacin de la estructura de cola con prioridad del problema del agente de viajes
Figura 7.2: Representacin de la estructura de cola con prioridad del problema del agente de viajes al agregar los
estados sucesores de la terminal Salina Cruz
Figura 7.3: Continuacin de la representacin de la estructura de cola con prioridad del problema del agente de
viaje para llegar a Ciudad Reynosa
Una desventaja de esta estrategia de bsqueda es que puede caer en ciclos innitos. Si no somos
cuidadosos en encontrar los estados repetidos, la solucin nunca se encontrar. En nuestro ejemplo estando
en Puebla, si la distancia en lnea recta de la Ciudad de Mxico fuera menor a la distancia que hay desde
Orizaba a Cordoba, entonces tomara primero el camino a la Ciudad de Mxico, al llegar ah, como ya no
habra otro camino para llegar a ciudad Reynosa regresara a Puebla, y seleccionara ir otra vez a Ciudad
de Mxico por tener una distancia ms corta a la de los tres caminos posibles. Esto puede resolverse
almacenando en memoria todas las terminales ya visitadas(Esto es lo que permite, por conveniencia,
21
agregar a las estructuras de datos manejadas en las estrategias de bsquedas, terminales de las cuales
partimos en iteraciones anteriores).
22
Seccin 8
Bsqueda A*
8.1. La tcnica de bsqueda A-Estrella(A*)
A la forma ms ampliamente conocida de la bsqueda primero el mejor se le llama bsqueda A*(pronunciada:
bsqueda A-Estrella). Evala los nodos combinando g(n) el coste para alcanzar el nodo y h(n) el coste de
ir al nodo objetivo .
f(n) = g(n) + h(n) (8.1)
Ya que la g(n) nos da el coste del camino desde el nodo inicio al nodo n, y la h(n) el coste estimado
del camino ms barato desde n al objetivo, tenemos: f(n)= coste ms barato estimado de la solucin a
travs de n.
Asi

, si tratamos de encontrar la solucin ms barata, es razonable intentar primero el nodo con el valor
ms bajo de g(n) + h(n). Resulta que esta estrategia es ms razonable.
Para ejemplicar esta estrategia de bsqueda analicemos nuevamente el problema del agente de viajes,
tomando informacin adicional de la tabla de distancias entre las terminales de ADO-GL R (vase tabla
4.1).
Esta tcnica puede ser implementada al igual que la bsqueda voraz primero el mejor, por medio de
una cola con prioridad, slamente la funcin heurstica para obtener el valor de ordenamiento es la que
cambia a la forma de la ecuacin (8.1)
1. Primero agregamos el estado inicial, en este caso Salina Cruz, y nos queda la estructura de cola
con prioridad como se muestra en la gura 8.1, observe que debemos ordenar en orden ascendente
con respecto a la funcin heurstica, en donde g(n) equivale a la distancia que existe entre las
terminales(origen a terminal actual) Salina Cruz y Salina Cruz(0 Kms), y h(n) es la distancia en
lnea recta de(terminal actual a destino) Salina Cruz a Ciudad Reynosa(1181 Kms), por lo tanto
f(n) es de 1181
2. el siguiente paso es vericar si el elemento tope de la estructura de cola con prioridad es el estado
objetivo, en caso de serlo la bsqueda termina, porque encontramos lo que buscbamos, sin embargo
si no es el caso, como en este ejemplo que vamos a Ciudad Reynosa, entonces procedemos a eliminar
este elemento de la estructura de cola con prioridad,
3. y agregamos todos las terminales desde la que podemos llegar desde el estado en que nos encontramos,
recuerde que deben agregarse en orden ascendente de los valores obtenidos de f(n)(notese que puedo
regresar a una terminal ya visitada en una iteracin anterior), vase gura 8.2(desde la terminal
actual, obteniendo los estados sucesores) y volvemos a realizar el paso 2 hasta encontrar lo que
buscamos, vase gura 8.3
23
Veamos otros ejemplos para calcular el valor heurstico, por ejemplo al estar en Salina Cruz, desde
ah se alcanza Tehuantepec y Huatulco, en el primer caso g(Salina Cruz-Tehuantepec) es de 23 Kms y
h(Tehuantepec-Ciudad Reynosa) es de 1160 Kms por lo tanto f(Tehuantepec) es de 1183, vase gura
8.2. Para el caso de Huatulco, g(Salina Cruz- Huatulco) es de 153 Kms, y h(Huatulco-Ciudad Reynosa)
es de 1175 Kms por lo tanto f(Huatulco) es de 1328 Kms. Cmo el menor coste lo tiene f(Tehuantepec)
entonces al estar en Tehuantepec, desde ah alcanzamos Juchitn, Salina Cruz(regresando a Salina Cruz de
Nuevo) y Oaxaca, para el primer caso tenemos g(Salina Cruz-Juchitn) es de 49 Kms(23 Kms+26 Kms),
y h(Juchitn- Ciudad Reynosa) es de 1120 Kms por lo tanto f(Juchitn) es de 1169 Kms, el siguiente caso
estando en Tehuantepec regresar a Salina Cruz, entonces g(Salina Cruz a Salina Cruz) es de 46 Kms(23
Kms+23 Kms) y h(Salina Cruz-Ciudad Reynosa) es de 1181 Kms es 1206 Kms por lo tanto f(Salina Cruz)
es de 1227 Kms.
As continuamos calculando para cada terminal alcanzada. Una ventaja de utilizar esta estrategia es
la de que no se crean ciclos innitos si existe una buena heurstica, ya que se va acumulando el coste total
del camino por lo que se descartan caminos muy largos. Por lo que siempre encontrar la solucin siempre
cuando exista dentro todo el espacio de bsqueda.
Figura 8.1: Representacin de la estructura de cola con prioridad del problema del agente de viajes para la
estrategia A*
Figura 8.2: Representacin de la estructura de cola con prioridad del problema del agente de viajes al agregar los
estados sucesores de la terminal Salina Cruz para la estrategia A*
Figura 8.3: Continuacin de la representacin de la estructura de cola con prioridad del problema del agente de
viaje para llegar a Ciudad Reynosa para la estrategia A*
La estrategia de bsqueda A* es muy satisfactoria de entre todos los algoritmos vistos anteriormente,
lamentablemente, no signica que A* sea la respuesta a todas nuestras necesidades de bsqueda. La
dicultad es que, para la mayora de los problemas, el nmero de nodos a expandir son exponenciales en
longitud de la solucin. El tiempo computacional no es, sin embargo, la desventaja principal de A*. Por
lo general, se queda sin mucho espacio antes de que se quede sin tiempo. Por esta razn no es prctico
para problemas grandes[1].
24
Seccin 9
Bsqueda Minimax
9.1. La tcnica de bsqueda Minimax
Existen entornos competitivos, en los cuales los objetivos de dos agentes estn en conictos, es decir
cada agente trata de maximizar(beneciar) su utilidad
1
por lo que este tomara decisiones que minimicen
la utilidad del otro(perjudicar), estos dan ocasin a problemas de bsqueda entre adversarios, a menudo
conocido como juegos. En IA, los juegos son, por lo general, una clase ms especializada (que los tericos de
juegos llaman juegos de suma cero, de dos jugadores, por turnos, determinista, de informacin perfecta).
Por ejemplo, si un jugador gana un juego de ajedrez(+1), el otro jugador necesariamente pierde(-1). Esta
oposicin entre las funciones de utilidad de los agentes hace la situacin entre adversarios[1].
En una estrategia de bsqueda MiniMax juego con dos jugadores, llamados MAX y MIN(se supone
que los valores altos son buenos para MAX y malos para MIN), MAX mueve primero, y luego mueven por
turno hasta que juego termina. Al nal de juego, se conceden puntos al jugador ganador y penalizaciones
al perdedor.
El funcionamiento de Minimax puede resumirse como elegir el mejor movimiento para ti mismo
suponiendo que tu contrincante escoger el peor para ti. Este puede ser implementado de manera recursiva[2].
Para ejemplicar esta estrategia de bsqueda utilizaremos un problema ms especico, porque incluso
un juego simple como el gato es demasiado complejo para dibujar el rbol de juegos entero. Deniremos
por lo tanto un juego, en donde los movimientos posibles para MAX, en el nodo raz, se etiquetan por a
1
,
a
2
y a
3
. Las respuestas posibles a a
1
, para MIN, son b
1
, b
2
y b
3
, etc. Este juego particular naliza despus
de un movimiento para MAX y MIN. Las utilidades de los estados terminales en este juego vara desde
dos a 14.
Considerando un rbol de juegos, la estrategia ptima puede determinarse examinando el valor min-
imax de cada nodo, que escribimos como el VALOR-MINIMAX(n). El valor minimax de un nodo es la
utilidad(para MAX) de estar en el estado correspondiente, asumiendo que ambos jugadores juegan pti-
mamente desde all al nal del juego. Obviamente, el valor minimax de un estado terminal es solamente su
utilidad. Adems, considerando una opcin, MAX preferir moverse aun estado de valor mximo, mientras
que MIN preere un estado de valor mnimo. Entonces tenemos lo siguiente:
VALOR-MINIMAX(n) es igual a
UTILIDAD(n) Si n es un estado terminal
max
s
Sucesores(n) VALOR-MINIMAX(s) si n es un estado MAX
min
s
Sucesores(n) VALOR-MINIMAX(s) si n es un estado MIN
1
Valor que sirve para preferir un estado en comparacin con otro
25
Apliquemos estas deniciones al rbol de juegos de la gura 9.1. Los nodos terminales se etiquetan
por sus valores de utilidad. El primer nodo de MIN, etiquetado B, tiene tres sucesores con valores 3,12 y
8, entonces su valor minimax es 3. Del mismo modo, los otros dos nodos de MIN tienen un valor minimax
de 2. El nodo raz es un nodo MAX; sus sucesores tienen valores minimax de 3,2 y 2; entonces tiene un
valor minimax de 3. Podemos identicar tambin la decisin minimax en la raz: la accin a
1
es la opcin
ptima para MAX porque conduce al sucesor con el valor minimax ms alto.
Figura 9.1: Un rbol de juegos de dos capas. Los nodos son nodos MAX, en los que le toca mover a MAX, y
los nodos son nodos MIN. Los nodos terminales muestran los valores de utilidad para MAX; los otros nodos son
etiquetados por sus valores minimax. El mejor movimiento de MAX en la raz es a1, porque conduce al sucesor
con el valor minimax ms alto, y la mejor respuesta de MIN es b1 , porque conduce al sucesor con el valor
minimax ms bajo.
Esta denicin de juego ptimo para MAX supone que MIN tambin juega ptimamente, y si no lo
hiciera MAX lo har an mejor.
Sin embargo Minimax selecciona un movimiento ptimo en un rbol de bsqueda a condicin de que las
evaluaciones de los nodos hoja sean exactamente correctas. En realidad, las evaluaciones son generalmente
estimaciones rudimentarias del valor de una posicin y se consideran que tienen asociados errores grandes.
Otro problema de minimax es que el nmero de estados que tiene que examinar es exponencial en el
nmero de movimientos. Lamentablemente no se puede eliminar el exponente, pero si se podra dividirlo,
con ecacia, en la mitad. La jugada es que es posible calcular la decisin minimax correcta sin mirar todos
los nodos en el rbol de juegos. Es decir, podar el rbol. Esta tcnica es conocida como poda-alfabeta.
26
Conclusin
Las estrategias de bsquedas vistas en esta unidad nos dan una idea de cmo los investigadores
en IA proponen diferentes formas de solucin para los problemas. Estas tcnicas son clsicas
de la IA y es por ello que deben ser conocidas por todos aquellos que estn relacionados
con programacin de soluciones por computadora. Existen otros mtodos que requieren de
mayor complejidad de programacin para encontrar mejores soluciones en un tiempo razon-
able, como son el mtodo de ascenso de la colina, recocido simulado, algoritmos gneticos, las
redes neuronales. Todos ellos requieren de una mayor complejidad de computacin y mayor
conocimiento e informacin del problema.
En la mayora de las estrategias contempladas en el cpitulo, debe utilizarse mdios para
evitar estados repetidos, de esta forma se ahorrara espacio de almacenamiento y tiempo de
recorrido. Tal y como lo dice Rusell-Norvig en su libro Los algoritmos que olvidan su historia
estn condenados a repetirla[1].
El mundo real es ms complejo de lo que se formula en los problemas para solucionar por
computadora, sin embargo asumimos que los seres humanos para encontrar soluciones tampoco
requieren de mucha informacin, o al menos no requiere conocer todo el universo para encontrar
soluciones buenas. Por ejemplo, no requerimos de mucha informacin, ni de mucho tiempo para
seleccionar una botella de refresco que compramos en el supermercado. Esto justica en parte
lo que hacemos cuando reducimos nuestro problema. An cuando por su simplicidad sean
problemas de juguete.
Tabla 9.1: Tabla comparativa de estrategias de bsqueda en espacios de estados
Bsqueda Ventajas Desventajas
Profundidad Requisitos modestos de memoria; Puede tener ciclos innitos
fcil implementacin y no encontrar el resultado
Amplitud Encuentra la solucin si existe Requiere de mucha memoria para
dentro del espacio de bsqueda; almacenar los nodos
fcil programacin
Con retroceso Menor requisito de memoria Puede tener ciclos innitos
al de profundidad y no encontrar el resultado
fcil programacin
Primero el mejor Puede encontrar buenas soluciones; Puede tener ciclos innitos;
resultados ms ecientes que requiere diseo de una heurstica
una bsqueda no informada complejidad de programacin de
la heurstica;
A* Encuentra buenas soluciones;
No se crean ciclos Requiere de muy buenas heursticas
requerimientos moderados de memoria
Minimax Encuentra una solucin ptima Slo funciona para
fcil programacin Puede retroceder en caso juegos contra adversarios.
de no haber una salida Crece exponencialmente al
nmero de movimientos
Requiere de una muy buena
funcin de evaluacin
En la tabla 9.1 se muestra una comparativa entre las estrategias de bsqueda de-
scritas en esta unidad. Esta nos puede dar una idea rpida de cul estrategia debemos
utilizar al intentar resolver un problema de bsqueda en espacio de estados.
27
Es importante hacer mencin que un ser humano no realiza bsquedas de este tipo
en su mente. Porque un ser humano quiz necesitara de minutos para crear y com-
probar cada combinacin o estado posible, y tendra una considerable dicultad para
tener en mente cada paso del proceso de comprobacin y las asignaciones que ha
comprobado. An cuando utilizara papel y lpiz como apoyo, sera un proceso muy
lento. Adems un ser humano al pasar el tiempo, su calidad de trabajo disminuye,
por lo que las soluciones que encuentra un ser humano son las optimas. Ahora la
pregunta obligada, Cmo solucionan este problema los seres humanos?, la respuesta
esta siendo investigada dentro del campo de la IA, y esperemos que en un futuro no
lejando encuentren la respuesta.
28
Apndices
Glosario
Agente: Un agente inteligente es un sistema(hardware o software) situado en un determinado
entorno, capaz de actuar de forma autnoma y razonada en dicho entorno para llevar a
cabo unos objetivos predeterminados[4].
rbol: estructura de datos ampliamente usada que imita la forma de un rbol (un conjunto
de nodos conectados). Un nodo es la unidad sobre la que se construye el rbol y puede
tener cero o ms nodos hijos conectados a l. Se dice que un nodo a es padre de un nodo
b si existe un enlace desde a hasta b (en ese caso, tambin decimos que b es hijo de a).
Slo puede haber un nico nodo sin padres, que llamaremos raz. Un nodo que no tiene
hijos se conoce como hoja. Los dems nodos (tienen padre y uno o varios hijos) se les
conoce como rama.
Camino solucin: Un grafo dirigido de los nodos visitados que nos llevan a la solucin.
Cola: es una estructura de datos, caracterizada por ser una secuencia de elementos en la que
la operacin de insercin push se realiza por un extremo y la operacin de extraccin pop
por el otro. Tambin se le llama estructura FIFO (del ingls First In First Out), debido
a que el primer elemento en entrar ser tambin el primero en salir.
Cola de prioridades es una estructura de datos en la que los elementos se atienden en el
orden indicado por una prioridad asociada a cada uno. Si varios elementos tienen la misma
prioridad, se atendern de modo convencional segn la posicin que ocupen.
Estrategia de Bsqueda mtodo computacional para resolver problemas.
Grafo: es un par(V,A) donde V es un conjunto nito no vaco(conjunto de vrtices) y A un
conjunto nito de pares (V x V) no ordenados de vrtices(conjunto de aristas). En otras
palabras un grafo es un conjunto de objetos llamados vrtices o nodos unidos por enlaces
llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de
un conjunto.
Heurstica: Del griego heuriskein, encontrar. Criterio que puede resolver un problema pero
que no hay garanta de que siempre lo resuelva. Estimacin del coste necesario para
alcanzar una solucin desde el estado actual.
Pila: es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos
es de tipo LIFO (del ingls Last In First Out, ltimo en entrar, primero en salir) que
permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informtica
debido a su simplicidad y ordenacin implcita en la propia estructura.
Prolog: Lenguaje de programacin ideado a principios de los aos 70 en la universidad de Aix-
Marseille por los profesores Alain Colmerauer y Phillipe Roussel. Prolog se enmarca en el
paradigma de los lenguajes lgicos, lo que lo diferencia enormemente de otros lenguajes
ms populares tales como Fortran, Pascal, C, Java[8].
Puzle Un puzzle o puzle puede referirse a:
Un rompecabezas, un juego en el que hay que armar una gura.
29
Un crucigrama o juego de palabras cruzadas.
Un acertijo, especie de adivinanza.
juego de ingenio, como el sudoku o el cubo de Rubik.
30
Anexo
Explosiones combinatorias
Generalmente, se utilizar una computadora para resolver problemas en los que el
nmero de nodos en el espacio de bsqueda sea muy grande y, como el espacio de
bsqueda va creciendo, de igual modo se incrementarn el nmero de diferentes
caminos posibles hasta la meta. El problema estriba en que cada nodo aadido al
espacio de bsqueda aade ms de un camino; por lo que el nmero de caminos
hasta la meta se incrementar rpidamente con cada nuevo nodo[6].
Para entender este incremento, considere el nmero de formas de combinar tres
objeto( A, B, C) sobre una mesa. Las seis posibles combinaciones son las mostradas
en la tabla 9.2
Tabla 9.2: Tabla de las posibles combinaciones de tres objetos
A B C
A C B
B C A
B A C
C B A
C A B
Aunque puede comprobar rpidamente que estas son todas las formas de com-
binar(en trminos de probabilidad son llamadas permutaciones de tres elementos
tomadas de tres) A, B, C, puede obtener el mismo nmero usando el teorema de
una de las ramas de las matemticas llamada combinatoria, la cual estudia las dis-
tintas formas en que las cosas pueden ser combinadas, colocadas o permutadas. El
teorema establece que el nmero de maneras en que N objetos pueden ser permu-
tados es igual a N!(N factorial). El factorial de un nmero es el producto de todos
los nmeros iguales o menores a uno dado, hasta 1. Por tanto, 3! es 3 x 2 x 1, o 6.
Dada esta informacin puede verse que , si usted tuviera 4 objetos para combinar,
habra 4!, o 24, permutaciones. Con 5 objetos, el nmero es 120; con 6 objetos es
720. As pues, con, por ejemplo, 1000 objetos, el nmero de permutaciones posibles
es enorme. Si hay muchas posibilidades, se hace rpidamente imposible examinar, e
incluso enumerar, todas las combinaciones[5].
Debido a que el nmero de posibilidades crece tan rpidamente, tan slo los proble-
mas ms simples se prestan a bsquedas exhaustivas.
Mientras que la tcnica exhaustiva, o fuerza bruta, tericamente siempre funciona,
normalmente no es prctica porque consume o demasiado tiempo o demasiados re-
cursos de computacin, e incluso ambos. Por esa razn, otras tcnicas de bsqueda
han ido desarrollndose.
31
Bibliografa
[1] Russell, Stuart J., Norvig, Peter., Inteligencia Articial: Un enfoque moderno 2da Edicin .,
Prentice Hall, 2004.
[2] Nilsson, Nils J., Articial Intelligence: A New Synthesis, Morgan Kaufmann, 1998.
[3] Mitchell, Tom., Machine Learning, McGraw Hill, 1997.
[4] Wooldridge, Michael., An Introduction to MultiAgent Systems.,John Wiley & Sons., 2002.
[5] Simon, Herbert A., Las ciencias de lo articial, Comares., 2006.
[6] Schild, H., Utilizacin de C en la Inteligencia Articial. McGraw-Hill, 1988.
[7] Colaboradores de Wikipedia. Inteligencia articial [en lnea]. Wikipedia, La en-
ciclopedia libre, 2009 [fecha de consulta: 2 de enero del 2009]. Disponible en
<http://es.wikipedia.org/w/index.php?title=Inteligencia_articial&oldid=22986524>.
[8] Colaboradores de Wikipedia. Prolog [en lnea]. Wikipedia, La enciclope-
dia libre, 2009 [fecha de consulta: 17 de enero del 2009]. Disponible en
<http://es.wikipedia.org/w/index.php?title=Prolog&oldid=23327196>.
32