¿Cuáles son algunos ejemplos bien conocidos donde se usa la programación dinámica?

Citando un ejemplo de Computer Vision, el marco de detección de objetos Viola-Jones utiliza una solución de programación dinámica popular y ubicua para encontrar la suma de elementos en un sub-rectángulo arbitrario de una matriz 2-D dada.

Para dar una visión general, el marco Viola-Jones se basa en las características de Haar que se calculan calculando la diferencia de la suma de píxeles en regiones rectangulares adyacentes. Para lograr eso, se calcula una representación de imagen conocida como imagen integral , [matemática] I [/ matemática] donde cada píxel [matemática] I (x, y) [/ matemática] es la suma de todos los píxeles arriba y a la izquierda de [matemáticas] (x, y) [/ matemáticas], inclusive en la imagen original. [math] I [/ math] se puede calcular en una sola pasada sobre la imagen usando la siguiente recurrencia que se puede visualizar como un caso básico del principio de inclusión-exclusión:

[matemáticas] I (x, y) = imagen (x, y) + I (x, y-1) + I (x-1, y) – I (x-1, y-1) [/ matemáticas]

Una vez que se ha calculado la imagen integral, es posible calcular la suma de píxeles en cualquier región de imagen rectangular de tamaño arbitrario en tiempo constante usando 4 referencias a [matemáticas] I [/ matemáticas] como se muestra en la figura (cortesía de la imagen: Wikipedia) .

Se sabe que esto imparte una ventaja de velocidad considerable al marco de detección de objetos.

Tome este mismo ejemplo, si le pido que me dé el recuento de la suma de todos los números entre 1 y 10 ^ 18, que solo debería tener el subconjunto de dígitos permitidos.

ejemplo. si la pregunta anterior se reduce a encontrar la suma de números entre 1 y 15, y los dígitos permitidos son {1, 2, 5}, entonces la suma de números sería (1 + 2 + 5 + 11 + 12 + 15 = 46)

Esta es la pregunta más básica en la variación de DP basada en rango.
Además, DP tiene su propia belleza 🙂 🙂

  • Algoritmos: programación dinámica
  • Torre de Hanoi : programación dinámica
  • Tablero de control: programación dinámica
  • Problema de ruta más corta: programación dinámica

En el siguiente enlace, la programación dinámica se utiliza para encontrar si una cadena es una cadena codificada de otra cadena:
http://www.writeulearn.com/isscr