Archive for abril, 2010

2010-04-30 Idea para encontrar un Robusto más óptimo

Posted By dmmedina

Date: abril 30th, 2010

Category: Optimo-Robusto

Aunque el ensayo que realizamos ayer nos dio un buen resultado, podría ser mejor.

Lo que se me ocurre es hacer es que una vez que se encuentre un robusto (lo que normalmente implica que hay mas de uno) tomar como mejor poblador al de menor costo, y hacer esto en cada generación, de esta manera nos aseguramos de que siempre encontraremos un robusto y también óptimo.

Algo que también resultaría bueno sería mantener el porcentaje de variación, una vez que encontramos un robusto.

Ambos cambios espero probarlos hoy.

En la 1ra iteracion (búsqueda en la 1ra muestra) normalmente el % de fallas inicia en 100% y llega hasta un 20%.

Estamos utilizando como Política de búsqueda base la misma del ensayo anterior.




No fue reemplazada por tener mayor % de violaciones

Cambio la Robusta porque, mejoró en % de variación y Costo

Cambio la Robusta porque, mejoró en % de variación y Costo

Mantuvo la robusta

Cambio la Robusta porque, subió el % de variación, pero mejoró el Costo

Mantuvo la robusta

Mantuvo la robusta

Y con estos resultados podemos notar que estos 2 últimos complementos al método de búsqueda, esta dando muy buenos resultados. Aunque hay un pequeño error que casi no se nota pero al agregar la búsqueda del menos costoso, estaba tomando en cuanta a todos los individuos y no tan solo a los robustos, pero ya lo corregimos y tendremos los resultados el Lunes.

Pero al parecer voy a poder presentar un gráfico con resultados parciales de lo obtenido.
En el se ve como se avanza en la búsqueda de una solución Robusta y a la vez menos costosa.

Con este resultado podemos concluir que hemos alcanzado nuestro objetivo, encontrar una política Robusta y cuasi Óptima.

2010-04-29 Ensayo haciendo variable el % de Variación

Posted By dmmedina

Date: abril 29th, 2010

Category: Optimo-Robusto

Lo que vamos a hacer es variarlo de la siguiente manera, % Variación = (70/i); donde i=1,...,10 y representa el número de muestra que esta siendo evaluada. Es decir para la primera muestras sera 70% de variación, en la segunda 35%, en la tercera 23.3%, etc.

En cuanto a la búsqueda del robusto quedaría así:

  1. Tomamos como política de búsqueda base al óptimo de la 1ra muestra.
  2. Se ejecutan 5.000 generaciones, haciendo variaciones de (70/i)% a la política Base, minimizando el % de fallos.
  3. Al terminar la ejecución anterior, se reemplazará la base de búsqueda usando los siguientes criterios

Presentaremos a continuación la secuencia de los resultados que vamos a obtener.




En este punto ya encontró una robusta y no la cambiará hasta encontrar otra pero de menor costo.

No reemplaza la base de búsqueda porque ya es robusta y no ha encontrado otra con menor costo


De aquí en adelante ya no encontraba más políticas robustas, al parecer los variaciones muy pequeñas en el % de variación no le son muy favorables.

Aunque el resultado fue mejor que los obtenidos anteriormente, no esta tomando en cuenta el costo mientras busca sino al final de cada muestra. Si hicieramos así tendríamos mejores resultados, pero está un poco difícil hacerlo, hay que pensarlo muy bien.

2010-04-28 Pruebas variando tamaño de las muestras (M)

Posted By dmmedina

Date: abril 28th, 2010

Category: Optimo-Robusto

Tal como vimos en último ensayo realizado, hemos encontrado una Política Robusta aunque no tan Óptima utilizando 5 muestras (M=5) de 30 series c/u (N=30), y que al evaluar el resultado usando las 10.000 series de caudales, obtuvimos resultados muy similares a los ensayos con N=100.

A pesar de esto vamos a realizar unos cuantos ensayos con M=10 y variando N a: 50, 100, 500, 1000 y 5000; para luego comparar los resultados que obtendremos.

