Introducción
La Programación Dinámica es un método de optimización de extraordinaria versatilidad. Si
bien fue desarrollada especialmente para la resolución de problemas en Procesos de
Decisión en Múltiples Pasos, diferentes investigaciones han mostrado que las mismas ideas
pueden utilizarse en otro tipo de problemas de matemática aplicada, e incluso pueden ser
útiles en el planteo de algunas cuestiones teóricas. Habiendo surgido en los inicios de la
época de las computadoras, la Programación Dinámica fue, además, concebida con un ojo
puesto en esta potente herramienta. La Ecuación Funcional que se obtiene, para cada
problema, a través del uso del Principio de Optimalidad de Bellman permite, con mayor o
menor esfuerzo dependiendo del caso, establecer una recurrencia que es, en sí misma, un
algoritmo que resuelve el problema en cuestión.
Definición
La programación dinámica, es una técnica que permite
la resolución de problemas que tratan de alcanzar
determinados fines, a través, de una serie de etapas o
fases compuestas de diversos estados, de estos es
necesario hacer una elección, de tal manera que se
alcance la máxima efectividad global, también
podemos decir, que es una técnica matemática que
trata con la optimización de procesos de decisión. La
optimización es por fases en vez de simultánea.
Definición
Cuando hablamos de optimizar nos referimos a buscar alguna de las
mejores soluciones de entre muchas alternativas posibles. Dicho proceso de
optimización puede ser visto como una secuencia de decisiones que nos
proporcionan la solución correcta. Si, dada una subsecuencia de decisiones,
siempre se conoce cuál es la decisión que debe tomarse a continuación
para obtener la secuencia óptima, el problema es elemental y se resuelve
trivialmente tomando una decisión detrás de otra, lo que se conoce como
estrategia voraz.
En otros casos, aunque no sea posible aplicar la estrategia voraz, se
cumple el principio de optimalidad de Bellman que dicta que «dada una
secuencia óptima de decisiones, toda subsecuencia de ella es, a su vez,
óptima». En este caso sigue siendo posible el ir tomando decisiones
elementales, en la confianza de que la combinación de ellas seguirá siendo
óptima, pero será entonces necesario explorar muchas secuencias de
decisiones para dar con la correcta, siendo aquí donde interviene la
programación dinámica.
Etapas
1.- ETAPAS: Se pueden definir como cada uno de los
pasos que se deben seguir para llegar al objetivo. Las
representamos por líneas discontinuas.
2.- ESTADOS: Son las diversas condiciones posibles en la
que el sistema podría estar en esa etapa del problema.
Se representan por círculos.
3.- POLÍTICA: Es cualquiera de los caminos que llevan de
la primera a la última etapa.
4.- SUBPOLÍTICA: Es un subconjunto de la política.
Esquema de una etapa
Formulación y solución
La teoría unificadora fundamental de la
programación dinámica es el principio de
Optimalidad, que nos indica básicamente como se
puede resolver un problema adecuadamente es
compuesto en etapas utilizando cálculos
recursivos. “Una política óptima tiene la propiedad
de que, independientemente de las decisiones
tomadas para llegar a un estado particular, en una
etapa particular, las decisiones restantes deben
constituir una política óptima para abandonar ese
estado”
Formulación y solución
Al no contar con un estándar de formulación
matemática, ya que es mas bien un enfoque
general para solucionar problemas, y cada
situación individual se le deben desarrollar sus
propias ecuaciones especificas, ya que cada
problema es distinto y se aborda de diferentes
maneras.
Lo problemas al solucionarse normalmente por
etapas nos lleva a que cada variable de
optimización intervendrá en la etapa que le
corresponda.
Resolver problemas
CREATIVIDAD
CONOCIMIENTO
ESTRUCTURA
GENERAL
Esto nos ayuda a abordar el
problema de alguna forma
mas dinámica y adaptable
al problema
Principalmente para
saber si un problema se
puede resolver o no
necesitamos conocer
acerca del tema y así
hallar un procedimiento
adecuado para abordar
el problema
Pprogramación dinámica
La programación dinámica es un método para reducir el tiempo
de ejecución de un algoritmo mediante la utilización de
subproblemas superpuestos y subestructuras óptimas, como se
describe a continuación. El matemático Richard Bellman inventó la
programación dinámica en 1953 que se utiliza para optimizar
problemas complejos que pueden ser discretizados y
secuencializados.
Originalmente, el término de programación dinámica se refería a la
resolución de ciertos problemas y operaciones fuera del ámbito de
la Ingeniería Informática, al igual que hacía la programación lineal.
Aquel contexto no tiene relación con la programación en absoluto;
el nombre es una coincidencia. El término también lo usó en los
años 40 Richard Bellman, un matemático norteamericano, para
describir el proceso de resolución de problemas donde hace falta
calcular la mejor solución consecutivamente.
Pprogramación dinámica
Características
Se puede
dividir en
etapas
Cada etapa
tiene ciertos
estados
La finalidad de
cada etapa es
formar un estado
final para la próxima
etapa
Su solución es
hecha de
manera optima
Cada etapa tiene un
numero finito de
estados
Recursividad
Recurrencia, recursión o recursividad es la forma en la cual se
especifica un proceso basado en su propia definición. La recursión
tiene esta característica discernible en términos de
autorreferencialidad, autopoiesis, fractalidad, o, en otras palabras,
construcción a partir de un mismo tipo. Con ánimo de una mayor
precisión, y para evitar la aparente circularidad en esta definición,
se formula el concepto de recursión de la siguiente manera:
Un problema que pueda ser definido en función de su tamaño, sea
este N, pueda ser dividido en instancias más pequeñas (< N) del
mismo problema y se conozca la solución explícita a las instancias
más simples, lo que se conoce como casos base, se puede aplicar
inducción sobre las llamadas más pequeñas y suponer que estas
quedan resueltas.
Recursividad
Recursión es, una forma de atajar y solventar problemas. De
hecho, recursión es una de las ideas centrales de ciencia de
computación. Resolver un problema mediante recursión
significa que la solución depende de las soluciones de
pequeñas instancias del mismo problema.
Existen dos formas de plantear la fórmula de recursividad
en los problemas de programación dinámica:
Recursividad de Retroceso: el problema se resuelva
partiendo de la última etapa hacia la primera.
Recursividad de Avance: el problema se resuelve partiendo
de la primera etapa hacia la última.
Conclusión
Un problema de optimización que se pueda dividir en etapas y
que sea dinámico en el tiempo puede resolverse por
programación dinámica. También un problema en donde se
pueda implementar programación dinámica posee soluciones se
pueden ver de manera parcial. Si es posible se validan los
resultados usando otros métodos de solución como programación
lineal, no lineal, entera o teoría de redes.
Bibliografía
Bertsekas,D.P., "Dynamic Programming; Deterministic
and Stochastic Models"Academic Press, 1987.
Dreyfus S.E. y Law A.M., "The Art and Theory of
Dynamic Programming", Academic Press, 1977.
Hiller, F. S. “Introducción a la Investigación de
Operaciones”. 2008
Taha, H. A. “Investigación de Operaciones”. 2005
https://es.wikipedia.org/wiki/Problema_de_la_mochila
https://es.wikibooks.org/wiki/Programaci%C3%B3n_din%C3%A1mica/Problema
_de_las_monedas_con_programaci%C3%B3n_din%C3%A1mica

