Archive for abril, 2010

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

Ir a la barra de herramientas