Está en la página 1de 22

ALGORITMOS DE LAS VEGAS

Con suerte voy ms rpido...

Diseo y Anlisis de Algoritmos Ctedra de Programacin Carrera de Ingeniera Sistemas Laudin Alessandro Molina

ALGORITMOS DE LAS VEGAS

Utilizan azar para alcanzar una solucin correcta ms rpido que un algoritmo determinista.

Siempre alcanzan una solucin correcta o reconocen una solucin errnea.

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Existe dos tipos de algoritmos Las Vegas: a) Los que siempre encuentra una solucin correcta, aunque las decisiones tomadas no fueran las ptimas. b) Los que no encuentran una solucin y deben reiniciar la ejecucin del algoritmo tomando decisiones aleatorias diferentes.
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS


Tipo a: Cuando existe una solucin determinista, que es mucho ms rpida en el caso medio que en el peor caso, podemos introducir aleatoriedad para reducir o eliminar la aparicin de los casos malos. La idea es lograr uniformidad en los tiempos de ejecucin sin importar el caso.
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS

Tipo a: Este tipo tiene un efecto Robin Hood, pues roban tiempo a los casos rpidos para drselo a los casos lentos.

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS

Tipo a: Tomemos por ejemplo, el problema de seleccin, que tiene un algoritmo determinista con un tiempo logartmico en el caso promedio, pero que puede llegar a ser cuadrtico en el peor caso.

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Mrida,Junio2005 seleccion(ArreglodeEnteros[1..n]:T,Entero:k):Entero {pre:n>0,0<k<n+1} i,j=1,n (i<j)[ m=T[1] particionar(T,i,j,m,u,v) si(k<u)entonces j=u1 sinosi(k>v)entonces i=v+1 sinoentonces i,j=k,k f_si ] RegresarT[i] particionar:funcinqueparticionaunarreglo,coloca loselementosmenoresamantesdemylos mayoresquemdespuesdem {pos:n>0,0<k<n+1} AuxiliarEntero:i,j,m,u,v.Almacenanloslimitesdel arreglo.

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Mrida,Junio2005 particionar(ArreglodeEnteros[1..n]:T,Entero:i,j,m,u,v) {pre:n>0} u,v=i,i [ele=T[k] si(ele<m)entonces T[k]=T[v] T[v]=T[u] T[u]=ele u,v=u+1,v+1 sinosi(ele=m) T[k]=T[v] T[v]=ele
v=v+1 f_si

{pos:n>0} AuxiliarEntero:i,j.Almacenanloslimitesdelarreglo queseestaevaluando. Lasvariablesuyvdebeserpasadascomoreferencia,es necesarioqueconservensuvalorluegodeterminarla corrida

]k=i,k<=n v=v1

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Mrida,Junio2005 SeleccionLV(ArreglodeEnteros[1..n]:T,Entero:k):Entero {pre:n>0,0<k<n+1} i,j=1,n (i<j)[ m=T[uniforme(i,j)] particionar(T,i,j,m,u,v) si(k<u)entonces j=u1 sinosi(k>v)entonces i=v+1 sinoentonces i,j=k,k f_si ] RegresarT[i] uniforme:funcinqueregresaunvaloraleatorioentero, pertenecientealrango[i,j] particionar:funcinqueparticionaunarreglo,colocando loselementosmenoresamantesdemylosmayores quemdespuesdem {pos:n>0,0<k<n+1} AuxiliarEntero:i,j,m,u,v.Almacenanloslimitesdel arreglo.

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Tipo a: Los algoritmos de este tipo no son ms rpidos que su contra-parte determinista cuando consideramos las media para todos los casos de un tamao dado, pero, con mucha probabilidad, los casos que requieren mucho tiempo con el mtodo determinista ahora se resuelven ms rpido.

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Tipo b: Se les permite tomar decisiones que llevan a un callejn sin salida. Deben ser capaces de reconocer cuando estn en un callejn sin salida. Si fallan, se vuelven a ejecutar con la misma entrada.
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS


Tipo b: Solo son aceptables si la probabilidad de finalizar con xito es razonable. Resuelven problemas en los que no se conoce algoritmos deterministas eficientes. El tiempo de ejecucin no esta acotado pero s es razonable con probabilidad deseada para toda entrada.
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS


Tiempo esperado de Las Vegas tipo b Supongamos el siguiente algoritmo:
Mrida,Junio2005 RepetirLV(TipoDato:x) {pre:} [ LasVegas(x,y,exito) ](exito) Regresary {pos:} TipoDato:y.Variablequealmacenaelresultadodel algoritmo. Lgico:exito.Variablequecontrolaelxitoofracasode laultimaejecucindeLasVegas

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Dado que cada llamada a LasVegas(x, y, exito) tiene una probabilidad de xito p(x), el nmero esperado de pasadas por el bucle es 1/p(x) Sea v(x) el tiempo esperado de ejecuciones de LasVegas(x, y, exito) si devuelve exito y f(x) el tiempo esperado si devuelve falso, entonces el tiempo esperado de repetirLV(x) es: t(x)=p(x)v(x) + (1-p(x)) (f(x)+t(x)) t(x)=v(x) + (1-p(x))/p(x) f(x)
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS


Ejemplo de Las Vegas tipo b: El Problema de las 8 Reinas Ubicar 8 reinas en un tablero de ajedrez de forma que no se amenacen entre si. Solucin: Colocar aleatoriamente las reinas y verificar que no queden amenazadas unas con otras.
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS


Algoritmo
Mrida,Junio2005 reinasLV(ArreglodeEnetero[1..8]:sol,logico:exito) {pre:} col,diag45,diag135={},{},{} [nb=0 [ si(j!Ecolyjk!Ediag45yj+k!Ediag135)entonces nb=nb+1 ok[nb]=j f_si ]j=0,j=8 sinb=0entoncesterminarexito=falso j=ok[uniforme(1..nb)] col,diag45,diag135=colU{j},diag45U{jk},diag135U{j+k} sol[k+1]=j ]k=0,k=7 Regresarexito=verdadero {pos:} Entero:col,diag45,diag135. Almacenanlascolumnasydiagonales queyaestnocupadas. EnteroAuxiliar:j,k

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


La probabilidad de xito es p(x) = 0.1293 y la cantidad esperada de nodos a visitar si se fracasa es f(x) = 6.971, lo que quiere decir que se obtiene una solucin ms de una vez de entre ocho! El nmero total de nodos visitados (repeticiones del primer bucle) ser: t(x) = 9 + (1-0.1293)/0.1293 * 6.971 t(x) = 55.93
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS

El mtodo de vuelta atrs necesita visitar 114 nodos para encontrar la primera solucin, mientras que con el mtodo de Las Vegas se espera encontrar una solucin visitando 55.93 nodos. La mitad de los Nodos!

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS

Hay que tener en cuenta que el los algoritmos de Las Vegas utilizan nmeros seudo-aleatorios, lo que puede generar algunas discrepancias entre el tiempo esperado y el tipo real de corrida.

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


El algoritmo de Las Vegas es muy derrotista, es decir, cuando encuentra un fallo vuelve a empezar desde el principio. El algoritmo de Vuelta Atrs hace una bsqueda sistemtica. Una combinacin de ambos produce un algoritmo ms eficiente.
Laudin Alessandro Molina Junio 2005

ALGORITMOS DE LAS VEGAS

Vuelta a Las Vegas La Idea es ubicar algunas reinas de forma aleatoria y luego situar las restantes sistemticamente. cuantas reinas debemos situar aleatoriamente?

Laudin Alessandro Molina

Junio 2005

ALGORITMOS DE LAS VEGAS


Utilizando un computador hacemos corridas de prueba y calculamos la probabilidad de xito (p), el nmero esperado de nodos a visitar en caso de xito (v) y el nmero esperado de nodos en caso de fracaso (f)
NoReinas 0 1 2 3 4 5 6 7 8 p 1,0000 1,0000 0,8750 0,4931 0,2618 0,1624 0,1357 0,1293 0,1293 v 114,00 39,63 22,53 13,48 10,31 9,33 9,05 9,00 9,00 f 0,00 0,00 39,67 15,10 8,79 7,29 6,98 6,97 6,97 t 114,00 39,63 28,20 29,01 35,10 46,92 53,50 55,93 55,93

Laudin Alessandro Molina

Junio 2005

También podría gustarte