Vous êtes sur la page 1sur 10

Optimizacin de funciones a travs de Optimizacin por Enjambre de

Partculas y Algoritmos Genticos



Nelson Guerra lvarez
Pontificia Universidad Catlica de Valparaso, Escuela de Ingeniera Informtica,
Valparaso, Chile, 237-1099
nelson.guerra.a@mail.ucv.cl

y

Broderick Crawford Labrn
Pontificia Universidad Catlica de Valparaso, Escuela de Ingeniera Informtica,
Valparaso, Chile, 237-1099
broderick.crawford@ucv.cl


Abstract

This paper presents a comparison of experimental results between Particle Swarm Optimization (PSO) and Genetic
Algorithms (GAs) for the numerical optimization problems. The idea was to implement a PSO algorithm, to see its real
behavior by comparing it with the performance that presents GAs in the optimization of classical benchmarking
nonlinear functions. Moreover, the effects of different parameters values of the PSO and GAs algorithms are presented.
Computational results showed that the optimization by particle swarm has a better behavior than genetic algorithms in
most of the used benchmarks.

Keywords: Evolutionary Computation, Metaheuristic, Particle Swarm Optimization, Genetic Algorithms, Nonlinear
Functions Optimization.
Resumen
Este articulo presenta los resultados experimentales de la comparacin entre Optimizacin por Enjambre de Partculas y
Algoritmos Genticos, a travs de la solucin de ciertos problemas de optimizacin. La idea es implementar la
Optimizacin por Enjambre de Partculas para ver su real comportamiento, comparando dicho comportamiento con el de
Algoritmos Genticos, todo lo anterior, aplicndolo a la optimizacin de funciones no lineales. Tambin se presentan los
efectos que se producen en estas metaheuristicas al cambiar los valores de algunos de sus parmetros. Los resultados
muestran que la Optimizacin por Enjambre de Partculas tiene un mejor comportamiento que Algoritmos Geneticos en
la mayora de las funciones aplicadas.

Palabras claves: Computacin Evolutiva, Metaheursticas, Optimizacin por Enjambre de Partculas, Algoritmo
Gentico, Optimizacin de Funciones No Lineales.


1 Introduccin
En la mayora de los usos de ingeniera los problemas de optimizacin, de naturaleza continua o discreta, se presentan
muy a menudo, lo que le da mucha importancia a las tcnicas de optimizacin. Un esfuerzo enorme se ha realizado para
crear tcnicas de optimizacin, analticas y numricas. Aunque ahora existen muchas de tcnicas, todava hay un gran
nmero de funciones que estn ms all de los mtodos analticos y que presentan dificultades significativas para las
tcnicas numricas. Como consecuencia, hay una continua bsqueda de nuevas y ms robustas tcnicas de optimizacin,
que puedan solucionar tales problemas. Hemos estado viendo un creciente inters en la biologa, motivado por encontrar
la solucin a los problemas de optimizacin. De esto se han creado nuevas tcnicas como Algoritmos Genticos, en
ingles Genetic Algorithms (GA), y Redes Neuronales en las ltimas dcadas. Entre las ms recientes tcnicas inspiradas
en biologa se encuentran Optimizacin por Colonia de Hormigas, en ingles Ant Colony Optimization
(ACO)[2],[5],[6],[7], y Optimizacion por Enjambre de Partculas, en ingles Particle Swarm Optimization
2
(PSO)[14],[15]. PSO es una metaheuristica[17] propuesta por James Kennedy y Russell C. Eberhart en 1995, inspirada
por el comportamiento social de organismos tales como bandada de pjaros, enjambre de abejas y cardmenes de peces.
La base de PSO esta en la simulacin de estos modelos sociales para as extrapolarlos a problemas de optimizacin
reales que existen hoy en da.
En este artculo se compara el comportamiento de PSO y de GA solucionando la optimizacin de funciones no
lineales y los efectos de diversos valores de los parmetros de PSO y de GA. El estudio del comportamiento fue basado
en funciones de patrn para GA[3]. El resto del artculo se organiza como sigue: La seccin 2 esta abocada a la
presentacin de GA y PSO. La seccin 3 exhibe las funciones de patrn a optimizar. En la seccin 4, se muestran los
resultados y las discusiones experimentales. Finalmente, en la seccin 5 se deducen algunas conclusiones, como tambin
algunas perspectivas para investigaciones futuras.

2 Algoritmos Genticos y Optimizacin por Enjambre de Partculas
Una de las prcticas ms realizadas a la hora de verificar el real poder de una metaheurstica es, utilizar dicha tcnica
para encontrar el ptimo a funciones no lineales. Estos estudios ya se han realizado para la mayora (por no decir todas)
de las metaheursticas creadas hasta el momento, pero hay muy pocos estudios que comparan PSO con GA[19][21].
La mejor forma de comprobar el aporte de PSO, en cuanto a problemas de optimizacin se trata, es comparar su
comportamiento con el que tiene GA[3][18]. GA ha recibido mucha atencin con respecto a su potencial como tcnica
de optimizacin para funciones complejas. En las metaheuristicas, una de las decisiones ms cruciales es la asignacin
de valores adecuados a los parmetros. El comportamiento de estas dos metaheuristicas fue investigado sobre diez
funciones no lineales [13]. Dentro del conjunto de funciones hemos considerado funciones unimodal y multimodal.