Pero antes modificaremos un poco el algoritmo de búsqueda de la Política Robusta para que haga lo siguiente:

  • Detenga la búsqueda con una muestra una vez que haya encontrado una robusta(dentro del rango aceptable, menor 10% de violaciones)
  • Reemplazar a la mejor Robusta solo si el costo de operación es menor, no solo porque tenga un menor % de violaciones.
  • Aunque creo que deberíamos buscar la manera de incluir el costo en el proceso de selección dentro del algoritmo genético que busca a la política robusta

El primer punto no resulto muy bien porque, una vez que alguna política es robusta y se la toma como base de búsqueda, en las primeras 10 generaciones de la siguiente búsqueda ya encuentra otra que también es robusto. Lo cual no ayuda mucho.

El segundo cambio tampoco aportó mucho ya que el objetivo del algoritmo que busca el robusto es minimizar el % de violaciones por consiguiente siempre encuentra una mejor robusta pero que es de mayor costo que la que se esté utilizando como base de búsqueda. Por tal razón siempre se queda con la primer robusta que encuentra.

Los ensayos realizados variando el parámetro N obtuvimos en cada uno de ellos (realizamos solo hasta 500, porque hubo desbordamiento en 1.000) resultados muy similares al arrojado por el M=5 y N=30.

Debido a las muestras escogidas aleatoriamente presentan en promedio el mismo comportamiento y las evaluaciones de una política de turbinameinto resultan en valores muy próximos, una modificación que resultaría muy efectiva, sería evaluar la Mejor Robusta obtenida con la misma Muestra y definir buenos criterios para cambiar la Política que se esté tomando como Base de la Búsqueda.

Lo que no hemos probado es hacer que el % de variación vaya disminuyendo conforme se avanza en cada muestra, porque hay que definir la cantidad a disminuir.

Ayer estuve toda la mañana y tarde haciendo lo del trámite para que nos suban al portal de compras públicas, pero no se lo pudo completar (faltan un par de firmas). Además es indispensable el obtener nuestros RUPs, lo cual es bastante rápido. La ing. Teresa Meza me dijo que para ser colocado mediante régimen especial hay que llevar una carta de justificando de que somos las personas: idóneas y más capacitadas  para realizar este trabajo. Es un poco irritante que ya para terminar con el proyecto tengamos que hacer todo esto.
Hasta hoy 28 de Abril de 2010 a las 14:20 la Ing. Meza no ha podido firmar la solicitud dirigida a Financiero para tener por escrito que existe disponibilidad presupuestaria para pagarnos.

Por este tipo de retrasos es que pienso que la ESPOL se debería hacer una Base de Conocimientos de libre acceso a través de internet, donde se detalle minuciosamente los pasos a seguir para cada trámite (por muy pequeño que sea) en cada departamento. Lo más probable es que al desarrollarlo, se optimicé significativamente cada proceso.

Se acabó el día y no fue firmada la solicitud, pero me aseguraron que para mañana a primera hora ya estaría lista. Estaba preocupado, pero ya no porque recordé Dios está en control, ya que he echado mis cargas sobre Él.

2010-04-26 Correción de algoritmo para Robusto

Posted By dmmedina

Date: abril 26th, 2010

Category: Optimo-Robusto

Como ya hemos encontrado una política Robusta con nuestro algoritmo, nos a tranquilizado mucho. Solo tenemos que corregir los picos máximos que se salen del rango máximo permitido para el turbinamiento.
Ya que no funcionó muy agregarlo como un valor en el fitness, procederemos a modificar los cromosomas que violen esta restricción, con este cambio los valores del fitness regresan a ser los mismos anteriores, 100% como máximo.

Algo que falto de presentar en la última prueba fueron los caudales promedios de las 5 Muestras de tamaño 30.

El comportamiento es el mismo que el de las muestra de 100 series c/u y si observamos el costo de las políticas óptima notaremos que también son muy similares a las obtenidas anteriormente. Lo que nos hace concluir parcialmente que el tamaño de la muestra no afecta en el momento de encontrar la Política Óptima, pero posiblemente si influya al encontrar la Robusta porque mientras con más series sea evaluada una Política más posibilidades tiene de convertirse en una Robusta.

