Anda di halaman 1dari 178

UNIVERSIDAD MAYOR, REAL Y PONTIFICIA DE SAN

FRANCISCO XAVIER DE CHUQUISACA

FACULTAD DE TECNOLOGA

CARRERA DE INGENIERA ELCTRICA

PROYECTO DE GRADO

OPTIMIZACIN DEL DESPACHO ECONMICO DE CARGA


EMPLEANDO ALGORITMOS GENTICOS

Proyecto de Grado para Optar el Ttulo de Licenciado en Ingeniera Elctrica

ALEX MAURICIO HEREDIA CAMACHO

Sucre Bolivia
2012
AGRADECIMIENTOS

A Dios, por darme las fuerzas necesarias en los momentos en que


ms las necesit y por darme salud y fortaleza para llegar a este
momento tan importante en mi vida.

A mi familia, por su cario, comprensin, paciencia y apoyo sin


condiciones ni medidas, quienes depositaron su confianza en m y no
perdieron las esperanzas.

A la Universidad Mayor Real y Pontificia de San Francisco


Xavier de Chuquisaca y a la Carrera de Ingeniera Elctrica, a
quien debo mi formacin profesional; y a los docentes por la
sabidura de sus recomendaciones y todo el apoyo ofrecido.

Al Comit Nacional de Despacho de Carga (CNDC), por toda la


informacin proporcionada.

Al Ingeniero Armengol Blanco Benito, quien me brind su apoyo


incondicional con orientacin e informacin imprescindible para
realizar el proyecto.

A mi tutor el Ingeniero David Prraga Kanaudt, quien me orient


y aconsejo durante el tiempo que dur este proyecto.

Al Director de Carrera Ingeniero Marco Antonio Robles, por


todo el apoyo y ayuda que me brind.

i
DEDICATORIA

A mi padre Fernando, por sus consejos y motivarme para que siga


siempre adelante guindome por el camino del bien.

A mi madre Gloria, quien me dio todo su amor y cario


incondicional dndome fuerzas en todo momento.

A mis hermanos Fernando y Vivian, por sus comentarios,


sugerencias, opiniones y los momentos vividos an en la distancia.

A mi abuelita Bertha, quien ahora est en la gloria del cielo, por


rezar y encomendarme siempre con Dios para que saliera adelante.

ii
PRLOGO

En este trabajo se presenta una nueva aproximacin gentica que es la aplicacin de la


tcnica de optimizacin de Algoritmos Genticos a la solucin del problema de Despacho
Econmico en las siguientes circunstancias; sin prdidas, con prdidas y considerando
restricciones de lmites de potencia, para sistemas de potencia pequeos (sistema con
pocos generadores a despachar) y sistemas de gran escala. Se comparan resultados del
Algoritmo Gentico con soluciones obtenidas a partir de mtodos convencionales de
solucin.

Se analiza el comportamiento del Algoritmo Gentico y el efecto de sus parmetros


bsicos. En particular se evala el impacto del tamao de la poblacin, nmero de
generaciones, tipo de cruce, elitismo, nmero de descendientes, probabilidad de cruce y
mutacin.

En la aplicacin de la Tcnica de Algoritmos Genticos se prueba la efectividad de


distintas funciones de evaluacin propuestas as como de los mtodos de codificacin
utilizados. Se muestra una nueva tcnica de codificacin en la que el cromosoma contiene
slo una codificacin del sistema normalizado del costo incremental. Por consiguiente, el
nmero total de bits del cromosoma es completamente independiente del nmero de
unidades generadoras. Se presta especial atencin al proceso de convergencia de los
problemas resueltos y la exactitud de las soluciones encontradas.

Se muestra el fundamento matemtico de los Algoritmos Genticos y se resuelven


problemas mostrando paso a paso el funcionamiento de dicha tcnica.

iii
La caracterstica ms sobresaliente hace que la aproximacin gentica propuesta, sea ms
atractiva en sistemas grandes y complejos que otras metodologas no pueden lograr. Los
resultados numricos en un sistema real muestran que la aproximacin propuesta es ms
rpida y ms robusta que el mtodo iterativo lambda () que es utilizado en muchos
sistemas de gran potencia.

iv
INDICE GENERAL

ASPECTOS PRELIMINARES .......................................................................................................... 1

INTRODUCCIN. ........................................................................................................................ 1

SITUACIN PROBLEMICA. ...................................................................................................... 3

PLANTEAMIENTO DEL PROBLEMA. ..................................................................................... 4

JUSTIFICACIN. ......................................................................................................................... 4

OBJETIVOS. ................................................................................................................................. 5
Objetivo general. ....................................................................................................................... 5
Objetivos especficos. ................................................................................................................ 5

TIPOS DE INVESTIGACIN. ..................................................................................................... 6

CAPTULO I - MARCO TERICO.......................................................................................... 7

1.1 DESPACHO ECONMICO DE CARGA. .......................................................................... 7


1.1.1 Introduccin.................................................................................................................. 7
1.1.2 Despacho econmico de carga. .................................................................................... 9
1.1.3 Curvas caractersticas de unidades generadoras. ........................................................ 11
1.1.3.1 Unidades termoelctricas. .................................................................................. 11
1.1.4 Despacho econmico de unidades trmicas. .............................................................. 13
1.1.4.1 Restricciones en la operacin de unidades termoelctricas. .............................. 13
1.1.5 Despacho econmico sin considerar prdidas de transmisin. ................................... 14
1.1.6 Despacho econmico considerando lmites de potencia. ........................................... 19
1.1.7 Despacho econmico considerando prdidas de transmisin. .................................... 21
1.1.8 Prdidas en la transmisin. ......................................................................................... 23
1.1.9 Factores de penalizacin............................................................................................. 24
1.1.10 Mtodos de optimizacin. ...................................................................................... 26
1.1.10.1 Mtodo iterativo lambda (). ............................................................................. 26
1.1.11 Caractersticas de Centrales Trmicas.................................................................... 30

v
1.1.11.1 Centrales a Vapor. ............................................................................................. 30
1.1.11.2 Turbina de Gas de Ciclo Simple. ....................................................................... 31
1.1.11.3 Caractersticas de entrada salida de Plantas Trmicas. ................................... 32
1.1.11.3.1 Costo Incremental. ....................................................................................... 37
1.1.11.3.2 Costo Marginal. ............................................................................................ 37

1.2 ALGORITMOS GENTICOS. .......................................................................................... 39


1.2.1 Introduccin................................................................................................................ 39
1.2.2 Codificacin de variables y espacios de bsqueda. .................................................... 41
1.2.3 Algoritmo Gentico Simple. ....................................................................................... 42
1.2.3.1 Funcin Evaluacin Fitness. ....................................................................... 48
1.2.3.2 Operadores genticos. ........................................................................................ 51
1.2.3.2.1 Operador de Reproduccin Seleccin. ....................................................... 51
1.2.3.2.2 Operador de Cruce......................................................................................... 53
1.2.3.2.3 Mutacin........................................................................................................ 58
1.2.3.3 Parmetros bsicos de los algoritmos genticos. ............................................... 59
1.2.3.3.1 Tamao de la poblacin................................................................................. 60
1.2.3.3.2 Nmero de generaciones. .............................................................................. 60
1.2.3.3.3 Probabilidad de cruce y mutacin. ................................................................ 61
1.2.3.3.4 Tipo de cruce. ................................................................................................ 61
1.2.3.3.5 Intervalo de aproximacin. ............................................................................ 62
1.2.3.3.6 Nmero de descendientes por cruce. ............................................................. 62
1.2.3.4 Tcnicas para mejorar el desempeo de los algoritmos genticos..................... 62
1.2.3.4.1 Elitismo. ........................................................................................................ 63
1.2.3.4.2 Factores de penalizacin................................................................................ 63
1.2.3.4.3 Factores de prioridad. .................................................................................... 64
1.2.3.4.4 Ciclo de un algoritmo gentico con elitismo, factores de prioridad y factores
de participacin. .............................................................................................................. 64

1.3 SISTEMA INTERCONECTADO NACIONAL (SIN) [17] ............................................... 66


1.3.1 Introduccin [17]. ....................................................................................................... 66
1.3.2 Caractersticas del Sistema Interconectado Nacional (SIN) [16]. .............................. 66
1.3.3 Costos Marginales de Generacin [16]. ..................................................................... 70

1.4 LENGUAJE DE PROGRAMACIN. ................................................................................ 72


1.4.1 Java. ............................................................................................................................ 72
1.4.1.1 Caractersticas del lenguaje. .............................................................................. 73
1.4.2 Algoritmos genticos en Java. .................................................................................... 74

vi
CAPTULO II - INGENIERA DEL PROYECTO ................................................................. 75

2.1 ALGORITMO GENTICO PARA EL PROBLEMA DE DESPACHO ECONMICO. .... 75


2.1.1 Introduccin................................................................................................................ 75
2.1.2 Codificacin. .............................................................................................................. 76
2.1.2.1 Codificacin de costos incrementales. ............................................................... 76
2.1.3 Seleccin de parmetros. ............................................................................................ 81
2.1.4 Diagrama de flujo del proceso de optimizacin. ........................................................ 81

2.2 SIMULACIN MANUAL DE UN ALGORITMO GENTICO. ................................. 83


2.2.1 Parmetros bsicos. .................................................................................................... 84
2.2.2 Poblacin inicial. ........................................................................................................ 85
2.2.3 Reproduccin.............................................................................................................. 85
2.2.4 Cruce. ......................................................................................................................... 86
2.2.5 Mutacin. .................................................................................................................... 86
2.2.6 Resultados. ................................................................................................................. 87

CAPTULO III - ANLISIS ECONMICO FINANCIERO .............................................. 97

3.1 INTRODUCCIN. ............................................................................................................. 97

3.2 ANLISIS DE LOS INGRESOS. ...................................................................................... 97

3.3 INVERSIN. ...................................................................................................................... 98


3.3.1 Estado de resultados. .................................................................................................. 98
3.3.1.1 Costo de Inversin. ............................................................................................ 99

3.4 VIABILIDAD ECONMICO FINANCIERA. ............................................................... 99


3.4.1 Valor Actual Neto (V.A.N). ....................................................................................... 99

CONCLUSIONES Y RECOMENDACIONES ............................................................................. 103

CONCLUSIONES ..................................................................................................................... 103

RECOMENDACIONES ............................................................................................................ 104

BIBLIOGRAFA............................................................................................................................ 105

ANEXOS........................................................................................................................................ 108

ANEXOS A (Costos de generacin trmica).......................................................................... 109

ANEXOS B (Interpretacin de la tabla de Costos de generacin trmica) ............................ 123

ANEXOS C (Lenguaje de programacin) .............................................................................. 143

vii
INDICE DE FIGURAS

Figura 1.1 Curva caracterstica de entrada salida de unidades trmicas ......................... 12


Figura 1.2 Curva caracterstica de costo incremental de combustible ............................... 13
Figura 1.3 N unidades trmicas comprometidas a servir una carga PD ............................. 15
Figura 1.4 Interpretacin grfica de Lambda () ............................................................... 19
Figura 1.5 Interpretacin grfica de Lambda considerando limites de potencia ................ 20
Figura 1.6 N unidades generadoras conectadas para satisfacer la Demanda de Potencia
considerando prdidas en el sistema .................................................................................... 21
Figura 1.7 Costos marginales con factores de penalizacin ............................................... 25
Figura 1.8 Proyeccin Lambda, ...................................................................................... 27
Figura 1.9 Diagrama de flujo, mtodo iterativo proyeccin Lambda ................................ 29
Figura 1.10 Esquema tpico de una central a vapor............................................................ 30
Figura 1.11 Esquema tpico de una central a turbina a gas ................................................ 31
Figura 1.12 Caractersticas de operacin de unidades trmicas multivalvulares a vapor .. 32
Figura 1.13 Caracterstica tpica de una central trmica a vapor ....................................... 33
Figura 1.14 Caractersticas Entrada Salida tpica de una planta trmica ........................ 34
Figura 1.15 Costo de generacin por hora de una planta trmica ...................................... 35
Figura 1.16 Caracterstica versus potencia generada ................................................... 36
Figura 1.17 Gasto incremental de calor versus potencia generada de una planta trmica . 36
Figura 1.18 Caracterstica costo incremental de generacin tpica de una planta trmica . 37
Figura 1.19 Costo Marginal................................................................................................ 38
Figura 1.20 Individuo Gentico Binario ............................................................................. 42
Figura 1.21 Cruce de 1 punto ............................................................................................. 55
Figura 1.22 Cruce de 2 puntos............................................................................................ 56
Figura 1.23 Cruce Uniforme............................................................................................... 57
Figura 1.24 Algoritmo gentico con elitismo, factores de prioridad y penalizacin ......... 65
Figura 1.25 Compras de Energa en el MEM (GWh) 2010 ............................................ 67

viii
Figura 1.26 Capacidad de Generacin por tipo de Central (MW) AO 2010 ................ 68
Figura 1.27 Sistema Interconectado de Bolivia .................................................................. 70
Figura 2.1 Diagrama de flujo general del proceso de optimizacin para el despacho
econmico ............................................................................................................................ 81
Figura 2.2 Proceso de evaluacin detallado ....................................................................... 82

ix
INDICE DE TABLAS

Tabla 1.1 Codificacin de los parmetros de un problema. ............................................... 42


Tabla 1.2 Consumo de Energa Elctrica (GWh). .............................................................. 69
Tabla 1.3 Costo Marginal de Generacin (US$/MWh) AO 2010 (Sin IVA) ............... 71
Tabla 2.1 Datos de generadores .......................................................................................... 83
Tabla 2.2 Poblacin inicial ................................................................................................. 85
Tabla 2.3 Resultados de la primera generacin .................................................................. 87
Tabla 2.4 Resultados de la segunda generacin. ................................................................ 88
Tabla 2.5 Resultados de la dcima generacin. .................................................................. 88
Tabla 2.6 Resultados de la operacin con el 5to individuo. ............................................... 89
Tabla 2.7 Solucin por un mtodo tradicional. .................................................................. 90
Tabla 2.8 Comparacin entre Algoritmos genticos y un mtodo tradicional. .................. 90
Tabla 2.9 Datos de unidades trmicas del Sistema Interconectado Nacional (SIN) .......... 91
Tabla 2.10 Primera generacin de individuos .................................................................... 92
Tabla 2.11 Generacin de individuos N 27....................................................................... 93
Tabla 2.12 Resultados de la operacin con el individuo N26. .......................................... 94
Tabla 2.13 Solucin por un mtodo tradicional (Lagrange). .............................................. 94
Tabla 2.14 Nueva solucin por el mtodo de Lagrange. .................................................... 95
Tabla 2.15 Comparacin entre Algoritmos genticos y un mtodo tradicional. ................ 95
Tabla 3.1 Ingresos por ahorro de combustible ................................................................... 98
Tabla 3.2 Detalle del costo de inversin del proyecto ........................................................ 99
Tabla 3.4 Clculo del VAN .............................................................................................. 101
Tabla 3.5 Clculo del VAN (Considerando prdidas) ...................................................... 101

x
ASPECTOS PRELIMINARES

INTRODUCCIN.

La funcin econmica de un Sistema Elctrico de Potencia (SEP) es un tema de gran


inters para las empresas de generacin de Energa Elctrica. En particular el problema del
despacho econmico de carga consiste en programar la carga de las unidades generadoras
que se encuentran sincronizadas al sistema, para satisfacer la demanda de este a un costo
mnimo.

La operacin econmica de un sistema elctrico de potencia es muy importante para


maximizar el beneficio social neto. Por ello, para cualquier condicin de carga especfica,
el despacho econmico determina la salida de potencia de cada central generadora que
minimizar el costo total de combustible necesario para alimentar la carga del sistema
(demanda de potencia).

En el problema de optimizacin de despacho econmico, donde el principal objetivo es


programar la salida de potencia de las unidades generadoras en lnea para satisfacer la
demanda a un mnimo costo, las restricciones impuestas por los mtodos matemticos
tradicionales en las curvas de costo de las mquinas ocasionan que se obtenga solo una
aproximacin en la minimizacin. Si consideramos el costo total de generacin de un
sistema de potencia real, ser evidente que evitar cualquier restriccin en el modelado de

1
las funciones de costo se traducir en un ahorro significativo. Por esto, la operacin
econmica de un sistema elctrico de potencia es muy importante para obtener los mayores
beneficios del capital que se invierte, ya que el principal objetivo de esta operacin es
satisfacer la demanda de potencia al mnimo costo, tomando en cuenta la seguridad y
confiabilidad de la red.

Para realizar un despacho econmico, hay que considerar la creciente complejidad de los
sistemas elctricos de potencia que, cada vez, operan los equipos cerca de sus lmites de
seguridad con el fin de satisfacer la creciente demanda energtica en Bolivia. As, tenemos
que durante el ao 2011, el crecimiento de la demanda de energa elctrica en el pas es del
6,8% con respecto a la registrada en 20101. Por ende, para evitar una sobrecarga o prdida
de estabilidad en uno o ms elementos de la red de potencia, es necesario imponer una
restriccin de capacidad.

Las metodologas clsicas de solucin del problema de despacho econmico, desarrollados


y actualmente de amplio uso, se basan en el concepto de igual costo incremental y
requieren que las caractersticas de entrada salida de las unidades generadoras sean
funciones convexas.

El anlisis de los sistemas de potencia combina una gran complejidad computacional y


notables caractersticas no lineales con un alto requerimiento de condiciones operativas
ptimas. Los mtodos matemticos tradicionales utilizados para este anlisis, por un lado,
solo ofrecen una aproximacin a las soluciones reales ya que imponen restricciones en el
modelado de los elementos del sistema las cuales repercuten en la solucin final.

Una metodologa apropiada es la Programacin Dinmica, que no exige convexidad. Pero


el proceso de bsqueda de este procedimiento es exhaustivo, disminuyendo drsticamente
su eficiencia a medida que aumenta el nmero de unidades de generacin.

Dentro de las nuevas metodologas matemticas utilizadas, entre otros, Po-Hung Chen [2],
desarrolla un algoritmo gentico binario basado en lambda consiguiendo una rpida

1
Comit Nacional de Despacho de Carga (CNDC) - Memoria 2011, Resultados de Operacin del Sistema
Interconectado Nacional (SIN).

2
convergencia la cual tiene un comportamiento de crecimiento lineal con respecto al tamao
del problema. El algoritmo considera caracterstica de entrada salida de segundo grado
convexa. En este proyecto se formula un modelo matemtico para la solucin de la funcin
de costo en el problema del despacho econmico en un sistema elctrico de potencia (SEP)
mediante la aplicacin de Algoritmos Genticos (AG).

Los mtodos de optimizacin conocidos como Algoritmos Genticos (AG) mtodos de


Inteligencia Artificial, a diferencia de los mtodos matemticos estrictos, no imponen
restricciones en el modelado de los elementos implcitos en el problema [3]. Una
caracterstica importante es el poco conocimiento especfico que precisan, del problema al
que se aplican, para su funcionamiento.

La aplicacin de los algoritmos genticos ha recibido recientemente gran atencin de los


investigadores en el rea de inteligencia artificial. En la literatura actual se reconoce que
los algoritmos genticos pueden proporcionar herramientas poderosas en el campo de la
optimizacin. Se ha comprobado que estos algoritmos pueden encontrar soluciones
aproximadas a problemas de gran complejidad mediante un proceso de evolucin
simulada. Se dice evolucin simulada debido a que estos algoritmos utilizan una tcnica de
bsqueda basada en mecanismos de seleccin y gentica natural.

SITUACIN PROBLEMICA.

La creciente demanda de Energa elctrica en el pas, registrada por el Sistema de


Medicin Comercial (SMEC) en 2011, la cual alcanz un 6,8% respecto a la registrada en
2010 de acuerdo a datos del Comit Nacional de Despacho de Carga (CNDC), ha tornado
complicado la programacin de la carga en las unidades generadoras trmicas (gas y a
vapor) disponibles en el Sistema Interconectado Nacional (SIN).

La falta de una adecuada programacin del despacho econmico de carga de las unidades
generadoras, tiene como efecto inmediato el incremento en el costo total de generacin de
energa elctrica.

3
PLANTEAMIENTO DEL PROBLEMA.

La falta de optimizacin del Despacho Econmico de carga en el pas es debido a que son
utilizados algoritmos clsicos poco eficientes, as como, la inadecuada explotacin de las
unidades generadoras a gas, vapor y el uso ineficiente de los recursos energticos
primarios.

JUSTIFICACIN.

La programacin inadecuada del despacho econmico de las unidades generadoras


repercute primeramente en la economa de la empresa generadora ya que esta busca
satisfacer la demanda de carga a un costo mnimo.

En consecuencia a lo anterior, al aumentar el costo de la produccin de energa afecta


directamente al consumidor teniendo un incremento en el cargo de la factura afectando al
beneficio social.

Estos aspectos hacen importante la bsqueda de mtodos de optimizacin que proporcionen


resultados ms precisos y con mejores caractersticas de convergencia en la solucin del
problema del despacho econmico para satisfacer la demanda a un costo mnimo de
acuerdo al beneficio econmico de la empresa y as, el de los consumidores. Esto motiva el
desarrollo de trabajos que emplean nuevas tcnicas de programacin como las de
inteligencia artificial, dentro de los que se destacan los algoritmos genticos.

Los algoritmos genticos son un mtodo global y robusto de bsqueda de soluciones de


problemas, puesto que su caracterstica principal es el equilibrio alcanzado entre la
eficiencia y la eficacia para resolver diferentes y muy complejos problemas de grandes
dimensiones.

Disponer de una herramienta alterna, flexible y eficiente en la solucin del problema del
despacho econmico ante diversas condiciones del sistema de potencia, que asegure, por
comparacin con las soluciones actuales, el despacho econmico de carga al menor costo.

4
Desarrollar una herramienta de apoyo a travs de una interfaz grfica que permita seguir a
detalle el comportamiento del algoritmo gentico en cada situacin y facilitar el proceso de
anlisis del algoritmo.

Evaluar la tcnica de algoritmos genticos aplicada al problema de despacho econmico en


distintos sistemas de potencia de prueba y al Sistema Interconectado Nacional (SIN),
utilizando diferentes combinaciones de parmetros bsicos y mtodos de codificacin.

OBJETIVOS.

Objetivo general.

Optimizar el despacho econmico de carga empleando algoritmos genticos.

Objetivos especficos.

Desarrollar un algoritmo gentico binario para optimizar el despacho econmico


del sistema elctrico de potencia de Bolivia.

Satisfacer simultneamente la funcin objetivo y la funcin desviacin de la carga.

Aplicar una funcin de evaluacin, llamada funcin aptitud Fitness para realizar
la bsqueda de la mejor solucin optimizando el desempeo del algoritmo,
obteniendo el modelo de despacho econmico.

Comparar la eficiencia del algoritmo gentico realizado, con mtodos utilizados


para el clculo del despacho econmico.

Resolver el problema del despacho econmico mediante la utilizacin de un


software basado en el mtodo de Inteligencia Artificial conocido como Algoritmos
Genticos.

5
TIPOS DE INVESTIGACIN.

La investigacin en concreto comienza con la determinacin del problema a investigar, en


principio siempre marcado por la teora. Cuando se habla de tipo de investigacin se
refiere al alcance que puede tener una investigacin cientfica, y al propsito general que
persigue el investigador2.