2.1 Algoritmos Genticos (GA)
Los algoritmos genticos fueron introducidos formalmente en Estados Unidos en los aos 70 por John Holland[12],
de la Universidad de Michigan. Se han utilizado principalmente en algunos tipos de optimizacin, en particular, GA
funciona muy bien en problemas combinatoriales continuos y discretos. Esta metaheuristica es menos susceptible de
quedar atrapada en ptimos locales, comparada con los mtodos de bsqueda local. Sin embargo, tiene un costo
computacional costoso. Para usar GA se debe presentar la solucin al problema como un genoma o cromosoma. GA
crea una poblacin de soluciones, y les aplica operadores genticos tales como mutacin y cruce, para permitir
evolucionar las soluciones y encontrar la mejor.
Los aspectos ms importantes a considerar, a la hora de utilizar GA son: (1) definicin de la funcin objetivo, (2)
definicin e implementacin de la representacin gentica, y (3) definicin e implementacin de los operadores
genticos. Una vez que han sido definidas estas partes, GA debe trabajar bien. Es posible que diferentes valores de
parmetros permita, mejorar el comportamiento, encontrar ptimos mltiples si existen o hacer paralelismo con el
algoritmo [1][10].

2.1.1 Descripcin Algoritmo
Una descripcin posible de este algoritmo [4] es la siguiente:
Inicialmente se genera un conjunto de cromosomas (soluciones codificadas) para formar la poblacin inicial.
Cada generacin se ordena por la bondad (valor de la funcin objetivo).
(1)
) x ( F F
X } x ,..., x { X
) (
i
) (
i
) (
n
) ( ) (
1 1
1 1
1
1
=
=


(2)
siendo:
N : nmero total de cromosomas de una generacin
x
i
(1)
: cromosoma i-simo de la generacin 1
F
i
(1)
: bondad del cromosoma xi(1)

En cada generacin:
Se eligen dos soluciones progenitoras segn cierto criterio dependiente de la bondad de cada solucin.
Se generan dos soluciones descendientes segn ciertos operadores de reproduccin.
Se almacenan los descendientes ordenados por sus bondades.
Tras un cierto nmero de emparejamientos M (M<=N/2), se incorporan los descendientes en
sustitucin de los peores progenitores (segn bondades).

Tras un cierto nmero de generaciones (iteraciones), se finaliza el algoritmo. Cada paso de los definidos con
anterioridad puede ser interpretado de diferentes formas y adaptado al problema en concreto.
3
2.2 Optimizacin por Enjambre de Partculas
PSO es una metaheurstica evolutiva y de bsqueda [9], inspirada en el comportamiento social de las bandadas de
pjaros o cardmenes de peces. Las soluciones, llamadas partculas se echan a volar" en el espacio de bsqueda,
guiadas por la partcula que mejor solucin ha encontrado hasta el momento y que hace de lder de la bandada [16].
Cada partcula evoluciona teniendo en cuenta la mejor solucin encontrada en su recorrido y al lder. En cada iteracin,
las partculas modifican su velocidad hacia la mejor solucin de su entorno teniendo en cuenta la informacin del lder.
Existen dos versiones diferentes de PSO, el algoritmo normal y una versin binaria [6]. En el primero, las partculas
pueden tomar valores reales en cada una de las dimensiones. En el algoritmo binario, cada dimensin de las partculas
solo pueden tomar el valor 0 o 1. Para esta investigacin se utilizo PSO normal.
Comparando con GA, la ventaja de PSO es que es facil de implementar y contiene muy pocos parmetros a
modificar.

2.2.1 Definicin de Trminos
Sea
R
D


El espacio de bsqueda designado, con D la cantidad de dimensiones que cuenta
dicho espacio
) ,..., , , (
3 2 1 iD i i i i
x x x x X =


La posicin de la i-sima partcula en R
D

) ,..., , , (
3 2 1 iD i i i i
p p p p P =


La mejor posicin anterior (la posicin que dio el mejor resultado) de la partcula
i-sima.
) ,..., , , (
3 2 1 iD i i i i
v v v v V =


La velocidad de la partcula i-sima en R
D

Pbest

El valor del mejor fitness hasta este momento encontrado. Es el valor que se
obtiene al aplicar la funcin de fitness a cada partcula
id
p


Es la mejor posicin que ha obtenido la partcula i-sima en la dimensin d
gd
p


Es la mejor posicin del grupo de partculas en la dimensin d
) (t v
id


Velocidad de la i-sima partcula en la dimensin d para un tiempo t
) (t x
id


Posicin actual de la partcula i-sima en la dimensin d
1


Es un numero aleatorio que se encuentra en el rango [0, Qmax]
2


Es un numero aleatorio que se encuentra en el rango [0, Qmax]
Vmax

Velocidad mxima que puede alcanzar una partcula
-Vmax

Velocidad mnima que puede tener una partcula



Coeficiente de inercia : valor aleatorio en el rango [0.5, 1]

2.2.2 Pasos del algoritmo
La posicin de una partcula i cualquiera la denotaremos por Xi, donde Xi es un vector que almacena cada una de las
posiciones que tiene la partcula en cada una de las dimensiones que comprende el espacio de bsqueda. Adems,
denotaremos por Vi a la velocidad de la partcula i, la cual tambin es un vector, el cual contiene cada una de las
velocidades que tiene la partcula en cada dimensin. Esta velocidad es aadida a la posicin de la partcula, para mover
la partcula desde un tiempo t-1 a un tiempo t [15].
A continuacin se describen cada uno de los pasos que conlleva este algoritmo:
Paso1: Inicializar una poblacin de partculas con posiciones y velocidades aleatorias en un espacio D-dimensional.

Paso2: Para cada partcula, evaluar la funcin de fitnes en D variables.

Paso3: Comparar el fitness actual de cada partcula con el fitness de su mejor posicin anterior, pbest. Si el valor
actual es mejor que el de pbest, entonces asignarle a pbest al valor actual, y P
i
= X
i
, es decir, la localizacin
actual pasa ha ser la mejor hasta el momento.

Paso4: Identificar la partcula en la vecindad (puede ser todo el conjunto de partculas, o un grupo de ellos) con la
mejor tasa de xito hasta el momento, y asignar su ndice a la variable g.

Paso5: Ajustar la velocidad y posicin de la partcula de acuerdo a las ecuaciones (para cada dimensin) siguientes:
)) t ( x p ( )) t ( x p ( ) t ( v * ) t ( v
id gd id id id id
1 1 1
2 1
+ + =


(3)
4
) ( ) 1 ( ) ( t v t x t x
id id id
+ =


(4)

Paso6:

Verificar si se cumple el criterio de detencin (mximo nmero de iteraciones o valor de fitness alcanzado), si
no ir al Paso2.

La velocidad es una funcin que esta compuesta por la suma de tres partes. La primera parte es la velocidad anterior
de la partcula. A esta parte se le conoce como inercia. La segunda parte es la diferencia entre la mejor posicin
encontrada por la partcula, con la actual posicin. Esta es la parte cognitiva que representa el aprendizaje de su propia
experiencia. Y la ltima parte es la diferencia entre la mejor posicin alcanzada por un vecino, con la posicin actual de
la partcula. Esta parte es la social, que representa el aprendizaje del grupo [15].

3 Patron de Funciones
Se han seleccionado 10 diferentes funciones no lineales para verificar el comportamiento de PSO, las cuales se describen
en la tabla 1.
Tabla 1
Funciones de prueba seleccionadas para comparar sus comportamiento con GA, como con PSO.
Funcion Limites Optimo
F1
=
=
2
1
2
1
i
i
x f

12 5 12 5 . x .
i


0 0
1
= = x , f

F2
2
1
2
2
2
1 2
1 100 ) x ( ) x x ( * f + =

048 2 048 2 . x .
i


0 0
2
= = x , f

F3
=
=
5
1
3
i
i
) x ( entero f

12 5 12 5 . x .
i


0 0
3
= = x , f

F4

=
+ =
30
1
4
1 0
i
i
)) , ( Gauss x * i ( f

28 1 28 1 . x .
i


0 0
4
= = x , f

F5
(

=
+
+ =

=
=
etc ... 16 - 16 - 16 - 16 - 32 - 32 - 32 - 32 - 32 -
etc ... 16 0 16 - 32 - 32 16 0 16 - 32 -
[aij]
1
002 0
25
1
2
1
6
5
j
i
ij i
) a x ( j
. f

536 65 536 65 . x .
i


0 0
5
= = x , f

F6
829101 4189
10
10
1
6
. V
)) x ( seno * x ( V * f
i
i i
=
+ =

=

500 500
i
x

420 3 0
6
= = x , . f

F7
10
2 10 20
20
1
2
7
=
+ =

=
A
)) x * * ( eno cos * x ( A * f
i
i i


12 5 12 5 . x .
i


0 0
7
= = x , f

F8

= =
|
|
.
|

\
|

|
|
.
|

\
|
+ =
10
1
10
1
2
8
4000
1
i i
i i
i
x
eno cos
x
f
C

600 600
i
x

0 0
8
= = x , f

F9
29 1 29
1 1 9
2
2 1
1 2
=
=

= =

i ; / i t
) t * x ( t * x * ) j ( f
i
n
j
n
j
) j (
i j
) j (
i j

31 31
i
x

0 0
9
= = x , f

F10 ) x x ( * f
) i ( i
/ n
i
2
1 2
2
2
10
10

=
=


31 31
i
x

0 0
10
= = x , f

Todas las funciones antes descritas reflejan distintos grados de complejidad. El rango de funciones F1 F4 son las
llamadas funciones unimodal, es decir, cuentan con un solo ptimo. El resto defunciones son multimodal, es decir,
contienen muchos ptimos locales, pero solo un ptimo global. Lo importante es alcanzar el valor ptimo, que en este
caso el ptimo es el valor mnimo, como se especifica en la 3 columna de la tabla anterior [2].

5
4 Resultados Experimentales y Discusiones
Para cada uno de los experimentos con PSO se realizaron 40 pruebas con cada una de las funciones, donde se
tomaba el valor mnimo arrojado por estas pruebas, esto con cada uno de los parmetros a evaluar. Como valor estndar
para el primer experimento, se fijo a 100 el numero de iteraciones, para ser lo mas equivalente posible a los
experimentos con algoritmos genticos. En el segundo experimento, se fijo como valor estndar 1000 iteraciones, para
permitir al algoritmo converger de una buena forma. En cuanto a algoritmos genticos, se utilizaron como valores
estndar, 0.7 probabilidad de cruzamiento, y 0.06 probabilidad de mutacin [9].

4.1 Experimento 1: Algoritmos Genticos versus Particle Swarm Optimization.
Este primer experimento compara los resultados obtenidos al aplicar el Algoritmo Gentico a cada una de las
funciones, como tambin, al aplicar la Optimizacin por Enjambre de Partculas a las mismas. Para cada una de estas
metaheursticas se irn modificando parmetros, para conocer los mejores valores que pueda arrojar cada tipo.
La principal medida del comportamiento de GA es la eficiencia, es decir, la habilidad de alcanzar un valor ptimo
cuando es aumentada la cantidad de individuos, como tambin, si esto ultimo trae como consecuencia la disminucin del
nmero de iteraciones.
El Algoritmo gentico ocupado, selecciona en cada iteracin, solo a los mejores individuos para poder realizar
cruzamiento y mutacin. Al final el proceso, se obtiene una nueva generacin, que desciende solo de los individuos
mejor evaluados.
Lo que se trata de determinar es el efecto que produce en el comportamiento de GA:
El tamao de la poblacin, la probabilidad de cruzamiento de los padres, la probabilidad de mutacin y
la generacin de valores aleatorios. Ms especficamente, el total de parmetros ocupados son:
a) Tamao poblacin : {50, 100, 150, 200, 300, 350, 400}
b) Probabilidad de cruzamiento : {0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95 }
c) Probabilidad de Mutacin : {0.001, 0.02, 0.04, 0.06, 0.08, 0.10, 0.18, 0.20}
d) Mecanismo de cruzamiento : Cruzamiento uniforme
e) Criterio de termino : La ejecucin del algoritmo se terminara cuando luego de 100
iteraciones, el mejor individuo no ha producido grandes cambios.
f) Seleccin : Seleccin por torneo
g) Funcin de Fitness : Misma funcin evaluar

