2010-04-15 Últimas pruebas antes de experimentos finales

Posted By dmmedina

Date: abril 15th, 2010

Category: Optimo-Robusto

Como lo vimos en los resultados anteriores, teníamos una especie de anomalía en los resultados (datos aberrantes). Pero eso ya fue superado.

Con todos los cambios realizados hasta el momento, el tiempo de ejecución es el siguiente: (N*12 min)+12 min, es decir, 5 muestras por hora. Lo cual hay que considerar antes de seguir realizando las pruebas, para definir con más precisión cuales serían las más convenientes.

Estoy realizando una última prueba antes de ejecutar los experimentos finales, y aunque ya obtuvimos una política con 0% de violaciones, hay una de las obtenidas que me gustaría presentar su progreso.

Con este resultados preliminar podemos esperar que los % de violaciones van a variar entre el 10% y 20%. Lo cual es muy alentador.
Esto fue lo que obtuvimos:

Con estos resultados tenemos por cierto que si vamos podemos alcanzar una Política Óptima Robusta.

La mejor política obtenida fue.

Solo nos haría falta probar una política como esta para calcular los Indicadores.

Antes de esto evaluamos esta política en las 10.000 muestras para conocer su comportamiento. Al hacer esto, salto a la vista algún tipo de falla en alguno de los algoritmos porque no satisfago a ninguna de las muestras, por lo que se la probo con las series con las que fue calculada y también se obtuvieron resultados diferentes. Una hipótesis es que hay alguna diferencia en las implementaciones entre C++ y Matlab. Eso lo revisaremos mañana.

2010-04-14 Resultados comparativos de Optimizador Robusto

Posted By dmmedina

Date: abril 14th, 2010

Category: Optimo-Robusto

Como lo había indicado con anterioridad, realizamos una corrida de nuestros algoritmos usando 100 Muestras y con 100 series de caudales cada una. Pero no supimos que resultados presentar, solo presentamos ciertos datos generados, como las medias de los caudales y una referencia sobre las políticas óptimas encontradas.
Aquí presentamos un breve resumen de los resultados obtenidos, que nos servirán como base para los demás experimentos que realizaremos.
Solo graficamos 71 muestras por una falla en la energía mientras se ejecutaba durante el fin de semana.

Luego de esto, el objetivo planteado fue el siguiente:

  1. Integrar las 3 etapas del algoritmo (generar muestras, obtener óptima, buscar robusta)
  2. De tal forma que podamos variar: El número de muestras (M), el tamaño de cada muestra (N) y de ser necesario el % de aciertos con el que consideramos a una política como robusta.
  3. Además poder ir seleccionando la mejor política robusta entre las generadas por cada una de las muestras (M), de tal manera que si la Óptima Media de una muestra no es mejor que la Robusta obtenida hasta el momento es mayor, no buscamos una a partir de esta.

Para probar el funcionamiento de esta integración realizamos una ejecución con M = 10 y N = 100. El % de variación para buscar la robusta fue de 30% y del 10% el rango para considerar una política como óptima. Estos son los resultados.

El dato peculiar de este gráfico es el que se obtuvo en la primera Muestra. Aunque en un 100% es una política robusta (no viola ninguna de la series de caudales N), el costo de la Política Óptima fue de $500'000.000 y el de la política robusta de 200'000.000. Lo cual la descarta como una Política Óptima y Robusta a la vez.

Esto motivo a hacer una revisión detallada de los datos generados por la 1era muestra. Lo único que pude notar de diferencia en comparación con las otras fue que las políticas de turbinamiento obtenidas en la política óptima fueron muy bajas, por lo cual el costo se elevó tanto.

Por el tiempo que se tardo este ensayo (cerca de 3 horas y media) vamos a reducir a la mitad (5.000) el número de generaciones usadas para busca las Políticas Robustas.

Los experimentos posteriores serán realizados variando: M (20 - 40 - 60 - 80 - 100 iteraciones) y N (30 - 100 - 1.000 series).

2010-04-12 Resultados del fin de semana

Posted By dmmedina

Date: abril 12th, 2010

Category: Uncategorized

Esta es la comparación de las políticas obtenidas con diferentes % de variación, mostrando además el costo de cada una de ellas

Tal como pensábamos los promedios de caudales son prácticamente los mismos, aquí presentamos los Promedios de los caudales de las 100 Muestras.

Las políticas óptimas obtenidas si fueron muy variables en cuanto a su comportamiento, pero muy estables en cuanto al costo mínimo, osciló entre 88'130.000 y 89'270.000. No agrego la gráfica porque parece un borrón.

De lo único que no pudimos obtener los 100 resultados fue de la Política Robusta, que solo tenemos 71, porque al parecer se fue la luz. Pero los resultados son muy buenos.
Hay políticas que llegaron a acertar hasta en el 100% de los casos, es decir, tuvieron 0% de violaciones. Pero no sé cual sería la mejor forma de colocar estos 71 resultados.

2010-04-09 Analizando resultados obtenidos