El tipo de investigacin desarrollado en el presente proyecto es la Investigacin de


Diseo de Sistemas, donde el investigador disea un sistema y muestra que es mejor
que un diseo antiguo en algn sentido; esto incluye el diseo de algoritmos y mtodos3.

En el proyecto que se desarrolla a continuacin, se disea un algoritmo basado en


Algoritmos Genticos para Optimizar y resolver el problema de Despacho Econmico de
carga. El modelo propuesto considera la existencia de unidades generadoras trmicas,
siendo estas unidades generadoras a gas y vapor.

2
Hernndez, Angela F. de. (1991). La Investigacin-Accin Participativa y la Produccin de
Conocimientos.Revista de Faces. Universidad de Carabobo.Pag. 57.
3
Universidad Mayor de San Simn.; Herramienta para realizar una investigacin.

6
CAPTULO I

MARCO TERICO

1.1 DESPACHO ECONMICO DE CARGA.

1.1.1 Introduccin.jjlp

La Operacin Econmica Despacho Econmico de los sistemas elctricos de potencia es


muy importante para recuperar y obtener beneficios del capital que se invierte. Las tarifas
que fijan las instituciones reguladoras y la importancia de conservar el combustible
presionan a las compaas generadoras a alcanzar la mxima eficiencia posible, lo que
minimiza el costo del kWh a los consumidores y tambin el costo que representa a la
compaa esta energa. La operacin econmica que involucra la generacin de potencia y
el suministro, se puede subdividir en dos partes: una, llamada despacho econmico, que se
relaciona con el costo mnimo de produccin de potencia y otra, la de suministro con
prdidas mnimas de la potencia generada a las cargas. Para cualquier condicin de carga,
el despacho econmico determina la salida de potencia de cada central generadora que
minimizar el costo de combustible necesario.

La planificacin de corto plazo, determina la programacin horaria, econmica y confiable


de la operacin de cada unidad generadora del sistema, llamado despacho econmico. En
un sistema elctrico de potencia, el despacho econmico determina la salida de potencia

7
activa de cada planta generadora, necesaria para alimentar la carga del sistema,
minimizando el costo operativo total, respetando criterios de calidad de servicio
(frecuencia y voltaje), as como las restricciones de seguridad en la operacin (flujos en
lneas, lmites de reactivos, etc.). As el despacho econmico hace hincapi en la
coordinacin de los costos de produccin en todas las plantas generadoras que operan en el
sistema, sin olvidar las restricciones lmites de carga que impone la red de transporte
asociada al parque generador.

Una de las funciones ms importantes en la operacin de sistemas de potencia lo constituye


el control de generacin, que tiene como objetivo el ir ajustando la generacin de potencia
activa a medida que va cambiando la demanda del sistema.

Como un sistema elctrico de potencia tiene ms de una forma de cumplir su demanda, hay
ciertas combinaciones que darn un mejor rendimiento econmico o bien otras que
resultarn en mayor seguridad para el sistema, por tal motivo el planteamiento del
problema del despacho econmico es necesario definirlo en trminos de optimizacin,
seleccionando una funcin objetivo adecuada, as como una clasificacin apropiada de las
variables involucradas en el problema.

Otro aspecto que no se debe pasar por alto es que el sistema elctrico de potencia tiene
condiciones cambiantes de operacin en el tiempo, segundo a segundo, por lo que la
optimizacin depender del horizonte de tiempo que se considere.

En la operacin de un sistema elctrico es deseable minimizar el costo de generacin, lo


cual requiere informacin de las plantas generadoras que relacione el costo de la fuente de
energa primaria con la potencia neta de salida del generador. En caso de incluir un ndice
de comportamiento o funcin de costo, ms posibles restricciones de operacin, de las
plantas y de la red de transporte, se est en posibilidad de escribir un conjunto de
ecuaciones que relacione matemticamente y, dada la naturaleza de las mismas, buscar un
mtodo apropiado de solucin al problema de optimizacin.

El despacho econmico consiste en satisfacer la demanda de energa elctrica al mnimo


costo total de produccin, despachando de forma ptima a las unidades generadoras que se

8
encuentran sincronizadas en el sistema elctrico de potencia, este despacho considera dos
tipos de restricciones: del sistema y de las unidades generadoras.

El despacho econmico es el problema fundamental de la operacin de un sistema de


energa elctrica. Este consiste en optimizar los recursos energticos que se tiene para la
satisfaccin de la demanda de potencia en cada una de las etapas del horizonte de
planeacin. De tal manera que el costo total de produccin es el menor posible.

Debido a las caractersticas que presenta tanto el sistema elctrico de potencia (SEP) y la
curva de demanda, es necesario establecer o buscar la forma ms adecuada para cubrir la
demanda con los costos ms bajos de produccin, esto involucra tambin una planificacin
a corto, mediano y largo plazo, esto para prever posibles cambios en los precios del
combustible.

El problema del despacho econmico se puede hacer tan sencillo o complicado como se
quiera. Pero en general, el problema tiene que ser dividido para el anlisis de restricciones
que dan origen a diferentes problemas del despacho econmico. Las diferentes soluciones
son iteradas hasta que no se viola ninguna restriccin.

Los clculos de despacho econmico son realizados cada cierto tiempo (5 a 30 minutos) y
se usa las ecuaciones de coordinacin, se requiere que el costo incremental de la potencia
entregada a una barra de carga arbitraria sea el mismo para todas las unidades.

1.1.2 Despacho econmico de carga.

El despacho econmico de carga busca minimizar el costo de operacin del sistema al


suplir una demanda en un perodo de tiempo determinado (por ejemplo una hora, un da,
una semana, etc.) satisfaciendo en forma simultnea un amplio y variado conjunto de
restricciones de operacin y cumpliendo adems con los criterios que se deriven de las
programaciones de corto, mediano y largo plazo.

Un sistema elctrico de potencia (SEP) generalmente utiliza una combinacin de unidades


hidroelctricas y trmicas para suplir la demanda, por ello es necesario optimizar los

9
recursos con los que se cuenta, por lo tanto hacer dos tipos de despacho econmico de
carga:

Despacho econmico trmico.


Despacho econmico hidrotrmico.

En este proyecto se desarrollar y optimizar el despacho econmico trmico.

En el despacho econmico trmico, se busca como en todo despacho econmico de carga


minimizar los costos de produccin de las unidades, que para este caso son todas unidades
trmicas (a vapor y a gas), de tal manera que se optimice la produccin de energa en el
sistema elctrico de potencia tomando en cuenta las restricciones de las unidades
principalmente las variaciones de la demanda.

A continuacin se presentan los tres tipos de planificacin del despacho econmico segn
el tiempo a considerar.

Programacin a largo plazo, en general, tiene un horizonte de uno a cinco aos. Las
empresas realizan esta programacin para obtener aproximaciones de capacidades de
generacin (en este proyecto, de capacidad trmica) y compararlas con predicciones de
consumo, con lo cual puede hacerse una primera aproximacin de ofertas de precios (en
base a precios futuros de combustibles) y con esto evaluar los futuros ingresos con lo cual
se pueden tomar decisiones de ajustes al conjunto generador, si las condiciones del
mercado lo permiten, y de esta manera asegurar el suministro energtico al menor costo
posible.

Programacin a mediano plazo, tiene un horizonte de entre un ao y un mes. En esta


etapa se pueden hacer predicciones de demanda y de esta manera analizar si se cuenta con
los recursos necesarios para cubrirlas, as como tambin hacer futuras rdenes de compra
de combustible. Para lograr hacer todo esto se deben realizar previsiones econmicas tales
como posibles ingresos y presupuestos anuales.

10
Lo interesante de esta programacin es que toma como referencia los datos de la
programacin a largo plazo y le sirve como soporte a la programacin de corto plazo, ya
que en ella se determinan evaluaciones de inversiones, gestin de contratos, elaboracin de
ofertas en los mercados diarios, predicciones de generacin trmica sujeta a restricciones
anuales. Por lo anterior las empresas generadoras pueden definir precios de sus ofertas de
generacin y presentarlas al organismo encargado del despacho de carga.

Programacin a corto plazo, su horizonte es entre una semana y un da. La principal


caracterstica es que maneja el mercado de ofertas diarias, las cuales estn alimentadas por
decisiones estratgicas tomadas en las programaciones de largo y mediano plazo, es este el
tipo de programacin que se desarrollar en este proyecto.

1.1.3 Curvas caractersticas de unidades generadoras.

En el anlisis de problemas asociados con la operacin econmica se necesitan conocer


algunos parmetros del sistema elctrico de potencia, entre los ms importantes se
encuentran las curvas caractersticas de entrada salida de los generadores.

1.1.3.1 Unidades termoelctricas.

Analizando los problemas asociados con la operacin y control de un sistema de potencia


hay muchos parmetros importantes involucrados, pero en cuanto a la operacin
econmica, nos interesa el que est asociado con la curva caracterstica de costos de la
unidad trmica, ya que en ella se nos indica cunto cuesta producir cierta cantidad de
potencia. Esta curva es mejor conocida como la curva de entrada salida de una unidad
trmica. La entrada en esta curva puede venir especificada en trminos de dlares por hora
($/h), toneladas de carbn por hora o en pies cbicos de gas por hora y la salida es la
potencia expresada en megawatts (MW). Para obtener esta curva de manera experimental
lo que se hace es que se fija la generacin de la unidad en un valor y se mide el consumo
de combustible por hora correspondiente a esa generacin, luego se repite el procedimiento
anterior para distintos valores de generacin obtenindose de esta manera una serie de
puntos que permiten trazar dicha curva. A continuacin definiremos algunos trminos que
utilizaremos:

11
Llamaremos H la entrada de energa en forma de calor medida en unidades de MBtu/h,
donde 1 Btu (British thermal unit) se define como la cantidad de calor necesario para
elevar en 1 F la temperatura de una libra de agua a la presin atmosfrica normal. Sea C
el costo de producir un MBtu medido en $/MBtu. Para obtener la curva de costos totales
F se multiplica H y C cuyas unidades vienen expresadas en $/h.

En la figura 1.1 se muestra una curva caracterstica de entrada salida de una unidad
generadora en forma idealizada, se puede apreciar que la operacin de unidades trmicas
esta acotada por potencias mnima y mxima.

Figura 1.1 Curva caracterstica de entrada salida de unidades trmicas (Fuente: A.J. Wood and B.F.
Wollenberg; Power Generation Operation and Control, John Wiley, Second Edition, 1996).

La curva caracterstica de costo incremental para una unidad de este tipo es la pendiente
(derivada) de la curva de entrada salida (H/P F/P), los datos de esta curva
resultante estn expresados en Btu/kWh $/kWh versus salida neta de potencia expresada
en megawatts (MW). Esta curva de costo incremental es la que se usa en el despacho
econmico de la unidad, en la figura 1.2 se presenta dicha curva.

12
Figura 1.2 Curva caracterstica de costo incremental de combustible (Fuente: A.J. Wood and B.F.
Wollenberg; Power Generation Operation and Control, John Wiley, Second Edition, 1996).

La curva de costo incremental representa las variaciones de la entrada con respecto a la


salida de la unidad. Dado que existen diferentes formas de representar la curva
caracterstica de entrada salida para las unidades debido a los diferentes diseos y formas
de obtener las curvas, los datos se aproximan generalmente a una curva polinomial, en
muchos casos una funcin cuadrtica es una buena representacin (funcin en la que se
basa este proyecto).

1.1.4 Despacho econmico de unidades trmicas.

Uno de los problemas de fundamentales de la operacin de un sistema de energa elctrica


es el despacho econmico el cual consiste en repartir la demanda total del sistema entre los
generadores disponibles en un perodo de tiempo, de forma que el costo total de generacin
sea el mnimo posible teniendo en cuenta un conjunto de condiciones o restricciones que
restringen el uso de estas.

1.1.4.1 Restricciones en la operacin de unidades termoelctricas.

Las unidades termoelctricas tienen una serie de restricciones de operacin que deben
tomarse en cuenta al momento de elaborar el despacho econmico [4: pg. 11].

13
1- Lmites tcnicos de operacin: Las unidades trmicas tienen una potencia de
salida mnima para funcionamiento estable (Pmn). Tpicamente, este valor
corresponde del 10% al 30% de la potencia mxima (Pmx) para unidades
alimentadas con gas natural o petrleo y del 20% al 50% de la potencia mxima
para unidades alimentadas con carbn.

(. 1.1)

2- Mnimo tiempo en funcionamiento y parada: Una vez que la unidad ha sido


puesta en marcha, sta no puede apagarse hasta que ha transcurrido un tiempo
mnimo que asegure la temperatura sea igual en toda la unidad generadora
(particularmente en la turbina). De esta forma puede controlarse la fatiga de
material manteniendo los gradientes de temperatura dentro de los lmites tcnicos.
De forma anloga, el tiempo mnimo de parada representa el nmero mnimo de
horas que una central debe mantenerse desacoplada una vez que deja de funcionar.
3- Limitaciones de planta: En centrales termoelctricas con ms de una unidad,
pueden existir restricciones en cuanto a que stas no pueden ponerse en
funcionamiento forma simultnea.
4- Rampas: Las unidades termoelctricas slo pueden realizar cambios graduales de
temperatura, por lo que toman y dejan carga gradualmente. Esta particularidad se
puede modelar mediante rampas de toma de carga. Existe otra restriccin, la cual es
con respecto a limitaciones de combustible, algunas centrales termoelctricas tienen
ciertas limitaciones en cuanto a la disponibilidad de combustible.

En este proyecto se presenta un despacho econmico termoelctrico tomando en cuenta el


despacho sin considerar prdidas, se considera los lmites de potencia de las unidades
generadoras y prdidas en la lnea de transmisin.

1.1.5 Despacho econmico sin considerar prdidas de transmisin.

El problema ms sencillo de despacho econmico es que se plantea para un solo intervalo


de tiempo donde la demanda de potencia es constante y generalmente se asume que las
curvas de entrada salida son suaves y convexas, las cuales pueden ser representadas por

14
funciones lineales o cuadrticas. Un caso simple es el del despacho econmico sin prdidas
en la red, donde las nicas restricciones son el balance de potencia y los lmites de potencia
de cada generador.

Figura 1.3 N unidades trmicas comprometidas a servir una carga PD. (Fuente: Resendiz L., Hector H.;
Despacho Econmico considerando Rampas de Incremento y Decremento de unidades Generadoras.
Tesis).

La figura 1.3 muestra la configuracin de un sistema elctrico de potencia que consta de N


unidades generadoras conectadas a una sola barra. La suma de potencias de las N unidades
debe ser igual a la carga demandada o demanda de potencia PD.

Donde:

N = Unidades de generacin trmica a despachar.


PD = Demanda de potencia.
PN = Potencia entregada por el generador N.

Matemticamente puede escribirse como:


= 1 + 2 + + = [] (. 1.2)
=1

15
Anteriormente se ha visto que los costos de combustible F de cada unidad generadora
pueden expresarse en funcin de su potencia por medio de su curva caracterstica de
entrada salida.

1 = 1 (1 ), 2 = 2 (2 ), = ( ) [$/kWh] (. 1.3)

El costo total de combustible de las N unidades puede expresarse de la siguiente manera:

= 1 + 2 + + = ( ) [$/kWh] (. 1.4)
=1

Donde:

FT = Costo total de generacin del sistema.


Fi = Costo de generacin de la unidad i.
Pi = Potencia de la unidad i.
N = Nmero de unidades generadoras del sistema.

Matemticamente hablando, el problema puede ser dicho muy concisamente, es decir una
funcin objetivo FT, es igual al costo total para suministrar la carga indicada. El problema
es minimizar FT sujeto a la restriccin de que la suma de las potencias generadas debe ser
igual a la carga recibida.

En su forma ms simple el problema del despacho econmico se estableci como la


minimizacin de una funcin de costo, sujeta a una restriccin de igualdad de potencia, es
decir, como se muestra a continuacin el modelo de optimizacin:

= (. 1.5)
=1

Sujeto a:

16

= 0 (. 1.6)
=1

= (. 1.7)
=1

= = 0 (. 1.8)

Donde:

= Costo total de generacin de N unidades generadoras ($/kWh).


= Costo total de generacin de la unidad i ($/kWh).
= Potencia entregada por el generador i (MW).
= Demanda de potencia (MW).
= Potencia total entregada por N unidades generadoras (MW).
= Potencia mnima que puede suministrar la unidad generadora i (MW).
= Potencia mxima que puede suministrar la unidad generadora i (MW).
= Funcin desviacin de la carga (error).

Este es un problema de optimizacin limitado que puede ser atacado formalmente usando
el mtodo de clculos avanzados que involucran la funcin de Lagrange. Una tcnica para
hallar el ptimo, es el empleo de los Multiplicadores de Lagrange.

Si a la funcin de costos totales FT le sumamos la funcin ., esta funcin no se ve


alterada, y definiendo esta nueva ecuacin como la Ecuacin de Lagrange, debido a
que esto se resuelve por el mtodo de los Multiplicadores de Lagrange, donde la
constante (lambda) es el multiplicador de Lagrange y representa el costo incremental de
combustible o costo marginal de la demanda, teniendo de esta manera:

= + . (. 1.9)

17
Considerando el caso sin prdidas y sin lmites de potencia, entonces la ecuacin de
Lagrange queda definida como sigue:

= + = + ( ) (. 1.10)
=1 =1

Donde:

= Multiplicador de Lagrange.

Para obtener el mnimo de la funcin de Lagrange hallamos las derivadas parciales de esta
ecuacin con respecto a cada uno de los trminos involucrados en esta ecuacin, es decir,
respecto a cada una de las potencias y Lambda (), luego se igualan a cero obteniendo un
grupo de ecuaciones como vemos a continuacin:

( )
= = 0 (. 1.11)
( )



= (. 1.12)

=1

( )
Reescribiendo la primera condicin = , esta ecuacin indica que los costos
( )

marginales de todas las unidades debe ser el mismo, es decir, .

Entonces el despacho econmico de carga se logra resolviendo las ecuaciones 1.11 y 1.12.
( )
Es importante observar el trmino es el costo marginal de cada generador cuyas
( )

unidades vienen expresadas en $/MWh.

Para este caso el valor comn de los costos marginales es el multiplicador de Lagrange (),
esta relacin es importante ya que sirve para definir el costo del ltimo MW de potencia
inyectado para suplir la demanda de potencia, cantidad que se usa para definir el precio

18
aplicado a intercambios de energa. El multiplicador tambin representa el precio
eficiente al que se debe remunerar a los generadores para satisfacer la demanda.

En la figura 1.4 se muestra de manera grfica esta interpretacin.

Figura 1.4 Interpretacin grfica de Lambda (). (Fuente: Granada, G., Martnez, R., Zaldvar, M. A.;
Anlisis del Despacho del Sistema de Generacin de el Salvador. Tesis).

1.1.6 Despacho econmico considerando lmites de potencia.

Si se quiere introducir restricciones de potencia, las condiciones necesarias para el ptimo,


son:


= (. 1.13)


= (. 1.14)


= (. 1.15)

El costo incremental del sistema se obtiene de la solucin del sistema de ecuaciones. Para
esto se sigue entonces el siguiente procedimiento:

19
1) Fijar a los generadores fuera de lmites en su lmite alcanzado.
2) Solucionar nuevamente el sistema de ecuaciones.
3) Calcular los costos incrementales para los generadores del paso 1.
4) Verificar las condiciones de optimizacin.
5) Para los generadores que cumplen con las condiciones de optimizacin, fijar sus
generaciones en el lmite; mientras que los que no cumplen deben integrarse en un
nuevo conjunto de generadores para realizar un nuevo despacho.
6) Ejecutar un nuevo despacho (solucionar nuevamente el sistema de ecuaciones).
7) Verificar lmites. Si todos los generadores cumplen con los lmites, entonces
termina el problema; de lo contrario, regresar al paso 1.

La solucin a este grupo de ecuaciones (ecuaciones 1.13, 1.14 y 1.15) [1], se desarrolla
mediante el uso de las condiciones de Karush Kuhn Tucker. Este grupo de ecuaciones se
puede interpretar de la siguiente manera: los generadores que operan entre sus lmites de
potencia tienen costos marginales idnticos y de valor , los que operan a su mnimo de
potencia tienen un costo marginal igual o mayor que , mientras los que operan a su lmite
superior tienen un costo igual o menor que . En la figura 1.5 se muestra de manera grfica
esta interpretacin.

Figura 1.5 Interpretacin grfica de Lambda considerando limites de potencia. (Fuente: Granada, G.,
Martnez, R., Zaldvar, M. A.; Anlisis del Despacho del Sistema de Generacin de el Salvador. Tesis).

20
1.1.7 Despacho econmico considerando prdidas de transmisin.

Podemos definir otro modelo de optimizacin para el despacho econmico de carga


considerando las prdidas de potencia en el sistema.

En este caso, se considera el efecto de la red de transmisin sobre la manera en que se


despachan las unidades de generacin.

En la figura 1.6 mostramos otro esquema de N unidades generadoras considerando las


prdidas de potencia en el sistema.

Figura 1.6 N unidades generadoras conectadas para satisfacer la Demanda de Potencia considerando
prdidas en el sistema (Fuente: Resendiz L., Hector H.; Despacho Econmico considerando Rampas de
Incremento y Decremento de unidades Generadoras. Tesis).

La forma ms generalizada de abordar el problema del despacho econmico considerando


prdidas en las lneas parte del supuesto que se tiene una expresin para esas prdidas P P,
en funcin de las potencias de salida de los generadores, como vemos a continuacin:

= (1 , 2 , , ) (. 1.16)

Considerando las prdidas de potencia del sistema el problema de optimizacin se plantea


de la siguiente manera:

21

= ( )
=1

Sujeto a:

+ = 0 (. 1.17)
=1

Donde:

=
=1

Entonces tenemos:

= + = 0 (. 1.18)

y restricciones de desigualdad.

donde:

= Prdidas de potencia.

La nueva funcin objetivo queda planteada de la siguiente manera:

= + = + ( + ) (. 1.19)
=1 =1

y las condiciones de optimizacin son las siguientes:


= + . =

22

= + . ( 1) = 0 (. 1.20)



= = (. 1.21)

=1

Donde:

( )
=

Estas condiciones establecen que el costo marginal de los generadores es distinto en cada
nodo, e igual al producto del multiplicador de Lagrange por un factor que depender del
comportamiento de cada generador en la funcin de prdidas. En conclusin los
generadores no operan a costos marginales iguales, sino que varan segn la sensibilidad de
las prdidas con respecto a la generacin.

1.1.8 Prdidas en la transmisin.

El mtodo expuesto para optimizar la reparticin de carga entre los generadores de un


sistema, requiere desarrollar una expresin que permita determinar las prdidas totales de
transmisin en funcin de la potencia generada por ellos. Se aborda esta cuestin indicando
uno de los mtodos ms importantes, aproximado pero sencillo. Segn este mtodo, para
unas condiciones dadas de funcionamiento del sistema las prdidas de transmisin son
funcin cuadrtica de las potencias de los generadores, lo que se puede escribir segn las
siguientes ecuaciones:

= (. 1.22)

11 12 1 1
22 2
= [1 2 ] [ 21 ] . [ 2 ] = [][][] (. 1.23)

1 2