En cuanto a PSO, La principal medida del comportamiento es al igual que en GA la eficiencia, es decir, la
habilidad de alcanzar un valor ptimo cuando es aumentada la cantidad de individuos, como tambin la modificacin de
la velocidad de cada partcula, y si esto trae como consecuencia la disminucin del nmero de iteraciones y el
acercamiento mximo al valor optimo.
Se tratara de definir los parmetros de la manera mas parecida a la forma en que se realizo para GA, para poder
realizar al final, una comparacin lo mas real y equivalente posible.
Usando dicha informacin, se trata de determinar el efecto que produce en el comportamiento de PSO el tamao de
la poblacin, al igual que en GA. Ms especficamente, el total de parmetros ocupados son:
a) Tamao poblacin : {50, 100, 150, 200, 300, 350, 400}
b) Numero de iteraciones : 100
c) Coeficiente de inercia ( ) : 0.5+rand(0-0.5)
d) VMAX : Xmax
e) Criterio de termino : La ejecucin del algoritmo se detendr cuando se alcance el nmero de
iteraciones, o cuando se alcance el valor de fitness deseado.
f) Valor fitness : para el general de las funciones a evaluar, se ocupar 0.00001
g) Funcin de Fitness : Misma funcin a encontrar ptimo.
h) Q1 y Q2 : Valores aleatorios entre 0.0 y 1.0
i) Vecindario : Vecindad global

