Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A10 PDF
A10 PDF
Revista
Ind. datade la Facultad
8(2), 2005 de Ingeniería Industrial
Vol. (8) 2: pp. 61-68 (2005) UNMSM
ISSN: 1560-9146 (impreso) / ISSN: 1810-9993 (electrónico)
RESUMEN
INTRODUCCIÓN
El artículo presenta la implementación de algoritmos
de evolución diferencial en el software MATLAB®. Desde comienzo de 1950 el interés en algoritmos que se basan en
El precio que se paga por una optimización analogías de procesos naturales ha ido en aumento [6]. Desde esos
numérica eficiente, significa hacer uso de tiempos, los investigadores están usando los conceptos basados en la
matemáticas complejas. La evolución diferencial, es teoría de la evolución de Darwin, para la solución de problemas de
una excepción porque es fácil de aplicar y robusto optimización.
en la optimización numérica. La evolución
diferencial es una herramienta de diseño de gran Numerosos algoritmos basados en el principio de Darwin, han empezado
utilidad en las aplicaciones prácticas. El programa a desarrollarse en las últimas tres décadas. Ellos están usando el término
que se presenta en este artículo, es una de “métodos de computación evolucionaria”. El término de algoritmos
implementación mejorada y eficiente al programa evolucionarios, es usado en forma indistinta para describir diferentes
que presentan Price y Storm. métodos de computación evolucionaria. Para las tareas de optimización
de funciones de variables reales, la evolución estratégica ha emergido
Palabras Clave: Evolución diferencial, como un gran contendor a diversos métodos de solución tradicionales.
programación evolucionaria, algoritmos
genéticos, optimización. Los métodos de la computación evolucionaria, trabajan con el principio de
Darwin de la selección natural; principio que le sirvió a Herbert Simon para
acuñar el término “supervivencia de la especie”.
OPTIMIZATION FOR EVOLUTIONARY
CALCULATION Entre las técnicas mas notables de este grupo, destacan los algoritmos
ABSTRACT genéticos o GA (Genetic Algorithms), estrategias evolutivas o ES(Evolution
Strategies), programación evolucionaria o EP(Evolutionary Programming),
The article presents the implementation of differential sistemas clasificados y programación genética GP(Genetic Programming).
evolution algorithm in MATLAB® software. The
price paid for an efficient numerical optimization, Un algoritmo genético, es un tipo de sistema basado en la evolución, y
means to use of complex mathematics. The corresponde a una clase de algoritmo de programación estocástica
differential evolution is an exception because is adaptivo, que envuelve búsqueda y optimización, siendo usado por primera
easy to apply and robust in the numerical vez por John Holland[5]. Holland, creó un organismo electrónico, como
optimization. The differential evolution is a design una cadena de binarios o string de bits(denominado cromosoma), y
tool of great utility in practical applications. The tomando los principios de la genética y la evolución de las especies, tales
program presented in this article is an improved como la selección y la reproducción(incluyendo cruce aleatorio o crossover
and efficient implementation of the program that y mutación), los utilizó para buscar una solución eficiente contando con
present Price and Storm. un espacio enorme de solución. Si ejecuta el M-file de MATLAB®
gaGraph.m de la Figura 1, podrá apreciar la magnitud de un problema de
Key words: Diferential evolution, optimización, cuyo grafico se presenta en la Figura 2.
evolutionary programing, algorithms
genetics, optimization.
OPTIMIZACIÓN NUMÉRICA
(1) Ingeniero Industrial. Profesor del Departamento de
Ingeniería de Sistemas e Informática, UNMSM.
E-mail: eraffol@unmsm.edu.pe Tradicionalmente, los GA han sido representados usando números binarios:
(2) Ingeniero Industrial. Profesor del Departamento de El problema aparecía con optimizaciones de muchas variables y amplio
Ingeniería de Sistemas e Informática, UNMSM.
E-mail: eruizl@unmsm.edu.pe dominio en el rango de búsqueda. Pero para efectos de análisis teóricos,
permitían una elegante operación genética.
61
SISTEMAS E I NFORMÁTICA
El dilema ha sido siempre binarios contra punto La representación del punto flotante, es cerrada al
flotante o FP(de Floating Point). Una característica espacio del problema y permite una fácil
de la representación ha sido siempre el espacio de implementación de los operadores.
solución. Una propiedad importante, es que dos puntos
cerrados al espacio de representación, también debe Las iniciales estrategias evolutivas, estaban basadas
ser cerrado al espacio del problema y viceversa. En en poblaciones de un solo miembro. El único operador
una representación en binario, la discrepancia de la genético usado en los procesos de evolución es la
distancia, se define por el número de diferentes mutación. La representación del individuo estaba
posiciones de los bits. El código Gray, trajo la basada en un vector; siendo x un punto en el espacio
reducción de tales discrepancias. de solución y σ un vector de desviación estándar: El
proceso de mutación reemplaza x por
El Cuadro 1, muestra algunos números binarios y su
correspondiente código Gray. Note que esta clase x t +1 = x t + N (0, σ )
de código, cumple con la propiedad anterior, porque
el espacio difiere en un solo bit. El incremento de un siendo N (0, σ ) un vector de variable aleatoria
valor, sólo significa el cambio de un solo bit. Gaussiana.
Así, para convertir el binario 0110 a código de Gray, El teorema de la Convergencia, establece que un
se efectúan los cálculos del Cuadro 2. óptimo global es hallado, con una probabilidad de
Cuadro 1. Números binarios y su correspondiente código Gray Cuadro 2. Conversión del binario 0110 a código Gray
E n te ro B in a rio G ra y K bk Operación Gray
0 0000 0000
1 0001 0001
1 0 0 0
2 0010 0011 2 1 0 XOR 1 1
3 0011 0010 3 1 1 XOR 1 0
4 0100 0110 4 0 1 XOR 0 1
5 0101 0111
6 0110 0101
62
S ISTEMAS E I NFORMÁTICA
63
SISTEMAS E I NFORMÁTICA
1
gen
...
nvar - 1
fit
1
upper
...
nvar - 1
1
lower
...
nvar - 1
rfit
cfit
Genotipo
X2 F(Xb - Xa)
mínimo
generación actual
Xc
Xb - Xa nueva generación
X’c
Xb
Xa
líneas de contorno para f(x)
X1
Figura 5. Esquema de mutación
64
S ISTEMAS E I NFORMÁTICA
65
SISTEMAS E I NFORMÁTICA
...
% inicio
for i=1:NP
NP
for j=1:D
pop =
pop(i,j)=low(j)+rand*(upp(j)-
...
low(j));
end
end
for i = 1 to NP
Generar a, b, c entre [ 1, NP ] value=feval(f,trial);
Generar j entre [ 1, D]
if value<=val(i);
for k = 1 to D
if rand < CR or k = D newPop(i,:)=trial;
trialj = pop c,j + F( . . . ) val(i)=value;
else
trialj = pop i,j else
j = j + 1 newPop(i,:)=pop(i,:);
endfor end
endfor
Figura 10. Código para el proceso de mutación en DE Figura 11. Código para el proceso de evaluación/selección
Fuente: Elaboración propia, 2005. Fuente: Elaboración propia, 2005.
66
S ISTEMAS E I NFORMÁTICA
pop(i,j)=low(j)+rand*(upp(j)-low(j)); end
end end
end j=floor(rand*D)+1;
ibest=1; for k=1:D
val(1)=feval(f,pop(ibest,:)); % pruebas binomiales
min=val(1); if rand < CR | k==D
for i=2:NP
val(i)=feval(f,pop(i,:)); trial(j)=pop(c,j)+F*(pop(a,j)-pop(b,j));
if val(i)<min else
min=val(i); trial(j)=pop(i,j);
ibest=i; end
end j=rem(j,D)+1;
end end
popBest=pop(ibest,:); % Evaluate/select
% loop value=feval(f,trial);
iter=0; if value<=val(i);
while (iter<maxIter & min >ERROR) newPop(i,:)=trial;
for i=1:NP val(i)=value;
% mutacion/recombinacion else
while 1 newPop(i,:)=pop(i,:);
a=floor(rand*NP)+1; end
if a~=i end
break; % new generation
end pop(:,:)=newPop(:,:);
end iter=iter+1;
while 1 ibest=1;
b=floor(rand*NP)+1; min=val(1);
if b~=i & b~=a for i=2:NP
break; if val(i)<min
end min=val(i);
end ibest=i;
while 1 end
c=floor(rand*NP)+1; end
if c~=i & c~=b & c~=a popBest=pop(ibest,:);
break; end % End loop
67
SISTEMAS E I NFORMÁTICA
BIBLIOGRAFIA
El programa retorna el óptimo: tanto de la función 3. Corne, D.; Dorigo, M. and Glover, F. (1999). New
objetivo, como del vector de variables. El código com- Ideas in Optimization. McGraw-Hill. New York,
pleto del M-File se presenta en la Figura 12 (a y b). USA.
En las figuras 13, 14 y 15, se presentan las entradas de 7. Osman, I.H. and Kelly, J.P. (1996). Meta-
los límites Inferiores y superiores para los parámetros Heuristics:Theory and Applications. Kluwer.
de búsqueda, la función a optimizar; y la salida del pro- Dordrecht, Netherlands.
grama. Se observa que concuerda el óptimo.
8. Plagianakos, V.P. and Vrahatis, M.N. (2002).
Parallel Evolutionary Training Algorithms for
CONCLUSIONES Hardware-Friendly Neural Networks. Natural Comp.
1, 307-322.
El algoritmo DE, es robusto porque reproduce los mis-
mos resultados consistentemente sobre muchas prue- 9. Price, K. and Storn, R. (1997). Differential Evolution.
bas, allí donde algoritmos como el PSO (Particle Swarm Dr. Dobb's J., Issue 264, 18-24 and 78, April.
Optimization) fallan. DE es un algoritmo de búsqueda
basado en poblaciones, el cual es una versión mejorada 10.Raffo Lecca, E. (2005). Métodos Numéricos para
de GA. DE, ha resultado muy eficiente en la solución Ciencia e Ingeniería con MATLAB. Lima, Perú.
de optimización de muchas variables.
11.Storn, R. (1999). System Design by Constraint
La implementación en MATLAB, permite la ejecución Adaptation and Differential Evolution. IEEE
de funciones de optimización, de un modo simple y Transactions On Evolucionary Computation, Vol.
seguro; toda vez que los clásicos métodos de 3, No 1, April. USA.
optimización son inconvenientes al resolver proble-
mas de optimización con múltiples objetivos. 12.Storn, R. and Price, K. (1997). Differential
Evolution: A Simple and Efficient Adaptive
El programa que se presenta en este artículo, es una Scheme for Global Optimization over Continuous
implementación mejorada y eficiente al programa que Spaces. Journal of Global Optimization 11, 341-
presentan Price [9] y Storm [11] y [12]. 359. USA.
68