23
Donde los trminos , son llamados Coeficientes B Coeficientes de prdidas y
[] es la matriz de coeficientes de prdidas. Los coeficientes no son verdaderamente
constantes sino que varan segn el estado de carga del sistema y se obtienen a partir de los
resultados de un Clculo de Flujos de Potencia. Una vez determinados los coeficientes se
tendr una expresin para las prdidas del sistema en funcin de las potencias generadas
que, en rigor, slo es vlida para las condiciones correspondientes a esos valores concretos
de las potencias de los generadores . En un sistema real, dada la variacin en la potencia
demandada a lo largo de un da, la diferencia entre las condiciones de funcionamiento del
sistema llega a ser tan grandes que se hace necesario utilizar ms de un conjunto de
coeficientes durante el ciclo de carga diario.

1.1.9 Factores de penalizacin.

Si se considera la primera condicin necesaria de optimizacin:


= 0 (. 1.24)


= (1 ) = 0

La solucin de la funcin aumentada de Lagrange, es:


(1 ) (. 1.25)

Reordenando la ecuacin, se tiene:

1 ( )
[
] = (. 1.26)
1

donde:

24


1
=
(. 1.27)
1

Las prdidas, se incrementan si se incrementa la potencia en la barra i, por lo que el factor


de penalizacin es mayor que uno. Esto significa, que cuanto ms alejado se encuentra de
la barra slack, se tiene mayores costos incrementales debido a las prdidas del sistema.

En la figura 1.7, se muestra el caso de 3 generadores que tienen diferentes factores de


penalizacin. Los costos marginales cuando no se toman en cuenta las prdidas, estn
representados por la curva continua y cuando se tienen prdidas, estn representados por la
curva segmentada.

El generador 3, tiene un factor de penalizacin menor a uno, esto significa que no


contribuye al aumento de prdidas, ms al contrario, su funcionamiento disminuye las
prdidas del sistema, seguramente por la posicin geogrfica del generador dentro del
Sistema Elctrico de Potencia (SEP), ste generador tiene una prdida marginal negativa.

