Your SlideShare is downloading. ×
0
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mpinning Gyalg13(Recurr)

704

Published on

Hechas por M. Angélica Pinninghoff

Hechas por M. Angélica Pinninghoff

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
704
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.
    • Def. La relación: Q={(f,g) | f:N  R, g: N  R tal que f está en O(g)} es reflexiva y transitiva, pero no es un orden parcial ni una relación de equivalencia.
    • Dibuje el digrafo de la relación Q sobre la notación O según la definición anterior para las funciones {f 1 ,f 2 ,f 3 ,f 4 ,f 5 ,f 6 ,f 7 ,f 8 }, donde:
      • f 1 (n) = 1, f 2 (n) = n, f 3 (n) = log 2 (n), f 4 (n) = nlog 2 (n), f 5 (n) = n 2 , f 6 (n) = n 3 , f 7 (n) = n 2 log 2 (n), f 8 (n) = 2 n
  • 2. f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8
  • 3. Sistemas de Recurrencia
    • ¿Recuerdan a Fibonacci?
    • a n = a n-1 + a n-2
    • La característica de la recurrencia es la capacidad de especificar un término a n como una función de los términos a 0 , a 1 , ..., a n-1
  • 4.
    • Una recurrencia por sí sola no es suficiente para definir los términos de una secuencia, también resulta necesario especificar los valores de algunos términos iniciales de la secuencia.
    • Estos se llaman condiciones de borde o condiciones iniciales de la secuencia.
    • En el caso de Fibonacci, las condiciones de borde son
      • a 0 = 0
      • a 1 = 1
  • 5.
    • Definición . Un sistema de recurrencia es un conjunto de condiciones de borde y ecuaciones de recurrencia que especifican una secuencia única o una función (a veces una función parcial) desde N k  R, con k =1,2,...
    • La solución a un sistema de recurrencia es una función f: N k  R, tal que f satisface tanto las condiciones de borde como las ecuaciones de recurrencia .
  • 6. Ejemplo
    • Sea f(h,k) el número máximo de hojas en un árbol de altura k, donde cada nodo del árbol tiene outdegree k o menos. La función puede ser expresada a través del siguiente sistema de recurrencia:
      • f(0,k) = 1
      • f(h,k) = k · f(h-1,k), para h > 0
  • 7. Otro ejemplo
    • ¿Qué hace el siguiente procedimiento?
    procedure SUM(n); begin total  0; for i  1 to n step 1 do total  total + A[i]; return total end
  • 8.
    • Supongamos que se define la complejidad de SUM como el número de sumas hechas por SUM.
    • Esta complejidad es caracterizada por el siguiente sistema recurrente:
      • f(1) = 1,
      • f(n) = f(n-1) + 1, para n > 0
    • De lo anterior, se deduce que
      • f(n) = n para n  1
    • Por lo tanto, SUM es un algoritmo O(n) y tiene complejidad lineal
  • 9. Ejemplo: Torres de Hanoi
    • Puzzle inventado por el matemático francés Edouard Lucas, 1883.
    A B C
  • 10.
    • El juego original de Lucas tiene 8 discos, posteriormente le agregó una leyenda romántica sobre una torre mucho mayor, la Torre de Brahma, que supuestamente contiene 64 discos de oro puro sobre una de tres varillas de diamante.
    • Al comienzo de los tiempos, Dios colocó estos discos dorados sobre la primera varilla y ordenó que un grupo de monjes los transfiriera a la tercera de acuerdo a las reglas
  • 11.
    • Los monjes supuestamente debían trabajar noche y día en esa tarea. Cuando finalizaran, la torre se derrumbaría y el mundo llegaría a su fin.
    • ¿Qué es lo mejor que podemos hacer?, o dicho en otras palabras, ¿cuántos movimientos son necesarios y suficientes para llevar a cabo esa tarea?
  • 12.
    • La mejor manera de enfrentar una pregunta como esta es generalizar un poco. La torre de Lucas tiene 8 discos y la torre de Brahma tiene 64 discos. Consideremos lo que ocurre si tenemos n discos.
    • La ventaja de la generalización es que se puede reducir el problema. De hecho, normalmente es ventajoso observar primeramente los casos simples.
  • 13.
    • El próximo paso en la solución del problema es introducir la notación apropiada: Name and Conquer
    • Digamos que T n es el número mínimo de movimientos para transferir n discos desde una varilla a otra según las reglas de Lucas.
    • El caso más simple es T 0 =0 (los pasos aparentemente triviales pueden ser fundamentales)
    • Entonces, obviamente, T 1 = 1 y T 2 = 3.
  • 14. ¿Cómo podemos manejar una torre grande? Ensayemos con tres discos: A B C
  • 15. La idea ganadora
    • Transferir los dos discos del tope a la varilla B
    • Mover el tercer disco a la varilla C
    • Poner los otros dos sobre él
  • 16. Pista general para n discos
    • Primero se transfieren los n-1 discos menores a una varilla diferente (lo que requiere T n-1 movimientos)
    • Luego se mueve el mayor (lo que requiere un movimiento)
    • Finalmente se transfieren los n-1 discos a la varilla en que quedó el disco mayor (lo que requiere, de nuevo, T n-1 movimientos)
  • 17.
    • Así, podemos transferir n discos (para n > 0) en, a lo más, 2·T n-1 + 1 movimientos
    • O sea, T n  2·T n-1 + 1 , para n > 0
    • Esta fórmula usa  en vez de = porque nuestra construcción prueba que 2·T n-1 + 1 movimientos son suficientes, no hemos mostrado que son necesarios.
  • 18. Entonces ,
    • Las inecuaciones T n  2·T n-1 + 1, n > 0, junto con la solución trivial para n = 0 llevan a:
    • T 0 = 0
    • T n = 2·T n-1 + 1
    • La recurrencia nos permite calcular T n para cualquier n.
  • 19.
    • A nadie le gusta calcular a partir de una recurrencia. Cuando n es grande, esto toma mucho tiempo. La recurrencia sólo da información local, indirecta.
    • Una solución a la recurrencia nos alegraría. Tener una forma cerrada para T n nos permitiría un cálculo rápido, incluso para un n grande.
    • ¿Cómo se resuelve una recurrencia?
  • 20.
    • Una forma es suponer una solución y luego probar que esa suposición es correcta
    • Para suponer (con base), lo mejor es revisar unos “casos menores”
      • T 3 = 2·3 + 1 = 7
      • T 4 = 2·7 + 1 = 15
      • T 5 = 2·15 + 1 = 31
      • T 6 = 2·31 + 1 = 63
    • ¿A qué se parece?
  • 21.
    • Se parece a algo así como T n = 2 n - 1 para n  0. Al menos funciona para n  6.
    • Las recurrencias son ideales para el tratamiento con inducción matemática.
  • 22.
    • Primero se prueba la afirmación cuando n tiene su valor menos, n 0 ; a esto le llamamos base inductiva. Luego probamos la afirmación para n > n 0 suponiendo que ya se ha probado para todos los valores entre n 0 y n-1, inclusive; esto es lo que se llama inducción.
    • En nuestro caso T n = 2 n -1 se deduce fácilmente de T 0 =0 y T n = 2·T n -1 + 1, para n>0.
    • La base es trivial, ya que T 0 = 2 0 -1 = 0.
  • 23.
    • La inducción se da para n > 0 si suponemos que T n = 2 n - 1 es verdad cuando n se reemplaza por n-1.
    • T n = 2·T n-1 +1 = 2 ·(2 n-1 -1) + 1 = 2 n - 1
    • De aquí, T n = 2 n - 1 se cumple para n también.
    • Así, nuestra búsqueda de T n ha terminado exitosamente.
  • 24.
    • Por supuesto, la tarea de los monjes no ha terminado, ellos están afanosamente moviendo discos y seguirán así por un buen tiempo más, porque para n = 64 hay 2 64 - 1 movimientos... (alrededor de 18 quintillones).
    • Aún a la velocidad imposible de 1 movimiento por microsegundo, se requerirían algo así como 5000 siglos para transferir la torre de Brahma.
  • 25. Etapas para encontrar la forma cerrada:
    • Observar los casos más simples. Esto nos da una visión parcial del problema y es útil en las etapas 2 y 3.
    • Encontrar y probar una expresión matemática para la cantidad que nos interesa.
    • Encontrar y probar la forma cerrada de la expresión matemática.
  • 26. Más ejercicios.
    • Supongamos que un cierto algoritmo A ordena una secuencia de n números en forma ascendente, intercambiando, de alguna manera, pares de números; y supongamos además que puede demostrarse que el número exacto de pasos que el algoritmo A ejecuta es t(n) = 3 + 6 + 9 +...+3n
    • ¿Cuál es el orden del algoritmo A?
  • 27.
    • Es posible decir que el algoritmo A ejecuta en O(n 2 ) pasos, según el siguiente razonamiento:
    • t(n) puede escribirse como un término general ya que
    • Tenemos que demostrar que existen f(n), C y n 0 tales que t(n)  C·f(n) para todo n  n 0
    t(n) =  3i = 3n(n+1)/2 i=1 n
  • 28.
    • Si elegimos C = 3, n 0 = 1 y f(n) = n 2
    • Tenemos que demostrar que se cumple 3·n·(n+1)/2  3·n 2
    • En efecto, multiplicando por 2/3 se tiene que n 2 + n  2·n 2 , o sea n  n 2 , lo que es válido para todo n > 1
  • 29. Un cálculo
    • Supongamos que vamos a ordenar 10 6 números. Usaremos un algoritmo O(n 2 ) para un supercomputador y un algoritmo O(n log n) para un PC. Digamos que los t(n) respectivos son 2n 2 y 50 n log n.
    • El supercomputador ejecuta 100.000.000 instrucciones por segundo. El PC ejecuta 1.000.000 de instrucciones por segundo
  • 30.
    • El supercomputador demorará:
    2·(10 6 ) 2 instrucciones 10 8 instrucciones/segundo = 20.000 segundos  5,56 horas
    • El PC demorará:
    50·10 6 log 2 10 6 instrucciones 10 6 instrucciones/segundo = 996,677 segundos  16,61 minutos
  • 31. Líneas en el plano (Jacob Steiner, Suiza, 1826)
    • ¿Cuántos pedazos de pizza puede obtener una persona haciendo cortes rectos con un cuchillo?
    • O más formal: ¿Cuál es el número máximo de regiones definidas por n líneas en el plano?
  • 32.
    • Una vez más comencemos resolviendo unos casos simples (empezar con el más simple de todos).
    • El plano sin líneas tiene una región, el plano con una línea tiene dos regiones y con dos líneas tiene cuatro regiones.
  • 33. L 0 = 1 L 1 = 2 L 2 = 4 1 1 2 1 2 3 4 Cada línea se extiende hasta el infinito en ambas direcciones
  • 34.
    • Nuestra primera tentación podría ser suponer que L n = n 2 . O sea, agregar una nueva línea dobla el número de regiones.
    • Desafortunadamente, esto no es así.
    • Una nueva línea divide una región antigua en, a lo más, dos regiones, ya que cada región antigua es convexa.
  • 35.
    • Una línea recta puede dividir una región convexa en, a lo más, dos nuevas regiones, que también serán convexas.
    • Una región es convexa si incluye todos los segmentos existentes entre dos puntos cualesquiera de la región (esto no es lo que aparece en mi diccionario, pero es lo que los matemáticos creen).
  • 36. Volviendo al ejemplo...
    • Cuando agregamos una tercera línea, nos damos cuenta que podemos dividir a lo más tres de las regiones antiguas, no importa cómo coloquemos las dos primeras líneas.
  • 37. 1 2 3 4
  • 38. 1a 2 3b 4b 1b 3a 4a Así, L 3 = 4 + 3 = 7 es lo mejor que podemos hacer.
  • 39. Vamos viendo la generalización
    • La n-ésima línea (para n > 0) aumenta el número de regiones en k, ssi divide k de las regiones antiguas, y esto ocurre ssi intersecta las líneas previas en k-1 puntos.
    • Dos líneas pueden intersectarse en, a lo más, un punto, por lo tanto, una línea nueva puede intersectar las n-1 líneas antiguas en, a lo más, n-1 puntos diferentes.
  • 40. Tenemos el límite superior
    • L n  L n-1 + n, para n > 0
    • Para obtener la igualdad en la fórmula, simplemente colocamos la n-ésima línea de tal forma que no sea paralela a ninguna de las anteriores (o sea, las intersecta a todas) y tal que no pase por algún punto de intersección ya existente (o sea, las intersecta a todas y en diferentes lugares).
  • 41. La recurrencia
    • L 0 = 1
    • L n = L n-1 + n, para n > 0
    • Conocemos valores para L 0 , L 1 , L 2 , L 3 y encajan perfectamente.
    • Ahora, lo que necesitamos es la forma cerrada de la solución.
  • 42.
    • Tenemos la secuencia 1, 2, 4, 7, 11, 16...
    • Que no nos parece muy familiar
    • Una de las formas de entender una recurrencia es “desandando” el camino.
  • 43. L n = L n -1 + n = L n -2 + (n-1) + n = L n -3 + (n-2) + (n-1) + n ... = L 0 + 1 + 2 + 3 + 4 + ... + (n-1) + n = 1 + S n en que S n = 1 + 2 + 3 + 4 + 5 + ... + (n-1) + n En otras palabras, L n es 1 más la suma de los n primeros enteros positivos
  • 44. La cantidad S n es muy popular n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 S n 1 3 6 10 15 21 28 36 45 55 66 78 91 105 Estos valores se llaman también números triangulares ...
  • 45.
    • Para evaluar S n podemos usar el truco de Gauss
    S n = 1 + 2 + 3 + 4 + ... + (n-1) + n S n = n + (n-1) + (n-2) + (n-3) + + 2 + 1 Sumando: 2S n = (n + 1) + (n + 1) + (n + 1) + ... + (n + 1) + (n + 1)
  • 46. La solución
    • L n = [n·(n + 1)/2] + 1, para n  0
    • Sólo falta demostrar que la recurrencia es correcta
  • 47.
    • Usando inducción
    • L n = L n-1 + n = [½(n - 1)·n + 1] + n
    • = ½ n·(n+1) + 1
    • Ahora sí. O sea, estamos hablando de O(n 2 )

×