7.3 Algoritmo Genético Clásico
7.3.6 Estrategias de selección
Una vez creada una población inicial de m individuos X0 ={xi}m
i=1 y cal- culada la aptitud de cada uno de sus individuosxi almacenada en el vector
126 Algoritmos Evolutivos x1 x2 Genotipo Fenotipo Funci´on de evaluaci´on f(x) =f(x1,x2) =0.5− sinqx2 1+x22 2 −0.5 1.0+0.001 x21+x222 γ:B127→R2 Decodificaci´on x= (x1,x2) 0 1 0 0 1 1 0 1 0 1 1 0
Figura 7.9: Cromosoma y Función de Evaluación
de aptitudes At, se seleccionan los individuos que serán reproducidos. Es- ta selección suele basarse en la aptitud de cada individuo a(f(xi),Xt) que en este momento representa unaprobabilidadde selección de cada individuo xi con respecto a los demás individuos de la población. La selección suele involucrar un sorteo usando la propabilidad, lo que la caracteriza como un proceso probabilístico.
Las técnicas de selección usadas en algoritmos genéticos se pueden clasificar en 2 grupos:
◦ Selección proporcional
◦ Selección por torneo Selección Proporcional
Que son algunas estrategias de selección originalmente propuestas por Ho- lland [Holland1975] cuya característica es que los individuos se seleccionan de acuerdo a su contribución de aptitud con respecto al total de aptitud de la población. Dentro de este grupo, se tiene las siguientes estrategias
◦ Selección por Ruleta (Roulette Selection),
◦ Sobrante Estocástico,
◦ Muestreo Determinístico.
◦ Universal Estocástico,
Adicionalmente existen otras técnicas que, siendo proporcionales, implemen- tan los siguientes aditamentos
◦ Escalamiento-σ
◦ Uso de jerarquías
◦ Selección de Boltzmann
Selección por Ruleta
Entre todas las estrategias de selección, la más utilizada por su simplicidad y facilidad de entendimiento es la selección por ruleta o Roulette Selection. Su principio de trabajo se basa en formar un vector de aptitudes acumuladas donde cada individuo aporta con su peso en aptitud. Luego se realiza un sor- teo generando una posición entre 0 y el valor total acumulado y se selecciona el individuo que aportó la parte donde se encuentra el punto sorteado. De
7.3 Algoritmo Genético Clásico 127 Individuo i fenotipo ai∈ At bi∈ Bt ai/bm( %) x1 11010110 254 254 24.49 % x2 10100111 47 301 4.53 % x3 00110110 457 758 44.07 % x4 01110010 194 952 18.71 % x5 11110010 85 1037 8.20 % Total 1037 100.00 %
Cuadro 7.2: Ejemplo de aptitudes para aplicación de la ruleta
esta forma, un individuo que aporte más aptitud tendrá más posibilidad de ser seleccionado. El procedimieto de la ruleta se describe en el algoritmo 8:
Algorithm 8 Selección por Ruleta
Xt At calcular Bt={b1, . . . , bm} j= 0generar uj=bmU(0,1)uj ∈/[xj,xj+1] j=j+ 1 seleccionar xj∈Xt
donde:
At es el vector de aptitudes deXt
Bt con componentes{b1, . . . , bm}, es el vector de aptitudes acumuladas deXt que se calcula de la siguiente manera:
bi=ai i= 1 bi=bi−1+ai i >1
(7.31)
bm es el valor total de aptitud acumulada
U(0,1) es un generador de números aleatorios entre 0, 1
Dado un individuoxi y su aptituda(xi,Xt), su probabilidad de selecciónpxi para el modelo de selección por ruleta será:
pxi=
a(xi,Xt)
Pm
k=1ak
(7.32)
En la tabla 7.2 se muestra un conjunto de valores ejemplo para un algoritmo genético con cromosomas binarios.
cuya ruleta resultante para aplicar el algoritmo de selección es ilustrada por la figura 7.10: x1 x2 x3 x4 x5
128 Algoritmos Evolutivos
Individuo i Fenotipo ai∈ At et int(et) et−int(et)
x1 110100 220 1.23 1 0.23
x2 011010 140 0.78 0 0.78
x3 111001 315 1.76 1 0.76
x4 001101 42 0.23 0 0.23
Total 717 4.00 2
Cuadro 7.3: Ejemplo de aplicación del Sobrante Estocástico
Análisis de la Selección por Ruleta
La ruleta tiene algunas deficiencias que se describen a seguir:
◦ Su complejidad computacional esO(n2). El algoritmo se hace ineficiente cuando crece el tamañom de la población.
◦ Está sujeta al error de muestreo, es decir que el valor esperadoEs[xi] de selección, que depende de la aptitud relativa (o probabilidad) de selec- ción de un individuo, no siempre se cumplirá pudiendo haber diferencias grandes. Esto se visualiza en la posibilidad de que el peor individuo puede ser escogido varias veces.
◦ Es posible utilizar búsqueda binaria en vez de búsqueda secuencial, lo que requiere memoria adicional y una primera barrida con complejidad O(n). Con esto, la complejidad total de la ruleta pasa a serO(nlogn).
Sobrante Estocástico
Es una alternativa que busca obtener una mejor aproximación de los valores esperados de selección e los individuosEs[xi] definidos por la ecuación 7.33:
Es[xi] =m
a(f(xi),Xt) bm
(7.33)
donde:
a(·) es la aptitud del individuoxi
bm es la aptitud acumulada de la población. m la cantidad de elementos en la población. Lo que se hace es:
1. Asignar en forma determinística el conteo de los valores esperados, es decir, la parte entera de et=m(ai/bm) para después,
2. Usando un esquema probabilístico y proporcional, completar los indivi- duos sobrantes por el redondeo usando la parte decimal restante.. El esquema de completación de individuos faltantes tiene dos variantes:
◦ Sin reemplazodonde cada sobrante se usa para sesgar un sorteo que determina si un individuo se selecciona o no.
◦ Con reemplazodonde se usan los sobrantes para dimensionar una ru- leta y se usa esta técnica para la selección.
La tabla 7.3 ilustra un ejemplo del uso del sobrante estocástico
Esta metodología permite disminur los problemas de muestreo de la ruleta, aunque se puede causar convergencia prematura debido a la mayor presión selectiva.
Selección por Torneo
La selección por torneo oTournament Selectionque fue propuesta en [Wetzel1983], tiene como idea básica seleccionar individuos comparando directamente sus
7.3 Algoritmo Genético Clásico 129
aptitudes como describe el algoritmo 9: Algorithm 9 Selección por Torneo
Xt At desordenar Xt escoger k individuoscomparar losk individuos por su aptitud a(·) seleccionar el individuo con mejor aptitud
dondek suele tener el valork= 2.
La selección por torneo es bastante simple y es determinista ya que los in- dividuos menos aptos nunca serán seleccionados (característica extintiva). Para compensar este efecto, existe una versión de torneoprobabilística, cuya principal diferencia surge al momento de escoger el ganador. En vez de se- leccionar al individuo más apto, se hace un sorteo U(t)< p, donde U(t) es un generador de números aleatorios entre [0,1iy 0,5< p≤1. Si el resultado se cumple, se selecciona al elemento más apto, caso contrario se selecciona el menos apto. El valor pse mantiene fijo durante todo el proceso evolutivo. Esta variante probabilística reduce la presión selectiva eliminando la carac- terística extintiva, ya que en algunas ocasiones los elementos menos aptos podrían ganar el torneo y ser seleccionados.
Análisis del Torneo
◦ La versión determinística garantiza que el mejor individuo sea seleccio- nado
◦ Cada competencia requiere la selección aleatoria dekindividuos, que es un valor constante, por lo que se puede decir que su complejidad esO(1).
◦ Se requieren m competencias para lograr seleccionar una nueva pobla- ción completa para una generación. Por lo tanto, la complejidad de este algoritmo esO(m).
◦ La técnica es eficiente y fácil de implementar.
◦ No se requiere escalar la función de aptitud, las comparaciones se hacen directamente.
◦ En la versión determinística, se puede introducir una presión selectiva fuerte, ya que los individuos menos aptos no tienen opción de sobrevivir.
◦ La presión de selección se puede regular variando el tamaño k de los individuos que compiten.
– Parak= 1, la selección es equivalente a un paseo aleatorio, sin presión selectiva
– Para k=m, la selección es totalmente determinística siempre esco- giendo al mejor elemento de la población
– Para 2≤k≤5, se considera una selecciónblanda
– Parak≥10 se considera una seleccióndura