Figura 1.7 Costos marginales con factores de penalizacin (Fuente: MCs. Ing. Armengol Blanco Benito.;
Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

25
Donde:

= Costo marginal sin prdidas.


= Costo marginal con prdidas.
= Potencia generada por la unidad i cuando no existen prdidas.
= Potencia generada por la unidad i cuando existen prdidas en el sistema.
= Factor de penalizacin de la unidad i.

1.1.10 Mtodos de optimizacin.

El despacho econmico de carga es un elemento importante dentro de la produccin,


planeacin y control de un sistema elctrico de potencia, por lo tanto se hace necesario
buscar un mtodo matemtico que proporcione una solucin ptima del despacho.

Para resolver el despacho econmico, existen una gran cantidad de mtodos, entre otros se
tiene:

Gradiente del descenso ms pronunciado.


Tcnica de los multiplicadores de Lagrange.
Otras adaptadas a la particularidad de los problemas.

A continuacin se presenta el mtodo de los multiplicadores de Lagrange, que es el que


utilizaremos para basarnos en la optimizacin.

1.1.10.1 Mtodo iterativo lambda ().

Para enfocar la solucin del problema del despacho econmico y comprender el mtodo, es
necesario apoyarse en una tcnica grfica para resolver el problema y entonces extender
ste por medio de algoritmos e implementarlos en un programa computacional.

Al elegir un determinado lambda, est determinado la generacin para cada unidad, la


generacin total ser mayor o menor que la demanda, establecindose un error. Al
considerar otro valor de lambda, se tendr un nuevo error. En la figura 1.8, se muestra una

26
grfica del error vs lambda (costo marginal). Considerando dos puntos, se puede hallar la
interseccin con el eje lambda (proyeccin), donde el error ser pequeo y se tiene un
nuevo (lambda), procedindose de igual modo, hasta que el error sea menor a la
tolerancia especificada.

Figura 1.8 Proyeccin Lambda, (Fuente: MCs. Ing. Armengol Blanco Benito.; Operacin Econmica y
Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

Con las dos soluciones se puede extrapolar interpolar otra solucin, y cada vez, se est
ms cerca del valor deseado de la potencia generada total.

De la figura 1.8 se deduce que:

0 1 0 1
= = (. 1.28)
0 1 0 2 1 2

El nuevo (lambda) proyectado, es:

0 (0 1 )
2 = 0 (. 1.29)
0 1

1 (0 1 )
2 = 1 (. 1.30)
0 1

27
Generalizando, el nuevo valor de lambda proyectado para la iteracin, i > 2, es:

1 (2 1 )
= 1 (. 1.31)
2 1

A continuacin se muestran los pasos a seguir para desarrollar el mtodo de solucin de


iteracin con lmites de potencia, despreciando prdidas en la transmisin.

Paso 1. Para cada iteracin i, se aproxima por i.

Paso 2. El nivel de produccin de cada generador se calcula segn las condiciones


necesarias, es decir:

Paso 3. Con los Pi encontrados calcular:

=
=1

Paso 4. Se repite pasos 1 3 hasta que se cumpla la condicin de equilibrio de potencia


para una tolerancia especificada, sino se cumple esta condicin ajustar de la siguiente
manera:

Para la segunda iteracin, se aumenta el de la primera iteracin aumentada en un 10%,


esto es si la potencia total PT es menor que la PD:

28
1 = 0.1(0 ) (. 1.32)

y para i > 2, donde i es el nmero de iteraciones,o sea, para la tercera iteracin tenemos
que calcular de la siguiente manera:

1 (2 1 )
= 1
2 1

Se recomienda utilizar un lambda un inicial que sea el promedio de los lambdas de las N
unidades generadoras involucradas, calculados en base a valores de potencia asignados
para cada generador de tal manera que estos abastezcan la demanda, esto con el objetivo de
iniciar con un lambda cercano al lambda ptimo.

Figura 1.9 Diagrama de flujo, mtodo iterativo proyeccin Lambda (Fuente: MCs. Ing. Armengol Blanco
Benito.; Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

29
La figura 1.9 muestra un diagrama de flujo del mtodo iterativo lambda para la solucin
del problema del despacho econmico de carga en sistemas termoelctricos.

1.1.11 Caractersticas de Centrales Trmicas.

En las caractersticas de mayor inters para la operacin de plantas de generacin trmica,


son las son las curvas de costo de generacin versus potencia generada. Las centrales
trmicas tpicas, son: las centrales de vapor, centrales a gas y centrales nucleares. Esta
ltima no abordaremos en este proyecto.

1.1.11.1 Centrales a Vapor.

En este tipo de centrales, el vapor es generado en una caldera que es alimentada con agua;
el calor es extrado de la combustin del carbn mineral en polvo petrleo u otro tipo de
combustible primario. El vapor es sobrecalentado en las diferentes etapas de la caldera y es
alimentado a la turbina de vapor, en sta, existe una transformacin de energa, el vapor se
enfra, pierde energa y se convierte en energa mecnica, la cual impulsa al generador y se
obtiene la energa elctrica. En la figura 1.10, se muestra el esquema tpico de generacin
trmica a vapor.

Figura 1.10 Esquema tpico de una central a vapor(Fuente: MCs. Ing. Armengol Blanco Benito.; Operacin
Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

Donde:

B = Caldera de vapor.
T = Turbina de vapor.
G = Generador elctrico.

30
S/A = Servicios auxiliares.

Una turbina de vapor tpica, requiere de 2 a 6% de la potencia de la salida del generador


para alimentar los servicios auxiliares que comprende, entre otros, las bombas de
alimentacin de la caldera, ventiladores, bombas para la circulacin de agua en el
condensador, etc. La salida elctrica, no est conectado solamente al sistema elctrico de
potencia, sino tambin de potencia auxiliar en la central elctrica.

La salida neta de la planta, es la potencia elctrica disponible para ser utilizado por el
sistema elctrico de potencia, y es una informacin til para planificar la generacin.

1.1.11.2 Turbina de Gas de Ciclo Simple.

En sta planta, la turbina de gas, aprovecha los gases de combustin para convertirlo en
potencia mecnica y consiste en un compresor de gas y turbina, conectados por un eje
nico a una unidad generadora. El compresor comprime los gases de combustin y en la
turbina se expande el gas y se produce la conversin de energa calorfica en energa
mecnica la cual acciona al generador obtenindose energa elctrica.

En la figura 1.11 se muestra un esquema tpico de una planta de este tipo.

Figura 1.11 Esquema tpico de una central a turbina a gas(Fuente: MCs. Ing. Armengol Blanco Benito.;
Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

Donde:

31
C = Compresor.
TG = Turbina de gas.
G = Generador elctrico.

La turbina de gas de ciclo simple, tiene un rendimiento en el rango de 25% al 30% (es
decir, la tasa de calor de unidad es de 13.600 a 11.400 MBTu/kW-h, basado en el valor del
calentamiento ms alto del combustible), requiere diesel o gas natural como combustible.
Estas unidades se utilizan principalmente, para horas punta en los sistemas elctricos.

1.1.11.3 Caractersticas de entrada salida de Plantas Trmicas.

En las plantas trmicas a vapor, en general la curva de entrada versus salida, es


discontinua, la cual es causada por la apertura de vlvulas de vapor en serie, es decir, las
unidades de generacin poseen una operacin multivalvular [9]. En la figura 1.12, se
representa sa caracterstica, las variaciones abruptas de gasto de calor son debidas a la
apertura de las vlvulas. sa caracterstica normalmente se lo aproxima y representa por
una funcin polinomial, la cual se representa mediante la curva segmentada.

Figura 1.12 Caractersticas de operacin de unidades trmicas multivalvulares a vapor (Fuente: MCs. Ing.
Armengol Blanco Benito.; Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia,
versin 1.0 - 2010).

32
Noyola, et al., [10], se presenta una metodologa para determinar experimentalmente las
caractersticas incrementales del consumo de calor de las unidades trmicas.

La curva caracterstica de entrada salida, depende del tipo de unidad trmica, en la figura
1.13, se representa la curva tpica de una central elctrica a vapor, utiliza una turbina a gas
multivalvular [1], esa caracterstica, se muestra en la figura 1.14 y se puede expresar por la
siguiente funcin:

= 0 + 1 + 2 2 + + (. 1.33)
Donde:

= Coeficientes

Figura 1.13 Caracterstica tpica de una central trmica a vapor (Fuente: MCs. Ing. Armengol Blanco
Benito.; Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

33
Figura 1.14 Caractersticas Entrada Salida tpica de una planta trmica (Fuente: MCs. Ing. Armengol
Blanco Benito.; Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 -
2010).

El gasto por hora, sin perder generalidad, se puede aproximar por un polinomio de grado n,
es decir, por una funcin no lineal, lo ms comn es considerar una cuadrtica o cbica. En
algunos estudios para simplificar el proceso de la optimizacin, la funcin puede ser
linealizada o considerada como una funcin lineal por tramos. Estos extremos, se pueden
apreciar en la figura 1.15.

34
Figura 1.15 Costo de generacin por hora de una planta trmica (Fuente: MCs. Ing. Armengol Blanco
Benito.; Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

El gasto de calor por hora, H, [MBTu/h], se puede convertir en costo de generacin por
hora, F, [$/h], al considerar el costo de combustible y representar la funcin:

( ) = = 0 + 1 + 2 2 + 3 3 + + (. 1.34)

Con las restricciones:


Donde:


= Gasto de calor por hora [ ][ ]

$
= Costo de generacin por hora []
$
= Costo del combustible []

= coeficientes
= Potencia generada en MW de la unidad generadora i.

35
0
La relacin = + 1 + 2 + + 1, es la razn del calor neto

consumido por la turbina trmica y en la figura 1.16, se muestra sa caracterstica.


Figura 1.16 Caracterstica versus potencia generada (Fuente: MCs. Ing. Armengol Blanco Benito.;

Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

Figura 1.17 Gasto incremental de calor versus potencia generada de una planta trmica (Fuente: MCs. Ing.
Armengol Blanco Benito.; Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia,
versin 1.0 - 2010).

36
1.1.11.3.1 Costo Incremental.

El costo incremental, es el costo de generar un kW-h adicional. Matemticamente es la


relacin de los incrementos del costo de generacin y potencia, representada por la
siguiente ecuacin (1.35):


= 1 + 22 + 33 2 + + 1 + 2 + 33 + 3 2 + + 1

En la figura 1.18 se representada la curva tpica del costo incremental.

Figura 1.18 Caracterstica costo incremental de generacin tpica de una planta trmica (Fuente: MCs. Ing.
Armengol Blanco Benito.; Operacin Econmica y Planificacin de Sistemas Elctricos de Potencia,
versin 1.0 - 2010).

1.1.11.3.2 Costo Marginal.

De una manera general, el costo marginal es el costo de producir una unidad marginal del
producto de una empresa. En la generacin elctrica, el costo marginal, es el costo de
generar un kW-h adicional. Matemticamente, el costo marginal es el costo incremental,

37
pero pasando al lmite, dicho de otro modo, es la derivada de la funcin costo de
generacin con respecto a la potencia. El costo incremental difiere del costo marginal en
un infinitsimo.


= 1 + 22 + 33 2 + + 1 (. 1.36)

En la figura 1.19, se representa la grfica de una funcin tpica de costo marginal.

Figura 1.19 Costo Marginal (Fuente: MCs. Ing. Armengol Blanco Benito.; Operacin Econmica y
Planificacin de Sistemas Elctricos de Potencia, versin 1.0 - 2010).

38
1.2 ALGORITMOS GENTICOS.

1.2.1 Introduccin.

La aplicacin de los algoritmos genticos (AG) ha recibido recientemente gran atencin de


los investigadores en el rea de inteligencia artificial. En la literatura actual se reconoce
que los algoritmos pueden proporcionar herramientas poderosas en el campo de la
optimizacin [3]. Se ha comprobado que estos algoritmos pueden encontrar soluciones
aproximadas a problemas de gran complejidad mediante un proceso de evolucin
simulada. Se dice evolucin simulada debido a que estos algoritmos utilizan una tcnica de
bsqueda basada en mecanismos de seleccin y gentica natural.

Segn Coley [13], los algoritmos genticos son algoritmos de optimizacin numrica que
simulan el proceso de la seleccin natural y la evolucin biolgica, bsicamente
consisten en una seleccin basada en una poblacin, reproduccin sexual y mutacin.

La naturaleza es en s mucho ms compleja que un algoritmo gentico, en ella para


optimizar la supervivencia, es necesario que se maximicen algunos factores y se minimicen
otros. En un algoritmo gentico, normalmente, se optimizar slo una funcin, no diversas
funciones relacionadas entre s simultneamente, aunque este tipo de optimizacin,
denominada multimodal, tambin se aborda con un algoritmo gentico especializado.

Para precisar, los algoritmos genticos son mtodos que maximizan una funcin objetivo,
que evaluacin (Fitness) o de minimizacin del costo. En trminos formales, dada una
funcin F, de n variables x1, x2,, xn, que representan un problema, se trata de optimizar
dicha funcin, lo que significa que F(x1, x2,, xn) = Mximo. As, las variables (xi,..., xn)
se codifican en un cromosoma, que tiene como se dijo, toda la informacin necesaria para
resolver dicho problema. Los operadores utilizados por el algoritmo gentico se aplicarn
sobre estos cromosomas, o mejor dicho sobre poblaciones de estos. De este modo, las
soluciones codificadas en el cromosoma compiten para encontrar la mejor solucin.
Igual que en la evolucin de las especies, en que los organismos mejor adaptados
sobreviven las soluciones que resuelvan mejor el problema se mantendrn o legarn su
material gentico a las futuras generaciones, es decir adaptando aquellas caractersticas

39
ventajosas que los hacen mejores. La diversidad gentica, en este caso de los algoritmos
genticos, se produce mediante mutaciones y reproduccin sexual de manera artificial.

Los algoritmos genticos son mtodos adaptativos, generalmente usados en problemas de


bsqueda y optimizacin de parmetros, basados en la reproduccin sexual y en el
principio de la supervivencia del ms apto.

Ms formalmente, y siguiendo la definicin dada por Goldberg, Los Algoritmos Genticos


son algoritmos de bsqueda basados en la mecnica de seleccin natural y de la gentica
natural. Combinan la supervivencia del ms apto entre estructuras de secuencias con un
intercambio de informacin estructurado, aunque aleatorizado, para construir as un
algoritmo de bsqueda que tenga algo de las genialidades de las bsquedas humanas [3].

Para alcanzar la solucin a un problema se parte de un conjunto inicial de individuos,


llamado poblacin, generado de manera aleatoria. Cada uno de estos individuos representa
una posible solucin al problema. Estos individuos evolucionarn tomando como base los
esquemas propuestos por Darwin [11] sobre la seleccin natural, y se adaptarn en mayor
medida tras el paso de cada generacin a la solucin requerida.

Por lo tanto, un algoritmo gentico consiste en hallar de qu parmetros depende el


problema, codificar estos parmetros en un cromosoma, y aplicar los mtodos de la
evolucin (seleccin y reproduccin sexual con intercambio de informacin y alteraciones
que generan diversidad), o dicho de otro modo son un conjunto de mtodos sistemticos
para la resolucin de problemas principalmente de bsqueda y optimizacin que aplican
los mismos mtodos de la evolucin biolgica: seleccin de la poblacin, reproduccin
sexual y mutacin, a estos mismos problemas. El mtodo en general es capaz de ser
aplicado a un amplio rango de problemas.

El desarrollo de los Algoritmos Genticos se debe en gran medida a John Holland,


investigador de la Universidad de Michigan. A finales de la dcada de los 60 desarroll
una tcnica que imitaba en su funcionamiento a la seleccin natural. Aunque originalmente
esta tcnica recibi el nombre de planes reproductivos, a raz de la publicacin en 1975 de

40
su libro Adaptation in Natural and Artificial Systems [12] y ahora se conoce
principalmente con el nombre Algoritmos Genticos.

1.2.2 Codificacin de variables y espacios de bsqueda.

As como ocurre con el sistema gentico de los seres vivos, en que las protenas se
codifican en el material gentico contenido en las clulas haciendo corresponder el
dominio del problema (los posibles individuos) con el conjunto de las posibles secuencias
de nucletidos, lo primero que se requiere hacer en la construccin de un algoritmo
gentico es determinar cul es el espacio de bsqueda en donde se encuentran las posibles
soluciones al problema que se pretende resolver. Por ejemplo, si se tiene el problema de
optimizacin de una funcin, cuyo dominio es un subconjunto de los nmeros reales,
entonces este subconjunto es el espacio de bsqueda sobre el que se producir la misma.
Sin embargo, para poder codificar el algoritmo, se deber codificar el dominio de alguna
manera para poder obtener estructuras que este pueda manejar. En trminos biolgicos
tales estructuras son equivalentes al genotipo de cada individuo. A este genotipo le
corresponde un elemento del dominio del problema que es anlogo al fenotipo.

Los algoritmos genticos requieren que el conjunto de variables se codifique en un gen o


cromosoma (un cromosoma contiene varios genes, pero para el efecto es lo mismo). Es
preciso codificar estos genes en una cadena de smbolos (nmeros o letras) generalmente
se usa para el efecto nmeros binarios (0s y 1s).

Definido el dominio del problema, su forma de codificacin y conocida la forma de


conversin entre un elemento y su cdigo, es preciso fijar un punto de partida para
desarrollar el algoritmo gentico, para ello se debe definir una entrada como una poblacin
de cdigos y de ella generar nuevas poblaciones, el algoritmo deber discernir que
poblaciones, por ser mejores soluciones, permanecen, el resto de soluciones obviamente,
por ser soluciones menos satisfactorias, desaparecen; dicho proceso se repite hasta que se
encuentre una solucin ptima o hasta que se llegue a una condicin de trmino
predefinida, como un lmite razonable de generaciones.

41
Por ejemplo, si tenemos un problema de tres parmetros (p1, p2, p3), a cada uno de estos
problemas se les asignar un cdigo, como vemos en la tabla 1.1:

Tabla 1.1Codificacin de los parmetros de un problema.

(Fuente: Silva Lavalle, Arturo R., Un mtodo de algoritmos genticos para optimizacin de memorias
asociativas morfolgicas. Tesis. Universidad de Puerto Rico. (2006)).

El nmero de bits para cada parmetro depende del nmero de opciones que se quiera
manejar en dicho parmetro o la precisin que se requiera.

El conjunto de los parmetros representado por un cromosoma particular recibe el nombre


de genotipo. El genotipo contiene la informacin necesaria para la construccin del
organismo, es decir, la solucin real al problema, denominada fenotipo. Desde los primeros
trabajos de John Holland [12] la codificacin suele hacerse mediante valores binarios. Se
asigna un determinado nmero de bits a cada parmetro. El nmero de bits asignado
depender del grado de ajuste que se desee alcanzar. Cada uno de los bits pertenecientes a
un gen suele recibir el nombre de alelo.

La figura 1.20 muestra un ejemplo de un individuo binario que codifica 3 parmetros.

Figura 1.20 Individuo Gentico Binario (Fuente: Gestal Pose, M., Introduccin a los Algoritmos
Genticos).

1.2.3 Algoritmo Gentico Simple.

Los algoritmos genticos son mtodos adaptativos basados en mecanismos de seleccin y


gentica natural que siguen un proceso de evolucin, y pueden usarse para resolver

42
problemas de bsqueda y optimizacin. Comprenden mtodos de computacin inspirados
por los procesos biolgicos.

A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con


los principios de la seleccin natural y la supervivencia de los ms fuertes, inspirado en la
Teora de la Evolucin de Darwin [11]. Por imitacin de este proceso, los algoritmos
genticos son capaces de ir creando soluciones para problemas del mundo real. La
evolucin de dichas soluciones hacia valores ptimos del problema depende en buena
medida de una adecuada codificacin de las mismas.

Podemos decir que, los algoritmos genticos combinan la supervivencia de los ms


compatibles entre las estructuras de cadenas, con una estructura de informacin ya
aleatoria, intercambiada para construir un algoritmo de bsqueda con algunas de las
capacidades de innovacin de la bsqueda humana.

Los algoritmos genticos son propicios para ser implementados de manera paralela en un
sistema de cmputo distribuido, primero por la razn de tratar de economizar tiempo
distribuyendo cargas de trabajo y segundo por el comportamiento natural de paralelismo
sobre poblaciones especialmente distribuidas4.

Estos son utilizados como tcnica de optimizacin y sirven para encontrar soluciones
ptimas en ingeniera y problemas de diseo donde puede existir una solucin alternativa,
muestran buenas caractersticas de funcionamiento, especficamente cuando se trata de
problemas con espacios de solucin mltiple dado que a diferencia de los mtodos
tradicionales, es un mtodo que busca en muchos puntos posibles soluciones del espacio de
solucin simultneamente (bsqueda en paralelo), lo cual reduce significativamente las
probabilidades de que se queden atorados en mnimos locales durante el proceso de
bsqueda. Adicionalmente, no necesitan de informacin auxiliar para funcionar
apropiadamente, ya que solo requieren conocer la factibilidad o beneficio implcito de cada
punto del espacio de solucin explorado para guiar su bsqueda. Por otro lado, los
algoritmos explotan recursos de codificacin de una forma muy general y como resultado

4
Tomassini, M., s.a. A Survey of Genetics Algorithms. Volume III of Annual Reviews of Computacional
Physics, World Scientific.

43
rebasan las restricciones de otros mtodos (existencia de derivadas, continuidad, etc.). En
la prctica, normalmente operan sobre un conjunto de cdigos binarios que representan las
entidades o individuos de la poblacin.

El poder de los algoritmos genticos proviene del hecho de que se trata de una tcnica
robusta, y pueden tratar con xito una gran variedad de problemas provenientes de
diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si
bien no se garantiza que el algoritmo gentico encuentre la solucin ptima del problema,
existe evidencia emprica de que se encuentran soluciones de un nivel aceptable, en un
tiempo competitivo con el resto de algoritmos de optimizacin combinatoria.

Los algoritmos genticos trabajan con una poblacin de individuos, cada uno de los cuales
representa una solucin factible a un problema dado. A cada individuo se le asigna un
valor o puntuacin, relacionado con dicha solucin. Cuanto mayor sea la adaptacin de un
individuo al problema, mayor ser la probabilidad de que el mismo sea seleccionado de
igual forma. Son fciles de programar y pueden ser aplicados a un amplio rango de
problemas de optimizacin.

Son estos cuatro aspectos los que hacen de los algoritmos genticos un mtodo de
bsqueda y optimizacin robusto, caracterstica principal que los distingue de los mtodos
matemticos tradicionales.

A continuacin se listan estos aspectos:

1. Los algoritmos genticos buscan simultneamente de entre muchos puntos


soluciones, no en un solo punto direccin.
2. Utilizan una funcin objetivo o funcin de evaluacin, no evaluadores intrnsecos.
3. No manejan el conjunto de parmetros del problema, realizan una codificacin de
estos.
4. Utilizan reglas de transicin probabilsticas.

En relacin a otros algoritmos, los algoritmos genticos difieren en los siguientes puntos:

44
Los algoritmos genticos trabajan con un cdigo de los parmetros del problema y
no con los parmetros en s mismo.
En la bsqueda del ptimo estos procesan una poblacin de posibles soluciones y
no solamente una nica solucin.
No dependen de la existencia de derivadas. Para avanzar hacia el ptimo global la
bsqueda es guiada solamente mediante el valor fitness de las posibles
soluciones.
Usan reglas de transicin probabilsticas y no utilizan reglas de transicin
determinstica.

Los algoritmos genticos tienen una amplia gama de aplicacin como consecuencia de dos
aspectos fundamentales:

Su implementacin computacional es bastante simple y provee un poderoso


mecanismo de bsqueda.
Son esquemas muy robustos que pueden ser aplicados en un amplio rango de
problemas de optimizacin.

En algoritmos genticos se utiliza una terminologa particular para designar a cada


elemento o proceso que participa y tienen su contraparte en gentica natural. Es necesario
conocer dicha terminologa para comprender como funcionan estos algoritmos como
tcnica de optimizacin.

Para resolver un problema de optimizacin mediante la aplicacin de algoritmos genticos,


primeramente se tiene que codificar el conjunto de parmetros del problema. Esto se puede
hacer utilizando cdigo binario para codificar el valor de cada parmetro y formar una
cadena de n nmeros de 1s y 0s conocido como cromosoma. Este cromosoma representa
una posible solucin al problema y equivale a un punto en el espacio de solucin.

El algoritmo inicia creando aleatoriamente un conjunto de cromosomas de similares


caractersticas (mismo nmero de bits) que se conoce como poblacin inicial. A cada
elemento o cromosoma de la poblacin inicial a su vez se le conoce como individuo.

45
Como se puede ver, la poblacin inicial no es ms que una parte del espacio de solucin
del problema donde se iniciar la bsqueda y donde tambin puede o no encontrarse la
solucin ptima del problema.

Se evala a cada individuo de la poblacin mediante una funcin definida previamente


conocida como funcin objetivo o funcin de evaluacin, que asigna un valor de aptitud
fitness a cada individuo. Se puede pensar en el valor fitness como una medida de
utilidad, factibilidad o beneficio implcito en cada individuo (cada solucin propuesta), de
modo que un individuo que tenga un valor alto de fitness representa una solucin cercana
al ptimo. En otras palabras, la funcin de evaluacin mide el valor de la solucin que
representa cada individuo.

En seguida, los individuos de la poblacin son sometidos a un proceso de seleccin basado


en el valor fitness individual conocido como reproduccin, que lleva a cabo el operador
de reproduccin. Los individuos seleccionados realizan intercambio de informacin entre
s como una especie de apareamiento que da como resultado la formacin de un nuevo
individuo o un par de ellos y que pasarn a formar parte de una segunda poblacin. Este
proceso se realiza mediante una operacin conocida como operador de Cruce.

Por ltimo, los nuevos individuos son manipulados de forma tal que algunos resultan con
pequeas modificaciones en su estructura. De esto ltimo se encarga el operador de
Mutacin.

El funcionamiento genrico de un Algoritmo Gentico puede apreciarse en el siguiente


pseudocdigo:

Inicializar poblacin actual aleatoriamente


MIENTRAS no se cumpla el criterio de terminacin
crear poblacin temporal vaca
MIENTRAS poblacin temporal no llena
seleccionar padres
cruzar padres con probabilidad Pc
SI se ha producido el cruce

46
mutar uno de los descendientes con probabilidad Pm
evaluar descendientes
aadir descendientes a la poblacin temporal
SINO
aadir padres a la poblacin temporal
FIN SI
FIN MIENTRAS
aumentar contador de generaciones
establecer como nueva poblacin actual la poblacin temporal
FIN MIENTRAS

Una generacin se obtiene a partir de la anterior por medio de los operadores de


reproduccin. Existen 2 tipos:

Cruce: Se trata de una reproduccin tipo sexual. Se genera una descendencia a


partir del mismo nmero de individuos (generalmente 2) de la generacin anterior.
Copia: Se trata de una reproduccin de tipo asexual. Un determinado nmero de
individuos pasa sin sufrir ninguna variacin directamente a la siguiente generacin.

Una vez generados los nuevos individuos se realiza la mutacin con una probabilidad P m.
La probabilidad de mutacin suele ser muy baja, por lo general entre el 0,5% y el 2%.

Se sale de este proceso cuando se alcanza alguno de los criterios de parada fijados. Los
ms usuales pueden ser:

Los mejores individuos de la poblacin representan soluciones suficientemente


buenas para el problema que se desea resolver.
La poblacin ha convergido. Un gen ha convergido cuando el 95% de la poblacin
tiene el mismo valor para l, en el caso de trabajar con codificaciones binarias, o
valores dentro de un rango especificado, en el caso de trabajar con otro tipo
codificaciones.
Se ha alcanzado el nmero de generaciones mximo especificado.

47
1.2.3.1 Funcin Evaluacin Fitness.

Para el correcto funcionamiento de un Algoritmo Gentico se debe de poseer un mtodo


que indique si los individuos de la poblacin representan o no buenas soluciones al
problema planteado. Por lo tanto para cada tipo de problema que se desee resolver deber
derivarse un nuevo mtodo, al igual que ocurrir con la propia codificacin de los
individuos.

De esto se encarga la funcin de evaluacin o fitness, que establece una medida


numrica de la bondad de una solucin. Esta medida recibe el nombre de ajuste. En la
naturaleza el ajuste (o adecuacin) de un individuo puede considerarse como la
probabilidad de que ese individuo sobreviva hasta la edad de reproduccin y se reproduzca.
Esta probabilidad deber estar ponderada con el nmero de descendientes. Evidentemente
no es lo mismo una probabilidad de reproduccin del 25% en una poblacin de un par de
cientos de individuos que esa misma probabilidad en una poblacin de varios millones.

En el mundo de los algoritmos genticos se emplear esta medicin para controlar la


aplicacin de los operadores genticos. Es decir, permitir controlar el nmero de
selecciones o reproducciones, cruces y mutaciones llevadas a cabo.

La aproximacin ms comn consiste en crear explcitamente una medida de ajuste para


cada individuo de la poblacin. A cada uno de los individuos se les asigna un valor de
ajuste escalar por medio de un procedimiento de evaluacin bien definido. Tal y como
hemos comentado, este procedimiento de evaluacin ser especfico del dominio del
problema en el que se aplica el algoritmo gentico.

Se puede diferenciar cuatro tipos de ajuste o fitness [16]:

Fitness Puro: (, )
Es la medida de ajuste establecida en la terminologa natural del propio problema.
La ecuacin 1.37 establece el clculo del valor de bondad de un individuo i en un
instante t (o generacin).

48

(, ) = |(, ) (, )| (. 1.37)
=1

Siendo:

(, ) = valor deseado para el individuo i en el caso j


(, ) = valor obtenido por el individuo i para el caso j
= Nmero de casos

Por ejemplo, supngase una poblacin de hormigas que deben llenar la despensa de
cara al invierno. La bondad de cada hormiga ser el nmero de piezas de comida
llevadas por ella hasta el hormiguero.

En los problemas de maximizacin, como sera el de las hormigas, los individuos


con un fitness puro elevado sern los ms interesantes. Al contrario, en los
problemas de minimizacin interesarn los individuos con un fitness pudo
reducido.

Fitness Estandarizado: (, )
Para solucionar esta dualidad ante problemas de minimizacin o maximizacin se
modifica el ajuste puro de acuerdo a la ecuacin 1.38.

(, )
(, ) = { (. 1.38)
(, )

En el caso de problemas de minimizacin se emplea directamente la medida de


fitness puro. Si el problema es de maximizacin se resta de una cota superior
del error el fitness puro. Empleando esta mtrica la bondad de un individuo
ser mayor cuanto ms cercano est a cero el valor del ajuste. Por lo tanto, dentro
de la generacin t, un individuo i siempre ser mejor que uno j si se verifica que
(, ) < (, ).

49
Fitness Ajustado: (, )
Se obtiene aplicando la transformacin reflejada en la ecuacin 1.39 al fitness
estandarizado.

1
(, ) = (. 1.39)
1 + (, )

De esta manera, el fitness ajustado tomar siempre valores del intervalo [0..1].
Cuando ms se aproxime el fitness ajustado de un individuo a 1 mayor ser su
bondad.

Fitness Normalizado: (, )
Los diferentes tipos de fitness vistos hasta ahora hacen referencia nicamente a la
bondad del individuo en cuestin. El fitness normalizado introduce un nuevo
aspecto: indica la bondad de una solucin con respecto al resto de soluciones
representadas en la poblacin. Considerando una poblacin de tamao N, se
obtiene segn la ecuacin 1.40.

(, )
(, ) = (. 1.40)

=1 (, )

Al igual que el fitness ajustado, siempre tomar valores del intervalo [0..1], con
mejores individuos cuanto ms prximo est a la unidad. Pero a diferencia de antes,
un valor cercano a 1 no slo indica que es individuo represente una buena solucin
al problema, sino que adems es una solucin destacadamente mejor que las
proporcionadas por el resto de la poblacin.

La suma de los valores fitness normalizado de todos los individuos de una


poblacin dar siempre 1.

50
1.2.3.2 Operadores genticos.

Para el paso de una generacin a la siguiente se aplican una serie de operadores genticos.
El algoritmo gentico bsico utilizado en muchos problemas prcticos se compone
fundamentalmente de tres operadores:

1. Reproduccin Seleccin.
2. Cruce.
3. Mutacin.

1.2.3.2.1 Operador de Reproduccin Seleccin.

La reproduccin es un proceso inicial donde todos los individuos de la poblacin son


evaluados por medio de la funcin objetivo para identificar aquellos con los valores altos
de fitness para hacer copias de estos y quedar en espera de la accin del operador de
cruce, mientras que el resto de la poblacin permanece sin cambios esperando ser
sustituida por los futuros descendientes de su propia generacin.

Este operador selecciona los individuos y los duplica de acuerdo a su valor fitness para
formar una poblacin intermedia, donde esperan para ser procesados (apareados) mediante
la aplicacin de los operadores genticos.

Es evidente que la funcin de evaluacin es quien decide quin sobrevive en cada


generacin, por ser el valor fitness el medio por el cual se hace la discriminacin para la
seleccin de individuos. Esto significa que los individuos con un fitness alto tienen
mayor probabilidad de contribuir con al menos un descendiente para la siguiente
generacin.

Se puede decir que el operador de reproduccin con todo lo que implica, no es ms que una
versin artificial de la seleccin natural o Teora Darwiniana de La supervivencia del
mejor.

51
En la naturaleza por ejemplo, una especie con un fitness alto sera aquella mejor
adaptada al medio ambiente y con caractersticas que le permitan sortear todas las
adversidades que se le presenten. Es decir, con probabilidades altas de sobrevivir en un
medio hostil hasta su etapa de reproduccin. Se pueden construir de varias maneras, las
ms comunes son: seleccin por ruleta, seleccin por torneo.

Seleccin por ruleta

Propuesto por DeJong, es posiblemente el mtodo ms utilizado desde los orgenes de los
Algoritmos Genticos [15].

A cada uno de los individuos de la poblacin se le asigna una parte proporcional a su ajuste
de una ruleta, de tal forma que la suma de todos los porcentajes se la unidad. Los mejores
individuos recibirn una porcin de la ruleta mayor que la recibida por los peores.
Generalmente la poblacin est ordenada en base al ajuste por lo que las porciones ms
grandes se encuentran al inicio de la ruleta. Para seleccionar un individuo basta con
generar un nmero aleatorio del intervalo [0..1] y devolver el individuo situado en esa
posicin de la ruleta.

Es un mtodo muy sencillo, pero ineficiente a medida que aumenta el tamao de la


poblacin (su complejidad es 0(n2)). Presenta adems el inconveniente de que el peor
individuo puede ser seleccionado ms de una vez.

Seleccin por torneo

La idea principal de este mtodo consiste en realizar la seleccin en base a comparaciones


directas entre individuos. Existen dos versiones de seleccin mediante torneo:

Determinstica
Probabilstica.

52
En la versin determinstica se selecciona al azar un nmero p de individuos (generalmente
se escoge p = 2). De entre los individuos seleccionados se selecciona el ms apto para
pasarlo a la siguiente generacin.

La versin probabilstica nicamente se diferencia en el paso de seleccin del ganador del


torneo. En vez de escoger siempre el mejor se genera un nmero aleatorio del intervalo
[0..1], si es mayor que un parmetro p (fijado para todo el proceso evolutivo) se escoge el
individuo ms alto y en caso contrario el menos apto. Generalmente p toma valores en el
rango 0,5 < p 1.

Variando el nmero de individuos que participan en cada torneo se puede modificar la


presin de seleccin. Cuando participan muchos individuos en cada torneo, la presin de
seleccin. Cuando participan muchos individuos en cada torneo, la presin de seleccin es
elevada y los peores individuos apenas tienen oportunidades de reproduccin. Un caso
particular es el elitismo global. Se trata de un torneo en el que participan todos los
individuos de la poblacin con lo cual la seleccin se vuelve totalmente determinstica.
Cuando el tamao del torneo es reducido, la presin de seleccin disminuye y los peores
individuos tienen ms oportunidades de ser seleccionados.

Elegir uno u otro mtodo de seleccin determinar la estrategia de bsqueda del Algoritmo
Gentico. Si se opta por un mtodo con una alta presin de seleccin se centra la bsqueda
de las soluciones en un entorno prximo a las mejores soluciones actuales. Por el contrario,
optando por una presin de seleccin menor se deja el camino abierto para la exploracin
de nuevas regiones del espacio de bsqueda.

1.2.3.2.2 Operador de Cruce.

Una vez terminado el proceso de reproduccin y seleccionado los individuos, stos son
recombinados para producir la descendencia que se insertar en la siguiente generacin.
Tal y como se ha indicado anteriormente el cruce es una estrategia de reproduccin sexual.

Es el principal operador gentico y es a travs de este operador que los individuos con
mejor fitness elegidos de la poblacin intercambian informacin para crear nuevos

53
individuos o descendientes que se espera sean mejores y que formarn parte de la
poblacin de la siguiente generacin, sustituyendo a los individuos de la poblacin que
quedaron fuera durante la reproduccin.

Su importancia para la transicin entre generaciones es elevada puesto que las tasas de
cruce con las que se suele trabajar rondan el 90%.

El operador de cruce ms simple contempla solo un punto de cruce, que se selecciona


aleatoriamente. El cruce no siempre se lleva a cabo en cada par de individuos, su
frecuencia se controla por una probabilidad de cruce (Pc), que usualmente tiene un valor en
el rango de 0,6 a 0,95.

Los diferentes mtodos de cruce podrn operar de dos formas diferentes. Si se opta por una
estrategia destructiva los descendientes se insertarn en la poblacin temporal aunque sus
padres tengan mejor ajuste (trabajando con una nica poblacin esta comparacin se
realizar con los individuos a reemplazar). Por el contrario utilizando una estrategia no
destructiva la descendencia pasar a la siguiente generacin nicamente si supera la
bondad del ajuste de los padres (o de los individuos a reemplazar). La idea principal del
cruce se basa en que, si se toman dos individuos correctamente adaptados al medio y se
obtiene una descendencia que comparta genes de ambos, existe la posibilidad que los genes
heredados sean precisamente los causantes de la bondad de los padres.

Al compartir las caractersticas buenas de dos individuos, la descendencia, o al menos


parte de ella, debera tener una bondad mayor que cada uno de los padres por separado. Si
el cruce no agrupa las mejores caractersticas en uno de los hijos y la descendencia tiene un
peor ajuste que los padres, no significa que se est dando un paso atrs. Optando por una
estrategia de cruce no destructiva garantizamos que pasen a la siguiente generacin los
mejores individuos. Si, an con un ajuste peor, se opta por insertar a la descendencia, y
puesto que los genes de los padres continuarn en la poblacin, aunque dispersos y
posiblemente levemente modificados por la mutacin, en posteriores cruces se podrn
volver a obtener estos padres, recuperando as la bondad estar previamente perdida.

54
Existe una multitud de algoritmo de cruce, los ms empleados son los que se detallarn a
continuacin:

Cruce de 1 punto.
Cruce de 2 puntos.
Cruce uniforme.

Cruce de 1 punto

Es la ms sencilla tcnica de cruce. Una vez seleccionados dos individuos se cortan sus
cromosomas por un punto seleccionado aleatoriamente para generar dos segmentos
diferenciados en cada uno de ellos: la cabeza y la cola. Se intercambian la cola entre los
dos individuos para generar los nuevos descendientes. De esta manera ambos
descendientes heredan informacin gentica de los padres, tal y como puede verse en la
figura 1.21.

En la bibliografa suele referirse a este tipo de cruce con el nombre de SPX (Single Point
Crossover).

Figura 1.21 Cruce de 1 punto (Fuente: Gestal Pose, M., Introduccin a los Algoritmos Genticos).

Cruce de 2 puntos

Se trata de una generalizacin del cruce de 1 punto. En vez de cortar por un nico punto
los cromosomas de los padres como en el caso anterior se realizan dos cortes. Deber
tenerse en cuenta que ninguno de estos puntos de corte coincida con el extremo de los
cromosomas para garantizar que se originen tres segmentos. Para generar la descendencia
se escoge el segmento central de uno de los padres y los segmentos laterales del otro padre
(ver figura 1.22).

55
Figura 1.22 Cruce de 2 puntos (Fuente: Gestal Pose, M., Introduccin a los Algoritmos Genticos).

Generalmente se suele referir a este tipo de cruce con las siglas DPX (Double Point
Crossover).

Generalizando se pueden aadir ms puntos de cruce dando lugar a algoritmos de cruce


multipunto. Sin embargo existen estudios que desaprueban esta tcnica [15]. Aunque se
admite que el cruce de 2 puntos aporta una sustancial mejora con respecto al cruce de un
solo punto, el hecho de aadir un mayor nmero de puntos de cruce reduce el rendimiento
del Algoritmo Gentico. El problema principal de aadir nuevo puntos de cruce radica en
que es ms fcil que los segmentos originados sean corrompibles, es decir, que por
separado quizs pierdan las caractersticas de bondad que posean conjuntamente.

Cruce Uniforme

El cruce uniforme es una tcnica completamente diferente de las vistas hasta el momento.
Cada gen de la descendencia tiene las mismas probabilidades de pertenecer a uno u otro
padre.

Aunque se puede implementar de muy diversas formas, la tcnica implica la generacin de


una mscara de cruce con valores binarios. Si en una de las posiciones de la mscara hay
un 1, el gen situado en esa posicin en uno de los descendientes, se copia el primer padre.
Si por el contrario hay un 0 el gen, se copia el segundo padre. Para producir el segundo
descendiente se intercambian los papeles de los padres, o bien se intercambia la
interpretacin de uno de los ceros de la mscara de cruce.

Tal y como se puede apreciar en la figura 1.23, la descendencia contiene una mezcla de
genes de cada uno de los padres. El nmero efectivo de puntos de cruce es fijo pero ser

56
por trmino medio L/2, siendo L la longitud del cromosoma (nmero de alelos en
representaciones binarias o de genes en otro tipo de representaciones).

Figura 1.23 Cruce Uniforme (Fuente: Gestal Pose, M., Introduccin a los Algoritmos Genticos).

Se suele referirse a este tipo con las siglas UPX (Uniform Point Crossover).

Los tres operadores de cruce vistos hasta ahora son vlidos para cualquier tipo de
representacin del genotipo. Si se emplean genotipos compuestos por valores enteros o
reales pueden definirse otro tipo de operadores de cruce:

Media: el gen de la descendencia toma el valor medio de los genes de los padres.
Tiene la desventaja de que nicamente se genera un descendiente en el cruce de dos
padres.
Media geomtrica: cada gen de la descendencia toma como valor la raz cuadrada
del producto de los genes de los padres. Presenta el problema aadido de qu signo
dar al resultado si los padres tienen signos diferentes.
Extensin: se toma la diferencia existente entre los genes situados en las mismas
posiciones de los padres y se suma al valor ms alto o se resta del valor ms bajo.
Solventa el problema de generar un nico descendiente.

Cruce Heurstico

ste operador propuesto por Wright, es nico debido a las siguientes razones:

1. Utiliza valores de la funcin objetivo para determinar la direccin de la bsqueda.

57
2. Produce nicamente un descendiente.
3. Podra no producir ningn descendiente.

El operador genera un descendiente 3 de dos padres 1 y 2 de acuerdo siguiente regla:

3 = (2 1 ) + 2 (. 1.41)

Donde r es un nmero aleatorio entre 0 y 1, y el padre 2 no es peor que 1 , es decir,


(2 ) (1 )para problemas de minimizacin.

Es posible que el operador genere un descendiente no viable. En tal caso otro valor
aleatorio es generado y otro descendiente creado, si despus de n intentos una nueva
solucin viable no es encontrada, el operador no hace ms intentos y no produce ningn
descendiente.

1.2.3.2.3 Mutacin.

La mutacin de un individuo provoca que alguno de sus genes, generalmente uno slo,
vare su valor de forma aleatoria.

Aunque se pueden seleccionar los individuos directamente de la poblacin actual y


mutarlos antes de introducirlos en la nueva poblacin, la mutacin se suele utilizar de
manera conjunta con el operador de cruce. Primeramente se seleccionan dos individuos de
la poblacin para realizar el cruce. Si el cruce tiene xito entonces uno de los
descendientes, o ambos, se muta con cierta probabilidad pm. Se imita de esta manera el
comportamiento que se da en la naturaleza, pues cuando se genera la descendencia siempre
se produce algn tipo de error, por lo general sin mayor trascendencia, en el paso de la
carga gentica de padres a hijos.

La probabilidad de mutacin es muy baja, generalmente menor al 1%. Esto se debe sobre
todo a que los individuos suelen tener un ajuste menor despus de mutados. Sin embargo
se realizan mutaciones para garantizar que ningn punto del espacio de bsqueda tenga una
probabilidad nula de ser examinado.

58
Tal y como se ha comentado, la mutacin ms usual es el reemplazo aleatorio. Este
consiste en variar aleatoriamente un gen de un cromosoma. Si se trabaja con codificaciones
binarias consistir simplemente en negar un bit. Tambin es posible realizar la mutacin
intercambiando los valores de dos alelos del cromosoma. Con otro tipo de codificaciones
no binarias existen otras opciones:

Incrementar o disminuir a un gen una pequea cantidad generada aleatoriamente.


Multiplicar un gen por un valor aleatorio prximo a 1.

Aunque no es lo ms comn, existen implementaciones de algoritmos genticos en las que


no todos los individuos tienen los cromosomas de la misma longitud. Esto implica que no
todos ellos codifican el mismo conjunto de variables. En este caso existen mutaciones
adicionales como puede ser aadir un nuevo gen o eliminar uno ya existente.

Finalizando, la mutacin consiste en cambiar el valor de una posicin elegida


aleatoriamente de un string (individuo). En el cdigo binario, esto simplemente significa
cambiar un 1 a 0 viceversa en la posicin elegida. Este operador permite la introduccin
de nuevo material gentico en la poblacin; debe ser usado con algn cuidado, con una
probabilidad Pm que usualmente es menor a 0,1.

1.2.3.3 Parmetros bsicos de los algoritmos genticos.

En algoritmos genticos se manejan algunos parmetros, conocidos como parmetros de


control, los cuales determinan la eficiencia de su proceso de convergencia y la calidad de la
solucin al problema planteado. Estos parmetros son:

1. Tamao de la poblacin.
2. Nmero de generaciones.
3. Probabilidad de cruce y mutacin.
4. Tipo de cruce.
5. Intervalo de aproximacin.
6. Nmero de descendientes.

59
1.2.3.3.1 Tamao de la poblacin.

Antes de iniciar con el proceso iterativo de los algoritmos genticos y una vez que se tiene
la funcin de evaluacin y codificado el problema en forma de cromosoma, se debe
especificar el tamao de la poblacin a utilizar, que es la que determina la cantidad de
individuos y en consecuencia, la variedad del espacio de solucin del algoritmo gentico.

La seleccin del tamao de la poblacin est fuertemente ligada con el intervalo de


aproximacin o longitud del cromosoma, de tal forma que, entre mayor sea la longitud del
cromosoma, mayor tendr que ser el tamao de la poblacin. Lo anterior dado que si se
tiene un cromosoma de longitud n codificado en forma de una cadena de l's y 0's se tendr
un espacio de solucin de tamao 2n, de donde se tiene que si se aumenta la longitud del
cromosoma 1 unidad, se tendr un espacio de solucin de tamao (2n + l), lo cual significa
que tendremos un espacio mayor de bsqueda, por lo que al elegir un tamao de poblacin
relativamente pequeo, en cierta forma se desaprovecha el potencial de bsqueda en
paralelo, una de las caractersticas relevantes de los algoritmos genticos.

De cualquier manera, el nmero de individuos en una poblacin puede variar en un amplio


margen dependiendo de la complejidad del problema a resolver, solo debe tomarse en
cuenta que entre mayor sea el tamao de la poblacin, mayor ser el tiempo de ejecucin
del algoritmo.

1.2.3.3.2 Nmero de generaciones.

Como se mencion en el punto anterior, la continuidad del ciclo iterativo de un algoritmo


gentico depende de haber encontrado la solucin ptima o simplemente de satisfacer el
nmero de generaciones determinadas inicialmente (iteraciones). Como se sabe, el
algoritmo gentico realiza una bsqueda de la mejor solucin entre generacin y
generacin esperando que la calidad de los individuos mejore en el transcurso de las
generaciones. Puede suceder que el proceso de convergencia sea muy lento, en otras
palabras, que el mejoramiento de los individuos a travs de las generaciones sea mnimo,
por tanto, si elegimos un nmero de generaciones reducido seguramente no se permitir al
algoritmo encontrar la solucin ptima. Por otro lado, si eligiramos un nmero grande de

60
generaciones, hay ms posibilidades de que se alcance la solucin ptima pero el tiempo
de ejecucin tambin se incrementar. Si asociado a esto, el tamao de la poblacin
tambin es grande, el tiempo de ejecucin crecer an ms. Utilizar un criterio de
convergencia puede ayudar a solucionar en parte este problema. Sin embargo, el nmero
de generaciones necesarias para alcanzar la solucin es funcin de la complejidad del
problema y la aplicacin de los operadores bsicos del algoritmo gentico (cruce y
mutacin).

1.2.3.3.3 Probabilidad de cruce y mutacin.

La magnitud de la probabilidad con que se apliquen los operadores de cruce y mutacin


impactan considerablemente la convergencia de los algoritmos genticos, ya que son estos
operadores, la base de dichos algoritmos. Como se mencion antes, el operador de cruce es
el que promueve el intercambio de informacin entre individuos, por lo que si se maneja
una baja probabilidad en este operador, el intercambio de informacin ser mnimo y como
consecuencia el proceso de convergencia ser lento. Por otra parte, si el operador de
mutacin, el cual modifica la estructura de los cromosomas, utiliza una probabilidad alta
de mutacin, se corre el riesgo de perder material gentico potencialmente til, aunque en
ocasiones utilizar una alta probabilidad de mutacin puede ser de utilidad como se ver en
la seccin de resultados.

1.2.3.3.4 Tipo de cruce.

El tipo de cruce empleado impacta directamente en la calidad y el nmero de generaciones


requeridas para alcanzar una solucin. Esto como consecuencia de las variantes que existen
entre uno y otro tipo de cruce, en otras palabras, la forma en que se lleva a cabo el
intercambio de informacin entre individuos.

Aunque el intercambio de informacin entre individuos se lleve a cabo prcticamente de


manera aleatoria, el tipo de cruce elegido para determinado problema influye
definitivamente en el proceso de convergencia. Mientras que para algunos casos el cruce
uniforme puede que sea el mejor, para otros el de un solo punto puede que lo sea y no se
descarta la posibilidad de que en algunos otros casos funcionen los dos tipos de cruce. No

61
obstante, esto nicamente se puede determinar a travs de pruebas y experiencias sobre el
problema que estemos trabajando.

Algo que s est claro es que en general conviene utilizar una longitud de cromosoma
pequeo para tratar de minimizar las posibles prdidas de bloques de informacin til
durante el cruce, sobre todo cuando se utiliza cruce de un solo punto.

1.2.3.3.5 Intervalo de aproximacin.

Este parmetro se refiere al nmero de bits utilizados para codificar el conjunto de


parmetros del problema. De aqu que por ejemplo para codificacin binaria la exactitud de
la solucin es funcin del intervalo de aproximacin empleado. Este parmetro tiene una
implicacin directa en la carga computacional por la cantidad de memoria requerida por el
algoritmo.

1.2.3.3.6 Nmero de descendientes por cruce.

El nmero de descendientes por cruce determina la variedad del espacio de solucin entre
generaciones y en cierta forma tambin el camino a seguir en la bsqueda de la solucin
ptima; ya que por ejemplo, si se tienen dos descendientes por cruce, el camino que tome
la convergencia estar definido en gran parte por los mejores individuos de las primeras
generaciones. Mientras que cuando se tiene un solo descendiente por cruce, existe mayor
diversidad de individuos para la siguiente generacin. Esto se cumple tanto para cruce
uniforme como para cruce de un solo punto.

1.2.3.4 Tcnicas para mejorar el desempeo de los algoritmos genticos.

Con el afn de mejorar el desempeo de los algoritmos genticos, en lo que se refiere a la


calidad de las soluciones encontradas y reducir los tiempos de ejecucin, adicionalmente a
lo ya visto hasta este momento, se aplican algunas tcnicas especiales, tales como el
elitismo y los factores de penalizacin entre otras. Dichas tcnicas por lo general estn
muy relacionadas con el fitness de los individuos en la poblacin.

62
1.2.3.4.1 Elitismo.

El proceso de reproduccin consiste en seleccionar de la poblacin inicial los mejores


individuos (con alto fitness), que posteriormente sern sometidos a los operadores de
cruce y mutacin, donde muy probablemente sern modificadas las estructuras de los
cromosomas padres por la accin de los operadores.

Con el fin de evitar la prdida del mejor individuo de cada generacin, se hace una copia
de este, que pasar intacta a la prxima generacin, es decir, no participar en el proceso
de cruce ni mutacin. A esto se le llama elitismo.

Para cada problema particular se tendr que definir el nmero de copias lite por
generacin; esto es, cuntos de los diferentes mejores individuos pasarn intactos a la
siguiente generacin.

1.2.3.4.2 Factores de penalizacin.

En lo que respecta a los factores de penalizacin, es una tcnica ms directa que acta
modificando el valor fitness de todos los individuos de cada generacin a travs de una
modificacin directa en la funcin de evaluacin, con el nico objetivo de hacer una mejor
discriminacin de los individuos durante el proceso de reproduccin y as apresurar la
evolucin de los individuos generacin tras generacin.

Por ejemplo, una manera sencilla de aplicar factores de penalizacin estara dada por una
variable (Cte)en la funcin de evaluacin:

(%) = (1 % + ) (. 1.42)

Se podra condicionar el valor de la variable Cte para que cuando el porcentaje de error sea
mayor de 0.5, sta tome el valor de 0.3, de tal forma que el fitness para el individuo
evaluado se reduzca y en el momento de la reproduccin sea descartado fcilmente como
posible cromosoma padre. Por otro lado, cuando el porciento de error sea menor de 0.5
pero mayor de 0.2 porciento, que la variable Cte tome el valor de 0.1, de tal forma que su

63
valor fitness se vea afectado solo un poco y sea ms eficaz la seleccin de los individuos
durante la reproduccin. As se asegura que nicamente los mejores individuos de cada
generacin sean seleccionados durante el proceso de reproduccin.

1.2.3.4.3 Factores de prioridad.

Esta tcnica, al igual que las dos anteriores, modifica el valor fitness de los individuos, solo
que lo hace de manera diferente. Esta tcnica se aplica en funciones de evaluacin un poco
ms elaboradas, es decir, compuestas de ms de un elemento o subfuncin de costo. Su
finalidad es la de modificar la funcin de evaluacin de forma tal que uno de los elementos
de la funcin tenga prioridad o mayor peso que l o los otros elementos que componen la
funcin y as, el valor fitness del individuo evaluado, est definido en mayor parte por el
elemento prioritario.

Por ejemplo, para una funcin de evaluacin del tipo:

(1, 2 ) = (1 %1) + (1 %2). ( ) (. 1.43)

Si la variable fP se define con un valor mayor que uno, es obvio que el valor que tome la
funcin estar dominado por el valor que tenga (1 - %err2), mientras que el elemento (1 -
%err1) afectar en menor medida el resultado final de la funcin.

1.2.3.4.4 Ciclo de un algoritmo gentico con elitismo, factores de prioridad y


factores de participacin.

A continuacin se muestra un diagrama de flujo para un algoritmo gentico que incluye


elitismo y una funcin de evaluacin con factores de prioridad y penalizacin.

64
Figura 1.24 Algoritmo gentico con elitismo, factores de prioridad y penalizacin (Fuente: Olache, A.
Aplicacin de la tcnica de Algoritmos Genticos al Problema del Despacho Econmico. Tesis Maestra).

65
1.3 SISTEMA INTERCONECTADO NACIONAL (SIN) [17]

1.3.1 Introduccin [17].

El Sistema Interconectado Nacional (SIN), es el sistema elctrico conformado de


instalaciones de generacin, transmisin y distribucin que operan en forma coordinada
para suministrar energa elctrica en los departamentos de La Paz, Beni, Santa Cruz,
Cochabamba, Oruro, Potos y Chuquisaca. La demanda total en el SIN equivale,
aproximadamente, al 90% de la demanda del pas.

El Sistema Troncal de Interconexin (STI) es la parte del SIN que comprende al sistema de
transmisin en alta tensin en el que los Agentes inyectan, transmiten y retiran energa
elctrica.

El Mercado Elctrico Mayorista (MEM) est compuesto por los agentes que operan en el
SIN (empresas de generacin, transmisin, distribucin y clientes no regulados), que
venden y compran energa elctrica sobre la base de precios referenciales y/o precios spot,
con excepcin de la transmisin.

El Comit Nacional de Despacho de Carga (CNDC) es una entidad sin fines de lucro que
se encarga de informar sobre el funcionamiento del Sistema Interconectado Nacional (SIN)
como resultado del despacho de carga efectuado y sobre el desarrollo del Mercado
Elctrico Mayorista (MEM). Uno de sus principales objetivos institucionales de la CNDC
ha sido la consolidacin de sus funciones de apoyo al Ministerio de Hidrocarburos y
Energa para la elaboracin del Plan Optimo de Expansin del SIN [16].

1.3.2 Caractersticas del Sistema Interconectado Nacional (SIN) [16].

El SIN se caracteriza por tener cuatro reas bien definidas: Norte (La Paz y Beni), Oriental
(Santa Cruz), Central (Oruro, Cochabamba) y Sur (Potos, Chuquisaca). Cada rea cuenta
con generacin local; en el rea Norte predominan las centrales hidroelctricas de pasada,
en el rea Oriental las centrales termoelctricas y en el rea Centro-Sur las centrales
hidroelctricas de embalse y termoelctricas. La red de transmisin se utiliza

66
principalmente para intercambios de energa y potencia que optimizan el despacho de
carga del SIN [17].

El consumo de energa en el SIN, est distribuido principalmente en las reas Oriental


(Santa Cruz) con el 35.6 %, Norte (La Paz) con el 24.2 % y el resto del SIN con el 40.2 %.
Asimismo, respecto a la gestin anterior, se observa un crecimiento importante en el
consumo de energa: SEPSA, CRE, ELFEC, ELFEO, ELECTROPAZ y CESSA;
contrariamente los Consumidores No Regulados en su conjunto reflejan una desaceleracin
de su crecimiento respecto de aos anteriores.

Figura 1.25 Compras de Energa en el MEM (GWh) 2010 (Fuente: Comit Nacional de Despacho de
Carga (CNDC) - Memoria 2011, Resultados de Operacin del Sistema Interconectado Nacional (SIN)).

En el Grfico 1.25 se muestra la participacin porcentual de las empresas Distribuidoras y


Consumidores No Regulados en las compras totales de energa en el MEM durante la
Gestin 2010.

En el Grfico 1.26 se muestra la Capacidad de Generacin durante el ao 2010


considerando los diferentes tipos de centrales elctricas.

67
Figura 1.26 Capacidad de Generacin por tipo de Central (MW) AO 2010 (Fuente: Comit Nacional de
Despacho de Carga (CNDC) - Memoria 2011, Resultados de Operacin del Sistema Interconectado
Nacional (SIN)).

Otro aspecto importante es que cada rea cuenta con generacin local, en el rea norte (La
Paz) con centrales de pasada, en el rea oriental con centrales trmicas y en el rea Centro-
Sur con centrales de embalse y trmicas. La red de transmisin se utiliza principalmente
para intercambios de energa y potencia que optimizan el despacho de carga del SIN o
complementan los dficit de un rea.

El SIN opera en el marco de la Ley de Electricidad y reglamentacin complementaria,


basado en el aprovechamiento integral y sostenible de los recursos energticos, la
competencia en generacin, la presencia de empresas no integradas y el acceso libre a la
transmisin.

La demanda del SIN est representada por la demanda de los Consumidores Regulados, en
su mayora residenciales, que son atendidos por las empresas de Distribucin y por la
demanda de los Consumidores No Regulados o Grandes consumidores. Para operar en el
Mercado Elctrico Mayorista (MEM), tanto las empresas de Distribucin como los
Consumidores No Regulados deben estar constituidos como Agentes del Mercado.

En el Sistema Interconectado Nacional la demanda comprende, aproximadamente, un


tercio del rea de La Paz, un tercio del rea de Santa Cruz y el resto se distribuye entre
Cochabamba, Oruro, Chuquisaca y Potos.

68
Los consumidores regulados en el MEM son atendidos por las siguientes empresas
distribuidoras: CRE en Santa Cruz, ELECTROPAZ en La Paz, ELFEC en Cochabamba,
ELFEO en Oruro, CESSA en Chuquisaca y SEPSA en Potos. Recientemente se han
incorporado las demandas de las poblaciones de Yucumo, San Borja, San Ignacio de
Moxos y Trinidad del departamento del Beni, que son atendidas por la empresa ENDE. El
departamento de Tarija, se integrar al SIN el ao 2012 con los sistemas de Camargo, El
Puente, Tarija y Gran Chaco.

Los Consumidores No Regulados son la Empresa Metalrgica Vinto, COBOCE, la


Empresa Minera Inti Raymi y la Empresa Minera San Cristbal. Se prev el ingreso de
proyectos industriales y mineros como ser: proyecto de Litio de COMIBOL, las fbricas de
cemento de empresa ECEBOL, el Complejo Metalrgico de Karachipampa y la Empresa
Minera Huanuni, los cuales se constituirn en nuevos consumidores no regulados.
Adicionalmente existen grandes demandas mineras como San Bartolom, ubicado en las
cercanas de la ciudad de Potos y San Vicente en el rea de Punutuma que son atendidas
por la empresa distribuidora SEPSA [17].

Durante el ao 2010, el consumo de energa elctrica en el Mercado Elctrico Mayorista


present un crecimiento de 7,7% con relacin al consumo de energa registrado el 2009;
como se muestra en el cuadro 1.2, el consumo de energa registrado en la gestin 2010,
alcanz el valor de 5,814.0 GWh.

Tabla 1.2 Consumo de Energa Elctrica (GWh).

(Fuente: Comit Nacional de Despacho de Carga (CNDC) - Memoria 2010, Resultados de Operacin del
Sistema Interconectado Nacional (SIN)).

69
En la figura 1.27 Mostramos el Sistema Interconectado Nacional (SIN) en todo el pas.

Figura 1.27 Sistema Interconectado de Bolivia (Fuente: Comit Nacional de Despacho de Carga (CNDC) -
Plan ptimo de expansin del Sistema Interconectado Nacional 2012 - 2022).

1.3.3 Costos Marginales de Generacin [16].

El costo marginal promedio anual de la gestin 2010 fue 17.57 US$/MWh (sin impuestos),
con un mnimo de 15.39 US$/MWh y un mximo de 18.91 US$/MWh.

70
Tabla 1.3 Costo Marginal de Generacin (US$/MWh) AO 2010 (Sin IVA)

(Fuente: Comit Nacional de Despacho de Carga (CNDC) - Memoria 2010, Resultados de Operacin del
Sistema Interconectado Nacional (SIN)).

En el cuadro 1.3 se puede observar que durante el ao 2010, los costos marginales de
generacin fueron superiores a los previstos, debido principalmente al incremento de la
demanda y a la menor disponibilidad del parque generador.

El costo marginal promedio anual de generacin resultante del despacho de carga realizado
en la gestin de 2010 (17.57 US$/MWh), result ser 3.6% superior al costo marginal
promedio del ao 2009 (16.96 US$/MWh).

71
1.4 LENGUAJE DE PROGRAMACIN.

El lenguaje de programacin que se utilizar para desarrollar el algoritmo basado en


lambda () es el lenguaje de programacin JAVA, a continuacin se har una breve
explicacin del mismo y las ventajas de porque ha sido utilizado.

1.4.1 Java.

El lenguaje JAVATM fue creado por Sun Microsystems Inc. en un proceso por etapas que
arranca en 1990, ao en el que Sun cre un grupo de trabajo, liderado por James Gosling,
para desarrollar un sistema para controlar electrodomsticos e incluso PDAs o Asistentes
Personales (pequeos ordenadores) que, adems, permitiera la conexin a redes de
ordenadores. Se pretenda crear un hardware polivalente, con un Sistema Operativo
eficiente (SunOS) y un lenguaje de desarrollo denominado Oak (roble), el precursor de
Java.

Java es un lenguaje de desarrollo de propsito general, y como tal es vlido para realizar
todo tipo de aplicaciones profesionales.

Entonces, es simplemente otro lenguaje ms? Definitivamente no. Incluye una


combinacin de caractersticas que lo hacen nico y est siendo adoptado por multitud de
fabricantes como herramienta bsica para el desarrollo de aplicaciones comerciales de gran
repercusin.

Una de las caractersticas ms importantes es que los programas ejecutables, creados por
el compilador de Java, son independientes de la arquitectura. Se ejecutan
indistintamente en una gran variedad de equipos con diferentes microprocesadores y
sistemas operativos.

De momento, es pblico. Puede conseguirse un JDK (Java Developer's Kit) o Kit


de desarrollo de aplicaciones Java gratis.
Permite escribir Applets (pequeos programas que se insertan en una pgina
HTML) y se ejecutan en el ordenador local.

72
Se pueden escribir aplicaciones para intrarredes, aplicaciones cliente/servidor,
aplicaciones distribuidas en redes locales y en Internet.
Es fcil de aprender y est bien estructurado.
Las aplicaciones son fiables. Puede controlarse su seguridad frente al acceso a
recursos del sistema y es capaz de gestionar permisos y criptografa. Tambin,
segn Sun Microsystems, la seguridad frente a virus a travs de redes locales e
Internet est garantizada. Aunque al igual que ha ocurrido con otras tecnologas y
aplicaciones, se han descubierto, y posteriormente subsanado, agujeros en la
seguridad de Java.

1.4.1.1 Caractersticas del lenguaje.

Es intrnsecamente orientado a objetos.


Funciona perfectamente en red.
Aprovecha caractersticas de la mayora de los lenguajes modernos evitando sus
inconvenientes. En particular los del C++ y PHP.
Tiene una gran funcionalidad gracias a sus libreras (clases).
No tiene punteros manejables por el programador, aunque los maneja interna y
transparentemente.
Genera aplicaciones con pocos errores posibles.
Incorpora Multi-Threading (para permitir la ejecucin de tareas concurrentes dentro
de un mismo programa).

El lenguaje Java puede considerarse como una evolucin del lenguaje C, C++ y PHP. La
sintaxis es parecida a la de estos lenguajes y no acarrea los inconvenientes de estos.

Java estrictamente hablando es interpretado, necesita de un proceso previo de compilacin.


Una vez compilado el programa, se crea un fichero que almacena lo que se denomina
bytecodes j_code (pseudocdigo prcticamente al nivel de cdigo de mquina). Para
ejecutarlo, es necesario un intrprete, la JVM (Java Virtual Machine) Mquina Virtual
Java. De esta forma, es posible compilar el programa en una estacin UNIX LINUX y
ejecutarlo en otra con WINDOWS utilizando la mquina virtual Java para WINDOWS.

73
Esta JVM se encarga de leer los bytecodes y traducirlos a instrucciones ejecutables
directamente en un determinado microprocesador, de una forma bastante eficiente.

1.4.2 Algoritmos genticos en Java.

Para el desarrollo de Algoritmos Genticos en Java se necesitar la librera JGAP que son
las siglas de Java Genetic Algorithm Package (paquete de algoritmos genticos para
Java). Este es un componente de programacin de algoritmos genticos que se utiliza como
un framework.

Este paquete JGAP contiene clases e interfaces para representar los algoritmos genticos
en Java:

Genes (Gene)
Cromosomas (Chromosome)
Individuos (IChromosome)
Poblacin (Genotype)
Funcin de ajuste fitness (FitnessFunction)
Operadores genticos.

Se trata de una solucin genrica, sin relacin alguna con un problema en particular. Por
esa razn se deben crear nuevas clases que heredan o implementan las clases e interfaces
mencionadas. As se adapta JGAP al problema especfico que se quiere solucionar.

JGAP tambin se encarga de la simulacin de un ambiente para que se desarrolle y


sobreviva la mejor solucin. El motor gentico crea varias soluciones (individuos)
aleatoriamente con el mtodo randomInitialGenotype(). Aplica operadores genticos
(mutacin y combinacin) para que surjan nuevas soluciones con el mtodo evolve(). Pone
a prueba cada solucin con la funcin de ajuste evaluate(). Y por ltimo retorna el
cromosoma del individuo mejor adaptado con getFittestChromosome().

74
CAPTULO II

INGENIERA DEL PROYECTO

2.1 ALGORITMO GENTICO PARA EL PROBLEMA DE DESPACHO


ECONMICO.

2.1.1 Introduccin.

El problema de despacho econmico para un sistema de potencia real es sin duda un


problema complejo de optimizacin, para el cual cualquier mejora en su solucin
representa un ahorro considerable econmicamente hablando. De aqu la importancia de
las soluciones propuestas por los mtodos que se utilicen, estn lo ms cerca posible del
punto ptimo de operacin real.

Uno de estos mtodos son los algoritmos genticos, que es el mtodo que vamos aplicar en
este proyecto. Sin embargo, la calidad de las soluciones obtenidas a partir de ste mtodo
depende en gran medida de la representacin o de la codificacin que se haga del problema
en forma de cromosoma y de la correcta evaluacin de dichos cromosomas mediante una
bien estructurada funcin de evaluacin.

75
2.1.2 Codificacin.

Como ya se mencion antes, la aplicacin de la tcnica de algoritmos genticos requiere


primeramente que se codifiquen los parmetros del problema en forma de cromosoma, a
partir del cual se crea la poblacin inicial de modo que cada cromosoma represente una
posible solucin del problema.

Para el caso del problema en estudio, el despacho econmico de carga, las posibles
soluciones o la solucin al problema no es ms que un esquema de generacin de un
conjunto de generadores en lnea durante el estudio.

En este proyecto se utilizar una tcnica de codificacin, que aprovecha el criterio de


optimizacin propuesto por tcnicas tradicionales de solucin que dice que el punto ptimo
de operacin es aquel en el que los costos incrementales de todas y cada una de las
mquinas en lnea son iguales, codificar los costos incrementales del sistema. En esta
tcnica se considera la red de transmisin y los factores de penalizacin.

2.1.2.1 Codificacin de costos incrementales.

La codificacin de costos incrementales se basa en el criterio de optimizacin para el


problema de despacho econmico clsico que dice que el punto ptimo de operacin se
alcanza cuando los costos incrementales de todas y cada una de las unidades generadoras
son iguales.

Con esto, se abre la posibilidad de buscar este punto de operacin directamente,


satisfaciendo tambin las dems restricciones. De esta forma, el algoritmo nicamente
propondr soluciones basadas en un mismo valor de costo incremental para todas las
unidades generadoras en el sistema.

La codificacin debe disearse cuidadosamente, para utilizar la habilidad que tiene el


algoritmo gentico de transferir informacin eficazmente, entre el cromosoma y la funcin
objetivo del problema.

76
La aproximacin propuesta utiliza el sistema de igual costo incremental () como la base
de su criterio. El nico parmetro codificado es el sistema de costo incremental donde:

0 1 (. 2.1)

La ventaja de usar el sistema de costo incremental como parmetro codificado es que el


nmero de bits del cromosoma ser completamente independiente del nmero de unidades
generadoras. Esto es particularmente conveniente en los sistemas de gran potencia.

La solucin del problema depende de cuantos bits se utilice para representar . Sin
embargo mientras exista ms bits codificados es ms lenta la convergencia. En este
proyecto utilizaremos 15 bits para representar el costo incremental .

Figura 2.1 Esquema de codificacin de . (Fuente: Po-Hung Chen; Hong Chan, Large-scale economic
dispatch by genetic algorithm, IEEE transaction on Power Systems, Vol. 10, N 4, Noviembre 1995, pp
(1919-1926).)

La evaluacin de un cromosoma se cumple descifrando decodificando el cordn del


cromosoma y comprobando el valor de aptitud del cromosoma que usa el parmetro
codificado. La decodificacin de puede expresarse de la siguiente manera:

15

= ( 2 ) {0, 1} (. 2.2)
=1

Donde:

= valor del bit de la posicin i (1 0).

Posteriormente la relacin entre el costo incremental real y el costo incremental del


sistema normalizado es:

77
= + . ( ) (. 2.3)

Donde:

= Costo incremental mnimo del sistema.


= Costo incremental mximo del sistema.

Estos costos incrementales se obtienen calculando los costos incrementales de todas las
unidades generadoras conectadas al sistema considerando sus respectivas potencias
mximas y mnimas de generacin.

Una vez calculado el costo incremental real , se calculan las potencias de generacin
de cada unidad conectada al sistema de la siguiente manera:

Teniendo:

( )
= = 0 (. 1.11)
( )

( ) = = 0 + 1 + 2 2 + 3 3 + + (. 1.34)

Para el tipo de curva de costo que analizaremos en este proyecto, la funcin de costo
sera una funcin cuadrtica:

( ) = 0 + 1 . + 2 . 2 [$/]

deducimos que:

( )
=
( )
y

= 1 + 2. 2 .

78
Entonces, para calcular las potencias de generacin de cada unidad, tenemos:

1
= [] (. 2.4)
2. 2

Donde:

i = 1,2,, nmero de unidades generadoras conectadas al sistema.

Cuando la potencia calculada para alguna unidad generadora a partir de rebase sus
lmites de potencia mximo y mnimo ( y ), se fija la generacin al valor lmite
ms cercano al obtenido mediante dicho clculo. Es decir, si el valor de generacin
obtenido viola o sobrepasa el lmite superior, se ignora el valor obtenido y se fija la
generacin al valor mximo permitido ( ). En consecuencia, el costo incremental del
generador ser distinto al costo incremental del sistema. En cierta forma se independiza de
este. Sin embargo, esto no afecta los resultados.

Una vez obtenido las potencias de cada unidad, se calcula la potencia total de generacin:

= (. 1.7)
=1

A continuacin se calcula el balance generacin demanda, cuya diferencia llamaremos :

= = 0 (. 1.8)

= | | = 0

Una vez obtenidos el valor del costo incremental y calculado la potencia de cada unidad ,
la potencia total de generacin y la funcin desviacin de la carga o error , es posible
evaluar el nivel de aptitud para la solucin que se propone analizando cmo sta satisface

79
las restricciones impuestas por el problema y asignarle un valor representativo a dicho
nivel de aptitud.

La asignacin del nivel de aptitud para cada individuo en algoritmos genticos se hace a
travs de la funcin de evaluacin. Al igual que el mtodo de codificacin est definida por
el programador.

Por ltimo, se calcula el valor fitness para cada individuo en la poblacin con la siguiente
funcin de evaluacin:

1
=
(. 2.5)
1 + . ( )

0 1

Donde:

= Constante.
= Funcin desviacin de la carga error.

El valor fitness estar afectado inversamente proporcional por la magnitud de la funcin


desviacin de la carga , la aptitud de la funcin de evaluacin fitness se encuentra en el
rango entre 0 y 1, donde 1 es el valor mximo, y se alcanzar cuando la funcin desviacin
de la carga error ser cero. El valor de la constante es entera y positiva que ayudar a
ponderar el efecto de dicha funcin de desviacin, esta constante se elige de acuerdo al
nmero de individuos de la poblacin.

Este procedimiento se repite para cada individuo de la poblacin, para as crear una nueva
poblacin de mejores soluciones.

80
2.1.3 Seleccin de parmetros.

Como otros mtodos estocsticos los algoritmos genticos tienen varios parmetros que
deben seleccionarse. Estos son: El tamao de poblacin, la probabilidad de cruzamiento y
probabilidad de mutacin.

Normalmente, en una poblacin de tamao relativamente pequeo, se recomienda la


probabilidad de cruzamiento (crossover) alta y la probabilidad de mutacin baja.

2.1.4 Diagrama de flujo del proceso de optimizacin.

La figura 2.1 muestra el diagrama de flujo general del procedimiento de optimizacin para
el despacho econmico. El proceso de evaluacin se muestra en la figura 2.2

Figura 2.1 Diagrama de flujo general del proceso de optimizacin para el despacho econmico (Fuente:
Elaboracin propia).

81
A seguir vemos la figura 2.2 que nos muestra el proceso de evaluacin del algoritmo
gentico.

Figura 2.2 Proceso de evaluacin detallado (Fuente: Elaboracin propia)

82
2.2 SIMULACIN MANUAL DE UN ALGORITMO GENTICO.

En esta parte se realizar la simulacin manual de un algoritmo gentico aplicado a un


problema de despacho econmico, donde es posible ver a detalle el funcionamiento de los
tres operadores que intervienen en el algoritmo gentico bsico y evaluar el proceso de
convergencia.

Para este caso se utilizar una cadena de 15 bits de longitud en cdigo binario (1s y 0s).

A continuacin se muestran datos de un sistema de prueba donde se resuelve el problema


de despacho econmico bsico utilizando algoritmos genticos, estos datos fueron tomados
de la referencia [23].

Tabla 2.1 Datos de generadores


Unidades a0 a1 a2 Pmin [MW] Pmx [MW]
1 561 7,92 0,00156 100 600
2 310 7,85 0,00194 100 400
3 78 7,97 0,00482 50 250
(Fuente: Saada, H.; Power Systems Analysis, Mc Graw Hill, 1999)

Como se mencion, los parmetros del problema se codificarn en forma de una cadena de
nmeros binarios de 15 bits de longitud con la que se muestra en la siguiente figura.

Figura 2.3 Cromosoma de 15 bits.

Para evaluar el valor fitness de cada individuo es necesario primeramente decodificar la


informacin contenida en su cadena de bits. Para hacer esto utilizaremos la ecuacin 2.2,
con lo cual obtendremos el valor de costo incremental normalizado propuesto por cada
individuo como posible solucin.

15

= ( 2 ) {0, 1} (. 2.2)
=1

83
Una vez decodificada la informacin, se calcula el valor fitness siguiendo el procedimiento
que se muestra a continuacin:

Calculamos , costo incremental real mediante la ecuacin 2.3:

= + . ( ) (. 2.3)

Luego se calculan las potencias de cada mquina con la ecuacin 2.4:

1
= [] (. 2.4)
2. 2

Una vez obtenido la potencia de cada mquina, se calcula la potencia total de generacin,
con la ecuacin 1.7:

= (. 1.7)
=1

Luego se calcula el balance de generacin demanda que en este caso es el error:

= = 0 (. 1.8)

= | | = 0

Por ltimo, se calcula el valor fitness para cada individuo en la poblacin con la funcin de
evaluacin:

1
=
(. 2.5)
1 + . ( )

2.2.1 Parmetros bsicos.

Para este problema en particular los valores de nuestros parmetros bsicos sern:

84
Tamao de poblacin = 20
Nmero de generaciones = 10
Tipo de cruce = Cruce de un solo punto.
Nmero de descendientes = 2
Probabilidad de Cruce = 0.8
Probabilidad de Mutacin = 0.1

2.2.2 Poblacin inicial.

La poblacin inicial se crea aleatoriamente. Se forman 20 distintas cadenas de 15 bits cada


una.
Tabla 2.2 Poblacin inicial
1.- 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0
2.- 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1
3.- 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1
4.- 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1
5.- 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1
6.- 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0
7.- 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0
8.- 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0
9.- 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1
10.- 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1
11.- 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1
12.- 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1
13.- 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1
14.- 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1
15.- 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1
16.- 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1
17.- 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0
18.- 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1
19.- 0 1 0 0 0 1 1 1 1 0 0 1 0 1 1
20.- 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1
(Fuente: Elaboracin propia)

2.2.3 Reproduccin.

Para iniciar el proceso de reproduccin, se calculan los fitness de todos los individuos en la
poblacin, para posteriormente elegir nicamente los ms aptos. Esto ltimo se hace
siguiendo el procedimiento descrito a continuacin.

85
Se calcula el porcentaje del fitness total que representa el individuo evaluado.

()
%() = (. 2.6)
20
=1 ()

Como es de esperarse los individuos con ms alto porcentaje tendrn mayor probabilidad
de ser seleccionados durante la reproduccin.

2.2.4 Cruce.

El tipo de cruce que se va a utilizar es el cruce de un punto.

Ejemplo:
Individuo A 0 1 0 0 0 1 0 0 | 0 1 0 1 1 0 1
Individuo B 0 1 1 0 1 0 1 1 | 1 0 0 0 0 1 1

Con k = 8

Individuo A' 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1
Individuo B' 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1

| representa el punto de cruce.

2.2.5 Mutacin.

La mutacin, que consiste en cambiar los 0s por 1s y viceversa en las cadenas de bits
aleatoriamente y con cierta probabilidad, se realizar de la siguiente forma: dado que los
parmetros bsicos dicen que la probabilidad de mutacin a utilizar es de 0.1 y se tienen un
total de 300 bits en la poblacin (nmero de individuos por bits por individuo), tendremos
300x0.1 mutaciones por generacin, la eleccin del bit que cambia es aleatoria. De modo
que para:

86
Individuo A' 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1

Con mutacin en los bits 4 y 9

Individuo A'' 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1

y para

Individuo B' 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1

Con mutacin en los bits 5 y 13

Individuo B'' 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1

2.2.6 Resultados.

Tabla 2.3 Resultados de la primera generacin


Individuos Generacin 1 Fitness %Fitness
1.- 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0.32983 10,50
2.- 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0.23328 7,43
3.- 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0.36379 11,59
4.- 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0.07584 2,42
5.- 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0.05752 1,83
6.- 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0.19243 6,13
7.- 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0.24691 7,86
8.- 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0.08235 2,62
9.- 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0.27894 8,88
10.- 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0.05643 1,80
11.- 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0.08671 2,76
12.- 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0.23783 7,57
13.- 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0.12127 3,86
14.- 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0.05043 1,61
15.- 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0.16042 5,11
16.- 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0.07407 2,36
17.- 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0.19738 6,29
18.- 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0.06553 2,09
19.- 0 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0.16521 5,26
20.- 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0.06382 2,03
(Fuente: Elaboracin propia)

87
Tabla 2.4 Resultados de la segunda generacin.
Individuos Generacin 2 Fitness %Fitness
1.- 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0.38531 5,72
2.- 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0.39380 5,85
3.- 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0.27459 4,08
4.- 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0.22797 3,39
5.- 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0.14331 2,13
6.- 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0.28616 4,25
7.- 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0.42569 6,32
8.- 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0.36846 5,47
9.- 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0.61403 9,12
10.- 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0.31066 4,61
11.- 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.21487 3,19
12.- 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0.60350 8,96
13.- 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0.11841 1,76
14.- 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0.45160 6,71
15.- 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0.65244 9,69
16.- 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0.18772 2,79
17.- 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0.11370 1,69
18.- 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0.44028 6,54
19.- 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0.26846 3,99
20.- 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0.25342 3,76
(Fuente: Elaboracin propia)

Tabla 2.5 Resultados de la dcima generacin.


Individuos Generacin 10 Fitness
1.- 0 1 1 0 1 1 0 1 1 0 0 0 1 0 0 0.94664
2.- 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0.26846
3.- 0 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0.48328
4.- 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0.88180
5.- 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0.99999
6.- 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0.41437
7.- 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0.35591
8.- 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0.33866
9.- 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0.32960
10.- 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0.67747
11.- 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0.33065
12.- 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0.32203
13.- 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0.55039
14.- 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0.60312
15.- 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0.57094
16.- 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0.34356
17.- 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0.52753
18.- 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0.65604
19.- 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 0.46372
20.- 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0.44028
(Fuente: Elaboracin propia)

88
Como se puede ver en las tablas de resultados por generacin, en la dcima generacin se
alcanza una solucin ptima por parte del individuo 5 con un fitness de 0.99999 que
corresponde a la siguiente solucin:

Tabla 2.6 Resultados de la operacin con el 5to individuo.


P1 P2 P3 Fc
(MW) (MW) (MW) ($us)
Sin prdidas 393,43700 334,41326 122,14973 9,147523 8194,037
Con prdidas 435,42521 299,81309 130,58523 9,527435 8344,207
(Fuente: Elaboracin propia)

Esta solucin la realiz el programa Dispatch AG v1.0 la cual se detalla el cdigo de


lenguaje de programacin en Anexos B (pag. 145).

A continuacin se presenta la solucin para el problema resuelto arriba utilizando un


mtodo tradicional (mtodo de Lagrange).

Como primer paso se plantean las funciones de costo para cada generador con los
parmetros mostrados en la tabla.

(1 ) = 0,00156. 12 + 7,92. 1 + 561

(2 ) = 0,00194. 22 + 7,85. 2 + 310

(3 ) = 0,00482. 32 + 7,97. 3 + 78

Se formula la funcin de costo para el despacho de las tres unidades.

() = (1 ) + (2 ) + (3 )

Calculamos el Lagrangiano para el sistema de ecuaciones e igualamos a cero.

()
1
()
() 2
=
()
3
()
[ ]

89
0,00312. 1 + 7,92
() 0,00388. 2 + 7,85
= [ ] = 0
0,00964. 3 + 7,97
850 1 + 2 + 3

Y por ltimo resolvemos el sistema de ecuaciones resultante.

0,00312 0 0 1 1 7,92
0 0,00388 0 1 2 7,85
[ ].[ ] = [ ]
0 0 0,00964 1 3 7,97
1 1 1 0 850

Donde la solucin es:

Tabla 2.7 Solucin por un mtodo tradicional.


P1 P2 P3 Fc
(MW) (MW) (MW) ($us/h)
Sin prdidas 393,169 334,603 122,226 9,1466 8194,4
Con prdidas 435,198 299,970 130,660 9,5265 8344,6
(Fuente: Elaboracin propia)

Vemos que la variacin de los resultados realizados utilizando algoritmos genticos resulta
ms econmica que el resuelto por un mtodo tradicional. La diferencia se muestra a
continuacin:

Tabla 2.8 Comparacin entre Algoritmos genticos y un mtodo tradicional.


Sin prdidas Sin prdidas Con prdidas Con prdidas
Mtodos
Fc ($/h) Fc ($us/ao) Fc ($/h) Fc ($/ao)
Algoritmos Genticos 8194,037 71.779.764,12 8344,207 73.095.253,32
Tradicionales 8194,4 71.782.944,00 8344,6 73.098.696,00
Diferencia 0,363 3.180 0,393 3.443
(Fuente: Elaboracin propia)

Al parecer la diferencia en el ahorro es pequea, esto es porque el clculo que se realiza es


por hora, si sacamos este resultado anualmente tendramos un ahorro de 3.180$us, esto es
sin considerar prdidas en el sistema, y un ahorro de 3.443$us considerando prdidas en el
sistema, hablando en ahorro del gasto de combustible esta cifra es significativa.

90
A continuacin mostramos otro ejemplo de despacho econmico, con datos reales del
Sistema Interconectado Nacional (SIN) de Anexos A. Estos datos fueron tomados de
Anexos B que es la interpretacin de los datos tcnicos del Sistema interconectado
nacional proporcionados por la Comit Nacional de Despacho de Carga (CNDC).

Tabla 2.9 Datos de unidades trmicas del Sistema Interconectado Nacional (SIN)
Unidades a0 a1 a2 Pmin [MW] Pmx [MW]
GCH01 73,64478 -0,6577131 0,0029161 5,727 19,09
GCH02 77,687555 -0,6656661 0,002651 5,421 18,07
GCH04 76,338196 -0,676005 0,002651 6,138 20,46
GCH06 75,929942 -0,6797164 0,0029161 6,369 21,23
SCZ01 78,806277 -0,7595115 0,0034463 6,387 21,29
SCZ02 78,159433 -0,6874043 0,002651 6,519 21,73
(Fuente: Comit Nacional de Despacho de Carga (CNDC) - Memoria 2011, Resultados de Operacin del
Sistema Interconectado Nacional (SIN)).

La potencia mxima y mnima se tom suponiendo que la temperatura de operacin a la


que se encuentran las unidades generadoras es de 23C.

La demanda de potencia es de 90MW.

Ingresando los valores al programa Dispatch AG v1.0 le damos los siguientes


parmetros:

Tamao de poblacin = 40
Nmero de generaciones = 30
Tipo de cruce = Cruce de un solo punto.
Nmero de descendientes = 5
Probabilidad de Cruce = 0.9
Probabilidad de Mutacin = 0.1

A continuacin mostramos la primera generacin de individuos:

91
Tabla 2.10 Primera generacin de individuos
Individuos Generacin 1 Fitness
1.- 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0.02878
2.- 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0.01315
3.- 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0.01947
4.- 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0.03780
5.- 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0.01994
6.- 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0.01909
7.- 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0.12813
8.- 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0.02171
9.- 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0.42558
10.- 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0.01522
11.- 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0.02034
12.- 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0.05682
13.- 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0.08930
14.- 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0.74173
15.- 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0.04216
16.- 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0.01312
17.- 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0.01527
18.- 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0.73721
19.- 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0.01888
20.- 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0.13643
21.- 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 0.01586
22.- 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0.02402
23.- 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0.01515
24.- 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0.21252
25.- 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0.10045
26.- 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0.13524
27.- 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0.43287
28.- 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0.13092
29.- 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0.01330
30.- 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0.04204
31.- 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0.28399
32.- 0 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0.14598
33.- 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0.01481
35.- 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0.02047
36.- 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0.01287
37 1 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0.02584
38.- 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0.05429
39.- 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0.05469
40.- 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0.22546
(Fuente: Elaboracin propia)

A continuacin mostramos los resultados de la generacin 27 de 30 que fue donde


converge y se alcanza el mejor resultado.

92
Tabla 2.11Generacin de individuos N 27
Individuos Generacin 1 Fitness
1.- 0 0 0 1 1
1 0 0 0 0 0 1 1 0 0 0.21640
2.- 0 0 1 0 1
0 0 1 1 1 0 0 1 1 1 0.45117
3.- 0 0 0 1 1
1 0 0 0 1 0 0 1 0 1 0.21968
4.- 0 0 1 0 1
0 1 0 0 1 1 1 1 1 0 0.40712
5.- 0 0 1 0 0
1 1 1 0 0 0 0 1 0 0 0.80779
6.- 0 0 1 0 0
0 0 1 0 0 0 0 1 1 0 0.34802
7.- 0 0 1 0 0
1 1 1 1 1 1 1 0 1 1 0.63859
8.- 0 0 1 0 0
1 0 0 1 0 1 1 1 1 1 0.63708
9.- 0 0 1 0 0
1 0 0 1 0 1 1 1 0 0 0.63374
10.- 0 0 1 0 0
0 0 1 0 1 1 1 1 1 1 0.36814
11.- 0 0 1 0 1
0 1 0 0 1 1 0 1 1 1 0.41035
12.- 0 0 1 0 0
0 0 1 1 0 1 0 1 0 1 0.37655
13.- 0 0 1 0 1
0 1 0 1 1 0 1 1 1 1 0.38590
14.- 0 0 1 0 1
0 1 0 1 0 0 0 1 1 1 0.40305
15.- 0 0 1 0 1
0 1 1 0 1 1 0 0 1 0 0.36023
16.- 0 0 1 0 1
0 0 1 1 0 0 0 0 0 0 0.47417
17.- 0 0 1 0 1
0 0 0 0 0 1 1 1 1 1 0.60053
18.- 0 0 1 0 1
0 0 0 0 1 0 1 1 1 1 0.58504
19.- 0 0 1 0 0
0 1 0 0 1 1 1 0 1 0 0.42065
20.- 0 0 1 0 0
1 0 1 1 0 1 0 1 1 1 0.80716
21.- 0 0 1 0 1
0 1 0 0 0 0 1 0 0 0 0.43338
22.- 0 0 1 0 1
0 0 0 1 0 0 1 0 0 0 0.56237
23.- 0 0 1 0 1
0 0 1 1 0 0 1 0 1 0 0.46805
24.- 0 0 1 0 0
1 0 1 1 1 0 0 0 0 0 0.82365
25.- 0 0 1 0 0
1 0 0 1 1 1 1 0 1 0 0.66878
26.- 0 0 1 0 0
1 1 0 0 1 0 1 0 1 1 0,99997
27.- 0 0 1 0 1
0 0 1 1 1 0 1 0 0 0 0.45061
28.- 0 0 1 0 0
1 1 0 0 0 1 1 1 1 0 0.95858
29.- 0 0 1 0 0
1 1 0 0 1 0 1 1 0 1 0.99814
30.- 0 0 1 0 0
1 0 1 1 0 0 1 1 0 1 0.78959
31.- 0 0 1 0 0
1 1 1 0 1 0 1 1 1 1 0.73721
32.- 0 0 1 0 1
0 0 0 1 0 0 1 1 0 1 0.55804
33.- 0 0 1 0 1
0 0 0 1 1 1 1 1 1 1 0.51819
35.- 0 0 1 0 0
0 1 1 1 0 1 0 0 1 1 0.51136
36.- 0 0 1 0 0 1 0 1 1 1 1 0 1 1 0.86696
37 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0.57943
38.- 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0.48624
39.- 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0.72202
40.- 0 0 1 0 0 1 1 1 1 1 0 0 0 1 1 0.66675
(Fuente: Elaboracin propia)

Como se puede ver en las tablas de resultados por generacin en la generacin N27 se
alcanza una solucin ptima por parte del individuo 26 con un fitness de 0.99997 que
corresponde a la siguiente solucin:

93
Tabla 2.12 Resultados de la operacin con el individuo N26.
P1 P2 P3 P4 P5 P6 Fc

(MW) (MW) (MW) (MW) (MW) (MW) ($us)
Sin
10,2617 12,7879 14,7379 14,0344 21,29 16,8879 0,59779 402,18
prdidas
(Fuente: Elaboracin propia)

A continuacin presentamos la solucin para el problema resuelto arriba utilizando el


mtodo tradicional (mtodo de Lagrange).

(1 ) = 0,0029161. 12 0,6577131. 1 + 73,64478

(2 ) = 0,002651. 22 0,6656661. 2 + 77,687555

(3 ) = 0,002651. 32 0,676005. 3 + 76,338196

(4 ) = 0,0029161. 42 0,6797164. 4 + 75,929942

(5 ) = 0,0034463. 52 0,7595115. 5 + 78,806277

(6 ) = 0,002651. 62 0,6874043. 6 + 78,159433

Resolviendo el sistema de ecuaciones:

0,0058322 0 0 0 0 0 1 1 0,6577131
0 0,005302 0 0 0 0 1 2 0,6656661
0 0 0,005302 0 0 0 1 3 0,676005
0 0 0 0,0058322 0 0 1 . 4 = 0,6797164
0 0 0 0 0,0068926 0 1 5 0,7595115
0 0 0 0 0 0,005302 1 6 0,6874043
[ 1 1 1 1 1 1 0 ] [] [ 90 ]

Tabla 2.13Solucin por un mtodo tradicional (Lagrange).


P1 P2 P3 P4 P5 P6

(MW) (MW) (MW) (MW) (MW) (MW)
Sin prdidas 9,9099 12,4009 14,3509 13,6826 23,1545 16,5009 -0,5999
(Fuente: Elaboracin propia)

Sin embargo, dado que la solucin propone una generacin 23,1545MW para la mquina 5
SCZ01, lo cual, por sus lmites de generacin no se permite, se propone una solucin en

94
que se fija la potencia de salida de dicha mquina en su lmite superior 21,29MW y se
despachan solo las otras 5 mquinas.

0,0058322 0 0 0 0 1 1 0,6577131
0 0,005302 0 0 0 1 2 0,6656661
0 0 0,005302 0 0 1 3 0,676005
. =
0 0 0 0,0058322 0 1 4 0,6797164
0 0 0 0 0,005302 1 6 0,6874043
[ 1 1 1 1 1 0 ] [] [ 68,71 ]

Tabla 2.14Nueva solucin por el mtodo de Lagrange.

P1 P2 P3 P4 P6 Fc

(MW) (MW) (MW) (MW) (MW) ($us/h)
Sin prdidas 10,2617 12,7879 14,7379 14,0344 16,8879 -0,5978 402,22
(Fuente: Elaboracin propia)

Para este problema como es evidente el mtodo tradicional utilizado requiri un


replanteamiento del problema por la violacin de lmites de un generador en la solucin
obtenida mientras que con algoritmos genticos no fue necesario. Y aunque el resultado
obtenido con algoritmos genticos se dio de forma natural, situaciones como la anterior se
pueden evitar mediante un sencillo pero efectivo condicionamiento de programacin.

Vemos que la diferencia de los resultados realizados utilizando algoritmos genticos


resulta ms econmica que el resuelto por un mtodo tradicional. La diferencia se muestra
a continuacin:

Tabla 2.15 Comparacin entre Algoritmos genticos y un mtodo tradicional.


Sin prdidas Sin prdidas
Mtodos
Fc ($/h) Fc ($us/ao)
Algoritmos Genticos 402,18 3.523.096,8
Tradicionales 402,22 3.523.447,2
Diferencia 0,04 350,4
(Fuente: Elaboracin propia)

En este caso vemos que el ahorro de energa anual es pequeo y no significativo esto se
debe a que la demanda de potencia es pequea en relacin al ejemplo anterior. En este
ejemplo no se analiz considerando las prdidas en el sistema puesto que no fueron
facilitados los datos para el desarrollo del mismo.

95
Como vimos los resultados anteriormente, debemos tomar en cuenta que, en cuanto mayor
sea la demanda de potencia y mayor el nmero de unidades generadoras a despachar mayor
ser el ahorro en el costo de combustible.

96
CAPTULO III

ANLISIS ECONMICO FINANCIERO

3.1 INTRODUCCIN.

En Bolivia, los mtodos para el clculo del problema de despacho econmico son
tradicionales, no existe una optimizacin de este clculo porqu no se ha incentivado la
implementacin de mtodos de optimizacin como los Algoritmos genticos.

3.2 ANLISIS DE LOS INGRESOS.

Los ingresos del proyecto son todos aquellos fondos que el proyecto genera a travs del
ahorro que este produce. Este proyecto presenta un tipo de ingreso: por ahorro en el precio
de combustible.

Como vimos en el captulo anterior el ahorro de energa que implica la aplicacin de la


tcnica de Algoritmos genticos, la mostramos en la siguiente tabla.

97
Tabla 3.1 Ingresos por ahorro de combustible
Sin prdidas Sin prdidas Con prdidas Con prdidas
Mtodos
Fc ($/h) Fc ($us/ao) Fc ($/h) Fc ($/ao)
Algoritmos Genticos 8194,037 71.779.764,12 8344,207 73.095.253,32
Tradicionales 8194,4 71.782.944,00 8344,6 73.098.696,00
Diferencia 0,363 3180 0,393 3.443
(Fuente: Elaboracin propia)

El ahorro que se alcanza en los clculos realizados con el mtodo de optimizacin de


algoritmos genticos es 3.180$us anuales, y considerando prdidas en el sistema es
3.443$us. Este es el valor mnimo que puede alcanzarse, ya que para otras caractersticas
de despacho econmico, esto implica, considerando prdidas en el sistema, la diferencia
puede aumentar tomando en cuenta las caractersticas de las curvas de costo de las
unidades generadoras.

En conclusin el ahorro de combustible puede alcanzar valores mayores al referenciado en


la tabla 3.1.

3.3 INVERSIN.

Es importante indicar que los precios de combustible actuales del Mercado Elctrico
Mayorista en Bolivia hace necesario la implementacin de nuevas tcnicas para optimizar
el despacho econmico de carga y as lograr un ahorro significativo en el consumo de
combustible.

Se asumir que la inversin se realiza durante la fase de ejecucin del proyecto, y antes del
periodo de operacin del mismo.

3.3.1 Estado de resultados.

A continuacin se detalla la estimacin de los gastos que supondr realizar este proyecto
en un entorno universitario, estimando los costos y la duracin del mismo.

Se detallarn los costos de inversin, as como un resumen total del presupuesto.

98
3.3.1.1 Costo de Inversin.

A continuacin en la siguiente tabla se detalla el costo de inversin del presente proyecto,


en este caso el costo del software.

Tabla 3.2 Detalle del costo de inversin del proyecto


Detalle Costo
Programa Dispatch AG v1.0 7300 $us
Capacitacin a personal 600 $us
Netbeans 7.1 y JDK 100 $us
Total 8000 $us
(Fuente: Elaboracin propia)

Como vemos en la tabla 3.2 el costo total de inversin del proyecto es de 8000$us, esto
incluye la capacitacin al personal para el manejo del programa y para la utilizacin del
programa se necesitaran Netbeans 7.1 y las libreras de java JDK (Java Development Kit).

3.4 VIABILIDAD ECONMICO FINANCIERA.

Tratando de ver bajo qu condiciones el proyecto de optimizar el despacho econmico


empleando algoritmos genticos en unidades generadoras trmicas es viable, se analizar el
indicador de rentabilidad: VAN.

3.4.1 Valor Actual Neto (V.A.N).

El VAN es la sumatoria de los flujos netos de caja anuales actualizados menos la inversin
inicial. Con este indicador de evaluacin se conoce el valor del dinero actual que va a
recibir el proyecto en el futuro, a una tasa de inters y un perodo determinado, a fin de
comparar este valor con la inversin inicial.

La frmula que nos permite calcular el Valor Neto Actual es:

[1 (1 + ) ]
= +

99
Donde:

= Representa el flujo de caja constante.


= Representa el costo de oportunidad o rentabilidad mnima que se est exigiendo al
proyecto.
= Es el nmero de perodos.
= Es la inversin inicial necesaria para llevar a cabo el proyecto.

La tasa de descuento es aquella medida de rentabilidad mnima exigida por el proyecto y


que permite recuperar la inversin inicial, cubrir los costos efectivos de produccin y
obtener beneficios. La tasa de actualizacin representa la tasa de inters a la cual los
valores futuros se actualizan al presente.

El VAN negativo (VAN<0) muestra el monto que falta para que el inversionista gane lo
que pretende ganar, es decir, que su rentabilidad se halla por debajo de la tasa mnima
esperada (tasa de descuento), lo que constituye una prdida econmica y por lo tanto no es
recomendable llevar adelante el proyecto.

Si el VAN es igual a cero o cercano a cero (VAN=0) desde el punto de vista de la


rentabilidad se estar recuperando toda la inversin, los costos de produccin y la ganancia
mnima esperada por el inversionista a la tasa de actualizacin considerada.

Si el VAN es positivo (VAN>0) la rentabilidad de la inversin est por encima de la tasa


de descuento o actualizacin, vale decir que una vez recuperada la inversin y cubiertos los
costos de produccin, la utilidad obtenida es superior a la tasa de rendimiento mnima
esperada.

El proyecto ser ms atractivo mientras mayor sea su VAN.

A continuacin realizamos el clculo del Valor Actual Neto utilizando planillas de Excel,
este se realiz con una Tasa de Descuento del 10%.

100
Tabla 3.4 Clculo del VAN
Perodo Flujos de caja ($us)
0 8.000
1 3.180
2 3.180
3 3.180
4 3.180
5 3.180
6 3.180
7 3.180
8 3.180
9 3.180
10 3.180
11 3.180
12 3.180
13 3.180
14 3.180
15 3.180
VAN 16.187,33
(Fuente: Elaboracin propia)

Tabla 3.5 Clculo del VAN (Considerando prdidas)


Perodo Flujos de caja ($us)
0 8.000
1 3.443
2 3.443
3 3.443
4 3.443
5 3.443
6 3.443
7 3.443
8 3.443
9 3.443
10 3.443
11 3.443
12 3.443
13 3.443
14 3.443
15 3.443
VAN 18.187,73
(Fuente: Elaboracin propia)

101
Como vemos en la figura 3.4 mostramos el clculo del VAN con una proyeccin a 15 aos
para los casos de despacho econmico sin prdidas, en la figura 3.5 mostramos la misma
proyeccin pero considerando prdidas de transmisin.

Llegamos a la conclusin que el proyecto es viable econmicamente y lo es an ms,


porque como vimos en los clculos con una mayor demanda de potencia y considerando
las prdidas en el sistema, es mayor el ahorro en el costo de combustible.

102
CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES

De la aplicacin de los Algoritmos Genticos al problema del Despacho Econmico se


derivan las siguientes conclusiones:

Aplicando el algoritmo gentico binario para resolver el problema del despacho


econmico obtuvimos un ahorro significativo del 3,29% por ao en el costo de
combustible en relacin a otros mtodos.

Desarrollando el programa Dispatch AG v1.0 llegamos a satisfacer la funcin de


desviacin de la carga con la funcin objetivo, el cual se traduce en un valor menor
de la funcin de costo total.

La funcin aptitud fitness que se aplic para optimizar el rendimiento del


algoritmo gentico, gener una bsqueda mas rpida de la mejor solucin al
problema del despacho econmico.

En la comparacin del algoritmo gentico con otros mtodos de clculo, se muestra


que el algoritmo es mucho ms eficiente que otros mtodos ya que an, tomando en

103
cuenta las restricciones y prdidas en el sistema, estos no afectan en la bsqueda de
la mejor solucin.

La implementacin del software y aplicacin digital de los algoritmos genticos


resuelven el problema del despacho econmico con las restricciones que tenga,
puesto que el algoritmo esta condicionado nicamente por la funcin de evaluacin
fitness.

RECOMENDACIONES

A lo largo del desarrollo de este proyecto, vimos que la aplicacin de los


algoritmos genticos son una herramienta de optimizacin efectiva para el
problema del despacho econmico en las restricciones que presenta y por esto se
recomienda buscar formas de incentivo nacionales o internacionales mediante
empresas que fomenten el desarrollo e implementacin de tcnicas de
optimizacin.

104
BIBLIOGRAFA

[1] A.J. Wood and B.F. Wollenberg; Power Generation Operation and Control, John
Wiley, Second Edition, (1996).

[2] Po-Hung Chen; Hong Chan, Large-scale economic dispatch by genetic algorithm,
IEEE transaction on Power Systems, Vol. 10, N 4, Noviembre 1995, pp (1919-1926).

[3] Goldberg, D.E. Genetic Algorithms in Search, Optimization and Machine


Learning. Addison-Wesley Longman Publishibg Co., Inc., Boston, MA, USA, (1989).

[4] Gil Sags, Esteban M. Programacin de la generacin de corto plazo en sistemas


hidroelctricos usando algoritmos genticos. Universidad Catlica de Chile. Santiago de
Chile, Chile. (2001).

[5] Granada, G., Martnez, R., Zaldvar, M. A.; Anlisis del Despacho del Sistema de
Generacin de el Salvador. Tesis.

[6] Resendiz L., Hector H.; Despacho Econmico considerando Rampas de Incremento
y Decremento de unidades Generadoras. Tesis.

[7] MCs. Ing. Armengol Blanco Benito.; Operacin Econmica y Planificacin de


Sistemas Elctricos de Potencia, versin 1.0 (2010).

105
[8] P. S. R. Murty, Power System Operation and Control. Mc Graw-Hill, New Delhi,
(1984).

[9] Ch. A. Gross, Power System Analysis. John Wiley & Sons, Inc., New York, (1986).

[10] A. H. Noyola, et al., An Optimized Procedure for Determining Incremental Heat


Rate Characteristics. IEEE Trans. PS, Vol. 5, No. 2, May 1990, pp. 376 383.

[11] Darwin, C. On the Origin of Species by Means of Natural Selection. John Murray,
London, (1859).

[12] Holland, J. H. (1975). Adaptation in Natural and Artificial Systems. University of


Michigan Press, Ann Arbor. Republished by the MIT press, 1992.

[13] D. A. Coley, An Introduction to Genetics Algorithms for Scientists and


Engineeers, World Scientific Publishing Co. Pte. Ltd., ISBN: 9810236026., (1999).

[14] Koza, J. R. Genetic Programming: On the Programming of Computers by Means


of Natural Selection (Complex Adaptive Systems). The MIT Press, (1992).

[15] Blickle, T. and Thiele, L. A comparison of selection schemes used in genetic


algorithms. Technical Report 11, Computer Engineering and Communication Network
Lab (TIK), Gloriastrasse 35, 8092 Zurich, Switzerland, (1995).

[16] Comit Nacional de Despacho de Carga (CNDC) - Memoria 2010, Resultados de


Operacin del Sistema Interconectado Nacional (SIN), (2010).

[17] Comit Nacional de Despacho de Carga (CNDC) - Plan ptimo de expansin del
Sistema Interconectado Nacional 2012 - 2022.

[18] Gmez Exposito, Antonio Anlisis y operacin de sistemas de energa elctrica.


McGraw- Hill. Espaa, (2002).

106
[19] Tomassini, M., s.a. A Survey of Genetics Algorithms. Volume III of Annual
Reviews of Computacional Physics, World Scientific.

[20] Silva Lavalle, Arturo R., Un mtodo de algoritmos genticos para optimizacin de
memorias asociativas morfolgicas. Tesis. Universidad de Puerto Rico. (2006).

[21] Pose, M., Introduccin a los Algoritmos Genticos.

[22] Olachea Aguayo, Alfredo., Aplicacin de la tcnica de algoritmos genticos al


problema de Despacho econmico. Tesis. Universidad Autnoma de Nuevo Len.
(2003).

[23] Saada, H.; Power Systems Analysis, Mc Graw Hill, 1999.

107
ANEXOS

108
ANEXOS A

COSTOS DE GENERACIN TRMICA

109
110
111
112
113
114
115
116
117
118
119
120
121
122
ANEXOS B

INTERPRETACIN DE LA TABLA DE COSTOS DE GENERACIN TRMICA.

123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
ANEXOS C

LENGUAJE DE PROGRAMACIN

143
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ahc.GeneticAlgorithm;
/**
* @author Alex M. Heredia Camacho
**/
import java.awt.Container;
import org.jgap.FitnessFunction;
import java.lang.*;
import java.util.Arrays;
import javax.swing.JOptionPane;
import org.jgap.Chromosome;
import org.jgap.Configuration;
import org.jgap.FitnessFunction;
import org.jgap.Gene;
import org.jgap.Genotype;
import org.jgap.IChromosome;
import org.jgap.InvalidConfigurationException;
import org.jgap.impl.DefaultConfiguration;
import org.jgap.impl.IntegerGene;

public class GeneticAlgorithm extends javax.swing.JFrame


{
EconomicDispatchAG ag = new EconomicDispatchAG();
/**
* Creates new form GeneticAlgorithm
**/
public GeneticAlgorithm()
{
initComponents();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
**/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents()
{

144
PanelOpciones = new javax.swing.JPanel();
NumeroGeneradores = new javax.swing.JLabel();
CasillaGeneradores = new javax.swing.JTextField();
PotenciaDemanda = new javax.swing.JLabel();
Demanda = new javax.swing.JTextField();
Sinperdidas = new javax.swing.JCheckBox();
Separador1 = new javax.swing.JSeparator();
Conperdidas = new javax.swing.JCheckBox();
Separador2 = new javax.swing.JSeparator();
MW = new javax.swing.JLabel();
TamaoPoblacion = new javax.swing.JLabel();
Poblacion = new javax.swing.JTextField();
Generaciones = new javax.swing.JLabel();
Ngeneraciones = new javax.swing.JTextField();
PanelReloj = new javax.swing.JPanel();
PanelTrabajo = new javax.swing.JPanel();
Herramientas = new javax.swing.JMenuBar();
Archivo = new javax.swing.JMenu();
Nuevo = new javax.swing.JMenuItem();
Abrir = new javax.swing.JMenuItem();
Cerrar = new javax.swing.JMenuItem();
Edicin = new javax.swing.JMenu();
Cortar = new javax.swing.JMenuItem();
Copiar = new javax.swing.JMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Dispatch GAAH v1.0");
setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
setName("Dispatch GAAH v1.0");
setResizable(false);

PanelOpciones.setBackground(new java.awt.Color(204, 204, 204));


PanelOpciones.setBorder(javax.swing.BorderFactory.createEtchedBorder());
PanelOpciones.setPreferredSize(new java.awt.Dimension(1000, 35));

NumeroGeneradores.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N

NumeroGeneradores.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
NumeroGeneradores.setText("Nmero de Generadores:");

NumeroGeneradores.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
NumeroGeneradores.setPreferredSize(new java.awt.Dimension(135, 31));

145
CasillaGeneradores.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
CasillaGeneradores.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
CasillaGeneradores.setPreferredSize(new java.awt.Dimension(40, 20));
CasillaGeneradores.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
CasillaGeneradoresActionPerformed(evt);
}
});

PotenciaDemanda.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


PotenciaDemanda.setText("Potencia de Demanda:");

Demanda.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


Demanda.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
Demanda.setPreferredSize(new java.awt.Dimension(40, 20));
Demanda.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
DemandaActionPerformed(evt);
}
});

Sinperdidas.setBackground(new java.awt.Color(204, 204, 204));


Sinperdidas.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Sinperdidas.setText("Sin prdidas");
Sinperdidas.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
Sinperdidas.setPreferredSize(new java.awt.Dimension(91, 31));
Sinperdidas.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
SinperdidasMouseClicked(evt);
}
});

Separador1.setOrientation(javax.swing.SwingConstants.VERTICAL);

Conperdidas.setBackground(new java.awt.Color(204, 204, 204));


Conperdidas.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Conperdidas.setText("Con prdidas");
Conperdidas.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
Conperdidas.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ConperdidasMouseClicked(evt);

146
}
});

Separador2.setOrientation(javax.swing.SwingConstants.VERTICAL);

MW.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


MW.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
MW.setText("MW");

TamaoPoblacion.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


TamaoPoblacion.setText("Tamao Poblacin:");

Poblacion.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


Poblacion.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
Poblacion.setPreferredSize(new java.awt.Dimension(40, 20));
Poblacion.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
PoblacionActionPerformed(evt);
}
});

