Autor Tema: ¿Es correcta esta resolución de una recurrencia?

0 Usuarios y 1 Visitante están viendo este tema.

08 Mayo, 2019, 05:32 pm
Leído 1623 veces

OnlyDavies

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 12
  • Karma: +0/-0
  • Sexo: Masculino
Buenas, estaba haciendo un ejercicio de resolución de una recurrencia y he obtenido esta solución pero no sé si es correcta, expongo el enunciado y mi planteamiento


Enunciado:

Halla una expresión no recursiva para la siguiente recurrencia por el método de expansión por recurrencias:

\( T(n) = T(n/3) + n \)

donde n es una potencia de 3(\( n=3^k \) para k = 1,2,...) y donde \( T(1) = 0 \)
Indica además el orden de T(n).

Mi idea es la siguiente:
\(
T(n)= \left\{ \begin{array}{lcc}
             0 &   si  & n = 1 , k=0 \\
             \\ 3 &  si & n=3 , k=1 \\
             \\ 9 &  si  & n=9,  k=2 \\
             \\ T(n/3)+n
             \end{array}
   \right.
 \)

Busco obtener una fórmula general:

\( T(n) = T(n/3)+n = (T(n/3^2+n/3)+n = (T(n/3^3) + n/3^2 + n/3) + n \)
\( T(n/3) = T(n/3^2)+n/3 \)
\( T(n/9) = T(n/3^3) + n/3^2 \)

Mi fórmula general para representar esto sería la siguiente:

\( T(n) = T(\displaystyle\frac{n}{3^k}+ \displaystyle\sum_{i=0}^{k-1}{\displaystyle\frac{n}{3^i}} \)

Igualo al caso recursivo con el general (sólo los términos afectados por las Ts)

\( T(1) = T(\displaystyle\frac{n}{3^k} \)
\( 1 = \displaystyle\frac{n}{3^k} \)

\( \log_{3}(3^k) = \log_{3}(n)  \)
\( k = \log_{3}(n) \)

Sustituyo en mi fórmula general la k:

\( T(n) = T(\displaystyle\frac{n}{3^k}+ \displaystyle\sum_{i=0}^{k-1}{\displaystyle\frac{n}{3^i}} \)
\( T(n) = T(1)+ \displaystyle\sum_{i=0}^{ \log_{3}(n)-1}{\displaystyle\frac{n}{3^i}} \)
\( T(n) = 0+ \displaystyle\sum_{i=0}^{ \log_{3}(n)-1}{\displaystyle\frac{n}{3^i}} \)

Y ese sumatorio, al final tiende a un número, así que podríamos decir que el orden de complejidad de T(n) pertenece a O(n)


Es como se me ha ocurrido resolverlo, pero no sé si es correcto, especialmente la fórmula general, ya que no soy muy hábil con los sumatorios.

Gracias y un saludo

08 Mayo, 2019, 06:06 pm
Respuesta #1

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

Buenas, estaba haciendo un ejercicio de resolución de una recurrencia y he obtenido esta solución pero no se si es correcta, expongo el enunciado y mi planteamiento


Enunciado:

Halla una expresión no recursiva para la siguiente recurrencia por el método de expansión por recurrencias:

\( T(n) = T(n/3) + n \)

donde n es una potencia de 3(\( n=3^k \) para k = 1,2,...) y donde \( T(1) = 0 \)
Indica además el orden de T(n).

Mi idea es la siguiente:
\(
T(n)= \left\{ \begin{array}{lcc}
             0 &   si  & n = 1 , k=0 \\
             \\ 3 &  si & n=3 , k=1 \\
             \\ 9 &  si  & n=9,  k=2 \\
             \\ T(n/3)+n
             \end{array}
   \right.
 \)

Eso no está bien. Por ejemplo:

\( T(9)=T(3)+9=3+9=12. \)

Citar
Busco obtener una fórmula general:

\( T(n) = T(n/3)+n = (T(n/3^2+n/3)+n = (T(n/3^3) + n/3^2 + n/3) + n \)
\( T(n/3) = T(n/3^2)+n/3 \)
\( T(n/9) = T(n/3^3) + n/3^2 \)

Mi formula general para representar esto sería la siguiente:

\( T(n) = T(\displaystyle\frac{n}{3^k}+ \displaystyle\sum_{i=0}^{k-1}{\displaystyle\frac{n}{3^i}} \)

Igualo al caso recursivo con el general (sólo los términos afectados por las Ts)

\( T(1) = T(\displaystyle\frac{n}{3^k} \)
\( 1 = \displaystyle\frac{n}{3^k} \)

\( \log_{3}(3^k) = \log_{3}(n)  \)
\( k = \log_{3}(n) \)

Sustituyo en mi fórmula general la k:

\( T(n) = T(\displaystyle\frac{n}{3^k}+ \displaystyle\sum_{i=0}^{k-1}{\displaystyle\frac{n}{3^i}} \)
\( T(n) = T(1)+ \displaystyle\sum_{i=0}^{ \log_{3}(n)-1}{\displaystyle\frac{n}{3^i}} \)
\( T(n) = 0+ \displaystyle\sum_{i=0}^{ \log_{3}(n)-1}{\displaystyle\frac{n}{3^i}} \)

Sin embargo la fórmula obtenida es correcta. Una fórma cómoda de manipular el problema es llamar:

\( a_k=T(3^k) \)

Y tienes:

\( a_k=a_{k-1}+3^k \),  \( a_0=T(1)=0 \).

De donde:

\( a_k=\displaystyle\sum_{i=1}^k{}3^i=\dfrac{3^{k+1}-3}{2} \)

es decir:

\( T(3^k)=a_k=\dfrac{3^{k+1}-3}{2} \)

ó, si \( n=3^k \),

\( T(n)=\dfrac{3(n-1)}{2} \)

Saludos.

08 Mayo, 2019, 08:27 pm
Respuesta #2

OnlyDavies

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 12
  • Karma: +0/-0
  • Sexo: Masculino
Hola

Buenas, estaba haciendo un ejercicio de resolución de una recurrencia y he obtenido esta solución pero no se si es correcta, expongo el enunciado y mi planteamiento


Enunciado:

Halla una expresión no recursiva para la siguiente recurrencia por el método de expansión por recurrencias:

\( T(n) = T(n/3) + n \)

donde n es una potencia de 3(\( n=3^k \) para k = 1,2,...) y donde \( T(1) = 0 \)
Indica además el orden de T(n).

Mi idea es la siguiente:
\(
T(n)= \left\{ \begin{array}{lcc}
             0 &   si  & n = 1 , k=0 \\
             \\ 3 &  si & n=3 , k=1 \\
             \\ 9 &  si  & n=9,  k=2 \\
             \\ T(n/3)+n
             \end{array}
   \right.
 \)

Eso no está bien. Por ejemplo:

\( T(9)=T(3)+9=3+9=12. \)

Citar
Busco obtener una fórmula general:

\( T(n) = T(n/3)+n = (T(n/3^2+n/3)+n = (T(n/3^3) + n/3^2 + n/3) + n \)
\( T(n/3) = T(n/3^2)+n/3 \)
\( T(n/9) = T(n/3^3) + n/3^2 \)

Mi formula general para representar esto sería la siguiente:

\( T(n) = T(\displaystyle\frac{n}{3^k}+ \displaystyle\sum_{i=0}^{k-1}{\displaystyle\frac{n}{3^i}} \)

Igualo al caso recursivo con el general (sólo los términos afectados por las Ts)

\( T(1) = T(\displaystyle\frac{n}{3^k} \)
\( 1 = \displaystyle\frac{n}{3^k} \)

\( \log_{3}(3^k) = \log_{3}(n)  \)
\( k = \log_{3}(n) \)

Sustituyo en mi fórmula general la k:

\( T(n) = T(\displaystyle\frac{n}{3^k}+ \displaystyle\sum_{i=0}^{k-1}{\displaystyle\frac{n}{3^i}} \)
\( T(n) = T(1)+ \displaystyle\sum_{i=0}^{ \log_{3}(n)-1}{\displaystyle\frac{n}{3^i}} \)
\( T(n) = 0+ \displaystyle\sum_{i=0}^{ \log_{3}(n)-1}{\displaystyle\frac{n}{3^i}} \)

Sin embargo la fórmula obtenida es correcta. Una fórma cómoda de manipular el problema es llamar:

\( a_k=T(3^k) \)

Y tienes:

\( a_k=a_{k-1}+3^k \),  \( a_0=T(1)=0 \).

De donde:

\( a_k=\displaystyle\sum_{i=1}^k{}3^i=\dfrac{3^{k+1}-3}{2} \)

es decir:

\( T(3^k)=a_k=\dfrac{3^{k+1}-3}{2} \)

ó, si \( n=3^k \),

\( T(n)=\dfrac{3(n-1)}{2} \)

Saludos.

Gracias por la respuesta.

Entiendo que la función por partes sería :

\(
T(n)= \left\{ \begin{array}{lcc}
             0 &   si  & n = 1 , k=0 \\
             \\ 3 &  si & n=3 , k=1 \\
             \\ 12 &  si  & n=9,  k=2 \\
             \\ T(n/3)+n
             \end{array}
   \right.
 \)

Respecto a éste sumatorio:

\( a_k=\displaystyle\sum_{i=1}^k{}3^i=\dfrac{3^{k+1}-3}{2} \)

Cuál es la fórmula que se emplea para obtener la expresión sin el sumatorio, es decir:

\( \displaystyle\frac{3^{k+1}-3}{2} \)

Conozco una fórmula que me resulta similar, que es la siguiente:

\( \displaystyle\sum_{i=0}^{n-1}{a^i} = \displaystyle\frac{1 - a^n}{1 - a} \)

Pero no parece que sea el caso.

Gracias de nuevo y perdón por mi ignorancia, pero me ha tocado trabajar con estas cosas, y por desgracia mis conocimientos de matemáticas no son muy altos

09 Mayo, 2019, 11:54 am
Respuesta #3

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

Entiendo que la función por partes sería :

\(
T(n)= \left\{ \begin{array}{lcc}
             0 &   si  & n = 1 , k=0 \\
             \\ 3 &  si & n=3 , k=1 \\
             \\ 12 &  si  & n=9,  k=2 \\
             \\ T(n/3)+n
             \end{array}
   \right.
 \)

Más que la función por partes son los valores de los primeros elementos de la sucesión.

Citar
Respecto a éste sumatorio:

\( a_k=\displaystyle\sum_{i=1}^k{}3^i=\dfrac{3^{k+1}-3}{2} \)

Cuál es la fórmula que se emplea para obtener la expresión sin el sumatorio, es decir:

\( \displaystyle\frac{3^{k+1}-3}{2} \)

Es una progresión geométrica. Aquí tienes la fórmula para la suma:

https://es.wikipedia.org/wiki/Progresi%C3%B3n_geom%C3%A9trica#Suma_de_t%C3%A9rminos_de_una_progresi%C3%B3n_geom%C3%A9trica

Saludos.

09 Mayo, 2019, 05:37 pm
Respuesta #4

OnlyDavies

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 12
  • Karma: +0/-0
  • Sexo: Masculino
Hola

Entiendo que la función por partes sería :

\(
T(n)= \left\{ \begin{array}{lcc}
             0 &   si  & n = 1 , k=0 \\
             \\ 3 &  si & n=3 , k=1 \\
             \\ 12 &  si  & n=9,  k=2 \\
             \\ T(n/3)+n
             \end{array}
   \right.
 \)

Más que la función por partes son los valores de los primeros elementos de la sucesión.

Citar
Respecto a éste sumatorio:

\( a_k=\displaystyle\sum_{i=1}^k{}3^i=\dfrac{3^{k+1}-3}{2} \)

Cuál es la fórmula que se emplea para obtener la expresión sin el sumatorio, es decir:

\( \displaystyle\frac{3^{k+1}-3}{2} \)

Es una progresión geométrica. Aquí tienes la fórmula para la suma:

https://es.wikipedia.org/wiki/Progresi%C3%B3n_geom%C3%A9trica#Suma_de_t%C3%A9rminos_de_una_progresi%C3%B3n_geom%C3%A9trica

Saludos.

Gracias!