La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

IBD Plan 2003 Clase 4. UNLP - Facultad de InformáticaIBD - CLASE 4 2 Archivos - Búsqueda Búsqueda de información (costo) # de comparaciones (operaciones.

Presentaciones similares


Presentación del tema: "IBD Plan 2003 Clase 4. UNLP - Facultad de InformáticaIBD - CLASE 4 2 Archivos - Búsqueda Búsqueda de información (costo) # de comparaciones (operaciones."— Transcripción de la presentación:

1 IBD Plan 2003 Clase 4

2 UNLP - Facultad de InformáticaIBD - CLASE 4 2 Archivos - Búsqueda Búsqueda de información (costo) # de comparaciones (operaciones en memoria) Se pueden mejorar con algoritmos más eficientes. # de accesos (operaciones en disco) Buscar un registro + rápido si conocemos el NRR (directo) Secuencia debe buscarse desde el principio Trataremos de incorporar el uso de claves o llaves.

3 UNLP - Facultad de InformáticaIBD - CLASE 4 3 Archivos - Búsqueda Búsqueda binaria Supongamos Archivo ordenado por clave Registros de longitud fija Búsqueda, partir el archivo a la mitad y comparar la clave, puedo acceder al medio por tener long. Fija Si N es el # de registros, la performance será del orden de Log 2 N (teniendo en cuenta los accesos) Se mejora la performance de la búsqueda secuencial.

