El Problema de Búsqueda

Documentos relacionados
CÁLCULO NUMÉRICO (0258)

I. ANÁLISIS DESCRIPTIVO DE UN CONJUNTO DE DATOS

Análisis amortizado. Técnicas Avanzadas de Programación - Javier Campos 205

CAPÍTULO II MARCO TEÓRICO

MEDIDAS DE TENDENCIA CENTRAL

Los Histogramas. Histograma simple

Modelos de Regresión análisis de regresión diagrama de dispersión coeficientes de regresión

TEMA 3. Medidas de variabilidad y asimetría. - X mín. X máx

NOMBRE Apellido Paterno Apellido Materno Nombre(s)

Inferencia Estadística

LECTURA 02: DISTRIBUCIONES DE FRECUENCIAS (PARTE I) DISTRIBUCIONES DE FRECUENCIAS EN PUNTOS AISLADOS

4º MEDIO: MEDIDAS DE POSICIÓN

X = d representa la métrica (distancia) euclideana en R n, dada por: d T(X,Y) = X Y = 1.3 TOPOLOGÍA BÁSICA EN

Análisis de Regresión y Correlación Lineal

Números Complejos PREGUNTAS MÁS FRECUENTES

MEDIA ARITMÉTICA. Normalmente se suele distinguir entre media aritmética simple y media aritmética ponderada.

Tema 1. La medida en Física. Estadística de la medida Cifras significativas e incertidumbre

Análisis Numérico y Programación. Unidad III. -Interpolación mediante trazadores: Lineales, cuadráticos y cúbicos

LOS NÚMEROS COMPLEJOS

GUÍA DE EJERCICIOS. Área Matemática Álgebra lineal

MEDIDAS DE CENTRALIZACIÓN

La inferencia estadística es primordialmente de naturaleza

ESTADÍSTICA poblaciones

Capítulo 2 Sistemas Multi-Maquinas -Planteamiento-

MÉTODOS ESTADÍSTICOS PARA EL CONTROL DE CALIDAD

1. Los postulados de la Mecánica Cuántica. 2. Estados Estacionarios. 3. Relación de Incertidumbre de Heisenberg. 4. Teorema de compatibilidad.

Análisis de Regresión y Correlación Lineal

Trata de describir y analizar algunos caracteres de los individuos de un grupo dado, sin extraer conclusiones para un grupo mayor

Métodos de Ordenamiento

Estadística Descriptiva

. Si vamos calculando así las potencias n-ésimas de la unidad imaginaria, descubriremos que son cíclicas y que cada 4 términos se repiten: ( )

SEMESTRE DURACIÓN MÁXIMA 2.5 HORAS DICIEMBRE 10 DE 2008 NOMBRE

Árboles Binarios de Búsqueda

que queremos ajustar a los datos. Supongamos que la función f( x ) describe la relación entre dos cantidades físicas: x e y = f( x)

Introducción a la Inferencia Estadística. Dept. of Marine Science and Applied Biology Jose Jacobo Zubcoff

Interpolación polinómica.

Métodos indirectos de estimación: razón, regresión y diferencia

x x x x x Y se seguía operando

VARIABLES ESTADÍSTICAS UNIDIMENSIONALES.

FÍSICA EXPERIMENTAL INCERTIDUMBRE ABSOLUTA Y RELATIVA. Medición de la longitud del largo del cuaderno:

Tema 60. PARÁMETROS ESTADÍSTICOS: CÁLCULO, PROPIEDADES Y SIGNIFICADO.

Análisis del caso promedio El plan:

ANÁLISIS DE REGRESIÓN Y CORRELACIÓN LINEAL

Estadística Contenidos NM 4

PyE_ EF1_TIPO2_

Unidad 2. Reactores Continuos

GENERALIDADES ESTADISTICA DESCRIPTIVA

Problemas discretos con valores iniciales

Intensificación en Estadística

