Está en la página 1de 37

Curso:

Inteligencia Artificial
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 posibilidades, 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

2. Formulacin y resolucin de problemas.


2.1. Definicin formal del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Anlisis del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
4
5

3. Problemas de juego y problemas reales.


3.1. Problemas de juguete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Problemas del mundo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8
8
9

4. Bsqueda en profundidad
4.1. Evaluacin de una bsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. La tcnica de bsqueda primero en profundidad . . . . . . . . . . . . . . . . . . . . . . . .

11
11
12

5. Bsqueda en amplitud
5.1. La tcnica de bsqueda primero en amplitud . . . . . . . . . . . . . . . . . . . . . . . . .

16
16

6. Bsqueda con retroceso(Backtracking)


6.1. La tcnica de bsqueda con retroceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18
18

7. Bsqueda primero el mejor


7.1. La tcnica de bsqueda primero el mejor . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20
20

8. Bsqueda A*
8.1. La tcnica de bsqueda A-Estrella(A*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23
23

9. Bsqueda Minimax
9.1. La tcnica de bsqueda Minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25
25

Conclusin

27

Apndices

29

ndice de Tablas
R . . . . . . . . . . . . . . .
4.1. Distancias aproximadas entre terminales de la lnea ADO-GL

12

9.1. Tabla comparativa de estrategias de bsqueda en espacios de estados . . . . . . . . . . . .


9.2. Tabla de las posibles combinaciones de tres objetos . . . . . . . . . . . . . . . . . . . . . .

27
31

ii

ndice de figuras
1.1. Plano de casa del problema de las llaves perdidas . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Grafo del camino solucin para encontrar las llaves perdidas . . . . . . . . . . . . . . . . . . .
4.1.
4.2.
4.3.
4.4.

1
2

R
Rutas de la lnea de autobuses ADO-GL
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
R
rbol parcial de rutas de ADO-GL
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Representacin de la estructura de pila del problema del agente de viajes . . . . . . . . . . . . .
Representacin de la estructura de pila del problema del agente de viajes al agregar los estados
sucesores de la terminal Salina Cruz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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 figura 4.2

13
14
14

5.1. Representacin de la estructura de cola del problema del agente de viajes . . . . . . . . . . . .


5.2. Representacin de la estructura de cola del problema del agente de viajes al agregar los estados
sucesores de la terminal Salina Cruz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Continuacin de la representacin de la estructura de cola del problema del agente de viaje para
llegar a Ciudad Reynosa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

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 . . . . .
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 . . . . . . . . . . . . . . . . . . . . . . . . . .
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* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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* . . . . . . . . . . . . . .
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* . . . . . . . . . . . . . . . . . . .

15
15

17

21
21

24
24
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. . . . . . . . . . . . . . . . .

iii

26

Seccin 1

Introduccin
La resolucin de problemas es fundamental para la mayora de las aplicaciones de Inteligencia Artificial(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 garantizado. 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 figura 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
figura 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

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 definiciones:
Un estado es la representacin de un problema en un instante dado. Para definir 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 definirlo 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 finales 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 especfico 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.
corresponde a Torre) de acuerdo a las piezas situadas.
Objetivo o estado final: 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 final.
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 Artificial. Continuaremos con algunos problemas de juego con los cuales se han probado la
eficiencia y eficacia 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.

Seccin 2

Formulacin y resolucin de
problemas.
Para construir un sistema de computacin que resuelva un problema especfico, es necesario:
Definir 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.

Definicin 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 artificiales y estructurados son fciles de especificar (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 especificar(vase seccin 3).
Para producir una especificacin formal de un problema se deben definir:
espacio de estados vlidos.
estado inicial del problema.
estado objetivo o final.
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
Artificial(IA)[7]. Su estructura se corresponde con la resolucin de problemas porque:
Permite definir formalmente el problema, mediante la necesidad de convertir una situacin dada en
una situacin deseada mediante un conjunto de operaciones permitidas;
Permite definir 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 definir el problema formalmente, el segundo paso en la resolucin del problema es el anlisis
del mismo. A fin de poder elegir el mtodo ms apropiado para resolver un problema particular, es
necesario analizar distintas cuestiones que afectan a la definicin 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 persona?
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 planificacin 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 planificacin
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 comenzar 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:

Consecuencia cierta: es posible planificar una secuencia de movimientos estando seguros del resultado
a obtener. Se puede realizar una planificacin para generar operadores que garanticen llegar a la
solucin.
Consecuencia incierta:no es posible planificar con certeza pues no se sabe que ocurrir luego del
siguiente movimiento. Sin embargo, se puede realizar una planificacin 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 conducen 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 complicados 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 final: no es necesario el registro del proceso seguido, slo importa arribar a la solucin
final. Por ej. interpretar texto.
Una ruta hacia un estado final: se necesita dar el camino seguido desde el estado inicial al estado
final. 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 eficiente 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 eficiencia
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 razonamiento que haya seguido la mquina para encontrar la solucin. Por ej. problema de las jarras de
agua.

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 .

Seccin 3

Problemas de juego y problemas


reales.
Existen dos tipos de problemas que se han estado investigando en el rea de Inteligencia Artificial:
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 significa 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 final: 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 fichas numeradas y un espacio en blanco. Una ficha
adyacente al espacio en blanco puede deslizarse a ste. La meta es alcanzar el estado objetivo especificado.
La formulacin de este problema podra ser:
Espacio de estados: La descripcin de un estado especifica la localizacin de cada una de las ocho
fichas y el blanco en cada uno de los nueve cuadrados;
Estado Inicial: cualquier estado puede ser un estado inicial.

Objetivo o estado final: Cualquier conjunto de configuraciones 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 fila, 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 significa 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 final: 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 definidos 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, planificacin de operaciones militares, y en sistemas de planificacin
de viajes de lneas areas. Estos problemas son complejos de especificar[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 justificados 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 verificando 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 fija(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
especfica para cada alambre por los espacios entre las celdas.

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 infinito de
acciones y estados posibles. Para un robot circular que se mueve en una superficie 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. Verificar 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 eficiencia 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 significa 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
R A pesar de que usted le dice al cliente que la lnea de autobuses ADO GL no
R
de autobuses ADO-GL .
R Mirando la lista(supuesta) de
tiene rutas directas, ste insiste en viajar exclusivamente con ADO-GL .
R encuentra que es posible(vase tabla 4.1).
rutas de ADO-GL ,
Entonces puede verse que hay una forma de llegar de Salina Cruz a Ciudad Reynosa con la lnea de
R
autobuses ADO-GL usando
trasbordos. As pues reserva un boleto para el cliente.
R
La informacin extrada del libro de rutas del ADO-GL puede
ser trasladada al grafo no dirigido
mostrado en la figura 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 figura 4.2. Ciudad Reynosa, aparece en un crculo, y algunas ciudades no aparecen
en el rbol para simplificar su construccin.

11

R
Tabla 4.1: Distancias aproximadas entre terminales de la lnea ADO-GL
Origen
Salina Cruz
Tehuantepec
Juchitn
Juchitn
Ixtepec
Juchitn
Tonal
Pijijiapan
Huixtla
Tonal
Tuxtla Gutirrez
Comitn
San Cristbal
Ocosingo
Palenque
Salina Cruz
Huatulco
Oaxaca
Villahermosa
Villahermosa
Ciudad del Carmen
Campeche
Mrida
Cancn
Playa del Carmen
Campeche
Crdenas
Coatzacoalcos
Minatitln
Acayucan
Acayucan
Cordoba
Orizaba
Puebla
Acayucan
Veracruz
Veracruz
Poza Rica
Tuxpan
Tampico
Matamoros

4.2.

Destino
Tehuantepec
Oaxaca
Tehuantepec
Ixtepec
Ixtaltepec
Tonal
Pijijiapan
Huixtla
Tapachula
Tuxtla Gutirrez
Villahermosa
San Cristbal
Ocosingo
Palenque
Villahermosa
Huatulco
Puerto Escondido
Puebla
Crdenas
Ciudad del Carmen
Campeche
Mrida
Cancn
Playa del Carmen
Chetumal
Chetumal
Coatzacoalcos
Minatitln
Acayucan
Cordoba
Juchitan
Orizaba
Puebla
Ciudad de Mxico
Veracruz
Xalapa
Poza Rica
Tuxpan
Tampico
Matamoros
Reynosa

Distancia
23 Kms
248 Kms
26 Kms
19 Kms
4 Kms
172 Kms
76 Kms
93 Kms
42 Kms
173 Kms
252 Kms
88 Kms
88 Kms
103 Kms
145 Kms
153 Kms
106 Kms
342 Kms
49 Kms
170 Kms
206 Kms
174 Kms
310 Kms
68 Kms
328 Kms
372 Kms
128 Kms
22 Kms
52 Kms
251 Kms
206 Kms
26 Kms
149 Kms
124 Kms
255 Kms
102 Kms
249 Kms
52 Kms
180 Kms
508 Kms
86 Kms

Kms en lnea recta de Origen a Ciudad Reynosa


1181 Kms
1160 Kms
1120 kms
1120 Kms
1115 Kms
1120 Kms
1240 Kms
1300 Kms
1340 Kms
1240 Kms
1237 Kms
1296 Kms
1260 Kms
1242 Kms
1200 Kms
1181 Kms
1175 Kms
1022 Kms
1077 Kms
1077 Kms
1120 Kms
1178 Kms
1172 Kms
1378 Kms
1350 Kms
1168 Kms
930 Kms
1040 Kms
1050 Kms
1100 Kms
1100 Kms
758 Kms
770 Kms
804 Kms
1100 Kms
915 Kms
915 Kms
720 Kms
690 Kms
420 Kms
84 Kms

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 definicin 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 almacenar 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

R
Figura 4.1: Rutas de la lnea de autobuses ADO-GL

El inconveniente de la bsqueda primero en profundidad es que puede hacer una eleccin equivocada y
obtener un camino muy largo(o infinito) 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 simplificar el problema, suponemos que no hay
perdida de tiempo entre trasbordo y trasbordo. La formulacin de nuestro problema es de la siguiente
manera:
R
Espacio de estados: Todas las terminales de ADO-GL

Estado Inicial: La terminal de Salina Cruz


Objetivo o estado final: 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 figura 4.3,
2. el siguiente paso es verificar 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 figura 4.4(desde la terminal actual, obteniendo los estados sucesores, por conveniencia 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 figura 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

R
Figura 4.2: rbol parcial de rutas de ADO-GL

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 infinitos como ir de IxtepecJuchitn, 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
infinitos muy probablemente, una forma de evitar esta deficiencia 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 (backtracking), 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 figura 4.2

a continuacin. Adems facilita an otro ahorro de memoria: la idea de generar un sucesor modificando
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 modificacin 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 infinito. 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 figura 5.1,
2. el siguiente paso es verificar 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 encontramos(por conveniencia omit agregar una terminal de la cual parti en una iteracin anterior), vese
figura 5.2(desde la terminal actual, obteniendo los estados sucesores) y volvemos a realizar el paso
2 hasta encontrar lo que buscamos, vase figura 5.3
Notese que estamos recorriendo el camino por niveles en el rbol de la figura 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 si 1, 2, 3. Cada nodo es una posible solucin Ser valida si la suma es 20.
Cmo puede verse en la figura 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 probablemente conduzca rpidamente a una solucin. Esta tcnica de bsqueda pertenece a las estrategias de
bsqueda informada, ya que utilizan conocimiento especfico del problema ms all de la definicin del
problema en s mismo, por lo que puede encontrar soluciones de manera ms eficiente 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
prefiere 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 evaluacin. 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 expandir 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 ejemplificar 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 figura 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 verificar 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(notese que omit por conveniencia agregar
20

una terminal del cual parti en una iteracin anterior), vase figura 7.2(desde la terminal actual, obteniendo los estados sucesores) y volvemos a realizar el paso 2 hasta encontrar lo que buscamos, vase
figura 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, definir 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 infinitos. 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 ejemplificar esta estrategia de bsqueda analicemos nuevamente el problema del agente de viajes,
R
tomando informacin adicional de la tabla de distancias entre las terminales de ADO-GL (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 figura 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 verificar 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 figura 8.2(desde la terminal
actual, obteniendo los estados sucesores) y volvemos a realizar el paso 2 hasta encontrar lo que
buscamos, vase figura 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 figura
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 infinitos 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 significa que A* sea la respuesta a todas nuestras necesidades de bsqueda. La
dificultad 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 conflictos, es decir
cada agente trata de maximizar(beneficiar) su utilidad1 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 final 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 ejemplificar esta estrategia de bsqueda utilizaremos un problema ms especifico, porque incluso
un juego simple como el gato es demasiado complejo para dibujar el rbol de juegos entero. Definiremos
por lo tanto un juego, en donde los movimientos posibles para MAX, en el nodo raz, se etiquetan por a1 ,
a2 y a3 . Las respuestas posibles a a1 , para MIN, son b1 , b2 y b3 , etc. Este juego particular finaliza 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 minimax 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 ptimamente desde all al final 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 prefiere un estado de valor mnimo. Entonces tenemos lo siguiente:
VALOR-MINIMAX(n) es igual a
UTILIDAD(n) Si n es un estado terminal
maxs Sucesores(n) VALOR-MINIMAX(s) si n es un estado MAX
mins 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 definiciones al rbol de juegos de la figura 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 identificar tambin la decisin minimax en la raz: la accin a1 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 definicin 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 eficacia, 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 razonable, 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 justifica 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
Profundidad
Amplitud

Con retroceso

Primero el mejor

A*

Minimax
fcil programacin

Ventajas
Requisitos modestos de memoria;
fcil implementacin
Encuentra la solucin si existe
dentro del espacio de bsqueda;
fcil programacin
Menor requisito de memoria
al de profundidad
fcil programacin
Puede encontrar buenas soluciones;
resultados ms eficientes que
una bsqueda no informada
Encuentra buenas soluciones;
No se crean ciclos
requerimientos moderados de memoria
Encuentra una solucin ptima
Puede retroceder en caso
de no haber una salida

Desventajas
Puede tener ciclos infinitos
y no encontrar el resultado
Requiere de mucha memoria para
almacenar los nodos
Puede tener ciclos infinitos
y no encontrar el resultado
Puede tener ciclos infinitos;
requiere diseo de una heurstica
complejidad de programacin de
la heurstica;
Requiere de muy buenas heursticas
Slo funciona para
juegos contra adversarios.
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 descritas 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 comprobar cada combinacin o estado posible, y tendra una considerable dificultad 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 finito no vaco(conjunto de vrtices) y A un
conjunto finito 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 AixMarseille 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 figura.

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
A
B
B
C
C

B
C
C
A
B
A

C
B
A
C
A
B

Aunque puede comprobar rpidamente que estas son todas las formas de combinar(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 distintas 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 permutados 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 problemas 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 recursos de computacin, e incluso ambos. Por esa razn, otras tcnicas de bsqueda
han ido desarrollndose.

31

Bibliografa
[1] Russell, Stuart J., Norvig, Peter., Inteligencia Artificial: Un enfoque moderno 2da Edicin .,
Prentice Hall, 2004.
[2] Nilsson, Nils J., Artificial 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 artificial, Comares., 2006.
[6] Schild, H., Utilizacin de C en la Inteligencia Artificial. McGraw-Hill, 1988.
[7] Colaboradores de Wikipedia. Inteligencia artificial [en lnea]. Wikipedia, La enciclopedia libre, 2009 [fecha de consulta: 2 de enero del 2009]. Disponible en
<http://es.wikipedia.org/w/index.php?title=Inteligencia_artificial&oldid=22986524>.
[8] Colaboradores
de
Wikipedia.
Prolog
[en
lnea].
Wikipedia,
dia libre, 2009 [fecha de consulta: 17 de enero del 2009].
<http://es.wikipedia.org/w/index.php?title=Prolog&oldid=23327196>.

32

La
enciclopeDisponible en

También podría gustarte