Sie sind auf Seite 1von 8

NPuzzle:

ResolucinmediantebsquedaIDSyA*
MarceloFerreira,ChristianGmez,GuidoCasco,
AlidaInvernizzi.
ElectivaIII,InteligenciaArtificial,OctavoSemestre,
{jmferreira1978,cgomezpy,guiancs82,alidainvernizzi}@gmail.com

Resumen. El documento presentado trata a cerca de las implementaciones


realizadaspararesolverelproblemadelNPuzzle,pormediodebsquedassin
informacin,conprofundidaditerativa,yconinformacin,A*,utilizandola
heurstica de cantidad de cuadros en lugar incorrecto, realizando una
comparacinencuantoacostoespacialytemporaldeambosmtodos.
PalabrasClaves:Bsqueda,A*,profundidaditerativa(IDS ),heurstica.
1

Introduccin

ElnpuzzleconsisteenuntableroNxNcasillas,N1delascasillascontienenuna
fichaquesepuededeslizarporeltablerodemanerahorizontal(izquierdayderecha)y
vertical (arriba yabajo),lasfichasestnmarcadasconnmerodel1alN1yse
cuenta con una casilla en blanco que permite los movimientos de las fichas. El
problemaesllegaraunestadofinalometa,queesunestadoenelqueladisposicin
delasfichasestordenada.
Laestrategiadebsquedanoinformadaimplementadaesladeprofundidaditerativa,
utilizadogeneralmentecuandonoseconocelaprofundidaddeantemano.
Adems el npuzzle, es un clsico problema que permite la combinacin de
algoritmosconunaheurstica,enestecasoseutilizalaheurstica decantidadde
cuadros enlugar incorrecto, con laestrategia debsqueda informada A*,locual
permite encontrar soluciones de manera ms eficiente que una estrategia no
informada.

IDS: iterativeDeeping Search. Labsqueda conprofundidad iterativees unaestrategia


usadaencombinacinconlabsquedaprimeroenprofundidad,lacualencuentraelmejor
lmitedeprofundidad.Estohaceaumentandogradualmenteellimite(0,luego1,despus2,y
assucesivamente)hastaencontrarunameta.

Ordenarlascasillaspuederesultardifcil,yaquelasolucinparaunnmeromuy
grandepodratomardemasiadotiempoyhastaresultarintratable.
A continuacin se dar una explicacin del problema a ser resuelto y de la
implementacin que nos llevar a la solucin y comparar el coste de ambas
bsquedas.

DescripcindelProblema.

Nuestro problema del N-puzzle, se asemeja al modelo de un rompecabezas, pero a


diferencia de un rompecabezas comn y corriente donde uno puede mover las piezas a
su antojo hasta llegar a tener la disposicin requerida de las piezas, en este modelo,
las piezas slo se pueden mover deslizndolas, ya sea de manera horizontal o vertical,
y adems slo se puede deslizar una casilla por vez.
En este caso se analiza un puzzle cuya finalidad es obtener un estado ordenado por
nmeros, pero en realidad podra tratarse hasta de formar una figura cualquiera.
Los factores que principales intervienen para la solucin del problema son: las
limitaciones en el movimiento de las fichas, las metodologas de bsqueda sin y con
informacin y la heurstica a usar. El principal aspecto a considerar en la solucin del
problema es el coste de la solucin.
Las limitaciones en el movimiento de las fichas, as como, la heurstica a usar para
que se tenga un menor nmero de iteraciones para llegar al estado meta, son factores
importantes que intervienen en el problema.
La importancia de resolver este problema radica en la implementacin de los
algoritmos, Profundidad Iterativa y A* y poner a prueba de la heurstica, puesto que
se trata de un problema con un nmero muy grande de posibles estados y realizar las
comparaciones entre ambos en cuanto a los costes.
Para la solucin del problema se realiz lo siguiente:
- Representacin de los estados.
- Representacin del estado inicial, estado meta, operadores.
- Definicin de heursticas a implementar.
- Definicin del lenguaje de programacin a utilizar (Java).
- Implementacin de la estrategia de bsqueda sin informacin (Profundidad
Iterativa).
- Implementacin de la estrategia de bsqueda informada (A*).
- Implementacin de la heurstica (numer de posiciones incorrectas) y control del
estado meta.
- Puesta a prueba del programa.

1.1

Mtodosdebsquedasininformacin:

Llamado tambin bsqueda ciega. Son mtodos de bsqueda en los cuales no existe
informacin acerca de la cantidad de pasos necesarios o costo de ruta para pasar del
estado en un momento dado al estado meta. Este mtodo slo permite diferenciar
entre el estado meta de otro que no lo es.
1.1.1

BsquedaporProfundidadIterativa(IDS):

Es usada en combinacin con la bsqueda primero en profundidad, la cual encuentra


el mejor lmite de profundidad. Esto se hace aumentando gradualmente el lmite hasta
que encontramos un objetivo.
Es completa y ptima y su exigencia de memoria es O(bd) y su complejidad en
tiempo es O(bd) [1].

Fig.1Elrboldeexpansincorrespondealasolucindeuntableroalazar(3x3)
mediantelabsquedaporprofundidaditerativa.Seapreciaelrecorridodelasolucin
ylametaencontradaenprofundidad4.NotamosquelabsquedaIDS,elcualaplica
repetidamentelabsquedadeprofundidadlimitadaincrementandoellmite.Termina

cuandoseencuentraunasolucinosilabsquedadeprofundidadlimitadadevuelve
unfracaso,significandoquenoexistesolucin.

El problema del n-puzzle, mediante la bsqueda por IDS se resuelve de la siguiente


manera:
Seiniciaconeltableroproblema
SeverificalosposiblesmovimientosdelGAP
Seexpandeelrbolconformealosmovimientosdelgap.Lamximaexpansin
serade4hijos(encasodequeelgapnoseencuentreenningunodelosextremos
superioresoinferiores)
Secomparacadanodoexpandidoconlameta.Sisatisfacelameta,termina.Sino,
verificalosposiblesmovimientosdelGAPenelnuevotableroyexpandeelrbol.
2

Elpseudocdigodelalgoritmoes:
FuncionBusquedaIDS(problema)retornasolucinofallo
Entradas:problema
Paraprofundidad0a hacer
resultado BusquedaIDS (problema, profundidad)
si resultado corte entonces devolver resultado

1.2

Mtodosdebsquedaconinformacin:

A diferencia de la definicin anterior, en stos mtodos de bsqueda si existe


informacin dado un estado determinado, que permite encontrar soluciones con ms
eficiencia.
1.2.1

BsquedaA*:

Dada una funcin de evaluacin f:


f(n) = g(n) + h(n)
Donde con g(n) se calcula el costo de ruta que va desde el nodo de partida al nodo n y
h(n) es el costo estimado que va desde el nodo n al nodo meta (heurstica).

GAP: hueco o espacio. En muchas implementaciones de npuzzle el gap equivale al


cero

A*esunalgoritmocompleto:encasodeexistirunasolucin,siempredarconella.
Paragarantizarlaoptimalidaddelalgoritmo,lafuncinh(n)debeseradmisible,esto
es,quenosobrestimeelcosterealdealcanzarelnodoobjetivo.

Fig.2Elrboldeexpansincorrespondealasolucindeuntableroalazar(3x3)
mediantelabsquedaA*conheurstica,cantidaddecuadrosenlugarincorrecto.Se
apreciaelrecorridodelasolucinylametaencontradaenprofundidad4.Sepuede
apreciarquelacantidaddeexpansionesrealizadasporelA*esmuchomenorquela
deIDS,comoseesperaba,estosedebeaquesoloseexpandenlosnodosconmenor
heurstica.
El problema del n-puzzle, mediante la bsqueda A* se resuelve de la siguiente
manera:
Seiniciaconeltableroproblema
SeverificalosposiblesmovimientosdelGAP
Seexpandeelrbolconformealosmovimientosdelgapyluegoseselecciona
aquelconmenorcostoheurstico.
Secomparacadanodoexpandidoconlameta.Sisatisfacelameta,termina.Sino,
verificalosposiblesmovimientosdelGAPenelnuevotableroyexpandeelrbol.