4.2 Resultados de Experimento 1.
A primera vista se aprecia que tanto para GA como para PSO el tamao de la poblacin es importante, para poblaciones
pequeas, los algoritmos tienen un comportamiento pobre, pero a medida que se aumenta el tamao, se va mejorando el
comportamiento de cada tcnica. Para el caso de GA un tamao muy grande no produce una real mejora en el algoritmo,
por lo que se debera seleccionar una poblacin de tamao medio, que es donde se produce el mejor comportamiento.
Para PSO, una poblacin grande permite acercarse ms al valor optimo, pero la diferencia no es sustancial comparado a
una poblacin de tamao medio. Lo importante aqu es verificar si la mejora que se produce con una poblacin grande
es ms importante que como consecuencia a lo mismo realizar una mayor cantidad de iteraciones.
6
La figura 1 muestra lo descrito anteriormente. El grfico de la izquierda representa el comportamiento de GA para
cada una de las funciones, variando el tamao de la poblacin. El grfico de de la derecha, representa el comportamiento
de PSO para cada una de las funciones, modificando el tamao de la poblacin.

GA applied to all the functions, for every size of
population
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
50 100 150 200 250 300 350 400
Population size
F
(
x
)
F1 F2 F3 F4 F5 F7
F8 F9 F10

(a)
PSO applied to all the functions, for every size of
population
-2
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
50 100 150 200 250 300 350 400
Population size
F
(
x
)
F1 F2 F3 F4 F5 F7
F8 F9 F10