Como ya lo habíamos dicho, la metodología de basarse en las políticas Óptimas de cada muestra no nos permite encontrar un Robusto. Vamos a utilizar como base el mejor Robusto que vayamos encontrando en cada muestra.
Haremos 2 experimentos: con 5 muestras de tamaño 30 y con 5 muestras de tamaño 100.

Lo primero que notamos es que ya fueron eliminadas todas las violaciones en cuanto al MAX de Turbinamiento.

El porcentaje de violaciones de las restricciones esta descrito en la leyenda del Gráfico.

La 2da y 4ta iteración no están porque se obtuvieron los mismos valores que en la 3ra y 5ta respectivamente. Y en las últimas muestras alcanzó un 0% de fallas o 100% de aciertos en la muestra de 30 series.

Al evaluar la Política Robusta en las 10.000 series obtuvimos, un 99% de aciertos lo que significa que es una política Robusta, pero no muy Óptima.


Podemos notar que el costo siempre aumenta cada vez que se encuentra una mejor política.

Por tal razón nuestro próximo objetivo es encontrar una política robusta pero de menor costo.

Les recuerdo que hay sacar el RUP para poder cobrar en esta parte final del proyecto!!

2010-04-23 Buscando nuevos resultados

Posted By dmmedina

Date: abril 23rd, 2010

Category: Optimo-Robusto

Luego de añadir la restricción del máximo de Turbinamiento en el momento de buscar la política robusta. Vamos a realizar un par de ejecuciones usando la metodología anterior para observar los resultados.

Primero probaremos usando un % de variación del 70%

Llego hasta a un 16% de violaciones e inicio desde 101% porque la violación del turbinamiento fue añadido al fitnees como un porcentaje aparte, es decir, pueden haber individuos que lleguen a tener hasta 200% de fitness.

Aunque aparentemente los picos hayan desaparecieron aún tenemos una política que sobrepasa el máximo permitido, por lo que debemos analizar un poco más de como superar este pequeño inconveniente. Porque cabe la posibilidad de que estemos dejando pasar mejores individuos.

Luego usando 5 Muestras de 30 series usando como base de búsqueda la Política Óptima y con el 70% de variación.

Podemos notar que alcanza mejores niveles de aciertos, pero aumenta el costo.

En la gráfica podemos notar que 4 de las 5 series tienen picos que sobrepasan el máximo de turbinamiento. Pero no son picos tan altos como la anterior política optima robusta.

2010-04-19 Resultados satisfactorios

Posted By dmmedina

Date: abril 19th, 2010

Category: Optimo-Robusto

Como lo indicamos el viernes anterior este fue el resultado obtenido con los cambios realizados.

Al probarla con las 10.000 serie de caudales obtuvimos solo 4% de violaciones, es decir, 96% de satisfacción, y con un máximo de 5 violaciones en cada una de las series que no fueron satisfechas.

Solo quedo un detalle que se nos pasó por alto, los límites de turbinación, el máximo definido esta en 200 m^3/s. Pero ya está siendo solucionado.

2010-04-16 Verificación satisfactoria de algoritmos

Posted By dmmedina

Date: abril 16th, 2010

Category: Optimo-Robusto

Observando los últimos dos resultados en cuanto al % de violaciones, se llegó a la conclusión de que existía un error recurrente. Este afectaba siempre a la primera Muestra y a cualquier otra que se iniciara con las mismas condiciones.

Al parecer el error era generado al momento de leer los archivos, porque el procedimiento es el siguiente:

  • Hay 3 módulos: Generador aleatorio de las muestras; Generador de Política Optima usando la media de las muestras anteriores; y Buscador de Política Robusta usando la óptima y las muestras de caudales.
  • El 3ro espera los resultados del 2do y el 2do espera los resultados del 1ro.
  • En la primera iteración el 2do comenzaba a leer datos que todavía no eran completamente fijados en memoria y lo mismo hacía el 3ro.

Lo solucionamos utilizando la función Sleep mientras se esperaba para leer el archivo del módulo anterior.

Realizamos una prueba con M=5 y N=100 y este fue el resultado.

Como podemos notar, ya no tiene el error anterior, además los resultados son como los esperábamos (del 30 al 50% de violaciones).