Generaciones.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


Generaciones.setText("Generaciones:");

Ngeneraciones.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


Ngeneraciones.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
Ngeneraciones.setPreferredSize(new java.awt.Dimension(40, 20));
Ngeneraciones.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
NgeneracionesActionPerformed(evt);
}
});

javax.swing.GroupLayout PanelOpcionesLayout = new


javax.swing.GroupLayout(PanelOpciones);
PanelOpciones.setLayout(PanelOpcionesLayout);
PanelOpcionesLayout.setHorizontalGroup(

PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addGroup(PanelOpcionesLayout.createSequentialGroup()
.addGap(20, 20, 20)

147
.addComponent(NumeroGeneradores,
javax.swing.GroupLayout.PREFERRED_SIZE, 135,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(CasillaGeneradores,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(29, 29, 29)
.addComponent(PotenciaDemanda)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Demanda, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(MW)
.addGap(25, 25, 25)
.addComponent(Separador1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(Sinperdidas, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(Conperdidas)
.addGap(27, 27, 27)
.addComponent(Separador2, javax.swing.GroupLayout.PREFERRED_SIZE, 2,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(12, 12, 12)
.addComponent(TamaoPoblacion)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Poblacion, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(Generaciones)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Ngeneraciones, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)

148
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
PanelOpcionesLayout.setVerticalGroup(

PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addComponent(Separador2)
.addGroup(PanelOpcionesLayout.createSequentialGroup()

.addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)

.addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)

.addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(Sinperdidas,
javax.swing.GroupLayout.DEFAULT_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Conperdidas))

.addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(NumeroGeneradores,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(CasillaGeneradores,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(PotenciaDemanda)
.addComponent(MW)
.addComponent(Demanda,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(Separador1))

.addGroup(PanelOpcionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)

149
.addComponent(TamaoPoblacion,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Poblacion, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Generaciones)
.addComponent(Ngeneraciones,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 0, Short.MAX_VALUE))
);

PanelReloj.setBackground(new java.awt.Color(204, 204, 204));


PanelReloj.setBorder(javax.swing.BorderFactory.createEtchedBorder());
PanelReloj.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
PanelReloj.setPreferredSize(new java.awt.Dimension(1000, 21));

javax.swing.GroupLayout PanelRelojLayout = new


javax.swing.GroupLayout(PanelReloj);
PanelReloj.setLayout(PanelRelojLayout);
PanelRelojLayout.setHorizontalGroup(

PanelRelojLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 996, Short.MAX_VALUE)
);
PanelRelojLayout.setVerticalGroup(

PanelRelojLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 17, Short.MAX_VALUE)
);

PanelTrabajo.setBackground(new java.awt.Color(255, 255, 255));


PanelTrabajo.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
PanelTrabajo.setPreferredSize(new java.awt.Dimension(1000, 509));

javax.swing.GroupLayout PanelTrabajoLayout = new


javax.swing.GroupLayout(PanelTrabajo);
PanelTrabajo.setLayout(PanelTrabajoLayout);
PanelTrabajoLayout.setHorizontalGroup(

150
PanelTrabajoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGap(0, 998, Short.MAX_VALUE)
);
PanelTrabajoLayout.setVerticalGroup(

PanelTrabajoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGap(0, 507, Short.MAX_VALUE)
);

Herramientas.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N


Herramientas.setPreferredSize(new java.awt.Dimension(1000, 23));

Archivo.setText("Archivo");
Archivo.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Archivo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
Archivo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
Archivo.setPreferredSize(new java.awt.Dimension(51, 20));

Nuevo.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK
_N, java.awt.event.InputEvent.CTRL_MASK));
Nuevo.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Nuevo.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/com/ahc/GeneticAlgorithm/Iconos/Nuev
o.png"))); // NOI18N
Nuevo.setText("Nuevo");
Nuevo.setPreferredSize(new java.awt.Dimension(200, 25));
Archivo.add(Nuevo);

Abrir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_
A, java.awt.event.InputEvent.CTRL_MASK));
Abrir.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Abrir.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/com/ahc/GeneticAlgorithm/Iconos/Abrir.
png"))); // NOI18N
Abrir.setText("Abrir");
Abrir.setPreferredSize(new java.awt.Dimension(200, 25));
Archivo.add(Abrir);