(b)
Figura1
GA y PSO aplicado a cada una de las funciones. Bsqueda de tamao optimo de poblacin. La figura (a) muestra el comportamiento de GA, la figura
(b) muestra el comportamiento de PSO.

Como se puede ver, los algoritmos no se comportan bien para valores pequeos de poblacin. Valores pequeos
proveen muestras insuficientes, lo que hace que los algoritmos acten de una forma pobre. Al contrario, grandes
tamaos de poblacin, mejorar el comportamiento del algoritmo, debido a una bsqueda informada y dirigida. Sin
embargo, una poblacin grande, requiere ms evaluaciones por iteracin, lo que podra demorar encontrar el valor
ptimo. Se deduce fcilmente, que una poblacin de tamao 200 - 250 serian los valores con los que se obtendra el
mejor desempeo del algoritmo GA, aunque en general se puede uno dar cuenta, que el tamao optimo de poblacin,
depende de la complejidad de la funcin. Para el caso de PSO los tamaos de poblacin 200 250 tambin tienen un
buen comportamiento. Con respecto comportamiento de la funcin 3 en el grafico (b), se puede decir que PSO no tiene
un buen desempeo para problemas discretos. Esto se soluciono implementando solo para la funcin 3 PSO binario, el
cual llego al ptimo sin ningn problema.
F6 no aparece en ninguno de los grficos de la figura anterior, debido a que los valores obtenidos por cada uno de
los algoritmos se salen del rango que tienen los grficos, pero el comportamiento es similar a las otras funciones.
La tabla 1 y tabla 2 muestran los valores que obtuvo GA y PSO respectivamente, con cada una de las funciones. Es
fcil apreciar que PSO tiene un mejor comportamiento que GA para la mayora de las funciones.

Tabla 1
Resultados de todas las funciones aplicando GA, para cada uno de los tamaos de poblacin (Ps). Se puede corroborar que los tamaos ptimos
de poblacin para el algoritmo gentico son los tamaos centrales, es decir, 200 -250.
GA Poblacin 50 100 150 200 250 300 350 400
F1 5,25 3,85 1,81 0,6 0,8 0,7 0,75 0,68
F2 4,8 3,75 1,61 0,4 0,5 0,4 0,45 0,48
F3 4 3,8 1,6 0,6 1,74 1,76 1,78 1,8
F4 12,35 6,21 2 1,2 1,95 1,96 1,97 1,98
F5 12 5 1,8 1 1,86 1,87 1,88 1,89
F6 6900 5700 5380 4400 4316,25 4318,25 4320,25 4322,25
F7 65 33,6 10 12,2 10,06 10,07 10,35 10,07
F8 9,8 4,2 1,9 2 1,96 1,97 1,98 1,99
F9 39,25 11,15 4,7 1,01 2,15 2,01 2,15 2,16
F10 22,3 12,1 2,3 1,8 2,37 2,39 2,41 2,43

7
Como se afirmo anteriormente, el tamao de la poblacin afecta tanto el comportamiento final, como la eficiencia
del algoritmo gentico. Una poblacin grande requiere ms evaluaciones por generacin, que posiblemente resulten en
una degradacin del tiempo ocupado por el algoritmo para converger al ptimo. Esto enfatiza que si el tamao de la
poblacin es aumentado suficientemente, puede compensar las diferencias producidas por el cruzamiento. Se pueden
apreciar los resultados de la probabilidad de cruzamiento y la probabilidad de mutacin con GA en [9][11].

Tabla 2
Resultados de todas las funciones aplicando PSO, para cada uno de los tamaos de poblacin, realizando 100 iteraciones. Se puede corroborar que los
tamaos ptimos de poblacin para el algoritmo PSO son los tamaos finales, es decir, 350 -400.
PSO Poblacin 50 100 150 200 250 300 350 400
F1 0 0 0 0 0 0 0 0
F2 0,000006 0,000001 0 0 0 0 0 0
F3 12 0 -4 3 -3 4 -2 1
F4 1,13909 1,013909 1,013909 1,013909 1,013909 1,013909 1,013909 1,013909
F5 0,002000 0,002000 0,002000 0,002000 0,002000 0,002000 0,002000 0,002000
F6 1689,7419 1530,0153 1669,1450 1158,0014 1869,5205 1255,3172 1591,7275 1293,9213
F7 48,005 22,4 7,2 7,0 6,9 6,7 6,0 6,0
F8 0,30382 0,103297 0,029547 0,061512 0,081305 0,086154 0,071268 0,078758
F9 39,25 11,15 4,7 1,01 2,15 2,01 2,15 2,16
F10 45,624 41,063244 3,181109 3,181109 3,181109 3,181109 3,181109 3,181109