Posted By dmmedina

Date: abril 9th, 2010

Category: Optimo-Robusto

En vista de que las pruebas que habíamos realizado hasta el momento no han producido resultados aceptables, hizo surgir varias hipótesis sobre las posibles causas de estos resultados y las posible soluciones, las más importantes son:

  • Los datos utilizados
  • Funcionamiento del G.A.
  • El sistema sobre el que estamos trabajando (PAUTE)

Sin ningún orden en particular. Hicimos una prueba aumentando la capacidad de almacenamiento de la Presa y el resultado en encontrar la Política Óptima y Robusta fue la siguiente:

Esto nos hacer ver parcialmente que los G.A. están trabajando bien ya que se nota una mejoría en los resultados, aunque queda pendiente la revisión de su eficacia.

Además podemos observar que de la generación 5.000 en adelante la mejora fue muy poca, por lo que para las siguientes pruebas solo lo haremos hasta 5.000 generaciones. Como dato extra hemos decido utilizar el operador de Cruce uniforme.

Ahora con los datos que estamos utilizando, necesitamos entender de mejor manera su comportamiento.

Esta gráfica es muy similar a las gráficas de las muestras de los 6 caudales que presentamos anteriormente.

Este es prácticamente el mismo que obtuvimos de la muestra de tamaño N = 100.

Las conclusiones a la podríamos llegar son: Podemos usar cualquier muestra de 100 series de caudales para obtener la Media para optimizar; y que las muestras de caudales están bien generadas porque se apegan muy bien a la realidad.

En este momento vamos a realizar varias iteraciones cambiando el porcentaje de cambio en la política óptima, de 5% en 5%



Para finalizar la semana vamos a dejar ejecutando 100 iteraciones de lo siguiente:

  1. Tomar aleatoriamente 100 series de caudales.
  2. Encontrar una política óptima usando la media de estos caudales.
  3. Con la política encontrada buscar una política robusta. Usando 10.000 generaciones, Cruce uniforme y un 30% de porcentaje de variación.

2010-04-08 Probando diferentes cruces en GA

Posted By dmmedina

Date: abril 8th, 2010

Category: G.A., Optimo-Robusto

Para comprobar cual de los cruces que tenemos es el mejor para resolver el problema que estamos atacando en este momento "Encontrar la Política Robusta".

Hemos estado utilizando únicamente BLX_Alfa porque era el que mejores resultados nos ha entregado, pero en este momento necesitamos que el rango de las variables se mantenga dentro del rango permitido.

Vamos a ejecutar los Algoritmos Genéticos con los siguientes parámetros:

  • 5.000 Generaciones. El tiempo de ejecución es de 10 a 15 minutos
  • 100 Individuos
  • Mutación Uniforme
  • Porcentaje de variación 10%
  • Cruce variable entre: Un Punto, Uniforme, BLX_Alfa, Uniforme_Aleatorio

Los resultados hasta el momento son estos:

Un Punto, el mejor poblador: 1ra generación 100.163889% y última generación 100.117333%. Con los porcentajes de variación dentro del rango.

Uniforme, el mejor poblador: 1ra generación 100.160056% y última generación 100.117722%. Con los porcentajes de variación dentro del rango.

BLX_Alfa, el mejor poblador: 1ra generación 100.162389% y última generación 100.130528%. Con los porcentajes de variación hasta del 50%

Uniforme Aleatorio, el mejor poblador: 1ra generación 100.161111% y última generación 100.157639%. Con los porcentajes de variación dentro del rango.

Al parecer todos los casos podrían seguir mejorando si los dejamos ejecutar con más generaciones

Como BLX_Alfa hace que se salgan del rango que necesitamos, vamos a probar las otras  3 formas de cruce aumentando a 150 el # de individuos y 10.000 las generaciones.

Un Punto, última generación 100.101806% lo alcanzó en la generación 9.930

Uniforme, última generación 100.101667% lo alcanzó ne la 9.970

Uniforme Aleatorio, última generación 100.156222% en la generación 7.300 obtuvo este resultado

Los primeros dos tienen más posibilidades de seguir disminuyendo.

2010-04-07 Usando las Partículas Analíticas

Posted By dmmedina

Date: abril 7th, 2010

Category: G.A., Optimo-Robusto

Hasta el medio día de hoy estuve buscando la razón del error (fitness negativos), y lo que estaba sucediendo era un índice en uno de los atributos de los Individuos que accedía a un espacio de memoria que no re correspondía, que afectaba al fitness del individuo anterior por eso el error era recursivo para todos y en cada generación.

Una vez solucionado procedimos a probarlo. Y no tamos que todos los individuos que se generaban violaban el 100% de Partículas Analíticas. Lo cual no ayuda en nada en la discriminación entre los individuos para decidir cual es el mejor de ellos.

Por lo que hemos pensado, que el fitness, hay que contabilizar también las veces que viola cada una de las Partículas.

Lo más probable es que la agreguemos como fracción dividiéndola para el máximo posible.