CAPÍTULO IV NÚMEROS COMPLEJOS E INDUCCIÓN MATEMÁTICA

Espacios con producto interior

Objetivos. El alumno será capaz de programar algoritmos que incluyan el manejo de arreglos utilizando funciones.

TEORIA DE ERRORES. Fuentes De error. Error Final

Estadística aplicada al Periodismo

INSTITUTO TECNOLÓGICO DE APIZACO PROBABILIDAD AXIOMAS Y TEOREMAS DE LA PROBABILIDAD.

ERRORES EN LAS MEDIDAS (Conceptos elementales)

Estructura y Tecnología de Computadores. Módulo G. Estructura del procesador. Concepto de aritmética. La aritmética en el computador.

de los vectores libres del plano. Recordemos que la operación de sumar vectores verificaba las siguientes propiedades: se cumple que u + v = v + u

1.2. Medidas de Concentración

Modelos de Regresión Simple

Solución del examen de Investigación Operativa de Sistemas de septiembre de 2008

Objetivos. Introducción n a las medidas de posición n (tendencia central o tipismo): Moda y Mediana Media aritmética

MUESTREO EN POBLACIONES FINITAS (1) Dos aspectos básicos de la inferencia estadística, no vistos aún:

CALCULO DIFERENCIAL E INTEGRAL II. Figura 1

Ejercicios de programación. cos A=

CAPÍTULO III TÉCNICAS DE SIMULACIÓN ESTADÍSTICA. Los datos sintéticos son elementos de suma importancia en los sistemas de diseño en

ÁLGEBRA II (LSI PI) TRANSFORMACIONES LINEALES UNIDAD Nº 5. Facultad de Ciencias Exactas y Tecnologías UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO

Del correcto uso de las fracciones parciales.

NOMBRE. para los nuevos datos, incrementando 5 unidades cada calificación. entonces la media sumando 5 unidades a cada calificación es

( ) = 0 entonces ˆ i i. xy x Y Y xy Y x ˆ. β = = β =.(1) Propiedades Estadísticas de los estimadores MICO. Linealidad.

Estudio y optimización del algoritmo de ordenamiento Shellsort

2.4 Pruebas estadísticas para los números pseudoaleatorios

La Metodología de la Verosimilitud Empírica

REGRESIÓN LINEAL SIMPLE

Introducción al Algebra Lineal en Contexto Autor José Arturo Barreto M.A. Web:

4. Fórmula de Lagrage El polomo de terpolacó de Hermte, p (x, de la fucó f e los putos dsttos x,,x admte la expresó: p( x f (x L (x + f '(x L (x, (Fór

Objetivos. El alumno conocerá y aplicará el concepto de arreglos unidimensionales para resolver problemas que requieren algoritmos de tipo numérico.

División de Estadísticas y Proyecciones Económicas (DEPE) Centro de Proyecciones Económicas (CPE)

4. SEGUNDO MÓDULO. 4.1 Resumen de Datos

3 = =. Pero si queremos calcular P (B) 2, ya que si A ocurrió, entonces en la urna

Estadística Espacial. José Antonio Rivera Colmenero

APROXIMACIÓN NUMÉRICA AL CÁLCULO DEL ÁREA BAJO LA GRÁFICA DE UNA FUNCIÓN MEDIANTE RECTÁNGULOS INSCRITOS

ANTES DE COMENZAR RECUERDA

( ) ( ) ( )( ) ( )( ) ( )

Estadística Contenidos NM 4

Ins Rotac. doble a la izq.

ESPACIOS VECTORIALES SUBESPACIOS FINITAMENTE GENERADOS:

2. Censura y truncamiento

Estadística. Tema 2: Medidas de Tendencia Central.. Estadística. UNITEC Tema 2: Medidas de Tendencia Central Prof. L. Lugo

Tablas HASH. Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem. 2002

Probabilidad ( A) Los axiomas de la probabilidad. φ = el conjunto vacío A B = A y no B C

ESTADÍSTICA DESCRIPTIVA

Aproximación a la distribución normal: el Teorema del Límite Central

Ensayos de control de calidad

al nivel de significación α P6: Conclusión: Se debe interpretar la decisión tomada en Paso 5.

TEMA 4: VALORACIÓN DE RENTAS

REDES DE BASE RADIAL. 1. Funciones de Base Radial.

7. Muestreo con probabilidades desiguales.

El estudio de autovalores y autovectores (o valores y vectores propios) de matrices

Definición. Número obtenido a partir del análisis de una variable estadística. Procedimiento de cálculo bien definido:

Transcripción:

Aálss y Dseño de Algortmos El Problema de Búsqueda Arturo Díaz Pérez Cojutos estátcos Arboles de decsó para búsqueda Cojutos dámcos Arboles de búsqueda bara Aálss del peor caso Aálss del caso promedo Arboles -3 Aálss y Dseño de Algortmos Searchg- Plateameto Búsqueda Dado x determar s x S. Dado x determar la poscó de x, s x S. Dado x determar la R(x), s x S. Característcas del cojuto S. Estátco vs. dámco Ordeado vs. desordeado Llaves duplcadas vs. llaves úcas Aálss y Dseño de Algortmos Searchg-

Cojutos Estátcos Icalmete os cocetraremos e la búsqueda de llaves sobre cojutos estátcos El cojuto de llaves o camba durate la ejecucó Dos algortmos famlares Búsqueda bara Búsqueda secuecal Determaremos que el tempo de ejecucó de cualquer algortmo de búsqueda que depede e comparacoes es e el peor caso Ω(log ) Aálss y Dseño de Algortmos Searchg-3 Búsqueda Secuecal vod BusquedaSecuecal( t A[], t, t x ) { t ; for( ; < ; ) f( A[] x ) E el peor caso O() retur ; retur -; x? El arreglo A puede estar e cualquer orde Aálss y Dseño de Algortmos Searchg-4

Búsqueda Bara vod BusquedaBara( t A[], t, t j, t x) { tk; f( < j ) { k ( j) / ; f( A[k] > x ) retur BusquedaBara( A,, k-, x ); elsef( A[k] x ) retur k; else /*f ( A[k] < x ) */ retur BusquedaBara( A, k, j, x ); else retur -; El arreglo A debe estar ordeado T() c T() T(/) d Aálss y Dseño de Algortmos Searchg-5 Arbol de Decsó para la B. Bara Sea S[] s,..., S[ 7] s 7 Regresa ídce x s 4 < > x s 4 x s 6 < > < > x s x s 6 3 x s x s 5 7 < > < > < > < > F F F 3 F F 5 F F 7 F Aálss y Dseño de Algortmos Searchg-6 3

Arbol de Decsó para la B. Secuecal x s x s x s 3 F 3 Aálss y Dseño de Algortmos Searchg-7 Arbol de Decsó para la Búsqueda Cada hoja represeta u puto e el cual el algortmo se detee y reporta u ídce dode x s (x es la llave buscada) o reporta ua falla U árbol de decsó es váldo para buscar ua llave x sobre llaves s para cada reporte co éxto, exste u camo de la raíz a la hoja que reporta el éxto El árbol de decsó es podado s cada hoja es alcazable Cada algortmo que busca ua llave x e u arreglo de llaves tee u árbol de decsó váldo podado correspodete Aálss y Dseño de Algortmos Searchg- 4

Profuddad de u Arbol Baro Recordatoro: S es el úmero de odos e u árbol baro y d es la profuddad, etoces, log d Para que u árbol de decsó váldo para buscar ua llave x sobre llaves dsttas sea podado, el árbol baro debe cosstr de al meos odos Cualquer algortmo determsta que busca medate comparacoes ua llave x e u arreglo de llaves dsttas debe hacer e el peor caso al meos log comparacoes de llaves Aálss y Dseño de Algortmos Searchg-9 Cojutos Dámcos Muchas aplcacoes requere sercoes y supresoes de regstros durate la ejecucó. Las búsquedas realzadas sobre estos cojutos se cooce como búsqueda dámca Ej: Sstemas de reservacoes para aerolíeas Alguas estructuras de datos o so adecuadas para cojuto dámcos Las lstas lgadas o permte hacer búsquedas rápdas Los arreglos so de tamaño fjo Aálss y Dseño de Algortmos Searchg- 5

Arbol de Búsqueda Bara El árbol de búsqueda bara es ua estructura de datos mportate para cojutos dámcos U árbol de búsqueda bara es u árbol baro e dode cada odo es u objeto el cual cotee cuatro campos: hjo zquerdo, hjo derecho, padre y valor M B W A F Y Aálss y Dseño de Algortmos Searchg- Arboles de Búsqueda Bara U árbol de búsqueda bara debe satsfacer la sguetes propedades: S y está e el subárbol zquerdo de x, etoces, llave[y] < llave[x] S y está e el subárbol derecho de x, etoces, llave[y] > llave[x] x < x > x Aálss y Dseño de Algortmos Searchg- 6

Búsqueda Búsqueda( x, k ) beg f x l or k llave[x] the retur x; f( k < llave[x] ) the Búsqueda( left[x] ) else Búsqueda( rght[x] ) ed; Aálss y Dseño de Algortmos Searchg-3 Recorrdo EOrde RecorrdoEOrde( x ) beg f x <> l the beg RecorrdoEOrde( left[x] ); wrtel( x ); RecorrdoEOrde( rght[x] ) ed ed; Aálss y Dseño de Algortmos Searchg-4 7

Isercó B A F B A F E Aálss y Dseño de Algortmos M M W W Y Y IsertaArbol( T, z ) beg y Nl x root[ T ] whle x NIL do beg y x; f key[z] < key [x ] the x left [ x ] else x rght [ x ] ed; p [z] y; f y Nl the root[ T ] z else f key[ z ] < key[ y ] the left [ y ] z else rght [ y ] z ed; Searchg-5 Búsqueda: Peor Caso s s s s s s s < s <... < s s > s >... > s La costruccó del árbol toma ( ) O( ) Aálss y Dseño de Algortmos Searchg-6

Búsqueda: Peor Caso Supoedo que se ha costrudo el árbol co los elemetos, Pregutar por la membresía de u elemeto tomaría. Mejor caso: paso O() Peor caso: pasos O() Caso promedo: / pasos O() Aálss y Dseño de Algortmos Searchg-7 Búsqueda: Caso Promedo Es ecesaro cosderar el promedo de todos los posbles árboles que se puede costrur. Observacoes Las operacoes que preguta por la membresía de, serta o remueve u elemeto toma u tempo proporcoal a la logtud del camo de la raíz al odo correspodete. Así que se tratará de aalzar la logtud de camo promedo e árboles aleatoros. Suposcoes Los árboles se forma úcamete por sercoes Todos los ordeametos posbles de los elemetos sertados so gualmete probables Aálss y Dseño de Algortmos Searchg- 9

Búsqueda: Caso Promedo Sea P() el úmero de odos e promedo e el camo de la raíz a cualquer odo e u árbol co odos P(), P() S a, S,...,S sort s,..., s k, s k a k a elemetos < a -- elemetos > a Aálss y Dseño de Algortmos Searchg-9 Búsqueda: Caso Promedo Observacoes La logtud de camo promedo e el subárbol zquerdo es P() La logtud de camo promedo e el subárbol derecho es P(--) Logtud promedo es ( ) P P( ) Aálss y Dseño de Algortmos ( P( ) ) ( )( P( ) ) P( ) ( - -) P( - -), [ ( ) ( ) ( ) ] ( ), P P P Se puede demostrar que P( ) 4log Searchg-

Aálss y Dseño de Algortmos Searchg- Búsqueda: Caso Promedo Demostracó por duccó Para 4log ) ( P Supogamos que es certa para todos los < ) ( ) ( P P [ ] log 4 log 4 log ) ( log 4 log Aálss y Dseño de Algortmos Searchg- Búsqueda: Caso Promedo Para todo > > / se tee que [ ] log log log log log < Para todo / se tee que log log ) ( P log log ) )( ( log ) ( ) ( P 4 log log log 4 log <

Búsqueda: Caso Promedo Dado que P( ) 4log, se puede probar que P( ) c log para algua costate c > Por lo tato, se dce que P() es u O( log ) Este resultado es váldo para el promedo de la operacó de búsqueda sobre todas las etradas co llaves Aálss y Dseño de Algortmos Searchg-3 Cómo mejorar las cosas? Los resultados se trasforma a cotas para el peor caso cuado el árbol baro está balaceado Otros efoques: Arboles AVL Arboles rojegros Arboles B: ua clase de árboles. Arboles -3: u caso especal Tablas de hash No adecuadas para el problema de ordeameto. Co ua buea fucó de dspersó, la sercó, supresó y búsqueda toma u tempo cas costate Aálss y Dseño de Algortmos Searchg-4

Arboles -3 Arbol -3 Cada odo teror tee dos o tres hjos. Los camos de la raíz a las hojas tee todos la msma logtud. U árbol co cero odos o u odo es u caso especal de u árbol -3. U árbol -3 se utlza para represetar cojutos cuyos elemetos matee u orde leal, '<'. Todos los elemetos se coloca e las hojas; s u elemeto a está colocado a la zquerda de b, etoces, se debe satsfacer que a < b. Aálss y Dseño de Algortmos Searchg-5 Arboles -3 Arbol -3 E cada odo teror se almacea la "llave " del elemeto más pequeño que es u descedete del segudo hjo. S exste u tercer hjo, se almacea també la "llave" del elemeto más pequeño que es u descedete del tercer hjo. U árbol -3 de k veles tee etre k- y 3 k- hojas. Para represetar u cojuto de elemetos se requere al meos log 3 veles y o más de log veles. Aálss y Dseño de Algortmos Searchg-6 3

Arboles -3: Isercó 7 6 5-9 - 5 7 6 9 7 6 Iserta 5-9 Aálss y Dseño de Algortmos 5 7 6 9 Searchg-7 Arboles -3: Isercó 7 6 5-9 5 7 6 9 7 6 Iserta 5 - - - 9 5 7 6 9 Aálss y Dseño de Algortmos Searchg- 4

Arboles -3: Isercó 7 6 5 - - - 9-5 7 6 9 7-6 - Iserta 5 - - - 9 Aálss y Dseño de Algortmos 5 7 6 9 Searchg-9 Arboles -3: Supresó Suprme - - 7-6 - 7 - - 5 - - - 9 5 - - 6-9 - 5 7 6 9 5 7 6 9 Aálss y Dseño de Algortmos Searchg-3 5

Arboles -3: Supresó Suprme 7 - - 7 - - 7 - - 5 - - 6-9 - 5 6-9 - 5 7 6 9 5 6 9 Aálss y Dseño de Algortmos Searchg-3 Arboles -3: Supresó Suprme 7-7 - - 5 6-9 - 5 6-9 - 5 6 9 5 6 9 Aálss y Dseño de Algortmos Searchg-3 6

Arboles -3: Efceca Efceca Claramete la operacó de búsqueda toma u tempo Ω(log 3 ) y O(log ). Las operacoes de sercó y supresó avega de la raíz a las hojas y, e el peor caso, de regreso a la raíz. Así, ambas toma també u tempo Ω(log 3 ) y O(log ). Qué hay acerca del caso promedo? Aálss y Dseño de Algortmos Searchg-33 A-3: Estructuras struct objeto { t llave;. /*Campos adcoales para la defcó del objeto */. ; struct odo teror { t llave, llave; struct odo3 *hjo, *hjo, *hjo3; struct odo3 { t tpo; /* teror, hoja */ uo { struct objeto e; struct odo_teror ; ; ; Aálss y Dseño de Algortmos Searchg-34 7

A-3: Agrega vod agrega( NODO3 *odo, OBJETO x, NODO3 **uevo, t *m ) { NODO3 *uevo; *w; t m; *uevo NULL; f( odo es hoja ) { f( x o es el elemeto e el odo ) { /* Crear u uevo odo aputado por uevo */ /* Copar x e el uevo odo */ *m x.llave; else { /* Sea w el hjo del odo a cuyo subárbol perteece x */ agrega( w, x, &uevo, &m); f( uevo! NULL ) { /*Isertar el aputador uevo etre los hjos de odo a la derecha de w */ f( odo tee cuatro hjos ) { /* Crear u uevo odo aputado por uevo */ /* Pasar el tercero y cuarto hjo de odo a uevo */ /* Ajustar llave y llave e odo y e uevo */ /* Hacer m la llave más chca etre los hjos del uevo odo */ Aálss y Dseño de Algortmos Searchg-35 A-3: Agrega vod AGREGA( OBJETO x, NODO3 *S ) { NODO3 *uevo; t mímo; NODO3 tmp; /* Verfcar s S es vacío o cosste de u solo elemeto. Iclur aquí u procedmeto de sercó adecuado */ agrega( *S, x, &uevo, &mímo ); f( uevo! NULL ) { /* Se crea u uevo odo cuyos hjos será *S y uevo */ tmp *S; *S ( struct odo3 *) malloc ( szeof( struct odo3 ) ); (*S)->llave mímo; (*S)->hjo tmp; (*S)->hjo uevo; (*S)->hjo3 NULL; Aálss y Dseño de Algortmos Searchg-36

A-3: Borra t borra( NODO3 *odo, OBJETO x ) { t solo_uo, borrado; NODO3 *w; borrado ; f( los hjos de odo so hojas ) { f( x está etre las hojas ) { /* Qutar x */ /* Correr las hjos de odo a la derecha de x ua poscó a la zquerda */ f( odo tee solo u hjo ) borrado ; else { /* Sea w el hjo de odo que puede teer a x como descedete */ solo_uo borra( w, x ); f( solo_uo ) { f( w es el prmer hjo de odo ) { f( y, el segudo hjo de odo, tee 3 hjos ) { /* Hacer que el prmer hjo de y sea el segudo hjo de w */ else { /* hacer el hjo de w, el prmer hjo de y */ /*Qutar w de etre los hjos de odo */ f( odo tee ahora u hjo ) borrado ; Aálss y Dseño de Algortmos Searchg-37 A-3: Borra... else f ( w es el segudo hjo de odo ) { f( y, el prmer hjo de odo, tee 3 hjos ) { /* Hacer que el tercer hjo de y sea el prmer hjo de w*/ else { f( z, el tercer hjo de odo, exste y tee 3 hjos ) { /*Hacer que el prmer hjo de z sea el segudo hjo de w */ else { /*Hacer que el hjo de w sea el tercer hjo de y */ /*Qutar w de etre los hjos de odo */ f( odo tee ahora u solo hjo ) borrado else f( w es el tercer hjo del odo ) { f( y, el segudo hjo de odo, tee 3 hjos ) { /* Hacer que el tercer hjo de y, sea el prmer hjo de w */ else { /*Hacer que el hjo de w sea el tercer hjo de y */ /* Qutar w de etre los hjos del odo */ retur borrado; Aálss y Dseño de Algortmos Searchg-3 9