Implementacin.
Elproblemapuedeserdefinidoporlossiguientescomponentes[2]:
1)Tablero(NPuzzleBoard)
Lascasillasdeltablerosongeneradasaleatoriamenteaparirdeunafuncin,dando
como resultado el Estado Inicial. El tablero contiene informacin de las
coordenadas de cada elemento y las funciones necesarias para realizar el
movimientodelGap.
2)FuncionSucesor(NPuzzleSuccessorFunction)
Indicaenquedireccinpuedemoverselaficha,arriba,abajo,derechaoizquierda
deacuerdoalaposicindelhueco,portantorealizalaexpansindelnodoensus
correspondienteshijos.
3)PruebadeMeta(NPuzzleGoalTest)
Contiene toda la informacin con la cual se contrasta el estado actual para
determinarsiestamosantesunasolucin.
4)Framework
Unpaquetequecontienelaimplementacindetodalainformacinalmacenadaen
elnodo(estado,padre,profundidad,costo,nodosexpandidos)
5)Funcinheurstica
La heurstica utilizada es ladecantidad decuadros en lugares incorrectos o
MisplacedTile.Lafuncinrecorreeltableroyvacontabilizandoqueelementosse
encuentranenposicionesincorrectas.
Elesquemadeinteraccininiciaconlaconstruccindeltableroutilizandouna
funcinquedispersaloselementosparaobtenerciertaaleatoriedad.Ladefinicin
del problemarequiereelusodeunafuncinsucesor,portantoelproblemase
planteacomounacombinacindelameta,lafuncinsucesoraylaheursticaenel
casodeA*.

El fragmento de cdigo del IDS es:


Problemproblem=newProblem(random1,
newNPuzzleSuccessorFunction(),meta);
Searchsearch=newIterativeDeepeningSearch();

SearchAgentagent=newSearchAgent(problem,search);
Laclasequerealizalabsquedaenprofundidaditerativatambineslaencargada
deimplementarelmtododecutOffResult,queeliminalosduplicadosconelfin
deevitarestadosrepetitivos.Adicionalmente,vaalmacenandoencadaprocesolas
mtricas(costo,profundidad,nodosexpandidos)
Se proporciona un agente de bsqueda, que recibe el problema junto con el
mecanismodebsquedaparainiciarelprocesodebsquedadelasolucin.

ResultadosExperimentales.

ElsiguientecuadrocomparativomuestralaejecucindelNPuzzleenunaPCcon
procesadorIntelPentiumCentrinode1.5GHzcon1.25GBdememoriadisponible.
.
MDR
Tamao
deN
3
4

10

50

A*

0,02

78

0,29

10

1.177

20

64.981

144.489

0,01

114

0,32

10

17.333

20

424.172.861

75
>
10hs

24

IDS

29,21
126
min

24

N/A

10

25.447

>5h

20

N/A

N/A

N/A

10

N/A

>5h

20

N/A

N/A

N/A

A*

60

65k

IDS

120

176k

MDR
Tamao
deN
5

Movimientos(*)
20

A*
IDS

25
min.
>3h

Movimientos(*)
6

0.6

0..32

10

105

7h

155.467

>10h

N/A

>10h

N/A

>7h

N/A

>10h

N/A

>10h

N/A

Referencias:
*Eselnmerodeposicionesquefuemovidoalazarelespacioenblancodesdeel
estadometahastaunestadoproblema.
T:Tiempo(ensegundossinoseespecifica)empleadoporelalgoritmopararesolver
elproblema.
P:Profundidadenelrbolexpandidodondeseencuentrelasolucin.
N:Nmerodenodosexpandidosporelmtododeresolucin.

MRD:MtododeResolucindelProblema

Conclusin.

Sibienelnpuzzleesunproblemadelosdenominadosdejuguete,lasdimensiones
delespaciodeestadosnosonnadadespreciables,siendoenalgunosaspectosms
problemticos,porloqueesteproblemailustraperfectamentelosaspectosprcticos
deestossistemas.
Elusodeheurstica esfundamentalparaafinarbienunalgoritmoA*(anacostade
perderlaoptimalidad).Elajustedeh(n)deberealizarseexperimentalmentepara
garantizarrespuestascuasiptimasentiemposdeprocesoaceptables.
3

Sih(n)nosobreestimaelcostedecompletarelcaminosolucin,entoncessabemos
que:

f(n)=g(n)+h(n)<=C*
Encasodelaheursticadecuadrosenlugaresincorrectos,sobreestimalasolucin
yportantoenciertoscasosnollegaalasolucinresultandoinadmisible.

Referencias

1.
Russell, Stuart;Norvig, Meter: InteligenciaArtificial. Un enfoqueModerno, Ed.
PrenticeHallHispanoamricana,pp.8789,107115.
2.
Java implementation of algorithms from Norvig And Russell's "Artificial
IntelligenceAModernApproach".http://aima.cs.berkeley.edu/

Reflexionessobre8Puzzle.http://www.sia.eui.upm.es/isa/doku.php

Das könnte Ihnen auch gefallen