¿Cómo debo estimar la eficiencia del enfoque DP?

Para calcular la eficiencia de cualquier algoritmo de programación dinámica, primero debe determinar la cantidad de subproblemas que tiene y el tiempo que lleva resolver cada subproblema y este cálculo conduce directamente al tiempo de ejecución del algoritmo DP.

Considere los algoritmos DP clásicos para encontrar la subsecuencia creciente más larga. El pseudocódigo para este algoritmo se ve así:

para i = 1, 2, 3, … n:
L (j) = 1 + max {L (i): (i, j) ∈ E}
volver max_j L (j)

Para aclarar, imponer la restricción [math] (i, j) \ en E [/ math] solo significa que el elemento [math] j ^ {th} [/ math] debe ser mayor que el [math] i ^ {th } [/ math] elemento. Entonces, en este ejemplo hay subproblemas [matemática] n [/ matemática] y cada subproblema toma [matemática] O (n) [/ matemática] tiempo para resolver en el peor de los casos. Por lo tanto, el tiempo total de ejecución de esta función es [matemática] O (n ^ 2) [/ matemática].

More Interesting

¿Cuál es la forma correcta de leer CLRS (Introducción a los algoritmos)?

Cómo elegir un elemento único de una lista dentro de un bucle en R

Dado que muchos algoritmos de aprendizaje automático se ejecutan en GPU, ¿Julia sigue siendo una buena opción para eso?

En el software de servidor web, ¿alguna vez se prefiere la ordenación en lugar de la clasificación rápida, porque un ataque DoS podría desencadenar el comportamiento de clasificación rápida en el peor de los casos?

¿Alguien puede dar un ejemplo en Java de pasar una matriz unidimensional, una matriz bidimensional y una matriz tridimensional por referencia y luego manipularlos?

¿Cuándo la piratería se convirtió en algo malo? Pensé que hackear era una forma inteligente / ingeniosa de desarrollar un algoritmo para resolver un problema.

¿Los programadores pasan un tiempo considerable de su tiempo de trabajo en algoritmos?

¿Cuáles son los mejores libros para aprender el comercio algorítmico con Python?

¿Cómo funciona un algoritmo?

¿Es bueno analizar?

¿Encontrar la complejidad temporal de los algoritmos está relacionado con las matemáticas discretas?

¿Se requiere un buen conocimiento de la estructura de datos y algoritmos para saltar a la codificación competitiva?

¿Cuál es el enfoque algorítmico para encontrar los intervalos de tiempo libre de ambas personas para que puedan organizar una reunión, dado el conjunto de intervalos de tiempo ocupado de dos personas, como en un calendario?

¿Cuál es el algoritmo detrás de las OTP (contraseñas de un solo uso)?

¿Cuáles son los ejemplos de colas en la vida real con algoritmo?