Está en la página 1de 6

ESPACIO DE ESTADOS

El espacio de estados de un juego es un grafo cuyos nodos representan las


configuraciones alcanzables (los estados vlidos! y cuyos arcos e"plicitan las
#ovidas posibles (las transiciones de estado!$ En principio% se puede construir
cual&uier espacio de estados partiendo del estado inicial% aplicando cada una
de las reglas para generar los sucesores in#ediatos% y as' sucesiva#ente con
cada uno de los nuevos estados generados (en la prctica% los espacios de
estados suelen ser de#asiado grandes para e"plicitarlos por co#pleto!$
Cuando un proble#a se puede representar #ediante un espacio de estados% la
soluci(n co#putacional corresponde a encontrar un ca#ino desde el estado
inicial a un estado objetivo$
Bsqueda en espacio de estados
E"isten varios algorit#os para encontrar un ca#ino soluci(n en un espacio de
estados$ El es&ue#a general de estos algorit#os es el siguiente)
proceder *+s&ueda {
O,en -estado . inicial/
closed -/
while (O,en no est vaco) {
remover un estado 0 del conjunto O,en
if (0 es un estado objetivo) return xito
else {
generar el conjunto de sucesores del estado 0
agregar el estado 0 al conjunto closed
eliminar sucesores que ya estn en O,en o en closed
agregar el resto de los sucesores al conjunto O,en
}
}
return fracaso
}
El conjunto Owen contiene a los estados generados &ue todav'a no 1an sido
visitados (no se 1a verificado si son estados objetivo y no se 1an generado sus
sucesores!$ El conjunto closed contiene a los estados visitados$ Al considerar
s(lo a los sucesores &ue no 1an sido previa#ente generados se evita entrar en
ciclos$
Dependiendo del orden en &ue se visiten los estados del conjunto Owen se
obtienen distintos tipos de recorrido$
Bsqueda en profundidad
En ingl2s% depth-first search$
Si el conjunto Owen se #aneja co#o una lista 3I4O% es decir% co#o un stac5%
sie#pre se estar visitando pri#ero los +lti#os estados en ser generados$ Esto
significa &ue si A genera y !% y genera "% antes de visitar ! se visita "% &ue
est #s alejado de la ra'z A% o sea #s profundo en el rbol de b+s&ueda$ El
algorit#o tiene en este caso la tendencia de profundizar la b+s&ueda en una
ra#a antes de e"plorar ra#as alternativas$
Proceder *+s&ueda.en.profundidad {
O,en 6estado . inicial7
closed -/
while (open no est vaca) {
#emover el primer estado 0 de la lista O,en
if (0 es un estado objetivo) return xito
Else {
generar el conjunto de sucesores del estado 0
agregar el estado 0 al conjunto closed
eliminar sucesores que ya estn en O,en o en closed
agregar el resto de los sucesores al principio de O,en
}
}
return fracaso
}
Considerando &ue la cantidad pro#edio de sucesores de los nodos visitados es
(lla#ado en ingl2s el branching factor y en castellano el factor de
ramificaci$n!% y suponiendo &ue la profundidad #"i#a alcanzada es n% este
algorit#o tiene una co#plejidad en tie#po de O (
n
! y% si no se considera el
conjunto closed% una co#plejidad en espacio de O( 8 n!$ En vez de usar el
conjunto closed% el control de ciclos se puede 1acer descartando a&uellos
estados &ue aparecen en el ca#ino generado 1asta el #o#ento (basta &ue
cada estado generado tenga un puntero a su padre!$
El #ayor proble#a de este algorit#o es &ue puede 9perderse9 en una ra#a sin
encontrar la soluci(n$ Ade#s% si se encuentra una soluci(n no se puede
garantizar &ue sea el ca#ino #s corto$
Bsqueda en amplitud
En ingl2s% breadth-first search$
Si el conjunto Owen se #aneja co#o una lista 4I4O% es decir% co#o una cola%
sie#pre se estar visitando pri#ero los pri#eros estados en ser generados$ El
recorrido del espacio de estados se 1ace por niveles de profundidad$
Proceder *+s&ueda.en.a#plitud {
O,en 6estado . inicial7
closed -/
while (open no est vaca) {
remover el primer estado 0 de la lista O,en
If (0 es un estado objetivo) return xito
Else {
generar el conjunto de sucesores del estado 0
agregar el estado 0 al conjunto closed
eliminar sucesores que ya estn en O,en o en closed
agregar el resto de los sucesores al final de O,en
}
}
Return fracaso
}
Si el factor de ra#ificaci(n es y la profundidad a la cual se encuentra el
estado objetivo #s cercano es n% este algorit#o tiene una co#plejidad en
tie#po y espacio de O (
n
!$ Contraria#ente a la b+s&ueda en profundidad% la
b+s&ueda en a#plitud garantiza encontrar el ca#ino #s corto$
Bsqueda iterativa en profundidad
En ingl2s% iterative deepening$
3a idea es co#binar las buenas caracter'sticas de la b+s&ueda en profundidad%
en cuanto a la co#plejidad en espacio% con las ventajas de la b+s&ueda en
a#plitud$ Esto se logra 1aciendo una b+s&ueda en profundidad acotada por
una profundidad #"i#a i &ue se 1ace variar iterativa #ente de : en adelante
con incre#entos de :$ Si el estado objetivo #s cercano se encuentra a una
profundidad n% se 1acen n b+s&uedas en profundidad% a nivel :% a nivel ;% 1asta
el nivel n$
Esta b+s&ueda iterativa garantiza encontrar el ca#ino #s corto$ Su
co#plejidad en espacio es de O( 8 n!$ Su co#plejidad en tie#po es la su#a
de la co#plejidad en tie#po de cada una de las b+s&uedas en profundidad
acotadas &ue fueron necesarias% esto es
i <:%$$$%n
O (
i
!% o sea O(
=
!$ 3a
co#plejidad en tie#po es por lo tanto e&uivalente a 1acer una sola b+s&ueda
acotada a la profundidad n$
Bsqueda heurstica
En ingl2s% best-first search$
3os algorit#os anteriores 1acen una b+s&ueda ciega y e"1austiva% lo &ue
presenta serios proble#as en espacios de estado grandes$ Esto se puede
#ejorar e"pandiendo pri#ero los estados &ue tienen #s e"pectativas de
encontrarse en el ca#ino a la soluci(n% lo &ue i#plica utilizar una funci(n
1eur'stica &ue per#ita darle una #ayor prioridad a esos estados$
El conjunto Owen se #aneja en este caso co#o una cola de prioridad
ordenada seg+n una funci(n 1eur'stica &ue aporta un conoci#iento adicional
sobre el proble#a abordado$ Esta funci(n puede ser% por eje#plo% una
esti#aci(n del largo del ca#ino &ue &ueda por recorrer para llegar al estado
objetivo$
procedure *+s&ueda.1eur'stica {
O,en 6estado.inicial7
closed -/
while (open no est vaca) {
remover el primer estado 0 de la lista O,en
if (0 es un estado objetivo) return camino hasta 0
else {
generar el conjunto de sucesores del estado 0
foreach (> en sucesores) {
if (> no est en O,en ni en closed) {
asignar a > un valor heurstico
agregar > en la lista O,en
}
elsif (> est en O,en) {
if (el nuevo camino a > es ms corto)
actuali%ar el camino almacenado en O,en
}
elsif (> est en closed) {
if (el nuevo camino a > es ms corto) {
remover el estado > del conjunto closed
agregar el estado > en la lista O,en
}
}
}
agregar el estado 0 al conjunto closed
reordenar la lista O,en seg&n valores heursticos
}
}
return fracaso
}
Ade#s de utilizar una cola de prioridad% este algorit#o se diferencia por
actualizar los ca#inos al#acenados en la lista Owen cada vez &ue se
encuentra un ca#ino #s corto% lo &ue #ejora la probabilidad de encontrar el
ca#ino (pti#o$ El ca#ino se al#acena en cada estado co#o un puntero al
padre$
Cuando se llega a un estado en cl$sed por un ca#ino #s corto% 1abr'a &ue
trans#itir esta infor#aci(n a todos sus sucesores$ Sin e#bargo% algunos de
estos sucesores pueden 1aber sido generados o posterior#ente actualizados
por otro ca#ino &ue 1asta el #o#ento parec'a #s corto% por lo cual estar'an
desvinculados del ancestro &ue se est considerando$ Ad#inistrar este
proble#a ser'a #uy engorroso% entonces se opta por repetir la b+s&ueda$
Se puede obtener una versi(n si#plificada de esta b+s&ueda 1eur'stica
eli#inando toda la infor#aci(n 1ist(rica contenida en Owen y closed$ En cada
paso se generan los sucesores del estado actual y s(lo se conserva al #ejor
de ellos para el paso siguiente$ El algorit#o se detiene cuando ninguno de los
sucesores tiene una #ejor evaluaci(n &ue el estado actual (sino entrar'a en un
ciclo infinito!$ Esta estrategia se lla#a algoritmo del gradiente (hill climbing en
ingl2s!$ 4unciona adecuada#ente cuando no 1ay (pti#os locales$
CO?C3@SIA?
En este trabajo docu#ental aprendi#os &ue un espacio de estados de un
juego cuyos nodos representan las confir#aciones alcanzables y cuyos arcos
e"plicitan las #ovidas posibles$ Ade#s pudi#os aprender &ue e"isten
diferentes tipos de b+s&ueda para la representaci(n de espacio de estados$

También podría gustarte