En pocas palabras, todo lo que realmente significa es que puede escribir una fórmula recursiva para una solución al problema.
Si no puede escribir una fórmula recursiva para su problema, probablemente no debería haber pensado en usar la programación dinámica de todos modos, ya que la programación dinámica es fundamentalmente un método para resolver fórmulas recursivas, de una manera que a veces es más eficiente que si hubiera tenido recurrencia regular utilizada
En otras palabras, la determinación de que el problema tiene una subestructura óptima debe ser anterior a la idea de usar programación dinámica (dado que las fórmulas recursivas también pueden resolverse mediante otros métodos, pero la programación dinámica nunca tiene sentido si no puede ver cómo resolver de forma recursiva). Para cuando decida utilizar la programación dinámica, ya debería haber escrito una fórmula recursiva, en cuyo caso la subestructura óptima es un hecho, y no es realmente algo en lo que tenga que pensar.
- ¿Cómo funciona el algoritmo de búsqueda de ruta de StarCraft II?
- Si recibe fondos de miles de millones de dólares y tiene la tarea de crear un motor de búsqueda para competir con Google, ¿cómo sería su motor de búsqueda?
- ¿En cuánto tiempo puedo ser un profesional en la resolución de problemas en algoritmos y estructuras de datos si empiezo hoy sin ningún conocimiento previo?
- ¿Los algoritmos de aprendizaje automático han salido del laboratorio y han pasado a entornos clínicos que involucran pacientes?
- ¿Se requiere un buen conocimiento de la estructura de datos y algoritmos para saltar a la codificación competitiva?