4.2 Inter-ACK Time observations
5.1.1 Ethernet
blemas
Para el caso de la implementaci´on de la coevoluci´on de algoritmos y problemas presentada en esta tesis, en la que se cuenta con dos poblaciones de afinaciones de algoritmos y una de problemas, los pasos b´asicos y ecuaciones de ajuste de aptitudes del ACI presentados por Palacios (2002) fueron adaptados experimentalmente de forma que las tres poblaciones pudieran llegar a un estado estable, dando como resultado los siguientes:
Generar al azar poblaciones iniciales de anfitriones y par´asitos
Repetir
Hacer competici´on entre un n´umero fijo de pares anfitri´on- par´asito elegidos al azar. La aptitudS de cada individuo de ambas poblaciones se ajusta de la forma
S(t+ 1) =S(t) + Recompensa−Costo de competir
Eliminar al individuo de menor aptitud de cada poblaci´on Generar nuevos individuos para cada poblaci´on mediante
(a) Selecci´on de acuerdo a aptitud del mejor par de individuos
(b) Cruce de la pareja seleccionada generando un s´olo individuo que se incluye a la poblaci´on, con aptitud tomada como el promedio de la de los padres
(c) Mutaci´on
Hasta cumplir criterio de terminaci´on
Tabla 3.3: Pasos b´asicos de un ACI
1. Se generan tres poblaciones, la P de problemas y lasA yB de afinaciones de los algoritmos a competir (los detalles de la codificaci´on de estos individuos se trata en el cap´ıtulo siguiente). Se inicializan las aptitudes de P enRP/(10CP), las de A enRA/(10CA) y las de B en (RB/(10CB) dondeRP, RA y RB representan las
m´aximas recompensas a dar a los individuos de cada poblaci´on por su desempe˜no en una competencia yCP, CA y CB los m´aximos costos de participar en ella.
2. Se selecciona a un individuo de cada poblaci´on al azar, se corren a ambos algo- ritmos con las afinaciones dadas por los individuos escogidos sobre el problema elegido y se ajustan de manera incremental las aptitudes de los tres. Se supone que buscamos un problema tendencioso que haga quedar mejor al algoritmo A
que al B.
El ajuste de aptitud para el problema se hace mediante la siguiente ecuaci´on:
dondeEX es el ´area bajo la curva de mejor encontrado del algoritmoX dividida
entrem, el tama˜no de las muestras.
El ajuste de aptitud para la afinaci´on del algoritmoAse hace mediante la siguiente ecuaci´on:
SA(t+ 1) =SA(t) +RAtanh(2EA) tanh(10CBSB/RB)−CASA(t) (3.2)
dondeSB es la aptitud de la afinaci´on del algoritmoB contra la que se compite.
El ajuste de aptitud para la afinaci´on del algoritmoBse hace mediante la siguiente ecuaci´on:
SB(t+ 1) =SB(t) +RBtanh(2EB) tanh(10CASA/RA)−CBSB(t) (3.3)
dondeSA es la aptitud de la afinaci´on del algoritmo A contra la que se compite.
3. Se repite la competencia entre otros 3 individuos seleccionados al azar un n´umero #c predeterminado de veces.
4. Despu´es de las competencias, se encuentra al individuo con menor aptitud de cada poblaci´on y se elimina.
5. En cada poblaci´on se seleccionan dos individuos de forma proporcional a su apti- tud y con una probabilidad de cruce se cruzan, generando un s´olo individuo —los detalles de la aplicaci´on del operador de cruce para cada poblaci´on se ver´an en el cap´ıtulo siguiente— cuya aptitud es el promedio de la de sus padres. El hijo se agrega a la poblaci´on sustituyendo al individuo con menor aptitud.
6. Se aplica mutaci´on a las poblaciones. Los detalles de c´omo se lleva a cabo esta operaci´on para cada poblaci´on son mostrados en el siguiente cap´ıtulo.
7. Se repite el proceso de competencia.
Las funciones compuestas por tangentes hiperb´olicas —v´ease figura 3.1— que multiplican a la m´axima recompensa posible en las ecuaciones de ajuste de aptitudes se encargan de que esta nunca sea rebasada.
Para el caso de la poblaci´on de problemas ning´un individuo considera las aptitudes de los algoritmos compitiendo en ´el para ajustar su aptitud. Si se hace una analog´ıa biol´ogica en la que hay una relaci´on de cooperaci´on entre las especies P y A para que A derrote a la especie B, podr´ıa decirse que una forma de lograrlo es que P no tenga memoria a largo plazo del comportamiento de A ni de B a la hora de evaluar su cooperaci´on, lo cual encaja a la perfecci´on con la idea de llamar tendenciosos a los individuos m´as aptos de P pues no les importa qu´e tan apto sea un individuo de A
−5 −4 −3 −2 −1 0 1 2 3 4 5 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x tanh(x)
Figura 3.1: Funci´on tanh(x)
de la cooperaci´on es algo que tienden a confirmar las mejores estrategias encontradas a la fecha para el famosodilema del prisionero (Dawkins, 1986).
En el siguiente cap´ıtulo se presentan a los algoritmos contendientes para tomar los lugares de A y B y c´omo sus afinaciones son codificadas, cruzadas y mutadas en el ACI, lo mismo para la representaci´on de problemas cuya poblaci´on equivale aP.
3.5.
Resumen
En este cap´ıtulo se present´o al algoritmo de coevoluci´on incremental (ACI) dentro del contexto de la computaci´on coevolutiva, justificando lo id´oneo que resulta para llevar a cabo la implementaci´on de la b´usqueda de problemas tendenciosos, y se dieron algunos detalles de dicha implementaci´on los cuales son complementados en el siguiente cap´ıtulo.
Cap´ıtulo 4
La arena y los contendientes
En este cap´ıtulo se presenta la forma en que se codifican los problemas de op- timizaci´on que constituyen a la poblaci´on P del ACI, as´ı como los algoritmos y las codificaciones de sus afinaciones que dan forma a las poblaciones A y B, los cuales son un AG generacional simple, recocido simulado y b´usqueda aleatoria. Finalmente se explica la forma como se aplican los operadores de cruce y mutaci´on sobre estas codificaciones.