Vous êtes sur la page 1sur 10

Contenido.

Estratregias y Algoritmo de Busqueda Definicin Estrategias de bsqueda Una estrategia se define eligiendo el ORDEN EN LA EXPANSION DE NODOS sea donde se insertan los nodos expandidos en la lista o cola La evaluaci n de las estrategias tiene las siguientes di!ensiones" Algoritmo La pala.ra algorit!o se deriva de la traducci n al lat*n de la pala.ra )ra.e al23o4ari5!i0 no!.re de un !ate!)tico , astr no!o )ra.e $ue escri.i so.re !anipulaci n de n'!eros , ecuaciones en el siglo IX/ Un algorit!o es una serie de pasos organi5ados $ue descri.e el proceso $ue se de.e seguir0 para dar soluci n a un pro.le!a especifico/ un tratado #o!pletitud - encuentra o n una soluci n siendo $ue existe% #o!ple&idad te!poral - n'!ero de nodos generados(expandidos #o!ple&idad espacial - !)xi!o n'!ero de nodos en !e!oria Opti!alidad - encuentra o n una soluci n de !*ni!o costo% b - factor de ra!ificaci n del )r.ol de .'s$ueda d - profundidad de la soluci n de !*ni!o costo m - !axi!a profundidad del espacio de .'s$ueda +p/ e&/0 1-

Las dos co!ple&idades +te!poral , espacial- se !iden usando"

Algoritmos de bsqueda. En !uc3as situaciones de progra!aci n es necesario repetir ciertos

procedi!ientos 3asta alcan5ar un punto en $ue no se puede o no se desea continuar/ Esta repetici n de tareas puede llevarse a ca.o .)sica!ente de dos !aneras

diferentes" la iteraci n , la recursi n/ #o!o se supone $ue en cada repetici n se procesa un estado diferente de cosas -sin lo cual el proceso tender*a al infinito-0 a!.os !6todos presentan ta!.i6n alguna for!a de control de fin de tarea/ La idea .)sica en un algorit!o iterativo es $ue la repetici n de la tarea se controla desde afuera/ Se e&ecuta un con&unto de acciones en for!a co!pleta0 se verifica la condici n de salida , si es necesario se vuelve a e&ecutar el con&unto de acciones en for!a co!pleta/ El orden en $ue se e&ecuta , eval'a deter!ina $ue el algorit!o sea de evaluaci n previa +pri!ero se eval'a la condici n de salida , luego se e&ecutan las acciones- o de evaluaci n posterior +pri!ero se e&ecutan las acciones , luego se eval'a el resultado-/ En a!.os casos0 sin e!.argo0 el control de las repeticiones es exterior al grupo principal de acciones/ En un algorit!o recursivo0 en ca!.io0 la tarea se controla desde adentro/ Se co!ien5a a e&ecutar un con&unto de acciones0 pero antes de finali5ar se eval'a si se 3a llegado a la condici n de salida7 si no es as*0 se contin'a ordenando una nueva e&ecuci n del !is!o con&unto de acciones/ 8inal!ente se conclu,e con la tarea iniciada/ Dic3o en otros t6r!inos0 el procedi!iento se lla!a repetidas veces a s* !is!o0 , el control de esas lla!adas for!a parte del grupo principal de acciones/ Por otra parte0 si .ien 3a, pro.le!as $ue se resuelven !)s directa!ente en for!a iterativa , otros $ue son !)s natural!ente recursivos0 a!.as t6cnicas son co!pati.les e interca!.ia.les0 por lo $ue todo algorit!o recursivo puede transfor!arse en iterativo , viceversa/ Algorit!os De 9's$ueda #uando se trata de .uscar un valor en un arreglo ordenado de datos0 el algorit!o de .'s$ueda .inaria es el !)s frecuente!ente utili5ado/ La idea central de este algorit!o es co!parar el ele!ento u.icado en el lugar central del arreglo con el valor .uscado/ Si el ele!ento central es igual al valor .uscado la .'s$ueda finali5a con 6xito/ Si no es as*0 puede ocurrir o .ien $ue el ele!ento central sea !a,or $ue el .uscado -en cu,o caso el ele!ento coincidente de.e estar en la !itad inferior del arreglo- o .ien $ue sea !enor -, el ele!ento coincidente se encuentra en la !itad superior/ En a!.os casos se prosigue la .'s$ueda en la !itad $ue corresponde0 si es $ue $uedan ele!entos en esa direcci n0 o .ien se finali5a la .'s$ueda sin 6xito0 en caso contrario/ Existe

