Está en la página 1de 3

Basado en los materiales de lecturas complementarios:

De las Estrategias de Diseño de Algoritmo:

a) Defina cada una


 Recursión: La recursividad es una técnica fundamental en el diseño de
algoritmos eficientes, que está basada en la solución de versiones más pequeñas
del problema, para obtener la solución general del mismo.
 Dividir para Conquistar: Muchos algoritmos útiles tienen una estructura
recursiva, de modo que para resolver un problema se llaman recursivamente a sí
mismos una o más veces para solucionar subproblemas muy similares.
 Caso General: Consideremos un problema arbitrario, y sea A un algoritmo
sencillo capaz de resolver el problema. A debe ser eficiente para casos pequeños y
lo denominamos subalgoritmo básico.
 Programación Dinámica: Frecuentemente para resolver un problema complejo
se tiende a dividir este en subproblemas más pequeños, resolver estos últimos
(recurriendo posiblemente a nuevas subdivisiones) y combinar las soluciones
obtenidas para calcular la solución del problema inicial.
 Algoritmos Ávidos: Los algoritmos ávidos o voraces (Greedy Algorithms) son
algoritmos que toman decisiones de corto alcance, basadas en información
inmediatamente disponible, sin importar consecuencias futuras.

b) Explique las ventajas y desventajas


 Recursión

Ventajas:
1.Puede resolver problemas complejos.
2.Solución más natural.

Desventajas:
1.Se puede llegar a un ciclo infinito.
2.Versión no recursiva más difícil de desarrollar.
3. Para la gente sin experiencia es difícil de programar.

 Dividir para Conquistar:

Ventajas
1.Resolucion de problemas complejos.
2.Eficiencia del algoritmo.
3.Paralelismo.
4.Acceso a Memoria.
5.Control del redondeo.
Desventajas
1. La principal desventaja de este método es su lentitud en la repetición del
proceso recursivo
2. Otra desventaja o inconveniente importante, es la dificultad o incluso
inconveniencia de aplicar el método a situaciones en las que la solución al
problema general no se deriva de la suma directa y simple de los subproblemas
(partes).

 Caso General:

Ventajas
Para aplicar la estrategia Divide y Vencerás es necesario que se cumplan tres
condiciones:
1. La decisión de utilizar el subalgoritmo básico en lugar de hacer llamadas recursivas
debe tomarse cuidadosamente.
2.Tiene que ser posible descomponer el caso en subcasos y recomponer las soluciones
parciales de forma eficiente.
3. Los subcasos deben ser en lo posible aproximadamente del mismo tamaño.

Desventajas
1. Si al final de la mayoría de esto casos de algoritmo es que si no se divide en el tamaño de
los subcasos es aproximadamente m/b para que pueda ser contantes de donde los tamaños
sean casos originales de cada subproblema que se aproxime.

 Programación Dinámica:

Ventajas
1.Permite no calcular dos veces lo mismo
2. Utiliza una tabla de resultados

Desventajas
1. Se usa solo con el principio de optimalidad.

 Algoritmos Ávidos:

Ventajas
1.Simples y fáciles de usar
2.Se utilizan para la resolución de problemas de optimización

Desventajas
1. Se debe encontrar un conjunto de candidatos que optimiza la función objetivo
2. Los algoritmos voraces proceden por pasos
c) Mencione las situaciones en las que pueden ser utilizadas

Las estrategias de diseño de algoritmos suelen ser bastante simples y se emplean sobre todo para
resolver problemas de optimización, como por ejemplo, encontrar la secuencia óptima para
procesar un conjunto de tareas por un computador, hallar el camino mínimo de un grafo, etc.

d) Indique con cuál o cuáles se identifica y por qué?


Personalmente me identifico con la recursión ya que ha sido el método que mas he
utilizado para la resolución de algoritmos, porque permite ir reduciendo el nivel de
complejidad del problema.

También podría gustarte