Big Data. Complejidad,algoritmos y su procesamiento
-
Upload
grupo-g-tec -
Category
Technology
-
view
41 -
download
0
Transcript of Big Data. Complejidad,algoritmos y su procesamiento
![Page 1: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/1.jpg)
1
Claves para el desarrollo de Proyectos Big Data
Victoria Ló[email protected] Complutense de Madrid
4b
![Page 2: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/2.jpg)
2
Introducción. Casos de Uso Big Data Collection Proyectos Big Data Almacenamiento y Procesamiento de Datos Sistemas Big Data y Data Analytics Complejidad y TPA
Claves para el desarrollo de Proyectos Big Data
4b
![Page 3: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/3.jpg)
3
Complejidad Computacional Rendimiento en computación Paralela Sistema de distribución RAID Técnicas de Programación Avanzada
Divide y Vencerás Voraz Programación Dinámica Backtracking / Branch & Bound
Complejidad Computacional y TPAs
4b
![Page 4: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/4.jpg)
4
Complejidad Computacional
Problemas P Problemas NP Problemas NP-Completos
![Page 5: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/5.jpg)
5
Complejidad Computacional
Problemas P
Problemas de decisión que pueden ser resueltos en una máquina determinista secuencial en un período de tiempo polinómico en proporción a los datos de entrada (tamaño del problema).
Ejemplos:
Ordenación – Mergsort, quicksort,…
Caminos mínimos – Dijkstra
Multiplicación de matrices, etc.
![Page 6: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/6.jpg)
6
Complejidad Computacional
Problemas NP
Una generalización de P es NP, que es la clase de problemas decidibles en tiempo polinómico sobre una máquina de Turing no determinista.
P es un subconjunto de NP.
Ejempos:
- Ciclos hamiltonianos (Problema del viajante)
Alan Turing, en su famoso artículo "On computable numbers, with an application to the entscheidungs problem" (1936), demostró que el problema de la parada (halting problem) de la máquina de Turing es indecidible, en el sentido de que ninguna máquina de Turing lo puede resolver.
![Page 7: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/7.jpg)
7
Complejidad Computacional
Problema de Parada (Halting problema): encontrar un algoritmo general que decida si una fórmula escrita en cálculo de primer orden es un teorema. En 1936 (de manera independiente) Alonzo Church y Alan Turing demostraron que es imposible escribir tal algoritmo. Como consecuencia, es también imposible decidir con un algoritmo si ciertas frases concretas de la aritmética son ciertas o falsas.
https://www.youtube.com/watch?v=M42sJinf3X8
MIT Lecture: https://www.youtube.com/watch?v=msp2y_Y5MLE
https://www.youtube.com/watch?v=9USdYUgwRpU
![Page 8: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/8.jpg)
8
Complejidad Computacional
Dado un conjunto X y un elemento a, decidir si a pertenece a X es un problema que puede no tener solución en tiempo finito.--Conjuntos decidibles: se sabe siempre la respuesta en tiempo finitoEjemplo: El conjunto A de personas diestras es decidible. Escogida una persona cualquiera, con un simple test podemos saber si es o no diestra en tiempo finito (si pertenece o no al conjnto A)--Conjuntos indecidibles: no se sabe si puede conocerse la respuesta en tiempo finito Ejemplo: El conjunto B de bebés prematuros que desarrollarán la DBP (displesia broncopulmonar)Escogido un bebé prematuro, se le hacen las pruebas y se presentan dos situaciones:1. Da positivo: El bebé pertenece al conjunto B2. Da negativo: No se sabe si el bebé pertenece al conjunto B (y no depende
de la prueba que se realice!!)
![Page 9: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/9.jpg)
9
Rendimiento en ProgramaciónParalela
La ley de AmdahlLa ley de GustafsonEjemplos de aplicación
![Page 10: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/10.jpg)
10
Mejora de un sistema
• La mejora de un sistema no es ilimitada. • Las tecnologías Big Data no son óptimas si no se utilizan
adecuadamente– Hay que saber hacia dónde dirigir los esfuerzos de optimización
• La mejora de cualquier sistema debido a un componente más rápido depende del tiempo que éste se utilice
• Discusión preliminar– Un sistema tarda un tiempo T en ejecutar un programa– Mejoramos el sistema acelerando k veces uno de sus componentes– Este componente se utiliza durante una fracción f del tiempo T ¿Cuál es la
aceleración A del sistema global?
![Page 11: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/11.jpg)
11
Tiempo original vs. tiempo mejorado
Recurso no utilizado Recurso utilizado
Fracción 1 f Fracción f
Recurso no utilizado Recurso utilizado
Toriginal
Tmejorado
Recurso mejorado k veces
![Page 12: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/12.jpg)
12
Ley de Amdahl (1967)
• ¿Cuál es la aceleración A (speedup) del sistema completo después de acelerar k veces un componente?
• Casos particulares de la ley– Si f = 0 A = 1: no hay ninguna mejora en el sistema– Si f = 1 A = k : el sistema mejora igual que el componente
mejorado
original
T
T A
k
ff1TT originalmejorado
kf
fA
1
1
![Page 13: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/13.jpg)
13
Ejemplo de cálculo
• La utilización de un procesador es del 60%• ¿En cuánto aumentará el rendimiento del sistema si se duplica
la velocidad del procesador (k=2)?
• Aceleración máxima que se puede conseguir
43.1
26.0
)6.01(
1
ALa aceleración es 1.43 El rendimiento aumenta un 43%
5.2.60-1
1
-1
1lím
fA
k
![Page 14: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/14.jpg)
14
Contexto de la ley de Amdahl
• Artículo firmado por Gene Amdahl– “Validity of the Single Processor Approach to Achieving Large-Scale Computing
Capabilities”, AFIPS Conference Proceedings, (30), pp. 483-485, 1967. – Se utiliza para poner de manifiesto las limitaciones de los multiprocesadores en el
cómputo paralelo
f = 0.5
f = 0.95
![Page 15: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/15.jpg)
15
Análisis: relación entre A, f y k
1
2
3
4
5
6
7
8
9
10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Acc
eler
ació
glo
bal (
A)
Utilització millorada (f)
Relació entre A i f,a
k = Infinitok = 50k = 10k = 5k = 4k = 3k = 2k = 1.5
k =infinito A=2
k=infinito A=5
Utilización mejorada (f)
Ace
lera
ción
glo
bal (
A)
Relación entre A, f y k
![Page 16: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/16.jpg)
16
Generalización de la ley de Amdahl
• Caso con una mejora solamente
• Caso general con n mejoras
kf
fA
1
1
n
i i
in
ii k
ff
A
11
1
1
![Page 17: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/17.jpg)
17
Rendimiento de multiprocesadores
• Sistema con p procesadores• Aplicación a paralelizar
– Fracción secuencial = 0.10– Fracción paralelizable = 0.90
• ¿Cuál es la aceleración obtenida con 15 procesadores?
• ¿Cuál es la aceleración máxima obtenible?
25.6
1590.0
10.0
11
paralelasecuencial
p
ff
A 1010.0
11lím
secuencial
f
Ap
![Page 18: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/18.jpg)
18
0,00
2,00
4,00
6,00
8,00
10,00
12,00
14,00
16,00
0 10 20 30 40 50
Procesadores
Acele
ració
n
Evolución de la aceleración
5% secuencial8.82
6.25
10% secuencial
![Page 19: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/19.jpg)
19
Planteamiento de Gustafson
• Amdahl enfatiza el aspecto más negativo del procesamiento paralelo
• Las máquinas paralelas se usan para resolver grandes problemas (meteorología, biología molecular, big data)
• Un computador secuencial nunca podría ejecutar un gran programa paralelo
pT
TA 1
paralela Parte1
secuencial Parte
![Page 20: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/20.jpg)
20
La aceleración proporcional
• La cantidad de trabajo que se puede hacer en paralelo varía linealmente con el número de procesadores– Con más procesadores se pueden acometer problemas de mayor
coste computacional
)1()1(
1
111 ppT
pTT
T
TA
pp
T1 = Tp
T’1
T1 (1−) T1
T1 (1−) p T1
Máquina paralela
Máquina secuencial
![Page 21: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/21.jpg)
21
Algunas reflexiones finales
• Una mejora es más efectiva cuanto más grande es la fracción de tiempo en que ésta se aplica
• Para mejorar un sistema complejo hay que optimizar los elementos que se utilicen durante la mayor parte del tiempo (caso más común)
• Campos de aplicación de las optimizaciones– Dentro del procesador: la ruta de datos (data path)– En el juego de instrucciones: la ejecución de las instrucciones más frecuentes– En el diseño de la jerarquía de memoria, la programación y la compilación:
hay que explotar la localidad de las referencias• El 90% del tiempo se está ejecutando el 10% del código
![Page 22: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/22.jpg)
Sistemas de Distribución: RAID
![Page 23: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/23.jpg)
¿Qué es RAID?
Conjunto Redundante de Discos Independientes (Redundant Array of Independent Disks)
Sistema de almacenamiento de datos que combina múltiples unidades de almacenamiento (HDD o SSD) para formar una única unidad lógica.
Proporciona: Mayor integridad, tolerancia a fallos, rendimiento y capacidad.
2
![Page 24: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/24.jpg)
Niveles de RAID
3
Niveles de RAID estándar
Niveles de RAID anidados
Niveles de RAID propietarios
![Page 25: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/25.jpg)
Niveles de RAID estándar
4
Conjunto dividido: Distribuye la información equitativamente en todos los
discos. Ejemplo: RAID 0
Conjunto en espejo: Crea una copia exacta de un conjunto de datos en uno
o más discos Ejemplo: RAID 1
Conjunto dividido con paridad distribuida: Crea una división de datos a nivel de bloques que
distribuye la información de paridad entre los discos Ejemplo: RAID 5
![Page 26: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/26.jpg)
RAID 0 – Ofrece mayor rendimiento pero no tolerancia a los fallos –Sistema en Serie
RAID 1 – Mejora el rendimiento y tiene tolerancia a los fallos – Sistema en paralelo
RAID 5 – Mejora los sistemas multiusuario
,
Ejemplos
![Page 27: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/27.jpg)
Niveles de RAID anidados
5
Los RAID anidados se indican normalmente uniendo en un solo número los correspondientes números de los niveles RAID usados, añadiendo a veces un «+» entre ellos.
Por ejemplo, el RAID 01 (o RAID 0+1)
![Page 28: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/28.jpg)
Niveles de RAID propietarios Son desarrolladas por compañías privadas.
Suelen implementarse como una combinación o evolución de RAID existentes añadiendo algunas mejoras.
Estos mejoras puede ser: Tolerancia a fallos simultánea en múltiples discos. Añadir componentes hardware. Añadir cachés para mejorar el rendimiento
Ejemplo de RAID propietario: RAID 1.5
6
![Page 29: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/29.jpg)
Cálculo de paridad
7
La paridad es un mecanismo utilizado para detectar errores.
Se utiliza para la protección de datos y para la recuperación de datos perdidos.
Se basa en la propiedad algebraica de la conmutatividad de la suma: si tenemos el rango 0-100 pero detectamos que falta un número, podemos saber cuál es de forma sencilla usando la suma y la conmutatividad.
El operador más común en RAID es la XOR.
![Page 30: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/30.jpg)
Cálculo de paridad: ejemplo
8
Supongamos un sistema RAID de 6 discos donde la información se codifica en binario:
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
![Page 31: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/31.jpg)
Cálculo de paridad: ejemplo
9
Escribimos 00101010 en el disco 1
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010
![Page 32: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/32.jpg)
Cálculo de paridad: ejemplo
10
Escribimos 10001110 en el disco 2
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110
![Page 33: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/33.jpg)
Cálculo de paridad: ejemplo
11
Escribimos 11110111 en el disco 3
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110 11110111
![Page 34: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/34.jpg)
Cálculo de paridad: ejemplo
12
Escribimos 10110101 en el disco 4
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110 11110111 10110101
![Page 35: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/35.jpg)
Cálculo de paridad: ejemplo
13
Calculamos la paridad bit a bit con la XOR: 00101010 XOR 10001110 XOR 11110111 XOR 10110101 = 11100110
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110 11110111 10110101
![Page 36: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/36.jpg)
36
Cálculo de paridad: ejemplo
Escribimos el resultado en el disco de paridad
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110 11110111 10110101 11100110
![Page 37: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/37.jpg)
37
Cálculo de paridad: ejemplo
El disco 2 se rompe
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110 11110111 10110101 11100110
![Page 38: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/38.jpg)
38
Cálculo de paridad: ejemplo
Calculamos la XOR bit a bit con los discos restantes y el de paridad:
00101010 XOR 11110111 XOR 10110101 XOR 11100110 = 10001110
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110 11110111 10110101 11100110
![Page 39: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/39.jpg)
39
Cálculo de paridad: ejemplo
Escribimos el resultado en el disco de repuesto:
Disco 1(datos)
Disco 2(datos)
Disco 3(datos)
Disco 4 (datos)
Disco 5(Repuesto)
Disco 6(paridad)
00101010 10001110 11110111 10110101 1110011010001110
![Page 40: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/40.jpg)
Ventajas
20
Mayor fiabilidad que los discos individuales por ser una arquitectura tolerante a fallos con elementos redundantes.
Mayor rendimiento y tasa de transferencia de datos al realizar lecturas y escrituras simultáneas sobre diferentes discos.
Mayor capacidad de almacenamiento en RAID 0.
Mayor integridad de los datos gracias al mecanismo de paridad.
![Page 41: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/41.jpg)
Desventajas:
21
La migración de un sistema RAID a otra máquina o controladora resulta complejo o incluso imposible.
En sistemas RAID de espejo (RAID 1), la capacidad total se reduce a la mitad.
Elevado coste en algunas configuraciones.
El disco de paridad puede actuar de cuello de botella porque cada cambio en el grupo RAID requiere un cambio en este disco.
![Page 42: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/42.jpg)
42
Técnicas de Programación Avanzada
-Divide y Vencerás-Voraz-Programación Dinámica-Backtracking
![Page 43: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/43.jpg)
43
1. Divide y Vence
![Page 44: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/44.jpg)
44
Aplicaciones
Búsqueda de un elemento en un a base de datos
Ordenación de vectores/matrices Cálculo de la Moda Multiplicación de enteros grandes Multiplicación de matrices grandes Subvectores de suma máxima
![Page 45: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/45.jpg)
45
Complejidad Divide y Vence
![Page 46: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/46.jpg)
46
Búsqueda Binaria en un vector ordenado
![Page 47: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/47.jpg)
47
Merge Sort-Ordenación por Mezclas
Desarrollado en 1945 por John von Neumann
Pasos:
Caso Base: Si la longitud de la lista es 0 ó 1, entonces ya está ordenada. Caso General:
1. Dividir la lista desordenada en dos sublistas de aproximadamente la mitad del tamaño.2. Llamar recursivamente con cada sublista aplicando el mismo procedimiento3. Mezclar las dos sublistas en una sola lista ordenada.
![Page 48: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/48.jpg)
48
Quick sort ---- Ordenación Rápida
Creado por Tony Hoare en 1961
Caso Base: Si la longitud de la lista es 0 ó 1, entonces ya está ordenada. Caso General:
1. Seleccionar un pivote (el último elemento) y colocarlo en su sitio definitivo de forma que los menores queden antes y los mayores después aunque desordenados.2. Llamar recursivamente con input la sublista anterior y la posterior aplicando el mismo procedimiento3. No hace falta mezclar porque las dos sublistas ya estarán ordenadas y serán contiguas.
![Page 49: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/49.jpg)
49
Mersort vs. Quicksort
https://www.youtube.com/watch?v=FGgVgSitSF0
Mersort vs quicksort
https://www.youtube.com/watch?v=es2T6KY45cA
![Page 50: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/50.jpg)
50
Algoritmos VoracesGreedy
• Técnica para resolver algunos problemas de optimización. • Partes del problema:
– Conjunto de Candidatos– Etapas
• En cada etapa se escoge el candidato más adecuado. • El proceso debe conducir a la solución óptima. • Hay que buscar un criterio de selección de candidatos que
conduzca a la solución óptima. • Requiere una demostración matemática del paso anterior. • No siempre existe dicho criterio, en estos casos la
Programación Dinámica puede ser una buena alternativa.
![Page 51: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/51.jpg)
51
Esquema Voraz
![Page 52: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/52.jpg)
52
Aplicaciones de Voraz• Arboles recubridores mínimos ARM (minimum spanning tree) • Algoritmo de Kruskal: partiendo del grafo inconexo (sin
aristas) añadir la arista de menor peso que una dos componentes conexas diferentes hasta tener una única componente conexa. https://www.youtube.com/watch?v=SilS8f8icWY
• Algoritmo de Prim: Escoger la arista de menor peso que una un vértice ya en el árbol con otro aún fuera del árbol hasta tener todos los vértices del árbol. https://www.youtube.com/watch?v=-2NlTulDUq4
• Transmisión rápida de mensajes en la red.• Asegurar la cobertura de un servicio con
coste mínimo.• En la secuenciación del genoma se
utilizaron caminos hamiltonianos pero no exite un algoritmo voraz.
![Page 53: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/53.jpg)
53
Aplicaciones de Voraz
Árbol de caminos mínimos Algoritmo de Dijkstra: Criterio escoger el vértice más
cercano a alguno de todos los accesibles desde el último vértice accedido, pudiéndolo acceder mediante un acceso directo o indirecto según los vértices ya marcados.
- Produce el camino minimo desde un vértice s a todos los demás vértices del grafo, es decir, resuelve M(s, x) =camino más corto entre s y x. De forma que M(s,t) es la solución buscada.
Tiene muchísimas aplicaciones en la industria. Vuelos desde una base a varios destinos, por ejemplo.
![Page 54: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/54.jpg)
54
Programación Dinámca
Técnica que (sólo) resuelve problemas que cumplen el Principio de Optimalidad de Bellman
Hay que generalizar el problema para poder comprobar (demostrar) que se cumple el P.O.
Pasos de resolución:
Definir unas ecuaciones recursivas (simples o múltiples) que resuelvan el problema. Definir los casos límite y casos base primero.
Ejecutar la programación recursiva calculando los datos básicos primero y almacenándolos en tablas para
-Evitar cálculos repetidos
-Marcar un camino para después rastrear la solución que produce el valor óptimo.
![Page 55: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/55.jpg)
55
– Supongamos que un problema se resuelve tras tomar un secuencia d1, d2, …, dn de decisiones.
– Si hay d opciones posibles para cada una de las decisiones, una técnica de fuerza bruta exploraría un total de dn secuencias posibles de decisiones (explosión combinatoria).
– La técnica de programación dinámica evita explorar todas las secuencias posibles por medio de la resolución de subproblemas de tamaño creciente y almacenamiento en una tabla de las soluciones óptimas de esos subproblemas para facilitar la solución de los problemas más grandes.
Programación dinámica: Introducción
![Page 56: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/56.jpg)
56
• Aplicabilidad– Se emplea típicamente para resolver problemas de
optimización (maximizar, minimizar).– Permite resolver problemas mediante una
secuencia de decisiones (como el esquema voraz)
– A diferencia del esquema voraz, se producen varias secuencias de decisiones y solamente al final se sabe cuál
es la mejor de ellas.– Está basado en el principio de optimalidad de Bellman:
Programación dinámica:
R. Bellman: Dynamic Programming,Princeton University Press, 1957
“Cualquier subsecuencia de decisiones de una secuencia óptima de decisiones que resuelve un problema también debe ser óptima respecto al subproblema que resuelve.”
![Page 57: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/57.jpg)
57
Problema del Ascensor
Función objetivo 1: Maximizar el número de personas que transportará el ascensor
Función objetivo 2: Maximizar el peso que transportará el ascensor
Datos: Capacidad del ascensor C=300kg Pesos de las personas en espera: 30, 40, 50, 70, 90, 150
Criterio voraz 1: Escoger en cada etapa la persona de menor peso
Criterio voraz 2: Escoger en cada etapa la persona de mayor peso
![Page 58: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/58.jpg)
58
Algoritmos Voraces vs. P. Dinámica
![Page 59: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/59.jpg)
59
Algoritmos Voraces vs. P. Dinámica
![Page 60: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/60.jpg)
60
Problema de la Mochila
Se tienen n objetos fraccionables y una mochila.El objeto i tiene peso pi y una fracción xi (0≤xi≤1) del objeto i produce un beneficio bixi.El objetivo es llenar la mochila, de capacidad C, de manera que se maximice el beneficio.
Una variante: la “mochila 0-1”xi sólo toma valores 0 ó 1, indicando que el objeto se deja fuera o se mete en la mochila.Los pesos, pi, y la capacidad son números naturales. Los beneficios, bi, son reales no negativos.
maximizar bixi1i n
sujeto a pixi1i n C
con 0xi 1, bi 0, pi 0, 1i n
![Page 61: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/61.jpg)
61
El problema de la mochila 0-1
![Page 62: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/62.jpg)
62
El problema de la mochila 0-1
![Page 63: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/63.jpg)
63
Aplicaciones P. Dinámica en Big Data
En la secuenciación del genoma se utilizan varios algoritmos basados en la PD.
Cuando se rompe la molécula de ADN en 28 millones de trozos, se realizan alineamientos múltiples para encontrar la secuencia más probable. Estos alineamientos son los algoritmos de Needleman – Wunsh y de Smith - Waterman
Los laboratorios utilizan los algoritmos Fasta y Blast como heuristicas de los anteriores, en estos se asume la pérdida de datos a favor de la velocidad de procesamiento.
![Page 64: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/64.jpg)
64
-Backtracking (Búsqueda con Retroceso)-Branch & Bound (Ramificación y Poda)
![Page 65: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/65.jpg)
65
Backtraking
![Page 66: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/66.jpg)
66
Backtraking
![Page 67: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/67.jpg)
67
FUTURO
REDISEÑO DE ALGORITMOS. ALGORITMOS APROXIMADOS ORIENTADOS AL HARDWARE Y AL PROCESAMIENTO EN LA NUBE
RECONFIGURACIÓN DE SISTEMAS DE ALMACENAMIENTO A VECES CON PÉRDIDA DE DATOS CONTROLADA
TRABAJO ONLINE MAS HACIA STREAMING Y MENOS HACIA STANDALONE Y BATCH PROCESSING
![Page 68: Big Data. Complejidad,algoritmos y su procesamiento](https://reader038.fdocuments.us/reader038/viewer/2022110200/55c34442bb61ebe9438b4604/html5/thumbnails/68.jpg)
68
Claves para el desarrollo de Proyectos Big Data
Victoria Ló[email protected] Complutense de Madrid
Fin