natural!ente una soluci n recursiva0 ,a $ue si el valor .uscado no es 3allado en la posici n del centro se repite el !is!o procedi!iento con una de las !itades del arreglo0 , as* 3asta $ue se encuentre el valor o no $ueden !)s :!itades:/ #o!p)rese esto con el pro.le!a de las .olillas dentro de las ca&as0 en el cual la :.olilla .lanca: ser*a el valor .uscado , la :ca&a interior: ser*a la !itad $ue se de.e seguir exa!inando/ En ocasiones es necesario deter!inar no s lo si el valor .uscado se 3alla en el arreglo0 sino ade!)s sa.er en $u6 posici n est) +o de.er*a estar0 si es $ue no existe-/ Por e&e!plo0 si se desea insertar un nuevo valor en un arreglo ordenado0 una soluci n efica5 es :.uscar: el valor en el arreglo +aun$ue se sepa de ante!ano $ue no se encuentra- para deter!inar la posici n correcta en la $ue de.e ser insertado/ En esos casos se de.e infor!ar por alg'n !edio +general!ente un puntero pasado co!o par)!etro o una varia.le glo.al- cu)l es la posici n l gica del ele!ento .uscado dentro del arreglo/ E&e!plo de un Algorit!o de 9's$ueda A !odo de e&e!plo se presenta una versi n de la funci n int .us.in +int ;vec0 unsigned ta!0 int val0 unsigned ;ord-7 <sta reali5a una .'s$ueda .inaria del ele!ento val en el vector de enteros apuntado por vec de ta! ele!entos , de&a en la !e!oria apuntada por ord la posici n l gica $ue tiene +o de.er*a tener- el ele!ento .uscado/ Retorna = si el ele!ento es 3allado o > en caso contrario/ Para calcular el ele!ento !itad del vector se despla5a ta! un .it a la derec3a0 lo $ue e$uivale a dividirlo en dos0 pero resulta !uc3o !)s r)pido para el procesador $ue la operaci n de divisi n/ int .us.in +int ;vec0 unsigned ta!0 int val0 unsigned ;ord- ?if +@+vec AA ta! AA ord-return >7 unsigned !itad B ta! CC =7 (( Divide ta! en D despla5ando un .it a la(( derec3a/ Es !)s r)pido $ue ta! ( D/ if +vec E!itadF BB valor- ? ;ord GB !itad7 return =7 H if +vec E!itadF I valor- ? !itadGG7 ;ord GB !itad7 vec GB !itad7 ta! -B !itad7 H else ta! B !itad7return ta!% .us.in +vec0 ta!0 va0 ord-" >7H

1.- Guiada por ob eti!os Ja!.iKn lla!ada +.ac2trac29's$ueda con .ac2trac2ing 9ac2trac2ing es una versi n de dept3-first $ue aplica el criterio LI8O para generar !)s $ue para expander/ Esto es0 s lo se genera un sucesor a la ve5/ Su gran venta&a es su a3orro en !e!oria/ Su gran desventa&a es el no poder incluir infor!aci n para evaluar cual de los sucesores es el !e&or/ Algunas !odificaciones de .ac2trac2ing regresan al nodo $ue ocaciona $ue se llegue a un punto sin salida +dependency directed backtracking-/ 9ac2trac2ing ta!.i6n puede servir para pro.le!as de +se!i--opti!i5aci n/ Si !antene!os la soluci n !)s .arata 3asta el !o!ento , usa!os esa infor!aci n para cortar ca!inos +asu!iendo $ue el costo no decrece con la profundidad de la .'s$ueda-/