151
Cerrar.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Cerrar.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/com/ahc/GeneticAlgorithm/Iconos/Salir.
png"))); // NOI18N
Cerrar.setText("Cerrar");
Cerrar.setPreferredSize(new java.awt.Dimension(200, 25));
Archivo.add(Cerrar);

Herramientas.add(Archivo);

Edicin.setText("Edicin");
Edicin.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Edicin.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
Edicin.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
Edicin.setMinimumSize(new java.awt.Dimension(30, 20));
Edicin.setPreferredSize(new java.awt.Dimension(47, 20));

Cortar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_
X, java.awt.event.InputEvent.CTRL_MASK));
Cortar.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Cortar.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/com/ahc/GeneticAlgorithm/Iconos/Corta
r.png"))); // NOI18N
Cortar.setText("Cortar");
Cortar.setPreferredSize(new java.awt.Dimension(200, 25));
Edicin.add(Cortar);

Copiar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK
_C, java.awt.event.InputEvent.CTRL_MASK));
Copiar.setFont(new java.awt.Font("Lucida Sans", 0, 11)); // NOI18N
Copiar.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/com/ahc/GeneticAlgorithm/Iconos/Copia
r.png"))); // NOI18N
Copiar.setText("Copiar");
Copiar.setPreferredSize(new java.awt.Dimension(200, 25));
Edicin.add(Copiar);

