Beruflich Dokumente
Kultur Dokumente
ResolucinmediantebsquedaIDSyA*
MarceloFerreira,ChristianGmez,GuidoCasco,
AlidaInvernizzi.
ElectivaIII,InteligenciaArtificial,OctavoSemestre,
{jmferreira1978,cgomezpy,guiancs82,alidainvernizzi}@gmail.com
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.
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.
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):
Fig.1Elrboldeexpansincorrespondealasolucindeuntableroalazar(3x3)
mediantelabsquedaporprofundidaditerativa.Seapreciaelrecorridodelasolucin
ylametaencontradaenprofundidad4.NotamosquelabsquedaIDS,elcualaplica
repetidamentelabsquedadeprofundidadlimitadaincrementandoellmite.Termina
cuandoseencuentraunasolucinosilabsquedadeprofundidadlimitadadevuelve
unfracaso,significandoquenoexistesolucin.
Elpseudocdigodelalgoritmoes:
FuncionBusquedaIDS(problema)retornasolucinofallo
Entradas:problema
Paraprofundidad0a hacer
resultado BusquedaIDS (problema, profundidad)
si resultado corte entonces devolver resultado
1.2
Mtodosdebsquedaconinformacin:
BsquedaA*:
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*.
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