Estrategia" L #onstruir una solucin parcial " asignaci n parcial $ue satisface las restricciones de las varia.les involucradas/ L Extender la soluci n parcial0 inclu,endo una varia.le cada ve5 3asta una soluci n total L Si no se puede extender MN.ac2trac2ing - cronol gico" se eli!ina la 'lti!a decisi n - no cronol gico" se eli!ina una decisi n anterior Jipos de varia.les" L pasadas MNsoluci n parcial0 tienen valor asignado L futuras MNsoluci n parcial0 no tienen valor asignado L actual0 varia.le en curso 6

Jipos de restricciones" L CP restricciones entre pasadas L CPF restricciones entre pasadas , futuras L CF restricciones entre futuras L CX restricciones $ue involucran var X B" # D$% & consistencia+PD$%' .'s$ueda pri!ero en profundidad consistencia+P-" Si P es consistente0 continua sino0 .ac2trac2ing consistencia+P-" es suficiente con co!pro.ar $ue

(isin local' la varia.le actual s lo se co!para con las varia.les pasadas %ituacin" +=0 a- inco!pati.le con +n 0 O-

B"" recorrer) el su.)r.ol ?XD 0 ///0 Xn H +=(! del )r.ol total- para darse cuenta de $ue a no esta en la soluci n/ Alternati!as" L detectar $ue a es inco!pati.le con Dn -- antes de la .'s$ueda -- al asignar a L .ac2trac2ing no cronol gico"

saltar directa!ente de Xn a X=

).- Guiada por datos Ja!.i6n conocida co!o +for4ard$or*ard c+ec,ing

$C # D$% & AC +CPFP B ?X=0 XD0 / / /0 Xi H AC +CPF- B AC +CX=- G AC +CXD- G /// G AC +CXi AC +CPFL en cada nodo AC +CactualL acu!ular resultados a lo largo de la ra!a actual" P AC +Cactual- poda do!inos futuros P sucesores de actual 3eredan do!inios futuros podados AC +CX=AC +CXDAC +Cactual-

$C # D$% & AC +CactualAC +Cactual-" efecto lateral L poda en do!inios futuros L .ac2trac2ing" restaurar valores podados tras la asignaci n de la varia.le actual restaura+XQ0Drestaura+XR0S-

Algoritmo $C

10

C-.C/0%12. Luego de reali5ar este tra.a&o 3e!os visto co!o los algorit!os son una de las 3erra!ientas !)s co!ple&as , aplica.les en el )rea de la infor!)tica , el !undo de los co!putadores/ Pudi!os co!pro.ar $ue !ientras !)s potente0 co!pleto , eficiente es el co!putador o la aplicaci n $ue corre so.re el !is!o !as grande0 co!ple&o , exacto es el algorit!o $ue utili5a/ Las t6cnicas de desarrollo de algorit!os nos per!iten encontrar la !e&or solucion a los pro.le!as $ue se nos presentan , de.en ser solucionados por el co!putador0 estas t6cnicas est)n orientadas para utili5arse en cada uno de los niveles de co!ple&idad , variedad o alternativas para las cuales se aplican los algorit!os/ Un algorit!o es el con&unto de operaciones , procedi!ientos $ue de.en seguirse para resolver un pro.le!a0 es por ellos $ue de.e!os estudiarlos , conocerlos/

11

$0E."E% D-C03E."A/E% =/-/444/!onografias/co! D/-/444/solo!anuales/co! R/-/444/altavista/co! Q/-/444/elrincondelvago/co! S/-/444/aulaclic2/co!

12

Vous aimerez peut-être aussi