Herramientas.add(Edicin);

setJMenuBar(Herramientas);
Herramientas.getAccessibleContext().setAccessibleName("");

152
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(PanelOpciones,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(PanelReloj, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(PanelTrabajo,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(PanelOpciones, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(PanelTrabajo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(PanelReloj, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
);

pack();
}// </editor-fold>

private void CasillaGeneradoresActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:

153
int ng = Integer.parseInt(CasillaGeneradores.getText());
}

private void DemandaActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
double dp = Double.parseDouble(Demanda.getText());
}

private void PoblacionActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
int np = Integer.parseInt(Poblacion.getText());
}

private void NgeneracionesActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
int Ng = Integer.parseInt(Ngeneraciones.getText());
}

private void SinperdidasMouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:
Sinperdidas.setSelected(true);
Conperdidas.setSelected(false);
int ng = Integer.parseInt(CasillaGeneradores.getText());
int n = ng;
double [] vector_menor = new double[n];
double [] vector_mayor = new double[n];
int j;
for(j = 0; j < ng; j++)
{
String s1 = javax.swing.JOptionPane.showInputDialog("Introducir coeficiente a_0
del Generador "+(j+1));
String s2 = javax.swing.JOptionPane.showInputDialog("Introducir coeficiente a_1
del Generador "+(j+1));
String s3 = javax.swing.JOptionPane.showInputDialog("Introducir coeficiente a_2
del Generador "+(j+1));
String s4 = javax.swing.JOptionPane.showInputDialog("Introducir Potencia
Mnima del Generador "+(j+1));
String s5 = javax.swing.JOptionPane.showInputDialog("Introducir Potencia
Mxima del Generador "+(j+1));

double a0 = Double.parseDouble(s1);
double a1 = Double.parseDouble(s2);
double a2 = Double.parseDouble(s3);

154
double Pmin = Double.parseDouble(s4);
double Pmax = Double.parseDouble(s5);

double lambda_min = a1 + (2*a2*Pmin);


double lambda_max = a1 + (2*a2*Pmax);

vector_menor[j] = lambda_min;
vector_mayor[j] = lambda_max;

System.out.println(lambda_min);
System.out.println(lambda_max);
System.out.println("");
}

Arrays.sort(vector_menor);
Arrays.sort(vector_mayor);

System.out.println("El lambda_min es: " +vector_menor[0]);


System.out.println("El lambda_max es_ " +vector_mayor[(ng-1)]);
System.out.println("");

ag.AlgoritmoGenetico();
}

private void ConperdidasMouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:
Conperdidas.setSelected(true);
Sinperdidas.setSelected(false);
int ng1 = Integer.parseInt(CasillaGeneradores.getText());
int n1 = ng1;
double [] vector_menor1 = new double[n1];
double [] vector_mayor1 = new double[n1];
int i;
for(i = 0; i < ng1; i++)
{
String s1 = javax.swing.JOptionPane.showInputDialog("Introducir coeficiente a_0
del Generador "+(i+1));
String s2 = javax.swing.JOptionPane.showInputDialog("Introducir coeficiente a_1
del Generador "+(i+1));
String s3 = javax.swing.JOptionPane.showInputDialog("Introducir coeficiente a_2
del Generador "+(i+1));
String s4 = javax.swing.JOptionPane.showInputDialog("Introducir Potencia
Mnima del Generador "+(i+1));

155
String s5 = javax.swing.JOptionPane.showInputDialog("Introducir Potencia
Mxima del Generador "+(i+1));
String s6 = javax.swing.JOptionPane.showInputDialog("Introducir el coeficiente de
prdidas del Generador "+(i+1));

double a0 = Double.parseDouble(s1);
double a1 = Double.parseDouble(s2);
double a2 = Double.parseDouble(s3);
double Pmin = Double.parseDouble(s4);
double Pmax = Double.parseDouble(s5);
double coeper = Double.parseDouble(s6);

double lambda_min1 = (a1 + (2*a2*Pmin))/((coeper*2) - 1);


double lambda_max1 = (a1 + (2*a2*Pmax))/((coeper*2) - 1);

vector_menor1[i] = lambda_min1;
vector_mayor1[i] = lambda_max1;

System.out.println(lambda_min1);
System.out.println(lambda_max1);
System.out.println("");
}

Arrays.sort(vector_menor1);
Arrays.sort(vector_mayor1);

System.out.println("El lambda_min es: " +vector_menor1[0]);


System.out.println("El lambda_max es_ " +vector_mayor1[(ng1-1)]);
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {

//com.ahc.GeneticAlgorithm.EconomicDispatchAG a = new
com.ahc.GeneticAlgorithm.EconomicDispatchAG();
//a.AlgoritmoGenetico();
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional)
">

156
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try
{
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels())
{
if ("Windows".equals(info.getName()))
{
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(GeneticAlgorithm.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(GeneticAlgorithm.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(GeneticAlgorithm.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(GeneticAlgorithm.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
}
//</editor-fold>

/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {

157
public void run() {
new GeneticAlgorithm().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenuItem Abrir;
private javax.swing.JMenu Archivo;
private javax.swing.JTextField CasillaGeneradores;
private javax.swing.JMenuItem Cerrar;
private javax.swing.JCheckBox Conperdidas;
private javax.swing.JMenuItem Copiar;
private javax.swing.JMenuItem Cortar;
private javax.swing.JTextField Demanda;
private javax.swing.JMenu Edicin;
private javax.swing.JLabel Generaciones;
private javax.swing.JMenuBar Herramientas;
private javax.swing.JLabel MW;
private javax.swing.JTextField Ngeneraciones;
private javax.swing.JMenuItem Nuevo;
private javax.swing.JLabel NumeroGeneradores;
private javax.swing.JPanel PanelOpciones;
private javax.swing.JPanel PanelReloj;
private javax.swing.JPanel PanelTrabajo;
private javax.swing.JTextField Poblacion;
private javax.swing.JLabel PotenciaDemanda;
private javax.swing.JSeparator Separador1;
private javax.swing.JSeparator Separador2;
private javax.swing.JCheckBox Sinperdidas;
private javax.swing.JLabel TamaoPoblacion;
// End of variables declaration
}

158
package com.ahc.GeneticAlgorithm;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
* @author Alex M. Heredia Camacho
**/
import org.jgap.Chromosome;
import org.jgap.Configuration;
import org.jgap.FitnessFunction;
import org.jgap.Gene;
import org.jgap.Genotype;
import org.jgap.IChromosome;
import org.jgap.InvalidConfigurationException;
import org.jgap.impl.DefaultConfiguration;
import org.jgap.impl.IntegerGene;

//En este proyecto optimizamos el problema de despacho econmico empleando


//algoritmos genticos.
//------------------------------------------------------------------------
public class EconomicDispatchAG
{

public void AlgoritmoGenetico()


{
try
{
//Creamos una configuracin con valores predeterminados
//-----------------------------------------------------
Configuration configuracion = new DefaultConfiguration();

//Indicamos en la configuracin que el individuo ms apto pase a la


//prxima generacin
//-----------------------------------------------------------------
configuracion.setPreservFittestIndividual(true);

//Creamos la funcin aptitud y seteamos la configuracin


//------------------------------------------------------
FitnessFunction funcion = new Funcion_aptitud();

//Indicamos al framework JGAP cual ser nuestra funcin aptitud

159
//-----------------------------------------------------------
configuracion.setFitnessFunction(funcion);

//Debemos indicar a la configuracin como sern los cromosomas, en este


//caso creamos una codificacin de 10 genes que ser la representacin
//de los individuos (fenotipo)
//---------------------------------------------------------------------
Gene[] Gen_individuo = new Gene[15];

MostrarPoblacion mostrar = new MostrarPoblacion();


//Los genes sern valores entre 0 y 1
//-----------------------------------
Gen_individuo[0] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[1] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[2] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[3] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[4] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[5] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[6] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[7] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[8] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[9] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[10] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[11] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[12] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[13] = new IntegerGene(configuracion, 0, 1);
Gen_individuo[14] = new IntegerGene(configuracion, 0, 1);

//Los cromosomas son los individuos, para esto crearemos un individuo


//a partir de la configuracin de los genes anteriores
//-------------------------------------------------------------------
Chromosome Cromosoma_individuo = new Chromosome(configuracion,
Gen_individuo);

//Indicamos al framework JGAP un ejemplo de como sern los individuos,


//a partir del individuo del ejemplo que creamos
//-------------------------------------------------------------------
configuracion.setSampleChromosome(Cromosoma_individuo);

//Configuramos el tamao que tendr la poblacin


//----------------------------------------------
int Npoblacion = 100;

160
configuracion.setPopulationSize(Npoblacion);

//Creamos el genotipo de la poblacin, este se determina del fenotipo que


//es igual a la configuracin de los genes para un cromosoma particular,
//y creamos una poblacin aleatoria a partir de esta
//-----------------------------------------------------------------------
Genotype Poblacion = Genotype.randomInitialGenotype(configuracion);

//Comenzamos a iterar el algoritmo


//--------------------------------
System.out.println("Poblacin Inicial");

//10 interaciones, cada iteracin ser una generacin


//---------------------------------------------------
for(int m = 0; m < 10; m++)
{
mostrar.Mostrar_todos_individuos(Poblacion.getChromosomes());
System.out.println("");
Poblacion.evolve();
//mostrar.Mostrar_todos_individuos(Poblacion.getChromosomes());
//IChromosome mejor_individuo = Poblacion.getFittestChromosome();

}
}
catch(InvalidConfigurationException ex)
{
System.out.println("No se puede ejecutar el Algoritmo Gentico");
}
}

public static void main(String[] arguments)


{
EconomicDispatchAG a = new EconomicDispatchAG();
a.AlgoritmoGenetico();
}
}

161
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ahc.GeneticAlgorithm;
/**
* @author Alex M. Heredia Camacho
**/
import java.util.Arrays;
import org.jgap.IChromosome;

public class MostrarPoblacion


{
Integer gen1;
Integer gen2;
Integer gen3;
Integer gen4;
Integer gen5;
Integer gen6;
Integer gen7;
Integer gen8;
Integer gen9;
Integer gen10;
Integer gen11;
Integer gen12;
Integer gen13;
Integer gen14;
Integer gen15;

public void Mostrar_individuo(IChromosome ind)


{
gen1 = (Integer) ind.getGene(0).getAllele();
gen2 = (Integer) ind.getGene(1).getAllele();
gen3 = (Integer) ind.getGene(2).getAllele();
gen4 = (Integer) ind.getGene(3).getAllele();
gen5 = (Integer) ind.getGene(4).getAllele();
gen6 = (Integer) ind.getGene(5).getAllele();
gen7 = (Integer) ind.getGene(6).getAllele();
gen8 = (Integer) ind.getGene(7).getAllele();
gen9 = (Integer) ind.getGene(8).getAllele();
gen10 = (Integer) ind.getGene(9).getAllele();
gen11 = (Integer) ind.getGene(10).getAllele();
gen12 = (Integer) ind.getGene(11).getAllele();

162
gen13 = (Integer) ind.getGene(12).getAllele();
gen14 = (Integer) ind.getGene(13).getAllele();
gen15 = (Integer) ind.getGene(14).getAllele();

String cromosoma = gen1.toString() +gen2.toString() +gen3.toString() +gen4.toString()


+gen5.toString() +gen6.toString()
+gen7.toString() +gen8.toString() +gen9.toString() +gen10.toString()
+gen11.toString() +gen12.toString()
+gen13.toString() +gen14.toString() +gen15.toString();

double lambda_nm = gen1*Math.pow(2, -1) + gen2*Math.pow(2, -2) +


gen3*Math.pow(2, -3) + gen4*Math.pow(2, -4)
+ gen5*Math.pow(2, -5) + gen6*Math.pow(2, -6) + gen7*Math.pow(2, -7) +
gen8*Math.pow(2, -8)
+ gen9*Math.pow(2, -9) + gen10*Math.pow(2, -10) + gen11*Math.pow(2, -11)
+ gen12*Math.pow(2, -12)
+ gen13*Math.pow(2, -13) + gen14*Math.pow(2, -14) + gen15*Math.pow(2, -
15);

System.out.println(gen1 +"" +gen2 +"" +gen3 +"" +gen4 +"" +gen5 +"" +gen6 +""
+gen7 +"" +gen8 +"" +gen9 +"" +gen10 +""
+gen11 +"" +gen12 +"" +gen13 +"" +gen14 +"" +gen15 +" = " +lambda_nm);
System.out.println("");
}

public void Mostrar_todos_individuos(IChromosome[] ind)


{

int cantidad = ind.length;


int x = 0;
while (x < cantidad)
{
double lambda_min = -0.7154884638;
double lambda_max = 0.0558596600000001;
gen1 = (Integer) ind[x].getGene(0).getAllele();
gen2 = (Integer) ind[x].getGene(1).getAllele();
gen3 = (Integer) ind[x].getGene(2).getAllele();
gen4 = (Integer) ind[x].getGene(3).getAllele();
gen5 = (Integer) ind[x].getGene(4).getAllele();
gen6 = (Integer) ind[x].getGene(5).getAllele();
gen7 = (Integer) ind[x].getGene(6).getAllele();
gen8 = (Integer) ind[x].getGene(7).getAllele();
gen9 = (Integer) ind[x].getGene(8).getAllele();

163
gen10 = (Integer) ind[x].getGene(9).getAllele();
gen11 = (Integer) ind[x].getGene(10).getAllele();
gen12 = (Integer) ind[x].getGene(11).getAllele();
gen13 = (Integer) ind[x].getGene(12).getAllele();
gen14 = (Integer) ind[x].getGene(13).getAllele();
gen15 = (Integer) ind[x].getGene(14).getAllele();

String cromosoma = gen1.toString() +gen2.toString() +gen3.toString()


+gen4.toString() +gen5.toString() +gen6.toString()
+gen7.toString() +gen8.toString() +gen9.toString() +gen10.toString()
+gen11.toString() +gen12.toString()
+gen13.toString() +gen14.toString() +gen15.toString();

double lambda_nm = gen1*Math.pow(2, -1) + gen2*Math.pow(2, -2) +


gen3*Math.pow(2, -3) + gen4*Math.pow(2, -4)
+ gen5*Math.pow(2, -5) + gen6*Math.pow(2, -6) + gen7*Math.pow(2, -7) +
gen8*Math.pow(2, -8)
+ gen9*Math.pow(2, -9) + gen10*Math.pow(2, -10) + gen11*Math.pow(2, -11)
+ gen12*Math.pow(2, -12)
+ gen13*Math.pow(2, -13) + gen14*Math.pow(2, -14) + gen15*Math.pow(2, -
15);

double lambda_act = (lambda_min + lambda_nm*(lambda_max - lambda_min));

System.out.println(gen1 +" " +gen2 +" " +gen3 +" " +gen4 +" " +gen5 +" " +gen6
+" " +gen7 +" " +gen8 +" " +gen9 +" "
+gen10 +" " +gen11 +" " +gen12 +" " +gen13 +" " +gen14 +" " +gen15 +" =
" +lambda_nm +" = " +lambda_act);

double P1 = (lambda_act + 0.6577131)/(0.0058322);


double P2 = (lambda_act + 0.6656661)/(0.005302);
double P3 = (lambda_act + 0.676005)/(0.005302);
double P4 = (lambda_act + 0.6797164)/(0.0058322);
double P5 = (lambda_act + 0.7595115)/(0.0068926);
double P6 = (lambda_act + 0.6874043)/(0.005302);

double Pt = P1 + P2 + P3 + P4 + P5 + P6;
double Error = Math.abs(90 - Pt);
int k = 10;
int dp = 90;
double Fitness = 1/(1 + k*(Error/dp));

System.out.println("P1 = "+P1);

164
System.out.println("P2 = " +P2);
System.out.println("P3 = " +P3);
System.out.println("P4 = " +P4);
System.out.println("P5 = " +P5);
System.out.println("P6 = " +P6);
System.out.println("Error : " +Error);
System.out.println("Fitness: " +Fitness);
System.out.println("");

x++;
}
System.out.println("");
System.out.println("");
}
}

165
package com.ahc.GeneticAlgorithm;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
* @author Alex M. Heredia Camacho
**/
import org.jgap.FitnessFunction;
import org.jgap.IChromosome;

public class Funcion_aptitud extends FitnessFunction


{
//Variable que tendr el valor de la funcin aptitud
//---------------------------------------
private double Fitness;

public Funcion_aptitud()
{
Fitness = 0;
}

public double evaluate(IChromosome Cromosoma)


{
Evaluar(Cromosoma);
return Fitness;
}

private void Evaluar(IChromosome Cromosoma)


{
Integer gen1 = (Integer) Cromosoma.getGene(0).getAllele();
Integer gen2 = (Integer) Cromosoma.getGene(1).getAllele();
Integer gen3 = (Integer) Cromosoma.getGene(2).getAllele();
Integer gen4 = (Integer) Cromosoma.getGene(3).getAllele();
Integer gen5 = (Integer) Cromosoma.getGene(4).getAllele();
Integer gen6 = (Integer) Cromosoma.getGene(5).getAllele();
Integer gen7 = (Integer) Cromosoma.getGene(6).getAllele();
Integer gen8 = (Integer) Cromosoma.getGene(7).getAllele();
Integer gen9 = (Integer) Cromosoma.getGene(8).getAllele();
Integer gen10 = (Integer) Cromosoma.getGene(9).getAllele();

166
Integer gen11 = (Integer) Cromosoma.getGene(10).getAllele();
Integer gen12 = (Integer) Cromosoma.getGene(11).getAllele();
Integer gen13 = (Integer) Cromosoma.getGene(12).getAllele();
Integer gen14 = (Integer) Cromosoma.getGene(13).getAllele();
Integer gen15 = (Integer) Cromosoma.getGene(14).getAllele();

String cromosoma = gen1.toString() +gen2.toString() +gen3.toString() +gen4.toString()


+gen5.toString() +gen6.toString()
+gen7.toString() + gen8.toString() + gen9.toString() + gen10.toString() +
gen11.toString() + gen12.toString()
+gen13.toString() + gen14.toString() +gen15.toString();

Fitness = 1/(1 + k*(G/dp));


}
}

167

Anda mungkin juga menyukai