4.3 Experimento 2: Variacin de Vmax y en PSO
Este segundo experimento realiza un anlisis particular de PSO para corroborar el comportamiento de este al modificar
algunos de los parmetros que utiliza, y as deducir, cuales son los valores de dichos parmetros que permiten al
algoritmo tener un desempeo eficiente. Lo principal de esta parte del documento es que el algoritmo PSO funciona
bien, como se corroboro anteriormente, pero para que su rendimiento sea el deseado se debe seleccionar aparte del
numero de partculas la cantidad de iteraciones, como tambin el valor de la velocidad mxima (Vmax) que puede
adquirir una partcula, ya que con este parmetro, se asegura que las partculas se acerquen al optimo. Lo complejo de la
seleccin de este parmetro es que, para el caso de aplicar PSO a la bsqueda de ptimos en funciones no lineales, se
debe conocer dicha funcin, ya que Vmax depende directamente de la funcin. Como solucin a este inconveniente
surgi un coeficiente, llamado coeficiente de inercia [8], el cual se multiplica, en la formula de la velocidad, con el valor
de la velocidad anterior. Esto es para solucionar el problema de la convergencia.
Lo que busca es probar con distintas cantidades de iteraciones, distintos valores de coeficiente de inercia, como
tambin valores de Vmax, que permitan realizar una tarea exitosa al algoritmo PSO.
La principal medida del comportamiento de PSO es al igual que el las pruebas anteriores la eficiencia, pero se
verificara por medio de la modificacin de algunos parmetros necesarios.
Usando la informacin generada en la seccin anterior, se trata de determinar el efecto que produce en el
comportamiento de PSO el tamao de la poblacin, la cantidad de iteraciones, el valor de velocidad mxima y la
importancia del coeficiente de inercia. Ms especficamente, el total de parmetros ocupados son:
a) Tamao poblacin : {50, 100, 150, 200, 300, 350, 400}
b) Numero de iteraciones : {100, 500, 1000, 1500, 2000 }
c) Coeficiente de inercia ( ) : {0.9, 0.5, 0.5+rand(0-0.5), 0.9 dec 0.4}
d) VMAX : {Xmax, 0.5Xmax, 0.1Xmax}
e) Criterio de termino : La ejecucin del algoritmo se detendr cuando se alcance el nmero de
iteraciones, o cuando se alcance el valor de fitness deseado.
f) Valor fitness : para el general de las funciones a evaluar, se ocupar 0.00001
g) Funcin de Fitness : Misma funcin a encontrar ptimo.
h) Q1 y Q2 : Valores aleatorios entre 0.0 y 1.0
i) Vecindario : Vecindad global

4.4 Resultados de Experimento 2
La tabla 3 muestra el comportamiento de PSO con cada una de las funciones al variar el nmero de iteraciones. Se
puede apreciar que a mayor numero de iteraciones, el algoritmo ms se acerca al valor ptimo. Esto se debe a que cada
partcula tiene ms oportunidades de ajustar su velocidad y posicin, pero el realizar ms iteraciones tiene un costo
computacional mayor.
8

Tabla 3
Resultados de todas las funciones aplicando PSO, para cada uno de los nmeros de iteraciones (I), con 50 partculas. Se puede corroborar que
los tamaos ptimos de poblacin para el algoritmo PSO son los tamaos finales, es decir, 1500 -2000
PSO
Iteraciones 100 500 1000 1500 2000

F1 0,000002 0,000000 0,000000 0,000000 0,000000

F2 0,000020 0,000001 0,000000 0,000000 0,000000

F3 -1,000000 0,000000 -2,000000 0,000000 -1,000000

F4 2,675971 1,014185 1,013909 1,013909 1,013909

F5 0,002000 0,002000 0,002000 0,002000 0,002000

F6 3244,432617 2201,208252 1416,789185 856,605164 430,144775

F7 89,953804 72,441513 21,176916 11,943318 7,962540

F8 0,814359 0,076409 0,059922 0,044254 0,034780

F9 1,368919 0,477806 0,146488 0,073759 0,059207

F10 18,504878 15,570250 4,000000 1,200000 1,255873

Con respecto a Vmax y se puede apreciar en la figura 2 que la utilizacin de un coeficiente de inercia mejora el
comportamiento de PSO. Una buena eleccin de Vmax permite tener un buen desempeo del algoritmo, pero la
utilizacin de un coeficiente de inercia tambin mejora el comportamiento de PSO, pero lo mantiene general a cualquier
tipo de problema, cosa que no ocurre al configurar Vmax, ya que un buen valor para este parmetro esta directamente
relacionado al problema en si. Este comportamiento se mantiene con el resto de las funciones, es decir, el coeficiente de
inercia permite un mejor comportamiento al algoritmo que cualquier valor de Xmax.

PSO applied to f7 for different Vmax and Inertia
Weight
0
20
40
60
80
100
120
140
160
180
200
50P 100P 150P 200P 250P 300P 350P 400P
Population size
F
(
x
)
CI=0,9 CI=0,5
CI=0,5+Rand CI=0,9-0,4Dec
Vamx=Xmax Vmax=0,5*Xmax
Vmax=0,*Xmax

