Un estado generalmente se define como la condición particular de que algo se encuentra en un punto específico del tiempo.
Del mismo modo, en términos de programación dinámica, un estado se define por una serie de variables necesarias en un instante particular que se requieren para calcular el resultado óptimo. Entonces, básicamente es una combinación de variables que seguirá cambiando en diferentes instantes. A mayor número de estados, mayor es la profundidad de la solución recursiva y mayor es la memoria requerida para almacenar en caché el resultado de los estados para evitar volver a calcular. Esto se debe a que es más probable que tenga el mismo estado en algún momento posterior. Dos estados son iguales, si todas sus variables correspondientes tienen el mismo valor lógico. Por lo tanto, tiene mucho sentido preservar los resultados del estado para ahorrar tiempo. Esto da lugar a lo que se conoce como programación dinámica .
Bueno, he escrito un blog para explicar las mismas y muchas cosas más sobre programación dinámica en la publicación de mi blog que se menciona a continuación. Puede echarle un vistazo y discutir en los comentarios de la publicación del blog si tiene alguna duda.
- ¿Por qué mi solución C ++ al problema SPOJ.com - Problema DIVSUM2 muestra un error?
- ¿Cuál es la diferencia entre binario, algoritmo y lenguaje de programación?
- ¿Cómo podría encontrar la métrica correcta que se utilizará para los vecinos más cercanos u otros algoritmos basados en similitudes?
- ¿Qué enfoque debería usarse para resolver esta pregunta sobre hackerrank?
- ¿Cuál es el mejor algoritmo de extracción en primer plano de escenas dinámicas, donde el fondo también puede cambiar (debido a las vibraciones de la cámara o los detalles en movimiento)?
Programación dinámica – Parte 1 por Prateek Gupta en TechParoksha