[2016][Julio][Problema 2]

[2016][Julio][Problema 2]

de Martin Alfredo Idiart Fernandez -
Número de respuestas: 3

Con respecto a la parte b) de este problema:

“ Respecto al uso de memoria en el problema planteado indique: 

iii) El árbol más grande que puede ejecutar su solución.

En la solución publicada se argumenta que el árbol mas grande que puede ejecutar la funcion es de 5460 nodos; Teniendo en cuenta que el segmento de stack tiene un tamaño de 64KB y que Consumo(árbol N nodos) = (N+1) * 12 bytes. 

Mi duda surge del hecho de que la formula de Consumo es a partir del peor caso posible, cuando el árbol se degenera en una lista.

Y al vaciarse el segmento de stack una vez finalizada la recursion por izquierda, la función podría ademas realizar una recursion por derecha.

Por lo tanto, no se podría decir que la función es capaz de ejecutar un árbol de tamaño:

1 (Nodo raiz) + 5459 (Rama izquierda) + 5459 (Rama derecha) ?

=

10919 < 10922 (Cantidad de nodos que pueden entrar en el segmento ES)

Ademas, ubicando los tres nodos restantes de forma conveniente; No se podría incluso concluir que el árbol de mayor tamaño que podría ejecutar la solución es de 10922 nodos?

Asumí que la solución era de N = 5460 porque se buscaba el árbol mas grande, sin importar la forma en la cual se distribuyan los nodos. Si es así, debería asumir que siempre que se haga esta pregunta en un problema de recursion es para una distribución de nodos genérica? O hay algún error en mi argumento previo?


En respuesta a Martin Alfredo Idiart Fernandez

Re: [2016][Julio][Problema 2]

de Lucía Poggio Peña -
Buenas, retomo el hilo ya que me surgió la misma duda.


Al realizar el ejercicio asumí lo que comenta el compañero y llegué a la solución, aún así quería confirmar a qué se refiere cuando pide indicar "el árbol más grande que puede ejecutar su solución”.


Por ejemplo si un árbol tiene una cantidad m de nodos, con 10922 >= m > 5460 , de tal manera que no esté “distribuído” como una lista degenerada si no que la profundidad sea 5460, no podría pasar que el árbol siga siendo ejecutable?. 


Entiendo que si calculamos el consumo máximo con ese m, va a dar que no entra en el segmento, ya que se considera el peor caso. Pero quería confirmar si sólo hay que considerar que siga siendo ejecutable dada una distribución cualquiera de los nodos, por más que pueda existir un árbol con más nodos ejecutable. 

Desde ya muchas gracias.


Saludos,
Lucía Poggio
En respuesta a Lucía Poggio Peña

Re: [2016][Julio][Problema 2]

de Gustavo Brown -

El ejercicio esta pidiendo que indiques el tamaño de arbol maximo para el cual, no importa la configuración del mismo, se pueda ejecutar el algoritmo.

En este caso es un arbol que degenere en una lista.

Puede pasar que tengas un árbol con más de 5460 nodos (llamemosle N) y que no degenere en lista y que pueda ejecutar el algoritmo, pero no podes asegurar que cualquier arbol con N nodos se pueda ejecutar.

Saludos,
  Gustavo