El cambio resultó muy bueno, y se ve una evolución en el fitness, pero sigue siendo del 100% de violaciones.

Tenemos otro inconveniente, hay porcentajes de variación que se alejaron del definido inicialmente (10%) , hay valores hasta del 50%.

Bueno, esto se debe a que estamos usando BLX_Alfa para el Cruce al generar nuevos individuos. Ademas lo estamos ejecutando con 5.000 generaciones.

Como podemos notar un poco antes de la generación 2.500 ya había convergido en la solución actual, pero en ningún momento bajó del 100%, únicamente mejoró el número total de violaciones a las restricciones.

El siguiente paso será hacer el proceso iterativo hasta encontrar una solución factible.

2010-04-06 Partículas Analíticas usando los GA

Posted By dmmedina

Date: abril 7th, 2010

Category: G.A., Optimo-Robusto

Como ya lo habíamos indicado, vamos a usar los G.A. para generar diferentes políticas de despacho, hasta encontrar una que solo viole restricciones en el 10% de las Partículas Analíticas.

La base para esto va a ser la Política Óptima (P) obtenida de la media de las N muestras de caudales.

Para generar las nuevas políticas vamos a variar P en un D% cada uno de los valores de P.

Con esto los individuos van a estar formados por 360 (12 meses x 30 años) valores  entre [-D, D], que representaran el cambio porcentual de los valores de P.

Para la función de fitness vamos a contar el número de veces que no satisface para las N series de caudales (violando las restricciones de las Partículas Analíticas)

Al finalizar el día teníamos terminado el G.A. pero tuve dificultades en la ejecución por Desbordamientos de la Memoria Fija. Para solucionarlo decidí usar memoria dinámica para la P y para los N muestras de caudales, ya que había que utilizarlos en las evaluaciones para obtener el fitness.

Luego de esto, se solucionó parcialmente el problema. Pero obtenía valores negativos en el fitness, lo cual no es coherente, y estuve en la ESPOL hasta las 19h00, sin lograr solucionarlo.

2010-04-05 Optimización Robusta(2)

Posted By dmmedina

Date: abril 7th, 2010

Category: Optimo-Robusto

Luego de ejecutar la primera versión del optimizador robusto usando N=100 obtuvimos resultados muy similares, casi iguales al anterior.

La optimización solo es útil para el cuadal con el que fue calculado.

Por tal razón vamos a cambiar un poco la forma de obtener la Política de Despacho cuasi Óptima y Robusta a la vez.

  1. Tomar una muestra de tamaño N (series de caudales)
  2. Calculamos la media de todas estas muestras (da como resultado una sola serie de caudales U)
  3. Con  U optimizamos y obtenemos una política de despacho óptima (P).
  4. Usando P como base vamos usar los Algoritmos Genéticos para buscar nuevas políticas de despacho.
  5. Hasta encontrar una política de despacho que solo viole el 10% de las restricciones al evaluarla en las N muestras (este resultado lo encontraremos usando los N niveles del embalse, que las llamaremos Partículas Analíticas).
  6. Si hasta un M número de generaciones no se ha alcanzado el objetivo, repetimos desde el paso (1).



6 series de caudales escogidas al azar

2010-03-30 Optimización Robusta

Posted By dmmedina

Date: marzo 30th, 2010

Category: G.A., Simulación

Para obtener la política de turbinamiento óptima y robusta a la vez, vamos a hacer lo siguiente:

  1. Tomar aleatoriamente N series de tiempo de los caudales, sacados de las 10.000 muestras que están generadas
  2. Obtener las N políticas de turbinamiento óptimas para cada una de las series de caudales.
  3. Realizar M simulaciones con cada N política encontrada
  4. Determinar la Probabilidad de la  robustez de cada política de  turbinamiento N ,  (veces que no viola restricciones / M)

En nuestros primeros experimentos determinamos que cada política N, solo satisface a la serie de caudal que representa y para todas las demás series viola alrededor de 50 veces la restricción.

Es decir, si N=10 y M=10. La probabilidad de robustez es de 10%.

Y si N=10 y M=10000. La probabilidad de robustez es de 0.01%.

Al realizar las optimizaciones iterativas fue notorio un ERROR que teníamos en la implementación (una lectura repetitiva del archivo de los caudales en cada generación) al corregirlo, los tiempos de ejecución quedaron 20 a 30 minutos

2010-03-29 Indicadores usando Optimización Final

Posted By dmmedina

Date: marzo 29th, 2010

Category: Indicadores

Usando las modificaciones hechas en el optimizador, hemos obtenido los siguientes resultados:

  • Para el periodo de Control: en 3º 7' 59", un costo de 104'851.126,543
  • Para el periodo Futuro: en 3º 15' 25", un costo de 84'656.048,73

En ambos casos, ya habían convergido a estas soluciones en el generación 5.000. Además estuvieron ejecutándose de forma paralela. Con estas optimizaciones procederemos a obtener los indicadores para cada periodo.







Ir a la barra de herramientas