Con esto resuelto, procedimos a probar uno de las políticas cuasi robustas obtenidas (la 1ra, con 42% de violaciones)en Matlab, y como debería ser, dieron los mismos porcentajes de fallos en su muestra correspondiente.

Luego la probamos con todas las 10.000 series y obtuvimos 44% de violaciones, lo cual es muy satisfactorio porque quiere decir que con esta política satisfacemos el 56% de las 10.000 series de caudales. ¡Lo cual nos trae mucha tranquilidad y alegría!

Con esto en mente probamos la mejor de las 5 políticas encontradas (35 % de violaciones en su muestra) y nos dio 42% de violaciones en las 10.000 series, lo que representa 58% de satisfacción. Otro dato significativo es que 23 fue el número máximo de violaciones que provocó en las no pudo satisfacer y en general fueron menores de 10.

Y para hacer una última verificación, vamos a aumentar el % de variación del 30 al 50% y realizar una ejecución con M=5 y N=100, esto tomara aproximadamente 1h 20m.

Lo obtenido de esta ejecución es:

La mejor tuvo un 19% de violaciones y al probarla en la 10.000 muestras obtuvo 31% de violaciones, es decir, 69% de satisfacción y con 17 violaciones como máximo. Puede mejorar!

Lo siguiente en hacer es una variación en el módulo de búsqueda del robusto, la base actual para la búsqueda es la Política Óptima, lo que deseamos hacer ir almacenando la mejor Política Robusta y si esta es mejor que la Óptima de la Muestra actual, usarla como base para la búsqueda.

Bueno, los resultados obtenidos con este cambio no cambiaron casi nada, no porque no fuera efectivo si no que hay dos condiciones que considerar.

  1. Los Óptimos son todos muy parecidos y siempre (hasta el momento) son menores que la Robusta. ver las gráficas.
  2. Solo estábamos guardando como Política Robusta aquella que estuviera dentro del rango aceptable (10%), y hasta el momento no hemos obtenido ninguna.

Por estas razones estoy proponiendo lo siguiente:

  • Seguir generando un número M de muestras, cada una de N series.
  • Calcular una y solo una política óptima, usando la media de una de las muestras. (prácticamente todas las óptimas son iguales en cuanto a su costo)
  • Usar esa política como base inicial para buscar una óptima y para las siguientes muestras usar la mejor Robusta que vayamos encontrando.

Probando lo último esperamos tener mejores resultados. En un principio vamos a considerar como mejor a aquel que tenga menor % de violaciones, en un siguiente experimento lo haremos tomando en cuenta el costo de operación que generan la políticas, luego definiremos como usar las dos al mismo tiempo.

No vamos a colocar ningún gráfico como los anteriores pero, describiré el comportamiento.

  • Con la Óptima de la 1ra Muestra la búsqueda comenzó con 100% de violaciones y finalizó en 17%.
  • En la 2da muestra, tomando como base la Robusta anterior, inició con 29% de violaciones, en la generación 1.700 estaba en el 13% -parece no va a mejorar- y finalizó con 13%.
  • En la 3ra muestra, tomando como base la Robusta anterior, inició con 18% de violaciones, en la generación 500 estaba en el 12%, en la generación 800 estaba en el 8% -lo más probable es que no cambie- y terminó en 8%.
  • En la 4ta muestra, tomando como base la Robusta anterior, inició con 4% de violaciones -lo cual es excelente-, aunque puede significar simplemente que la misma política satisface mejor a la 4ta que a la 3ra, es muy probable que no mejore pero con esto hemos superado las expectativas que teníamos. Terminó con 4%.
  • En la 5ta muestra, tomando como base la Robusta anterior, inició con 2% de violaciones lo cual es wahu. Bueno hasta el lunes

Todo esto fue trabajado con M = 5, N = 100,  un 50% de variación y con 5.000 generaciones para la búsqueda del Robusto. Lo más probable es que no podamos presentar la Política Óptima casi robusta hoy por el tiempo (terminará la ejecución a las 16h30 y sola hay carros hasta las 16h00), pero el lunes estará a primera hora.

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.

Ir a la barra de herramientas