Descargar la presentación
La descarga está en progreso. Por favor, espere
1
PROGRAMACION DINAMICA
La programación dinámica consiste en una técnica que permite determinar de manera eficiente las decisiones que optimizan el comportamiento de un sistema que evoluciona a lo largo de una serie de etapas. En otras palabras, trata de encontrar la secuencia de decisiones que optimiza el comportamiento de un proceso polietápico. La estrategia a seguir consiste en comenzar con una introducción teórica que describe las características de los procesos que pueden ser representados por programación dinámica: los procesos polietápicos de decisión.
2
los diversos tipos de programación dinámica existentes:
Programación dinámica no homogénea, frente a programación dinámica homogénea en el tiempo. Para este último caso, podremos plantearnos encontrar la solución para horizonte finito o para horizonte infinito.
3
Procresos polietápicos de decisión
Las situaciones susceptibles de ser representadas mediante programación dinámica pueden describirse como procesos polietápicos de decisión. El problema puede dividirse en etapas. En cada una de esas etapas, debe tomarse una decisión. Tendremos la solución del problema cuando conozcamos la decisión óptima para cualquier situación que pueda presentarse en la evolución del sistema.
4
La programación dinámica va asociada a situaciones de evolución de un sistema que va evolucionando a lo largo de varias etapas (de ahí su carácter dinámico). En la mayoría de las ocasiones, se tratará de representar el comportamiento de un sistema que evoluciona a lo largo del tiempo. En otros casos, se trata de situaciones en las que las decisiones se toman de manera simultánea en el tiempo, pero en las que se evalúan las decisiones de manera secuencial. Al comenzar cada una de las etapas, antes de tomar la decisión, el sistema podrá encontrarse en un estado de los varios posibles para esa etapa.
5
Esto significa que para cada etapa debe definirse un conjunto de estados. El estado debe sintetizar toda la información que debemos conocer de la evolución del sistema en las etapas anteriores. Los estados posibles para una etapa no tienen por qué ser los mismos que para las etapas siguientes (aunque sí deben definirse de la misma manera: los estados aseguran la continuidad entre una y otra etapa) y el número de estados puede ser finito o infinito. Una vez tomada la decisión en el estado correspondiente, el sistema evolucionará hacia alguno de los estados posibles para la etapa siguiente.
6
Por lo tanto, el comportamiento del sistema puede percibirse como una secuencia de decisiones y evoluciones. Dicha evolución puede ser conocida con certeza, una vez tomada la decisión (tendremos una situación de programación dinámica determinista), o bien el sistema puede evolucionar hacia diferentes estados, según una ley de probabilidad conocida (siendo entonces programación dinámica aleatoria). El objetivo de la programación dinámica es de encontrar cuál es la política óptima para cada una de las etapas de la evolución del sistema. La política para una determinada etapa es la decisión óptima en cada uno de los posibles estados del sistema en dicha etapa.
7
Nótese que, para cada etapa, debe definirse una variable de decisión xn. Si el sistema tiene k estados en esa etapa, una política será un vector de k componentes, cuya componente e–sima es el valor de la variable de decisión para el estado e en la etapa n. La esencia de la estrategia de la programación dinámica se expresa mediante el principio de optimalidad: En un modelo de programación dinámica, la política óptima para las etapas que faltan hasta la finalización del proceso es independiente de las políticas adoptadas en las etapas anteriores.
8
Esta propiedad es la esencia de la programación dinámica y tiene dos implicaciones importantes:
En primer lugar, la evolución futura del sistema a partir de una determinada etapa depende exclusivamente del estado en que nos encontremos en esa etapa. Nótese entonces que todo modelo de programación dinámica debe cumplir la propiedad markoviana: sólo necesitamos conocer la situación del sistema en el momento presente para determinar su evolución en las etapas siguientes.
9
En segundo lugar, un modelo de programación dinámica debe resolverse hacia atrás.
Esto admite dos formulaciones, en esencia equivalentes: Si n son las etapas que ya ha realizado el sistema, conociendo la política óptima para la etapa n + 1, podremos encontrar la política óptima para la etapa n.
10
El procedimiento de solución se inicia al encontrar la política óptima para la última etapa.
Esta propiedad tiene que ver con la solución hacia atrás de la que se hablaba en la propiedad anterior. Es conveniente que la solución para la última etapa sea trivial, esto es, que pueda encontrarse sin problemas la decisión óptima para cada uno de los estados de la última etapa. Esto puede lograrse definiendo adecuadamente la función a optimizar. Es frecuente definir la función fN a optimizar en la etapa N como el valor de dicha función para las N últimas etapas.
11
Para encontrar la política óptima para las etapas anteriores, es necesario definir una relación recursiva para la función a optimizar.
Esto significa que, para la etapa n, la función a optimizar ha de poder expresarse en función de alguno de estos elementos: El estado en que nos encontremos en la etapa n–ésima. Los valores de la variable de decisión xn posibles para cada estado en. El óptimo de la función para la etapa n+1, para el estado (o estados) en+1 a que evolucione el sistema después de tomar la decisión xn
12
Para cada uno de los estados, deberemos determinar el valor óptimo de la función (que dependerá exclusivamente del estado del sistema), así como el valor x*n de la variable de decisión que optimiza el comportamiento del sistema para ese estado. Ese valor x*n formará parte de la política óptima para esa etapa.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.