4 UNLP - Facultad de InformáticaIBD - CLASE 4 4 Archivos - Búsqueda Algoritmo de búsqueda secuencia tener en cuenta que es un pseudocódigo NO estructurado Function Busqueda_Bin ( entrada, llave, #reg) menor := 1 mayor := #reg mientras ( menor <= mayor ) intento :=[(mayor+menor )/2] leo un reg con NRR = intento armo llave canónica del reg. leído en llave_c If llave < llave_c entonces mayor:=intento+1 sino if llave > llave_c entonces menor:=intento+1 sino devuelve (registro) fin mientras devuelve ( no esta )

5 UNLP - Facultad de InformáticaIBD - CLASE 4 5 Archivos - Clasificación La búsqueda binaria acota el espacio para encontrar información tiene un costo mantener ordenado el archivo Primera solución Llevar el archivo a RAM (vector) y ordenar Por que RAM y no disco directamente El número de corrimientos implica accesos a disco, muy costoso. Primer paso, llevar las llaves a forma canónica Algoritmos de ordenación se pueden encontrar en bibliografía, aparece una variante interesante.

6 UNLP - Facultad de InformáticaIBD - CLASE 4 6 Archivos - Clasificación Algunas conclusiones Búsqueda binaria mejora la secuencial Problemas # accesos baja pero no llega a uno Acceder por el NRR requiere una lectura Costo de mantener el orden Análisis costo beneficio entre costo del orden o costo de la búsqueda Clasificación en RAM solo para archivos pequeños Mejorar el método de ordenación No reordenando TODO el archivo Reorganizando con métodos más eficientes (árboles)

7 UNLP - Facultad de InformáticaIBD - CLASE 4 7 Archivos - Clasificación Segunda posibilidad de clasificación No llevar todo el archivo a RAM solo llevar la llave o clave Esto permite clasificar archivos más grandes Algoritmos en la bibliografía Se obtienen mejoras o es la solución esperada??

8 UNLP - Facultad de InformáticaIBD - CLASE 4 8 Archivo - Clasificación Tercera solución El archivo de datos no cabe en RAM Las claves del archivo tampoco caben en RAM La clasificación debe hacerse de otra forma Partir el archivo Ordenar cada parte Juntar las partes ordenadas

9 UNLP - Facultad de InformáticaIBD - CLASE 4 9 Archivos – Clasificación Primer paso: establecer las particiones Ventajas Permite clasificar archivos grandes (aumenta el número de particiones) Lectura de cada partición es siempre secuencial Lectura de cada partición en orden, escritura en un nuevo archivo (ambas secuenciales) Como determinar el tamaño Lo que quepa en memoria RAM

10 UNLP - Facultad de InformáticaIBD - CLASE 4 10 Archivos – Clasificación Ejemplo del método Formamos 40 particiones, 1/40 parte del archivo original. Ordena cada parte Juntamos las partes Estudio numérico

11 UNLP - Facultad de InformáticaIBD - CLASE 4 11 Archivos – Clasificación Como mejorar la performance Achicar el número de particiones Intercalar de otra forma (por ej. en más de un paso, o por otro método de merge) Particiones El tamaño está dado por lo que cabe en RAM Tres posibilidades Sort interno Selección por reemplazo Selección natural

12 UNLP - Facultad de InformáticaIBD - CLASE 4 12 Archivos - Clasificación Sort interno: mecanismo ya visto, M registros que caben en RAM y se genera un archivo de salida ordenado. Selección por reemplazo: Aumenta el tamaño de las particiones en promedio al doble 1.Leer M registros desordenados 2.Obtener clave menor 3.Pasar la clave menor al archivo de salida 4.Reemplazar por otro, si tiene clave menor a la pasada al arch. de salida dormirlo. 5.Repetir dos hasta que todos los registros en la entrada estén dormidos. 6.Comenzar con una nueva partición despertando todos los dormidos, desde el paso 2 y hasta terminar el archivo original

13 UNLP - Facultad de InformáticaIBD - CLASE 4 13 Archivos - Clasificación Algoritmo N {# de registros} buffer {reg. entrada} escrito {reg. ya escritos} dormido {reg. dormidos} ult_llave {ult.clave pasada} for i:=1 to M escrito[i] := true i := 0 repetir i:=i + 1 leer buffer[i] de entrada escrito[i] := falso hasta (eof(entrada)) o (i = M) mientras not( eof( entrada ) ) for i := 1 to M if not escrito[i] then dormido[i]:= false mientras (haya reg.despiertos) encontrar clave menor de buffer y que este despierto ult_llave:=llave buffer[s] escrito[s]:= true dormido[s]:= true if not eof(entrada) then leer buffer[s] de entr. escrito[s]:= false if ult_llave < buffer[s] then dormido[s]:=true end

14 UNLP - Facultad de InformáticaIBD - CLASE 4 14 Archivos - Clasificación Algunos datos de selección por reemplazo Aumenta el tamaño de cada partición Los registros se deben leer de a uno esto es imposible, se utilizan buffers que ocupan parte de la RAM Selección natural Aprovecha el espacio de memoria, necesitamos algún buffer más pero ahorra memoria Los dormidos se pasan a un buffer secundario, y permiten que entren nuevos elementos del archivo de entrada, cuando el buffer secundario se llena se termina de dormir elementos. Particiones quedan con más elementos.

15 UNLP - Facultad de InformáticaIBD - CLASE 4 15 Archivos - Clasificación Algoritmo M,M {# reg. y reserva exter.} buffer, escrito, dormido reserva {#reg. actual en reserva} sin_espacio {flag de reserva} ult_llave {idem} {seteo estado inicial} for i:= 1 to M escrito[i]:= true i := 0 Repetir i:=i + 1 leer buffer[i] de entrada escrito[i]:= falso hasta eof(entrada) or i = M repetir reserva := 0 sin_espacio := falso repetir obtener clave menor y escribirla en buffer[s] ult_llave := buffer[s] escrito[s]:= true if not eof(entrada) then listo:=falso repetir if llave reg siguiente >= ult_llave then escrito[s]:=false listo:= true buffer[s]:=new elem. else if reserva < M then nueva entrada pasa al reservorio reserva:=reserva+1 else sin_espacio := true hasta listo or sin_espacio hasta eof(entrada) or sin_espacio sacar los elementos no escritos de buffer en orden, poner escrito en true {preparar buffer para la nueva partición} if reserva > 0 then mover a buffer reg. del reservorio y actualizar escrito y reserva. if buffer no lleno y not eof(entrada) then completar buffer hasta escrito este todo en true

16 UNLP - Facultad de InformáticaIBD - CLASE 4 16 Archivos - Clasificación Conclusiones Ventajas Interno: particiones del mismo tamaño Natural: tiende a producir particiones mayores Interno y selección: costo de acceso menor Desventajas Natural: mayor costo en acceso (generar el archivo intermedio) Selección: tiende a generar muchos registros dormidos.

17 UNLP - Facultad de InformáticaIBD - CLASE 4 17 Archivos - Clasificación Intercalación en más de un paso Solución: agregar pasos intermedios con archivos temporales para mejorar la eficiencia Ejemplo Conclusiones Intercalando más de 5 porciones hacer dos pasos El método mejora si se disponen de varios discos o con varias cabezas lectoras grabadoras.

18 UNLP - Facultad de InformáticaIBD - CLASE 4 18 Archivos - Clasificación Otros métodos de intercalación Balanceado de n caminos Óptimo Multifase Que estudiaremos Eficiencia medida como: # total de registros leídos # total de registros ordenados

19 UNLP - Facultad de InformáticaIBD - CLASE 4 19 Archivos - Clasificación Balanceado de N caminos Dos conjuntos de buffer Entrada Salida #archivos, divididos proporcionalmente en los buffer de entrada asignado por el SO. Método 1.C/partición (con M elementos) se acomoda en un archivo de entrada 2.Merge entre archivos de entrada produciendo archivos de salida (con M 2 registros ordenados) 3.Continuar dos hasta terminar los archivos de entrada 4.Convertir archivos de E en arch de S y viceversa 5.Repetir 2 hasta formar una partición con todos los elementos ordenados.

20 UNLP - Facultad de InformáticaIBD - CLASE 4 20 Archivos - Clasificación Algoritmo N { tamaño de c/set } set_entrada { flag indica cual EoS base tam. set de salida } num_arc_salida { # arc. de salida } num_particion { # part. Generada } N := F div 2 { # arch. de E y S } set_entrada := false repetir {preparar los archivos} cambiar valor de set_entrada if set_entrada then abrir arch 1 a N Entrada abrir arch N+1 a F Salida tam_set_salida := F – N base := N + 1 else abrir arch 1 a N Salida abrir arch N+1 a F Entrada tam_set_salida := N base := 1 {fase del método} num_arc_salida := 0 num_particion := 0 repetir merge partición de c/arch.Entr. dentro del arch. numerado (base + num_arc_salida) num_particion:=num_particion+1 num_arc_salida:=(num_arc_salida +1) mod tam_set_salida hasta terminen los arch. de E hasta num_particion = 1 if set_entrada then archivo ordenado N+1 else archivo ordenado 1

21 UNLP - Facultad de InformáticaIBD - CLASE 4 21 Archivos - Clasificación Merge óptimo 1 archivo de salida, el resto de entrada Se hace el merge entre las particiones de entrada y genera una de salida esto se repite hasta generar una partición con todos los datos Merge multifase Mayor complejidad inicial en distribuir las particiones Varios conceptos: Fibonacci Particiones dummy # de particiones no se adecua con el # de Fibonacci

22 UNLP - Facultad de InformáticaIBD - CLASE 4 22 Archivos - Clasificación método # Reg. Leídos Tamaño partición # partición # desplaza mientos Patron intercalaci ón # desp. Intercal acion Tot. Desplaz amiento 40 clasif. En RAM + por intercala- ción en 40 forma 10000 40 16001640 40 clasif. + inter- calación en varios pasos 10000 40 8:8:8:8:8520560 Selec por reem- plazo + interca- lación en pasos 250015000271605:5:5:5:5423583 Idem anterior reg. Parcialmente ordenados 250040000101603:3:4256416


Descargar ppt "IBD Plan 2003 Clase 4. UNLP - Facultad de InformáticaIBD - CLASE 4 2 Archivos - Búsqueda Búsqueda de información (costo) # de comparaciones (operaciones."

Presentaciones similares


Anuncios Google