Beruflich Dokumente
Kultur Dokumente
|
vfrbbtr
INTRODUCCIÓN
En informática, 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.
LA PROGRAMACION DINAMICA
Los algoritmos basados en este modo de operación son mas eficientes pero al mismo
tiempo complejos por decir generalmente si tenemos un problema este también tiene
subproblemas superpuestos es decir que se usa un mismo subproblema para resolver
diferentes problemas mayores. Por ejemplo, en la sucesión de Fibonacci (F3 = F1 + F2 y
F4 = F2 + F3) calcular cada término supone calcular F2. Como para calcular F5 hacen
falta tanto F3 como F4, una mala implementación para calcular F5 acabará calculando F2
dos o más veces. Esto sucede siempre que haya subproblemas superpuestos: una mala
implementación puede acabar desperdiciando tiempo recalculando las soluciones óptimas
a problemas que ya han sido resueltos anteriormente.
Esto se puede evitar guardando las soluciones que ya hemos calculado. Entonces, si
necesitamos resolver el mismo problema más tarde, podemos obtener la solución de la
lista de soluciones calculadas y reutilizarla. Este acercamiento al problema se llama
memorización (no confundir con memorización; en inglés es llamado memorization. Si
estamos seguros de que no volveremos a necesitar una solución en concreto, la podemos
descartar para ahorrar espacio. En algunos casos, podemos calcular las soluciones a
problemas que de antemano sabemos que vamos a necesitar.
En resumen, la programación hace uso de:
Subproblemas superpuestos
Subestructuras óptimas
Memorización
1. EL PRINCIPIO DE OPTIMALIDAD
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.
Por ejemplo
En un río hay unos embarcaderos, en cada uno de los cuales se puede alquilar un bote
para ir a otro embarcadero que esté más abajo en el río. Suponemos que no se puede
remontar el río. Una tabla de tarifas indica los costes de viajar entre los distintos
embarcaderos. Se supone que puede ocurrir que un viaje entre i y j salga más barato
haciendo escala en k embarcaderos que yendo directamente.
Vamos a llamar a la tabla de tarifas, T. Así, T[i,j] será el coste de ir del embarcadero i al
j. La matriz será triangular superior de orden n, donde n es el número de embarcaderos.
0 si i = j
C(i, j)=
Min(T(i,k) + C(k,j), T(i,j)) si i < k <= j
T: tiempo
K: constante
3. UNIT COMMITMENT
En el capítulo anterior se explicó que el despacho económico consiste en determinar la
repartición óptima de carga entre las unidades generadoras termoeléctricas con las que se
dispone de tal manera que el costo total de generación sea mínimo, no analiza la manera
de obtener mejores resultados y por consiguiente una mejor utilización del recurso. Ahora
abordaremos el problema de determinar que unidades generadoras deben acoplarse o
desacoplarse según la variación de la demanda para conseguir la mejor optimización de
los recursos, para ello en este capítulo se desarrolla la asignación de unidades o unit
commitment con lo cual abordaremos más adelante la solución a la asignación de
unidades térmicas.
Como sabemos la demanda de energía a suplir por un grupo de generadores no es
constante en el transcurso del día, la demanda es generalmente alta en ciertos períodos
(punta) y por el contrario es baja en otros (valle) y cada zona presenta un comportamiento
similar. Este comportamiento se puede analizar también de manera diaria, ya que no son
iguales los requerimientos de carga de un día de semana normal comparado con los de
uno de fin de semana, entonces debido a este comportamiento es que la asignación de
unidades representa un problema para la operación del sistema de potencia. No se trata
simplemente de encender las unidades, sincronizarlas y ponerlas en línea, esto representa
un gasto demasiado alto, entonces lo que se busca es hacer la asignación de unidades de
forma eficiente, esto se logra apagando las unidades cuando no son necesarias para los
requerimientos de carga del momento, con lo cual se logra un ahorro considerable.
una solución rápida y real al problema, para ello plantearemos la situación que se
tiene al inicio del problema.
* Tenemos establecida una demanda a cubrir para un período de M intervalos.
* Se cuenta con N unidades para cubrir la demanda de un período T .
* Los T niveles de carga y límites de operación de las N unidades es tal que una unidad
puede suplir cargas individuales y cualquier combinación de unidades puede también
suplir estas cargas.
Las técnicas más utilizadas para encontrar la solución de la asignación de unidades son:
1- Diseño de lista de prioridades
2- Programación dinámica
3- Relajación de Lagrange
Combinación óptima de unidades del Ejemplo 3A para una carga variable. Otra forma de
hacer la lista de prioridades para las unidades puede estar basada en los costos promedios
de producción cuando la unidad está a su máxima capacidad, en la Tabla mostrada se
presentan estos costos para las unidades del Ejemplo 3A y en la Tabla El orden en que se
despachan las unidades siguiendo este criterio, es de hacer notar que hay diferencias entre
la asignación de unidades que se observa en la Tabla
Carga
t P CARGA(MW)
1 300
2 500
3 1100
4 400
𝐽−𝑞
𝑞(λ) = 0,0 𝐽∗ = 40000 𝐷𝑜𝑛𝑑𝑒
𝑞
𝐽−𝑞
𝑞(λ) = 15435 𝐽∗ = 40000 𝐷𝑜𝑛𝑑𝑒 = 1.591
𝑞
𝐽−𝑞
𝑞(λ) = 19270, 𝐽∗ = 34618 𝐷𝑜𝑛𝑑𝑒 = 0.796
𝑞
𝐽−𝑞
𝑞(λ) = 19756 𝐽∗ = 20000 𝐷𝑜𝑛𝑑𝑒 = 0.00123
𝑞
3.1.3. La Programación Dinámica Aplicada Para Despacho Economico De
Centrales Eléctricas
La programación dinámica tiene algunas ventajas sobre los esquemas de lista de
prioridades, la principal ventaja es que reduce las dimensiones del problema, este método
así como el diseño de lista de prioridades lo que buscan es minimizar los costos al hacer
la asignación de unidades en un sistema eléctrico.
La coacción de una lista de prioridades en orden de la demanda máxima da
como resultado un despacho teórico solamente si:
Las características de entrada y salida de los generadores son lineales
entre cero y la demanda máxima.
Sin demanda los costos son cero.
No hay otras restricciones.
Como vimos en los casis anteriores se utilizo la técnica de Árbol Binario que incorpora
los límites de operación de todos los generadores en línea y los límites debido a los
generadores en rampa, para la aplicación de esta metodología a la Programación
Dinámica se asume que todos los generadores térmicos tienen sus respectivos límites de
operación pero que ningún generador térmico esta en rampa.
Ejemplo Programación Dinámica