{"id":729,"date":"2010-03-26T12:47:33","date_gmt":"2010-03-26T17:47:33","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/duval\/?p=729"},"modified":"2010-03-26T15:49:20","modified_gmt":"2010-03-26T20:49:20","slug":"2010-03-26-mejorando-el-optimizador","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/duval\/2010\/03\/26\/2010-03-26-mejorando-el-optimizador\/","title":{"rendered":"2010-03-26 Mejorando el optimizador"},"content":{"rendered":"<p>Como ya lo hab\u00edamos indicado, estamos optimizando las pol\u00edticas de Turbinamiento para ambos periodos, usando las medias anuales de las 10.000 muestras de caudales generadas con el ANFIS.<br \/>\nPero esto ya lleva 4 d\u00edas ejecut\u00e1ndose (el objetivo era alcanzar el 1'000.000 de generaciones) pero a duras penas vamos por la generaci\u00f3n 300.000 en ambos casos.<br \/>\nPara el periodo de Control tiene como costo actual 127'729.381,110<br \/>\nY en el periodo Futuro esta en el costo de 97'506.263,775<br \/>\nAmbos disminuyendo de apoco.<\/p>\n<p>La metodolog\u00eda actual de nuestro optimizador es: eliminar los infactibles (violan alguna restricci\u00f3n del sistema) y cuando se generan nuevos individuos (aleat\u00f3riamente) alg\u00fan turbinamiento hacer bajar el nivel del Embalse por debajo del L\u00edmite permitido a dicha pol\u00edtica se le asigna el valor de ( 0 ).<\/p>\n<p>Los cambios que estamos haciendo son:<\/p>\n<ol>\n<li>Mantener los infactibles y agregar una funci\u00f3n de penalizaci\u00f3n.<\/li>\n<li>Probamos que al\u00a0 generar nuevos individuos no cambiarles nada si bajan del nivel m\u00ednimo del embalse (obtuvimos p\u00e9simos resultados porque todos los individuos violaban restricciones)<\/li>\n<li>Decid\u00ed no asignarle ( 0 ) sino ir reduciendo progresivamente a la mitad (Qt\/2) la pol\u00edtica que viola el m\u00ednimo del embalse 10 veces a lo mucho (de esta manera obtuvimos muy buenos resultados desde el principio, ya que los valores en costo fueron muy buenos, pero la variaci\u00f3n del costo de operaci\u00f3n fue muy lento -casi nada- adem\u00e1s alcanzamos 1.000 generaciones en 15 minutos)<\/li>\n<li>Agregamos a lo anterior, generar nuevamente al peor individuo de cada generaci\u00f3n (dio un buen resultado, hubo mejoras del fitness m\u00e1s seguidas)<\/li>\n<\/ol>\n<p>Dejamos ejecutando el optimizador para el periodo de control durante 10.000 generaciones para observar los resultados. Hasta el momento parase que alcanza 1.000 generaciones cada 1o \u00f3 12 minutos. Lo sabremos con m\u00e1s certeza al terminar la ejecuci\u00f3n (estamos tomando el tiempo de ejecuci\u00f3n).<\/p>\n<p>Al aplicar estos cambios pudimos observar que la soluci\u00f3n (pol\u00edtica de turbinamiento) convergi\u00f3 mucho m\u00e1s r\u00e1pido, por lo que ya no es necesario ejecutar nuestro optimizador con tantas generaciones. Con esto en mente hemos decidido detener las ejecuciones del 1'000.000 de generaciones, para ejecutar como m\u00e1ximo 10.000, aprovechando as\u00ed los cambios.<\/p>\n<p>Al detenerlos los valores quedaron as\u00ed: <strong>CONTROL $127'729.381,110 y FUTURO 97'341.773,350<\/strong> en 320.000 generaciones aproximadamente, en algo m\u00e1s de 4 d\u00edas.<\/p>\n<p>Para probar con las variantes realizadas, ejecutamos la optimizaci\u00f3n del periodo de CONTROL teniendo como resultado <strong>$109'887.267,178<\/strong> solo en 10.000 generaciones, pero por la generaci\u00f3n 2.000 ya hab\u00eda convergido. Y se demor\u00f3 <strong>2 horas 57 minutos y 48 segundos<\/strong>, aproximadamente 1.06 segundos por generaci\u00f3n<\/p>\n<p>La principal raz\u00f3n de esto eran los Qt que estaban siendo asignados ( 0 ). Pero pensamos mejorarlo a\u00fan m\u00e1s cambiando el m\u00e9todo de ordenamiento de <a href=\"http:\/\/es.wikipedia.org\/wiki\/Ordenamiento_por_selecci%C3%B3n\">SelectionSort<\/a> por <a href=\"http:\/\/es.wikipedia.org\/wiki\/Quicksort\">QuickSort<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como ya lo hab\u00edamos indicado, estamos optimizando las pol\u00edticas de Turbinamiento para ambos periodos, usando las medias anuales de las 10.000 muestras de caudales generadas con el ANFIS. Pero esto ya lleva 4 d\u00edas ejecut\u00e1ndose (el objetivo era alcanzar el 1'000.000 de generaciones) pero a duras penas vamos por la generaci\u00f3n 300.000 en ambos casos. [&hellip;]<\/p>\n","protected":false},"author":2965,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15371,15369],"tags":[],"class_list":["post-729","post","type-post","status-publish","format-standard","hentry","category-ee","category-ga"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/posts\/729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/users\/2965"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/comments?post=729"}],"version-history":[{"count":16,"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/posts\/729\/revisions"}],"predecessor-version":[{"id":731,"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/posts\/729\/revisions\/731"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/media?parent=729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/categories?post=729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/duval\/wp-json\/wp\/v2\/tags?post=729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}