Figura 2
Algoritmo PSO aplicado a la funcin f7, para los cuatro valores de coeficiente de inercia y los 3 valores de Vmax. Con 1000 iteraciones y 10
dimensiones cada partcula

4.5 Discusin de los Resultados
El tamao de la poblacin es un factor relevante tanto en GA como en PSO. Se aprecia en la figura 1 que valores
pequeos de poblacin traen como consecuencia, un desempeo pobre de estos dos algoritmos. Pero tambin valores
muy grandes de poblacin producen una mejora muy residual comparada a la mejora que se produce al utilizar tamaos
medios de poblacin, pero si aumentan el costo computacional de los algoritmos. Esto es algo muy importante a la hora
de emplear algunas de estas metaheursticas.
PSO tiene un buen desempeo en la optimizacin de funciones no lineales. En la figura 1 se apreci que el
algoritmo se acerca al optimo en 9 de las 10 funciones, e incluso se puede apreciar, al mirar la tabla 1 y la tabla 2, que el
algoritmo se comporta mejor que GA en varias de estas funciones.
En cuanto a los resultados arrojados por la funcin F3, se pueden decir 2 cosas:
9
El valor negativo que pueda arrojar el algoritmo PSO en algn momento, significa que se ha alcanzado
el valor ptimo, debido a que el valor optimo de estas funciones, es el valor mnimo.
La Metaheurstica (algoritmo) PSO ordinario, tiene mejor desempeo en funciones que cuentan con
valores reales. Para el caso de funciones con valores discretos, PSO binario tiene un mejor desempeo,
ya que cada posicin de cada dimensin que tienen las partcula, solo puede tomar el valor 0 o 1, por
lo que en si cada partcula es una cadena binaria, que siempre da un valor positivo al traspasar esa
cadena binaria a un valor numrico, lo que solucionara el problema de los ptimos negativos.
El nmero de iteraciones ayuda a PSO a encontrar el valor ptimo de las funciones. Mientras mayor es el nmero
de iteraciones, ms se acerca el algoritmo, pero, al igual que en el tamao de poblacin, al aumentar la cantidad de
iteraciones tambin se aumenta el costo computacional, lo que se debe tomar en consideracin a la hora de utilizar
alguno de estos algoritmos.
Para un mejor rendimiento de PSO se debe seleccionar, aparte del nmero de partculas, la cantidad de iteraciones,
el valor de la velocidad mxima (Vmax) que puede adquirir una partcula, ya que con este parmetro, se asegura que las
partculas se acerquen al ptimo. Lo complejo de la seleccin de este parmetro es que, para el caso de aplicar PSO a la
bsqueda de ptimos en funciones no lineales, se debe conocer dicha funcin, ya que Vmax depende directamente de la
funcin. Como solucin a este inconveniente surgi un coeficiente, llamado coeficiente de inercia, el cual se multiplica,
en la formula de la velocidad, con el valor de la velocidad anterior. Esto es para solucionar el problema de la
convergencia.
Se deduce fcilmente de la figura 2, que muestra el comportamiento de PSO aplicado a F7, que el coeficiente de
inercia se comporta mucho mejor que los valores de Vmax, obteniendo el peor resultado cuando no se utiliza coeficiente
de inercia, y el valor de Vmax es igual al de Xmax. Por otro lado, de manera particular, el valor de coeficiente de inercia
0.9 y el valor 0.5+ aleatorio [0-0.5] tienen un buen comportamiento, y permiten al algoritmo PSO converger al valor
ptimo, por medio de la explotacin del espacio de bsqueda.

5 Conclusiones
En este artculo se present el estudio de la metaheurstica PSO y la comparacin de los resultados experimentales entre
PSO y GA para algunos problemas numricos de optimizacin. Para lograr esto, se tomo una muestra representativa de
funciones patrones no lineales, a las cuales se deba encontrar el valor mnimo. Primero se realizo un experimento en
donde se compar el comportamiento de PSO con el ofrecido por GA, al buscar el mnimo en las mismas funciones.
Luego se realizaron pruebas particulares a PSO, modificando parmetros como nmero de iteraciones, Vmax y , para
as obtener una configuracin general, que permitiera resolver una gran gama de problemas.
Se ha demostrado que PSO tiene el potencial de ser utilizado en la optimizacin de diversas funciones unimodal y
multimodal, que se consideran difciles para otras tcnicas. De los resultados experimentales de PSO se puede deducir
tambin, que los valores de ciertos parmetros afectan fuertemente su comportamiento. Un parmetro sensible es el
nmero de iteraciones; a mayor cantidad de iteraciones, mejor es el comportamiento de PSO. Sin embargo, no se
produce una mejora significativa al aumentar el tamao de la poblacin. Un tamao medio de poblacin (250-350
partculas) permite conseguir un buen comportamiento de la metaheuristica, a muy bajo costo computacional. Por otro
lado, el ajuste de la velocidad es uno de los factores de xito mas critico. Una buena configuracin de Vmax ayuda a la
convergencia del algoritmo; se obtienen los mejores resultados con un valor de Vmax igual a 10% de Xmax. Un buen
coeficiente de inercia tambin mejora el desempeo de PSO. Un coeficiente de inercia igual a 0,9 +0,5*aleatorio(0-0,5)
muestra el mejor resultado de PSO.
En resumen, es posible concluir que PSO es una metaheuristica que parece ser eficaz y eficiente para optimizar una
amplia gama de funciones. PSO tiene semejanza con la computacin evolutiva. Es altamente dependiente de procesos
estocsticos; el ajuste de los parmetros de PSO es conceptualmente similar a la operacin de cruce utilizada por GA, y
PSO utiliza el concepto retroalimentacin (fitness) tambin.
Como trabajo futuro se espera aplicar PSO a problemas de asignacin de recursos, los cuales se pueden modelar a
travs de problemas combinatoriales. Esto debido a la simplicidad de PSO, que tiene como consecuencia un bajo costo
computacional para encontrar las soluciones ha dichos problemas.