Programacion dinamica

  • 2.
    Introducción La Programación Dinámicaes un método de optimización de extraordinaria versatilidad. Si bien fue desarrollada especialmente para la resolución de problemas en Procesos de Decisión en Múltiples Pasos, diferentes investigaciones han mostrado que las mismas ideas pueden utilizarse en otro tipo de problemas de matemática aplicada, e incluso pueden ser útiles en el planteo de algunas cuestiones teóricas. Habiendo surgido en los inicios de la época de las computadoras, la Programación Dinámica fue, además, concebida con un ojo puesto en esta potente herramienta. La Ecuación Funcional que se obtiene, para cada problema, a través del uso del Principio de Optimalidad de Bellman permite, con mayor o menor esfuerzo dependiendo del caso, establecer una recurrencia que es, en sí misma, un algoritmo que resuelve el problema en cuestión.
  • 3.
    Definición La programación dinámica,es una técnica que permite la resolución de problemas que tratan de alcanzar determinados fines, a través, de una serie de etapas o fases compuestas de diversos estados, de estos es necesario hacer una elección, de tal manera que se alcance la máxima efectividad global, también podemos decir, que es una técnica matemática que trata con la optimización de procesos de decisión. La optimización es por fases en vez de simultánea.
  • 4.
    Definición Cuando hablamos deoptimizar nos referimos a buscar alguna de las mejores soluciones de entre muchas alternativas posibles. Dicho proceso de optimización puede ser visto como una secuencia de decisiones que nos proporcionan la solución correcta. Si, dada una subsecuencia de decisiones, siempre se conoce cuál es la decisión que debe tomarse a continuación para obtener la secuencia óptima, el problema es elemental y se resuelve trivialmente tomando una decisión detrás de otra, lo que se conoce como estrategia voraz. En otros casos, aunque no sea posible aplicar la estrategia voraz, se cumple el principio de optimalidad de Bellman que dicta que «dada una secuencia óptima de decisiones, toda subsecuencia de ella es, a su vez, óptima». En este caso sigue siendo posible el ir tomando decisiones elementales, en la confianza de que la combinación de ellas seguirá siendo óptima, pero será entonces necesario explorar muchas secuencias de decisiones para dar con la correcta, siendo aquí donde interviene la programación dinámica.
  • 5.
    Etapas 1.- ETAPAS: Sepueden definir como cada uno de los pasos que se deben seguir para llegar al objetivo. Las representamos por líneas discontinuas. 2.- ESTADOS: Son las diversas condiciones posibles en la que el sistema podría estar en esa etapa del problema. Se representan por círculos. 3.- POLÍTICA: Es cualquiera de los caminos que llevan de la primera a la última etapa. 4.- SUBPOLÍTICA: Es un subconjunto de la política.
  • 6.
  • 7.
    Formulación y solución Lateoría unificadora fundamental de la programación dinámica es el principio de Optimalidad, que nos indica básicamente como se puede resolver un problema adecuadamente es compuesto en etapas utilizando cálculos recursivos. “Una política óptima tiene la propiedad de que, independientemente de las decisiones tomadas para llegar a un estado particular, en una etapa particular, las decisiones restantes deben constituir una política óptima para abandonar ese estado”
  • 8.
    Formulación y solución Alno contar con un estándar de formulación matemática, ya que es mas bien un enfoque general para solucionar problemas, y cada situación individual se le deben desarrollar sus propias ecuaciones especificas, ya que cada problema es distinto y se aborda de diferentes maneras. Lo problemas al solucionarse normalmente por etapas nos lleva a que cada variable de optimización intervendrá en la etapa que le corresponda.
  • 9.
    Resolver problemas CREATIVIDAD CONOCIMIENTO ESTRUCTURA GENERAL Esto nosayuda a abordar el problema de alguna forma mas dinámica y adaptable al problema Principalmente para saber si un problema se puede resolver o no necesitamos conocer acerca del tema y así hallar un procedimiento adecuado para abordar el problema
  • 10.
    Pprogramación dinámica La programacióndinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas, como se describe a continuación. El matemático Richard Bellman inventó la programación dinámica en 1953 que se utiliza para optimizar problemas complejos que pueden ser discretizados y secuencializados. Originalmente, el término de programación dinámica se refería a la resolución de ciertos problemas y operaciones fuera del ámbito de la Ingeniería Informática, al igual que hacía la programación lineal. Aquel contexto no tiene relación con la programación en absoluto; el nombre es una coincidencia. El término también lo usó en los años 40 Richard Bellman, un matemático norteamericano, para describir el proceso de resolución de problemas donde hace falta calcular la mejor solución consecutivamente.
  • 11.
    Pprogramación dinámica Características Se puede dividiren etapas Cada etapa tiene ciertos estados La finalidad de cada etapa es formar un estado final para la próxima etapa Su solución es hecha de manera optima Cada etapa tiene un numero finito de estados
  • 12.
    Recursividad Recurrencia, recursión orecursividad es la forma en la cual se especifica un proceso basado en su propia definición. La recursión tiene esta característica discernible en términos de autorreferencialidad, autopoiesis, fractalidad, o, en otras palabras, construcción a partir de un mismo tipo. Con ánimo de una mayor precisión, y para evitar la aparente circularidad en esta definición, se formula el concepto de recursión de la siguiente manera: Un problema que pueda ser definido en función de su tamaño, sea este N, pueda ser dividido en instancias más pequeñas (< N) del mismo problema y se conozca la solución explícita a las instancias más simples, lo que se conoce como casos base, se puede aplicar inducción sobre las llamadas más pequeñas y suponer que estas quedan resueltas.
  • 13.
    Recursividad Recursión es, unaforma de atajar y solventar problemas. De hecho, recursión es una de las ideas centrales de ciencia de computación. Resolver un problema mediante recursión significa que la solución depende de las soluciones de pequeñas instancias del mismo problema. Existen dos formas de plantear la fórmula de recursividad en los problemas de programación dinámica: Recursividad de Retroceso: el problema se resuelva partiendo de la última etapa hacia la primera. Recursividad de Avance: el problema se resuelve partiendo de la primera etapa hacia la última.
  • 14.
    Conclusión Un problema deoptimización que se pueda dividir en etapas y que sea dinámico en el tiempo puede resolverse por programación dinámica. También un problema en donde se pueda implementar programación dinámica posee soluciones se pueden ver de manera parcial. Si es posible se validan los resultados usando otros métodos de solución como programación lineal, no lineal, entera o teoría de redes.
  • 15.
    Bibliografía Bertsekas,D.P., "Dynamic Programming;Deterministic and Stochastic Models"Academic Press, 1987. Dreyfus S.E. y Law A.M., "The Art and Theory of Dynamic Programming", Academic Press, 1977. Hiller, F. S. “Introducción a la Investigación de Operaciones”. 2008 Taha, H. A. “Investigación de Operaciones”. 2005 https://es.wikipedia.org/wiki/Problema_de_la_mochila https://es.wikibooks.org/wiki/Programaci%C3%B3n_din%C3%A1mica/Problema _de_las_monedas_con_programaci%C3%B3n_din%C3%A1mica