Victoria López
@victoriademates
www.tecnologiaUCM.es
Universidad Complutense de Madrid
4b1
2
4b
3
4b
4
5
6
7
8
9
10
11
Ejemplo iterativo
12
13
Resolviendo por recurrencias se obtiene 4n+2, complejidad lineal
14
La sucesión de Fibonacci es la sucesión de números que, empezando por la unidad, cada uno de sus términos es la suma de los dos anteriores (1,1,2,3,5,8,13,…).La distribución de las hojas alrededor del tallo, La reproducción de los conejos. La disposición de las semillas en numerosas flores y frutos
¿Se trata de una simple casualidad, o existe alguna especie de “plan oculto” que vincula las matemáticas con la naturaleza?
El cociente de dos números consecutivos de la serie se aproxima a la denominada “razón dorada”, “sección áurea” o “divina proporción”. Este número, descubierto por los renacentistas
(1+ raíz de 5)/2 = 1.61803…
15
16
17
18
Los brazos en espiral de las galaxias también se acomodan según los números de Fibonacci. Es sorprendente la relación que existe entre la matemática y la naturaleza.
19
20
21
Complejidad O(n)
22
Complejidad O(logn)
23
24
25
26
27
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 ambos 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
28
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 finito
--Conjuntos indecidibles: no se sabe si puede conocerse la respuesta en tiempo finito
29
Rendimiento en ProgramaciónParalela
La ley de AmdahlLa ley de GustafsonEjemplos de aplicación
30
31
32
Recurso no utilizado Recurso utilizado
Fracción 1f Fracción f
Recurso no utilizado Recurso utilizado
Toriginal
Tmejorado
Recurso mejorado k veces
33
mejorado
original
T
T A
k
ff1TT originalmejorado
k
ff
A
1
1
34
43.1
2
6.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
35
f = 0.5
f = 0.95
36
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
Acce
lera
ció
glo
ba
l (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 g
lob
al(A
)
Relación entre A, f y k
37
k
ff
A
1
1
n
i i
in
i
ik
ff
A
11
1
1
38
25.6
15
90.010.0
11
paralela
secuencial
p
ff
A 1010.0
11lím
secuencial
f
Ap
39
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
Ac
ele
rac
ión
5% secuencial8.82
6.25
10% secuencial
40
pT
TA 1
paralela Parte1
secuencial Parte
41
)1()1(
1
111 ppT
pTT
T
TA
p
p
T1 = Tp
T’1
T1 (1−) T1
T1 (1−) p T1
Máquina paralela
Máquina secuencial
42
Técnicas de Programación
-Divide y Vencerás-Voraz-Programación Dinámica-Backtracking
43
44
45
Complejidad Divide y Vence
46
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.
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.
49
Mersort vs. Quicksort
https://www.youtube.com/watch?v=FGgVgSitSF0
Mersort vs quicksort
https://www.youtube.com/watch?v=es2T6KY45cA
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.
51
52
• Transmisión rápida de mensajes en la red.
• Asegurar la cobertura de un servicio con coste mínimo.
53
55
56
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.”
57
58
59
60
maximizar bixi1i n
sujeto a pixi1i n C
con 0 xi 1, bi 0, pi 0, 1 i n
61
62
63
64
65
66
67
Victoria López
@victoriademates
www.tecnologiaUCM.es
Universidad Complutense de Madrid
Fin68
Top Related