6 Referencias
[1] Collins J.J. A Global Representation Scheme for Genetic Algorithms. Proceedings of the International
Conference on Computational Intelligence. Vol 1226, 1997, pp. 1-15
[2] Colorni A., Dorigo M. and Maniezzo V. An Investigation of some Properties of an Ant Algorithm.
Proceedings of the Parallel Problem Solving from Nature Conference (PPSN 92), Brussels. Elsevier
Publishing, 1992, pp.509-520
[3] Digalakis J. and Margaritis K. An Experimental Study of Benchmarking Function for Genetic Algorithms.
Deparment of apllied informatics, University of Macedonia. International Journal Computer Math. Vol. 79,
10
2002, pp. 403416.
[4] Digalakis J. and Margaritis K. On Benchmarking functions for genetic algorithms. Deparment of apllied
informatics, University of Macedonia. International Journal Computer Math. Vol. 00, 2002, pp. 1-27.
[5] Dorigo M. and L.M. Gambardella. Ant Colonies for the Traveling Salesman Problem. BioSystems, in press.
(Also Technical Report TR/IRIDIA/1996-3, IRIDIA, Universit Libre de Bruxelles. 1997
[6] Dorigo M. and L.M. Gambardella. Ant Colony System: A Cooperative Learning Approach to the Traveling
Salesman Problem. IEEE Transactions on Evolutionary Computation. Vol.1, No.1, 1997. In press.
[7] Dorigo M., V. Maniezzo and A. Colorni. The Ant System: Optimization by a colony of cooperating agents.
IEEE Transactions on Systems, Man, and Cybernetics-Part B. Vol 26, N 1, 1996, pp.29-41.
[8] Eberhart, R. and Shi, Y. Comparing inertia weights and constriction factors in particle swarm optimization.
Proceedings of the IEEE Congress on Evolutionary Computation (CEC 2000). San Diego, CA, 2000, pp. 84-
88.
[9] Glover F. and Kochenberger G.G. Handbook of Metaheuristics. Kluwer Aca-demic Publishers. 2003.
[10] Goldberg David E. Genetic Algorithms in search, optimization and machine learning. Adison Wesley, 1989
[11] Heppner F. and U. Grenander. A stochastic nonlinear model for coordinated bird flocks. In S.Krasner, Ed.,
The Ubiquity of Chaos. AAAS Publications. Washington, DC. 1990, pp. 233-238.
[12] Holland, John. Genetic algorithms. Scientific American. Vol 267, No 1, 1992, pp. 66-72.
[13] Kalyanmoy Deb. Genetic algorithms in multimodal function optimization. TCGA report no. 89002, The
University of Alabama, Dept. of Engineering mechanics. 1989
[14] Kennedy J and Eberhart R. Particle Swarm Optimization. Proceedings of IEEE International Conference on
Neural Networks. 1995, pp. 1942-1948.
[15] Kennedy J. and Eberhart, R. Swarm Intelligence. Morgan Kaufmann Publishers. 2001
[16] Kennedy J. Thinking is social: Experiments with the adaptive culture model. Journal of Conflict Resolution.
Vol 42, N 1, 1998, pp. 56-76.
[17] Melin B, Moreno Perez J and Moreno Vega J. Metaheuristics: A global view. Revista Iberoamericana de
Inteligencia Artificial. Vol 2, N 19, 2003, pp. 7-28.
[18] Chambers L. Practical Handbook of Genetic Algorithms: Applications, volume 1. CRC Press, 1995.
[19] Settles, M., Rodebaugh, B., and Soule, T. Comparison of genetic algorithm and particle swarm optimizer
when evolving a recurrent neural network. Proceedings of the Genetic and Evolutionary Computation
Conference 2003 (GECCO 2003), Chicago, IL, USA. 2003, pp. 151-152.
[20] Tang, K.S., Man K.F. and Kwong S. Genetic algorithms and their applications. IEEE Signal Processing
Magazine. Vol 13, N 6, 1996, p.22-37.
[21] Vesterstrom J. and Thomsen R. A Comparative Study of Differential Evolution, Particle Swarm Optimization,
and Evolutionary Algorithms on Numerical Benchmark Problems. Congress on Evolutionary Computation.
CEC04, Vol, N 1, 2004, pp. 1980-1987.

Vous aimerez peut-être aussi