ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

ALGORITMOS


Enviado por   •  29 de Agosto de 2012  •  373 Palabras (2 Páginas)  •  510 Visitas

Página 1 de 2

ALGORITMOS ALEATORIOS

EL ALGORITMO DE ALEATORIEDAD ES MALO SI EL GENERADOR DE NUMEROS ALEATORIOS PRODUCE UNA PERMUTACION MALA.

PARA CONTRA ATACAR EL PROBLEMA UNICAMENTE SE NECESITA UN CAMBIO EN EL CODIGO DEL ARREGLO DE PERMUTACION DE ALEATORIEDAD.

ALGORTIMO MODIFICADO

RANDOMIZED-HIRE-ASSISTENT(N)

RANDOMLY PERMUTE THE LIS OF CANDIDATES

BEST=0 // EL CANDIDATO 0 ES EL MENOS CALIFICADO

FOR I=0 TO N

INTERVIEW CANDIDATE I

IF CANDIDATE I IS BETTER THAN CANDIDATE BEST

BEST = I

HIRE CANDIDATE

EL COSTO DEL PROCEDIMIENTO DEL ALGORITMO RANDOMLY PERMUTE THE LIS OF CANDIDATES

ES O(Chln n)

En el código anterior del tema 5.2 hacemos una suposición sobre las entradas, mientras que en el algoritmo actual no hacemos ninguna suposición, aunque aleatorizar las entradas toma tiempo adicional

Permutando arreglos aleatorizados

Varios algoritmos aleatorizados, aleatorizan las entradas por permutar las entradas dadas de los arreglos. En este tema checaremos dos formas de algoritmos aleatorizados.

Un método común es el de asignar a cada elemento del arreglo una prioridad de azar, a contiunuacion ordenar los elementos del arreglo de acuerdo a las prioridades.

Por ejemplo tenemos el arreglo A= <1,2,3,4> y luego elegimos las prioridades de azar

P= <36,3,62,19>, producimos un arreglo B= <2,4,1,3> a este método lo llamamos permute by sorting (permutar por clasificación).

Permute by sorting

N = A.length

Let P[1..n] be a new array

For I = 1 to n

P [i]=Random (1,n^3)

Sort A, using P as sort keys

La linea 4 elige un numero de aleatoriedad entre el 1 y n^3, es en donde iremos asignando las prioridades de aleatoriedad.

El procedimiento del algoritmo produce una aleatoriedad de permutación uniforme de las entradas, asumiendo que todas las prioridades son distintas.

El mejor método para generar permutación al azar es el de permutar el arreglo en su lugar. El procedimiento RANDOMIZE IN PLACE (ALEATORIAMENTE EN SU LUGAR) tiene un costo de O(n).

En la interacion i escoge el lemento A[i] al azar entre los elementos A[i] atraves de A[n], subsecuentemente la iteración i A[i] nunca es alterada.

RANDOMIZE IN PLACE

N = A.length

For I = 1 to n

SWAP A[i] with A [Random (I,n)]

Vamos a utilizar un bucle invariante para mostrar el procedimeinto de randomize in place produciendo una permutacion aleatoria uniforme.

...

Descargar como (para miembros actualizados) txt (2 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com