Sie sind auf Seite 1von 5

UNIVERSIDAD DON BOSCO

SISTEMAS EXPERTOS E INTELIGENCIA ARTIFICIAL


CICLO-1 2018
Algoritmo Radix
CATEDRATICO: ing. Herson Serrano
ALUMNOS:
Peña Figueroa Ricardo Antonio PF121764
Kevin Alexis Ortiz Alas OA121763
Torres Rodríguez Carlos Francisco TR121778
Algoritmo Radix/RX

Definición:
Es un algoritmo de ordenamiento que ordena enteros procesando sus dígitos de forma
individual. Como los enteros pueden representar cadenas de caracteres (por ejemplo,
nombres o fechas) y, especialmente, números en punto flotante especialmente
formateados, radix sort no está limitado sólo a los enteros.

Descripción de su funcionamiento.
La mayor parte de los ordenadores digitales representan internamente todos sus datos
como representaciones electrónicas de números binarios, por lo que procesar los dígitos de
las representaciones de enteros por representaciones de grupos de dígitos binarios es lo
más conveniente.
Existen dos clasificaciones de radix sort:
 El de dígito menos significativo (LSD).
 El de dígito más significativo (MSD).
Radix sort LSD procesa las representaciones de enteros empezando por el dígito menos
significativo y moviéndose hacia el dígito más significativo. Radix sort MSD trabaja en
sentido contrario.
Las representaciones de enteros que son procesadas por los algoritmos de ordenamiento
se les llama a menudo "claves", que pueden existir por sí mismas o asociadas a otros datos.
Radix sort LSD usa típicamente el siguiente orden: claves cortas aparecen antes que las
claves largas, y claves de la misma longitud son ordenadas de forma léxica. Esto coincide
con el orden normal de las representaciones de enteros, como la secuencia "1, 2, 3, 4, 5, 6,
7, 8, 9, 10".
Radix sorts MSD usa orden léxico, que es ideal para la ordenación de cadenas de caracteres,
como las palabras o representaciones de enteros de longitud fija. Una secuencia como "b,
c, d, e, f, g, h, i, j, ba "será ordenada léxicamente como "b, ba, c, d, e, f, g, h, i, j". Si se usa
orden léxico para ordenar representaciones de enteros de longitud variable, entonces la
ordenación de las representaciones de los números del 1 al 10 será "1, 10, 2, 3, 4, 5, 6, 7, 8,
9", como si las claves más cortas estuvieran justificadas a la izquierda y rellenadas a la
derecha con espacios en blanco, para hacerlas tan largas como la clave más larga, para el
propósito de este ordenamiento, cabe destacar que este método no funciona para la
estructura de datos debido a que los ciclos for que se implementaran marcaran error debido
a las matrices bidimensionales.

Características.
 Debido a que el ciclo for (k = 1; k <= m; k++) externo se recorre m veces (una para
cada dígito) y el ciclo interior n veces (una para cada elemento en el archivo) el
ordenamiento es de aproximadamente (m*n).
 Si las llaves son complejas (es decir, si casi cada número que puede ser una llave lo
es en realidad) m se aproxima a log n, por lo que (m*n) se aproxima a (n log n).
 Si la cantidad de dígitos es grande, en ocasiones es más eficiente ordenar el archivo
aplicando primero el ordenamiento de raíz a los dígitos más significativos y después
utilizando inserción directa sobre el archivo ordenado.

Ventajas.
 El ordenamiento es razonablemente eficiente si el número de dígitos en las llaves
no es demasiado grande.
 Si las máquinas tienen la ventaja de ordenar los dígitos (sobre todo si están en
binario) lo ejecutarían con mucho mayor rapidez de lo que ejecutan una
comparación de dos llaves completas.

Algoritmo.
Los pasos para el algoritmo de conteo, suponiendo que lo aplicamos al digito de menos peso
(primera iteración).
Paso (1) - Inicialización de Contadores: Inicializa a cero los contadores que el algoritmo va a
utilizar. En el caso del ejemplo, inicializaríamos un vector de 10 contadores, uno para cada
posible valor (de 0 a 9) de un digito decimal.
Paso (2) - Conteo: El paso de conteo calcula un histograma de los valores del digito para las
claves almacenadas en el vector fuente S Esto se realiza en las líneas 4 a 7 del Algoritmo 1.

Paso (3) - Suma Parcial: En este paso, líneas 9 a 15 del Algoritmo 1, se calcula la suma
parcial de los contadores. Esta suma se muestra en una instancia diferente del vector C.

Paso (4) - Movimiento: En el paso de movimiento se leen cada una de las claves y punteros
del vector S para escribirlas en el vector D (líneas 17 a 21 del Algoritmo 1). La posición del
vector D en la que se escribe una clave y su puntero se obtiene del contador del vector
de contadores C, indexado por el valor del dígito de la clave. Después de copiar la clave
y el puntero del vector S al vector D, se incrementa el contador correspondiente en el
vector C. Por ejemplo, cuando el algoritmo lee la primera clave del vector S (valor 10 de la
posición 0), indexa el vector C con el valor del dígito de menos peso de la clave, que es 0, y
utiliza el valor del contador como ´índice para almacenar la clave en el vector D. Después,
se incrementa la posición 0 del vector
Durante la segunda iteración de Radix se aplica el mismo procedimiento al dígito de
más peso de la clave. En este caso, los vectores S y D cambian sus papeles.
Algoritmo 1: Algoritmo de Conteo 1:
1. – Paso (1): Inicialización de Contadores
2. inicializa (C, nbuckets)
3. – Paso (2): Conteo
4. para i = 0 a n − 1 hacer
5. value ← get digit value(S[i], dig)
6. C[value] ← C[value] + 1
7. fin para
8. – Paso (3): Suma Parcial Contadores
9. tmp ← C[0]
10. C[0] ← 0
11. para i = 0 a nbuckets − 2 hacer
12. accum ← tmp + C[i]
13. tmp ← C[i + 1]
14. C[i + 1] ← accum
15. fin para
16. – Paso (4): Movimiento
17. para i = 0 a n − 1 hacer
18. value ← get digit value(S[i], dig)
19. D[C[value]] ← S[i]
20. C[value] ← C[value] + 1
21. fin para

Aplicación.
Una de las aplicaciones que se le da a este algoritmo Radix/Rx es en la Minería de Datos Inteligente.
RADIX/RX El sistema RX se utiliza para el descubrimiento de relaciones en bases de datos
clínicas. La diferencia importante con otros sistemas es que incorpora la noción de tiempo:
un dato es un conjunto de ejemplos que guardan información de un paciente en diferentes
momentos, y los conocimientos generados son de naturaleza causal. El sistema divide su
proceso de descubrimiento en dos etapas: primero genera hipótesis y, luego, utiliza técnicas
avanzadas de estadística para validarlas. El sistema RX fue utilizado en una base de
reumatología y sirvió para probar hipótesis acerca de la cantidad de droga predispone que
aumenta el colesterol en la sangre. Sin embargo, la principal desventaja de este sistema es
que no utiliza información del dominio para guiar la búsqueda. Una versión mejorada del
RX, el RADIX, sí lo hace.

Das könnte Ihnen auch gefallen