Você está na página 1de 253

i

TEXTO
IDENTIFICACIN
Nombre: COMPUTACIN EVOLUTIVA
Cdigo: 350
UC: 04
Carrera: Ingeniera de Sistemas
Cdigo: 236
Semestre: Formacin profesional
Prelaciones: Investigacin de Operaciones II (348)
Autor: MSc. Mara Eugenia Mazzei (Especialista en Contenido)
mmazzei@ una.edu.ve
Asesores: Ing. Carmen Z. Maldonado(Coordinadora de la Carrera)
Dr. Antonio Alfonzo (Revisor de Diseo Acadmico)
Diseador Acadmico: Profa. Wendy Guzmn (Diseadora de Instruccin)
Nivel Central
Caracas, Mayo 2013
ii
ndice general
1. La Optimizacin y el Enfoque Evolutivo 1
1.1. Optimizacin . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Mtodos de Bsqueda . . . . . . . . . . . . . 8
1.1.2. Mtodos Basados en Heursticas . . . . . . . . 24
1.1.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . 45
1.2. Metfora de la Biologa en la Computacin Evolutiva 48
1.2.1. Conceptos . . . . . . . . . . . . . . . . . . . . . 49
1.2.2. Introduccin a los Modelos de Computacin
Bio-inspirados . . . . . . . . . . . . . . . . . . 54
1.2.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . 60
1.3. Ejercicios de Autoevaluacin . . . . . . . . . . . . . . 60
2. Algoritmos Evolutivos 71
2.1. Fundamentos de los Algoritmos Evolutivos . . . . . . 71
2.2. Ventajas de los Algoritmos Evolutivos . . . . . . . . . 82
2.3. Ejercicios de Autoevaluacin . . . . . . . . . . . . . . 83
2.4. Algoritmos Genticos . . . . . . . . . . . . . . . . . . 86
2.4.1. Esquemas de Representacin de cadenas de
smbolos . . . . . . . . . . . . . . . . . . . . . . 96
iii
iv NDICE GENERAL
2.4.2. Ejercicios de Autoevaluacin . . . . . . . . . 97
2.4.3. Formulacin matemtica del problema bajo
el AG . . . . . . . . . . . . . . . . . . . . . . . 98
2.4.4. Representacin de nmeros reales en los AG 108
2.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 112
2.6. Ejercicios de Autoevaluacin . . . . . . . . . . . . . . 114
2.7. Respuestas a Ejercicios de Autoevaluacin . . . . . 115
2.8. Estrategias Evolutivas . . . . . . . . . . . . . . . . . . 123
2.9. Programacin Gentica . . . . . . . . . . . . . . . . . 136
2.9.1. Elementos de la PG para resolver problemas 140
2.9.2. Algoritmo . . . . . . . . . . . . . . . . . . . . . 142
2.9.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . 152
3. Inteligencia Social 155
3.1. Algoritmos inspirados en colonias de hormigas . . . . 156
3.1.1. Fundamentos . . . . . . . . . . . . . . . . . . . 160
3.1.2. Sistema Articial de Hormigas y el problema
del agente viajero . . . . . . . . . . . . . . . . 162
3.1.3. Aplicacin del Algoritmo ACO en un prob-
lema del Agente Viajero . . . . . . . . . . . . 170
3.1.4. Aplicaciones de los algoritmos basados en colo-
nias de hormigas . . . . . . . . . . . . . . . . . 176
3.1.5. Conclusiones . . . . . . . . . . . . . . . . . . . 176
3.2. Ejercicios de Autoevaluacin . . . . . . . . . . . . . . 177
3.3. Respuestas a Ejercicios de Autoevaluacin . . . . . . 178
NDICE GENERAL v
3.4. Optimizacin por Enjambres de Partculas . . . . . . 181
3.4.1. Elementos del modelo . . . . . . . . . . . . . . 183
3.4.2. Ecuaciones que rigen el sistema de partculas 184
3.4.3. El problema de optimizacin bajo el enfoque
del PSO . . . . . . . . . . . . . . . . . . . . . . 187
3.4.4. Algoritmo . . . . . . . . . . . . . . . . . . . . . 188
3.4.5. Variantes del algoritmo . . . . . . . . . . . . . 194
3.4.6. Conclusiones . . . . . . . . . . . . . . . . . . . 197
3.5. Ejercicios de Autoevaluacin . . . . . . . . . . . . . . 199
3.6. Respuestas a Ejercicios de Autoevaluacin . . . . . 199
4. Otros Temas y Casos de Estudio 207
4.1. Vida Articial: Vida es inteligencia . . . . . . . . . 208
4.2. Autmatas Celulares . . . . . . . . . . . . . . . . . . 211
4.3. El juego de la Vida . . . . . . . . . . . . . . . . . . . . 214
4.4. Redes de Neuronas Articiales . . . . . . . . . . . . . 218
4.5. Las neuronas . . . . . . . . . . . . . . . . . . . . . . . 219
4.6. Modelo de Neurona . . . . . . . . . . . . . . . . . . . 220
4.7. Otras Redes de Neuronas . . . . . . . . . . . . . . . . 231
4.7.1. Redes de Base Radial . . . . . . . . . . . . . . 231
4.7.2. Mapas Auto-organizados de Kohonen o SOM(Self
Organizing Maps) . . . . . . . . . . . . . . . . . 233
4.8. Aplicaciones de las Redes de Neuronas Articiales . 236
4.9. Casos de Estudio . . . . . . . . . . . . . . . . . . . . . 238
vi NDICE GENERAL
Captulo 1
La Optimizacin y el Enfoque Evolutivo
En este captulo presentaremos a manera de introduccin, los
conceptos de optimizacin y las tcnicas computacionales que se
emplean para dar solucin a los problemas en este campo. Se in-
cluir una seccin en donde se tratan dos mtodos que se con-
sideran intermedios entre los mtodos tradicionales y los evolu-
tivos, ya que en ellos se emplean heursticas, se trata del Recoci-
do Simulado(Simulated Annealing) y la Bsqueda Tab (Tabu Search).
Seguidamente presentaremos los fundamentos biolgicos, que son
los principios y elementos tomados de la biologa los cuales sern
adaptados al campo de la computacin, estos tienen que ver con
el manejo de poblaciones, el principio de la Seleccin Natural y la
Gentica.
1.1. Optimizacin
La optimizacin es el conjunto de mtodos y tcnicas que se em-
plean para hallar el mejor valor (conocido como valor ptimo) de
1
2 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
una funcin, dentro de un dominio. La motivacin esencial para
optimizar, es ahorrar tiempo, recursos y trabajo, entre varios as-
pectos, aumentando la calidad de los productos a obtener. Exis-
ten muchas clasicaciones de los problemas de optimizacin, unas
tienen que ver con el tipo de funcin y con su dominio, otros con
el tipo de tcnica empleada. Las teoras clsicas de optimizacin
tratan estos problemas cuando el dominio es innito, entre ellas
estn: el clculo diferencial, el control ptimo y el clculo varia-
cional. Por otra parte la solucin de problemas de optimizacin
es abordada en la rama de las matemticas aplicadas denominada
Investigacin de Operaciones, aunque diversas ramas de la ciencia
tratan este tipo de problemas. Un ejemplo de ello es la Teora de
Juegos, en la cual se intenta maximizar la probabilidad de ganar.
Cuando se habla de optimizacin, puede tratarse de minimizacin
(hallar el valor mnimo de la funcin) o de maximizacin (hallar el
valor mximo de la funcin). Son muy conocidos los problemas de
Programacin Lineal, los cuales se plantean en trminos generales
como:
Minimizar cx
sujeto a: Ax b
x 0
Se puede hablar de minimizar en vez de maximizar,sin perder gen-
eralidad, ya que minimizar f equivale a maximizar f.
1.1. OPTIMIZACIN 3
Existen otros problemas de optimizacin, denominados de Pro-
gramacin No Lineal (PNL), los cuales persiguen hallar la solucin
de problemas cuando la funcin objetivo yo las restricciones son
no lineales. En trminos generales este problema se expresa de la
siguiente manera:
Minimizar f (x)
sujeto a: g
j
(x) 0 (j = 1, , p)
h
j
(x) = 0 (j = p + 1, , m)
En otros problemas se requiere trasladar servicios, seales, mer-
cancas, vehculos o cualquier otra cosa, desde un punto a otro, de
manera eciente. Estos problemas se plantean intuitivamente como
un grafo, el cual consiste en trminos muy simples, en un conjunto
de nodos y arcos los cuales denotan relaciones de algn tipo con
estos nodos; adems se manejan algunos recursos que limitan estas
relaciones de tipo lineal. Muchos de estos problemas se pueden
formular y resolver como problemas de Programacin Lineal(PL)
o de Programacin Entera(PE), en donde los arcos son las vari-
ables de decisin. En el caso en que estas puedan alcanzar valores
continuos de emplea Programacin Lineal y cuando las variables
de decisin alcanzan slo valores enteros, se trata de problemas
de Programacin Lineal Entera. El problema de PE es semejante
al de PL, pero con la restriccin de que las variables de decisin
alcanzan slo valores enteros. Existen adems problemas lineales
4 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
en donde las variables slo pueden alcanzar los valores 0 y 1,
estos problemas se tratan con Programacin Entera 0-1. Aquellos
problemas que tienen algunas variables de decisin enteras y las
otras continuas se llaman mixtos.
Cuando el dominio de la funcin es nito se trata de Opti-
mizacin Combinatoria, en este caso las variables de decisin al-
canzan valores discretos, por lo cual la solucin al problema es un
conjunto o secuencia de nmeros enteros u objetos. Esto nos ll-
evara a pensar que de alguna manera podemos enumerar todas
las soluciones y probarlas hasta hallar la mejor, lo cual podra
ser muy difcil. Son problemas tpicos de Optimizacin Combina-
toria, los problemas de programacin de horarios, de secuencias
de mquinas,de seleccin de portafolios, de planes de inversin,
de diseo de redes de comunicaciones, programacin de rutas de
transporte terrestre y areo,entre muchos. Las tcnicas empleadas
para obtener la solucin ptima en este tipo de problema se han di-
versicado desde problemas clsicos de bsqueda local, en donde se
emplean mtodos constructivos, hasta la aplicacin de algoritmos
que emulan poblaciones, en el sentido biolgico.
Uno de los problemas de optimizacin combinatoria ms cono-
cidos, el cual ha sido objeto de grandes estudios, es el problema
del agente viajero (en ingls TSP: traveling salesman problem), el
cual se describe a continuacin:
1.1. OPTIMIZACIN 5
Problema del Agente Viajero Se trata de un viajante de comercio
que requiere visitar un conjunto de ciudades, pasando una sola vez
por cada una, partiendo desde una ciudad, para luego regresar a la
misma. El traslado desde una ciudad i a una ciudad j tiene costo
c
ij
. El problema consiste en determinar el orden ptimo de visitas
al conjunto de ciudades, tal que el costo sea mnimo, ver gura
(1.1). En la gura, los nodos representan las ciudades y los arcos
las vas entre ellas.
Figura 1.1: Problema del agente viajero
Dado un conjunto de n ciudades, desde la ciudad de origen, (ciu-
dad 1), se puede ir a cualquiera de las n 1 ciudades, por lo tanto
hay n1 diferentes maneras de escoger la ciudad a donde se dirija.
Luego, desde esta ciudad, puede haber n2 maneras de escoger la
prxima ciudad a visitar. Por lo tanto el nmero total de posibles
rutas en un problema de n ciudades es: (n1)(n2) . . . 1 = (n1)!. Es
por ello que este problema para un nmero n grande, es muy com-
plejo de resolver y se le considera NP-completo, siglas provenientes
6 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
del ingls Non- deterministic Polynomial. Estos problemas consti-
tuyen una clase de problemas computacionales, para los cuales no
se ha encontrado una solucin eciente y el tiempo de resolucin
aumenta exponencialmente a medida que aumenta el tamao del
problema. Existen otros problemas NP-completos como el de hal-
lar todos los subconjuntos de un conjunto. En el cuadro (1.1), se
muestra el nmero de permutaciones que resultan al hacer una
bsqueda exhaustiva, para un nmero de n ciudades.
n N

permutaciones
10 181.440
12 19.958.400
20 60.822.550.204.416.000
Cuadro 1.1: No. de permutaciones resultante al hacer una bsqueda exhaustiva para n
ciudades
1.1. OPTIMIZACIN 7
Ejemplo
(Coloracin de nodos)
1
El problema de coloracin de nodos es
un problema tpico de la teora de grafos. Este problema tiene apli-
caciones como la solucin del problema de planicacin de horarios
para un conjunto de cursos, bajo las restricciones de asignacin de
profesores y consideraciones de horas, aulas, matriz curricular, en-
tre otras. Dos nodos son adyacentes si estn conectados por un
arco. El problema de la coloracin, consiste en asignar un color a
cada nodo, tal que cualquier par de nodos adyacentes no tengan el
mismo color asignado. En el ejemplo que presentamos, se tienen 4
colores, ver gura (1.2).
Figura 1.2: Coloracin de un grafo (4 colores: A,B,C y D)
Sobre el problema de la coloracin de mapas(grafos) se han real-
izado muchas investigaciones, algunos investigadores han intentado
resolver el problema empleando mtodos basados en heursticas.
1
Ejemplo tomado de Colin R. Reeves [24]
8 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
El espacio natural de bsqueda es el conjunto de los colores. Los
colores se asocian a k particiones o subconjuntos del conjunto de
nodos, de tal manera que a cada subconjunto se le asocia un col-
or, bajo la restriccin de que nodos adyacentes no deben estar en
el mismo subconjunto. El objetivo es el de minimizar el nmero
de particiones, o de colores. En la gura (1.2), los subconjuntos
de colores son 1, 5, a los cuales se le asocia por ejemplo el color
amarillo o color A; el subconjunto 2, 4, 7, a los cuales se les asocia
el color azul celeste o color B; al subconjunto 3, se le asocia el
color naranja o color D y a 6, el color lila o color D.
1.1.1. Mtodos de Bsqueda
El mtodo de bsqueda es el primer mtodo que se usa cuando se
desea hallar la solucin a un problema, bien sea cuando se requiere
seleccionar un conjunto de opciones o cuando se quiere resolver un
problema de optimizacin comn, para obtener la solucin ptima
o extrema.
Cuando intentamos resolver un problema de la vida real necesi-
tamos hacer un modelo. Los modelos son simplicaciones del mun-
do real. El problema se modela y luego se halla la solucin al mode-
lo. El proceso de la solucin de problemas sigue los pasos mostrados
en la gura (1.3)
En algunos modelos es difcil hallar una solucin, en estos casos
hay que simplicar el modelo, por ejemplo cambiando la funcin
1.1. OPTIMIZACIN 9
Figura 1.3: Relacin Problema-Solucin
objetivo o alguna restriccin, a formas ms simples. Otra posible
accin es hallar soluciones cercanas a la ptima, empleando heurs-
ticas tales como el Algoritmo A

, el cual es un mtodo de bsqueda,


aplicado sobre estructuras de grafos. Existe adems la opcin de
emplear algn mtodo evolutivo para resolver este problema.
Cuando existen restricciones, se deben hallar soluciones que sat-
isfagan estas restricciones, es decir las soluciones deben ser factibles.
En este caso se debe emplear un proceso tal que dada una solucin
halle una mejor y que adems sea factible.
Una manera de facilitar llegar a la solucin de un problema es
establecer: cules son las variables?, cules sus valores posibles?
o cules son las restricciones?. Es conveniente no olvidar cul es
la meta y Qu es lo que se est tratando de probar o resolver.
Los 3 conceptos bsicos a emplear para resolver un problema,
bajo el enfoque algortmico son:
1. La representacin: manipulacin y codicacin de las solu-
ciones candidatas.
2. El objetivo: propsito a cumplir.
10 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
3. La funcin de evaluacin: sta debe retornar un valor espec-
co, que indica la calidad de la solucin a probar.
Representacin: Escoger el verdadero espacio para representar las
soluciones es de vital importancia. Por ej. En el caso del TSP, si rep-
resentamos cada recorrido como una permutacin de los nmeros
naturales: 1, 2, . . . , n, hay n! maneras de recorrer las ciudades. Si
consideramos el problema simtrico, es decir aqul en donde la
distancia de ir de una ciudad i a una ciudad j es la misma que ir
desde j hasta i, el espacio de bsqueda se reduce a (n-1)! /2.
1.1. OPTIMIZACIN 11
Atencin
El dominio de la funcin se denomina espacio de bsqueda
Ejemplo
Sea el siguiente problema, denotado como SAT[20]: Se tiene una
expresin lgica formada por un conjunto de clusulas en forma
conjuntiva, de 100 variables lgicas, las cuales como sabemos tienen
valores: verdadero o falso. Se quiere hallar el conjunto de valores de
estas variables que hagan la funcin f(x) verdadera. Esta expresin
podra ser la siguiente forma:
f(x) = (x
1
x
2
x
3
) (x
4
x
5
) . . . (x
21
x
58
x
87
)
Este problema aunque parece sencillo, tiene un espacio de bsque-
da muy grande. Se trata de una funcin booleana de n variables,
a cada una de ellas se le asocia un bit. Por lo tanto se representan
como una cadena de bits de longitud n. El tamao probable del
espacio de bsqueda es de 2
n
, ya que hay 2
n
diferentes cadenas de
bits. Si se trata de un problema de n = 10 variables, hay 2
n
= 1024
posibles valores para las variables que forman parte de f(x).
Denicin formal del espacio de bsqueda: Dado un espacio de
bsqueda o y su espacio factible T, con T o , hallar x T ,
12 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
tal que eval(x) < eval(y), y T, para el caso del problema de
minimizacin.
La bsqueda no conoce el tipo de problema que estamos in-
tentando resolver, slo conoce lo que le indicamos a travs de la
funcin de evaluacin. Si sta no se corresponde con el objetivo del
problema, la bsqueda sera incorrecta.
En este caso x es el ptimo global. Hallar la solucin global, en
general es difcil, lo que podra intentarse es hallar una solucin
(la mejor solucin) que sea ms fcil de obtener, concentrndonos
en un conjunto ms pequeo. En este caso el trmino bsqueda
coincide con la optimizacin de la funcin. Si nos concentramos en
la regin del espacio de bsqueda cercana al punto en el espacio,
conocida como vecindad N(x), podemos considerar puntos que son
cercanos a x. Podemos denir la distancia entre dos puntos en el
espacio de bsqueda, como:
Dist : o o
y denimos la vecindad N(x) como:
N(x) = y : dist(x, y)
para algn > 0
ptimo local: En la gura (1.4) se muestra una funcin que posee
un solo punto de mnimo, en el dominio considerado y no existen
1.1. OPTIMIZACIN 13
restricciones. En este tipo de funciones, es muy fcil hallar el punto
de mnimo. Existen mtodos de clculo, basados en derivadas que
permiten hallar soluciones a este tipo de problemas. Estos mtodos
emplean la medicin de las derivadas para hallar los puntos en
donde la funcin desciende y de esta manera se llega al punto
mnimo.
Figura 1.4: ptimo de una funcin
En el mundo real abundan los problemas en donde las funciones
tienen discontinuidades, ruido o tienen varios puntos de mnimo.
En la gura (1.5) se presenta la funcin mostrada en la gura
(1.4), considerando un dominio mayor, en ella se indican el m-
nimo local y el mnimo global. Cuando una funcin posee un slo
mnimo(mximo) se denomina unimodal y cuando tiene ms de un
mnimo(mximo) se trata de una funcin multimodal, ver gura
(1.6) . Cuando se tienen funciones unimodales es fcil hallar la
solucin ptima pero cuando son multimodales es ms difcil hallar
el ptimo global, ya que es posible que el mtodo de bsqueda que
se aplique ocasione un estancamiento en un punto ptimo local y
14 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
en consecuencia no halle la mejor solucin.
Figura 1.5: Optimos local y global
En la gura (1.7) se observa una funcin con ruido y picos, lo cual
la hace difcil de tratar por los mtodos de bsqueda tradicionales.
Figura 1.7: Funcin con ruido y discontinuidades
Cuando deseamos denir la vecindad en espacios de bsqueda
1.1. OPTIMIZACIN 15
Figura 1.6: Funcin multimodal de Schwefel. Fuente: irafm.osu.cz
continuos, una posible manera de hacerlo es empleando la distancia
euclideana entre puntos del espacio, de la manera la siguiente:
dist(x, y) =

_
m

i=1
(x
i
y
i
)
2
i = 1 . . . n
En el caso del problema SAT, se puede emplear la distancia de
Hamming para calcular la distancia entre cadenas binarias. La dis-
tancia de Hamming es una medida de la semejanza o diferencia
entre dos cadenas de dgitos binarios. Si se trata de un espacio
tridimensional, los puntos son: (0, 0, 0), (0, 0, 1) . . . (1, 1, 1) y cada es-
tado del sistema puede ser representado como vrtices del cubo,
ver gura(1.8). Si para llegar de una cadena de dgitos a otra, se
toman h pasos, esa ser su distancia de Hamming. Ej. La distancia
de Hamming entre el 000 y 111 es 3, ya que toma 3 pasos llegar
16 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
desde 000 a 111. Cuando se consideran soluciones como 0 cuya rep-
resentacin en binaria en 4 bits es 0000 y 8 con representacin
binaria 1000, siendo soluciones substancialmente diferentes, tienen
una distancia de Hamming igual a 1. En contraste, por ejemplo si
se representa el nmero 16 en binario, empleando 5 bits, su repre-
sentacin es 10000, el nmero 15 es vecino al 16, sin embargo, como
su representacin binaria es 01111, la distancia de Hamming entre
ambas cadenas es de 5. Esta medicin causa distorsin cuando se
maneja la vecindad de soluciones en algunos problemas.
Figura 1.8: Distancia de Hamming en el espacio tridimensional
Una alternativa a la distancia de Hamming para mediciones de
cadenas binarias, es el empleo del cdigo Gray. Esta representacin
surge como una manera de hacer que las cadenas que representan
nmeros enteros y que en cdigo Gray dieran en una unidad,
tambin tienen distancia de Hamming igual a uno. La codicacin
Gray es muy fcil de hallar y se reduce a la aplicacin de la siguiente
frmula:
G
i
= XOR(B
i
, B
i1
)
1.1. OPTIMIZACIN 17
En ella G
i
representa el bit i del cdigo Gray de la cadena y XOR
el o exclusivo entre el bit i y el bit i 1 de la cadena original.
El bit ms izquierdo en la codicacin Gray es el mismo que el de
la cadena original y la longitud de la cadena en Gray es igual a la
longitud de la cadena original. La funcin XOR retorna el valor 1
si ambos bits son diferentes y 0 en el otro caso. En el cuadro (1.2)
se presenta una comparacin entre la representacin binaria y su
cdigo Gray. Se puede observar por ejemplo que la distancia de
Hamming entre los nmeros decimales 14 y 15 es de 4 mientras que
en Gray es 1.
Decimal Binario Gray Decimal Binario Gray
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6 0110 0101 14 1110 1001
7 0111 0100 15 1111 1000
Cuadro 1.2: Representacin de cadenas binarias de 4 bits en cdigo Gray
Algunos mtodos de bsqueda se basan en estadsticas de la
vecindad de un punto y permiten hallar soluciones locales, dentro
de una vecindad. Los mtodos de bsqueda local presentan un in-
teresante dilema entre el tamao de la vecindad y la eciencia de
la bsqueda. Una vez denido el espacio de bsqueda, debemos de-
cidir cmo representamos las soluciones, cmo las medimos y cul
18 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
es el objetivo del problema.
Funcin de evaluacin o tness
2
: Se trata de asignarle a cada
posible candidata a solucin un valor numrico que indica su cali-
dad. No siempre se obtienen buenas evaluaciones en funcin del ob-
jetivo del problema. Por ejemplo en el caso de la funcin booleana
(problema SAT) no valen las aproximaciones, pero si en el caso de
una funcin no lineal, sobre un conjunto de restricciones.
Objetivo: La funcin objetivo es el criterio empleado para medir
lo que se quiere lograr con la resolucin del problema, no es nece-
sariamente la funcin objetivo del problema es igual a la funcin
de evaluacin, pero la mayora de las veces coincide con sta. En
el problema SAT, el objetivo del problema es hallar n variables
que satisfagan la proposicin, es decir que la hagan verdadera. La
funcin de tness en este problema coincide con la funcin objetivo.
En el caso del TSP es hallar el valor mnimo de

dist(x, y). En el
caso del TSP es hallar el valor mnimo de dist(x, y).
Atencin
El objetivo es lo que se persigue lograr y la funcin de evaluacin
o tness es una medida de la calidad de la solucin a evaluar y su
potencial como posible solucin.
2
Este concepto tomado de la biologa, se explicar ms adelante.
1.1. OPTIMIZACIN 19
Existen muchos mtodos que permiten hallar la solucin de un
problema de bsqueda. La dicultad que se presenta es que al
cambiar el problema, hay que cambiar el mtodo, esto signica que
la calidad de la solucin depende de qu tan bien el problema encaje
en el mtodo de solucin. En general, ninguno de estos mtodos es
robusto
3
, ya que presentan dicultades en la resolucin de algunos
problemas. Los mtodos clsicos pueden ser muy efectivos cuando
se ajustan al problema que se tiene a mano, pero debemos saber
cundo usar un mtodo o el otro. Se puede decir que hay dos
clases disyuntas, en las que caen los algoritmos para resolver los
problemas:
Algoritmos que hallan soluciones completas.
Algoritmos que hallan soluciones parcialmente construidas o
aproximadas.
Si aplicamos el algoritmo en el primer caso, siempre podremos
llegar a la solucin, cuando detengamos el algoritmo se obtiene una
solucin potencial. En contraste si detenemos el algoritmo en el
segundo caso no obtendremos buenos resultados. Soluciones com-
pletas indica que todas las variables de decisin son especicadas.
Por ejemplo en el caso de la funcin booleana de n variables bi-
narias, el problema SAT, una cadena de n dgitos binarios podra
3
En computacin, un algoritmo robusto es aquel que tiene el mismo rendimiento para un amplio
conjunto de instancias. En el diseo de un algoritmo robusto se busca un balance entre lo eciente y lo
ecaz
20 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
constituir una solucin completa. Igualmente para el TSP, una per-
mutacin de las ciudades podra ser una solucin completa. Son
ejemplos de mtodos que hallan soluciones completas: el Mto-
do Simplex proporciona una solucin completa a un problema de
Programacin Lineal y los mtodos del gradiente, entre otros. Son
ejemplos de mtodos que obtienen soluciones parcialmente con-
struidas: la Programacin Dinmica, el mtodo de Ramicacin y
Acotacin(Branch and Bound), Divide y Vencers(Divide and Conquer)
y los mtodos Voraces( conocidos como Greedy)
4
.
Ejemplo
Empleo de un mtodo de descomposicin jerrquico para re-
solver un problema.
Sea el problema de derivar la siguiente expresin:
y(x) = x
3
cos x
Aunque se puede resolver el problema empleando deniciones y
principios del Clculo Diferencial directamente, una manera fcil y
elegante de hacerlo es descomponerlo en sub-problemas. Resolver
los sub-problemas separadamente y nalmente recomponer la solu-
cin del problema original. En la gura (1.9) se muestra cmo se
descompone el problema dado.
Como lo hemos explicado, todos los mtodos tradicionales de
4
Los algoritmos voraces o greedy son aquellos que en cada punto escogen la mejor decisin.
1.1. OPTIMIZACIN 21
Figura 1.9: Descomposicin del problema
optimizacin presentan debilidades en algunos casos. Cada uno ha
sido diseado para resolver algn tipo de problema. Si se trata de
hallar el punto de mnimo una funcin cuadrtica es conveniente
emplear el mtodo Newton-Gauss. Si la funcin es lineal y se tiene
un conjunto de igualdades o desigualdades lineales, es conveniente
emplear el Mtodo Simplex. Si la funcin es no lineal y est sujeta
a un conjunto de restricciones lineales yo no lineales, se puede
aplicar algn mtodo de Optimizacin No Lineal, por ejemplo de
Gradiente, slo si se trata de funciones diferenciables. Existen mu-
chos mtodos de gradiente, pero todos se basan en la idea de hallar
una derivada direccional, tal que se pueda mover hacia donde el
ascenso (o descenso) sea ms inclinado, si se trata de un problema
de maximizacin (minimizacin).
Cada quien necesita saber si la aplicacin del mtodo permi-
tir hallar un ptimo global. El enfoque de trabajar con soluciones
completas ofrece la ventaja de que siempre hallaremos la solucin
aunque posiblemente con un alto costo de tiempo, el mtodo siem-
22 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
pre converge a la solucin. El enfoque de trabajar con soluciones
parciales, presenta la ventaja de emplear estructuras muy rela-
cionadas con el problema en cuestin, por ejemplo se pueden hacer
descomposiciones del problema que lo simpliquen, como por ejem-
plo utilizar Programacin Dinmica, as como la construccin de
un rbol en el caso del empleo del Mtodo Primero Mejor.
Ejemplo
Una manera de resolver el problema SAT, empleando un mtodo
de bsqueda exhaustiva:
El problema del SAT, consiste en hallar un nmero de n vari-
ables cuyos valores pueden ser 0 1, o Verdadero, Falso, que hagan
verdadera una conjuncin
5
de clusulas. Si hay n = 4 variables.
El espacio de bsqueda de este problema se muestra en el cuadro
(1.3)
0000 0100 1000 1100
0001 0101 1001 1101
0010 0110 1010 1110
0011 0111 1011 1111
Cuadro 1.3: Espacio de Bsqueda
Una manera de resolver el problema es generar nmeros enteros
5
En lgica, una clusula es una conjuncin o disyuncin de literales. Una conjuncin es un enunciado
cuyos elementos estn conectados por y (and), mientras que en una disyuncin todos sus elementos estn
conectados por o (or)
1.1. OPTIMIZACIN 23
entre 0 a 2
n
1 en binario, evaluar cada uno y seleccionar la mejor
cadena, la que logra la mayor puntuacin. Se puede dividir el es-
pacio de bsqueda. Sea la expresin a evaluar:
f(x) = (x
1
x
2
x
3
x
4
)( x
1
x
2
x
3
x
4
)(x
1
x
2
x
3
x
4
)( x
1
x
2
x
3
x
4
)( x
1
x
2

Para resolver el problema, se podran considerar aquellas ca-


denas que tienen la variable x
1
= V erdad y aquellas que tienen
x
1
= Falso. El ejemplo se muestra en la gura (1.10)
Figura 1.10: Bsqueda Exhaustiva
Este tipo de bsqueda en un espacio con estructura de rbol,
permite usar una tcnica de bsqueda exhaustiva para rboles de-
nominada Bsqueda en Profundidad (Depth Search)
6
. La ventaja
de organizar el espacio de bsqueda de esta manera, es que en al-
gunos casos se deduce que el resto de la rama inspeccionada, no
conducir a la solucin, de esta manera se reduce la bsqueda.
Este mtodo resulta muy ineciente cuando el nmero de variables
6
El mtodo de bsqueda Primero en Profundidad opera expandiendo el rbol tan profundamente como
sea posible, retornando a niveles superiores cuando sea necesario
24 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
es grande. Por ejemplo, si este problema constara de 15 variables,
no sera fcil la obtencin de la solucin, empleando este tipo de
bsqueda.
1.1.2. Mtodos Basados en Heursticas
Como lo mencionamos en secciones anteriores, los mtodos tradi-
cionales de bsqueda y optimizacin pueden ser intiles o ine-
cientes para hallar la solucin de un problema. Es por ello que
en pocas recientes se ha recurrido al desarrollo de mtodos difer-
entes, basados en heursticas. La palabra heurstica proviene del
griego y signica encontrar o descubrir. Tambin se le dene co-
mo el arte de descubrir e inventar. El matemtico Gyorgy Polya,
quien fue uno de los grandes contribuyentes al desarrollo de tcni-
cas para resolver problemas, populariz este concepto, como otra
manera de resolver problemas. En este contexto el trmino est
asociado a hallar soluciones muy buenas, que no necesariamente
son ptimas, pero que tienen un costo computacional aceptable.
Usualmente halla buenas soluciones pero no hay seguridad de que
no ocurran soluciones malas.
Atencin
Los algoritmos heursticos utilizan reglas para eliminar zonas del
espacio de bsqueda consideradas poco interesantes
1.1. OPTIMIZACIN 25
Se denomina Metaheurstica la tcnica que combina funciones
objetivos con heursticas en algoritmos, en una forma eciente.
Esta combinacin es casi siempre de tipo estocstica, por ejemplo
los individuos sufren mutaciones, las cuales se llevan a cabo por
medio de procesos aleatorios. Segn Osman y Kelly[23]:
Una metaheurstica es un proceso de generacin iterativo el cual
gua a una heurstica subordinada, combinando inteligentemente
diferentes conceptos de exploracin y explotacin en espacios de
bsqueda, usando estrategias de aprendizaje para estructurar la
informacin, con el n de hallar ecientemente una solucin cer-
cana a la ptima.
Dorigo y St uzle [11] denen una metaheurstica como:
Una metaheurstica es un conjunto de conceptos algortmicos
que pueden ser usados para denir mtodos heursticos aplicables
a un extenso conjunto de diferentes problemas
Las metaheursticas proveen de una estructura para desarrollar
mtodos hbridos, en los cuales se pueden combinar inteligencia
articial, heursticas clsicas, procesos evolutivos y sistemas neu-
ronales, entre otros.
Atencin
Las metaheursticas son heursticas con un nivel ms alto de
abstraccin
26 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
Una clasicacin de los algoritmos de optimizacin segn su es-
tructura y los principios en que se sustentan [26], los divide en
deterministas y probabilsticos. Dentro de los primeros estn los
algoritmos de bsqueda en espacios de estados y el mtodo Bifur-
cacin y Acotamiento(Branch and Bound). Al aplicar estos algo-
ritmos siempre se obtiene la misma solucin. Entre los probabils-
ticos estn los Algoritmos de Monte Carlo, estos mtodos siempre
obtienen soluciones diferentes, debido a su naturaleza estocsti-
ca. Este tipo de algoritmos comprende dos grupos: el grupo de
algoritmos en los que se emplean heursticas, pero no utilizan los
principios evolutivos y la Computacin Evolutiva, cuya estructura
se describir mas adelante.
Entre los algoritmos no evolutivos estn: los de Escalado de Col-
inas estocstico, el Recocido Simulado(Simulated Annealing) y la
Bsqueda Tab. Estos tres ltimos mtodos conviene estudiarlos,
debido a que al estar basados en heursticas, son comparados fre-
cuentemente con los evolutivos y constituyen un grupo de algo-
ritmos ecientes. Es importante observar que el empleo de estas
heursticas se justica cuando no existe un mtodo que proporcione
una solucin a una clase de problemas. Cuando existen mtodos
robustos como el Mtodo Simplex para resolver problemas con fun-
cin objetivo y restricciones lineales, no tiene sentido emplearlas.
1.1. OPTIMIZACIN 27
Mtodo del Recocido Simulado o Simulated Annealing o SA
El mtodo del recocido se utiliza en la industria para obten-
er materiales mas resistentes, o mas cristalinos, en general, para
mejorar las cualidades de un material. El proceso consiste en calen-
tar un material a temperaturas muy altas, hasta fundirlo. En esa
situacin, los tomos adquieren una distribucin aleatoria dentro
de la estructura del material y la energa del sistema es mxima. Se
hace descender la temperatura muy lentamente por etapas, procu-
rando que en cada una de esas etapas los tomos queden en equi-
librio. Al nal del proceso, estos forman una estructura cristalina
altamente regular, el material alcanza, de esta manera, una mxi-
ma resistencia y la energa del sistema es mnima.
Experimentalmente se comprueba que si la temperatura se hace
descender bruscamente o no se espera suciente tiempo en cada
etapa, al nal la estructura del material no ser la ptima, por lo
cual el descenso de la misma debe hacerse lentamente.
El mtodo del Recocido Simulado es un mtodo de bsqueda
local, basado en heursticas, desarrollado por Kirkpatrick, Gellet y
Vecchi (1983) y Cerny (1985). Emplea la metfora del enfriamiento
de las molculas hasta producir una estructura de cristales: En
el metal fundido, las molculas se mueven caticamente y en la
medida que este metal enfra, empiezan a conectarse las molculas
con sus vecinas, hasta que se enfran en un patrn ordenado: un
ptimo. Recordamos que un mtodo de bsqueda local es aquel
28 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
que halla soluciones en un entorno o vecindad de una solucin. Un
esquema de un procedimiento de bsqueda local es el siguiente:
Algoritmo 1.1 Procedimiento Busqueda Local
1: x es un punto inicial de o(espacio de bsqueda)
2: Mientras no mejora de x hacer
3: x = mejora( x)
4: Fin Mientras
5: Retornar (x)
El algoritmo del Recocido Simulado se divide en etapas. A cada
etapa le corresponde una temperatura menor que la que tena en
la etapa anterior, despus de cada etapa la temperatura baja y se
enfra el sistema. El cambio de la temperatura inuye en el clcu-
lo de la probabilidad de ir de un punto del espacio de bsqueda
a otro. Por lo tanto se debe emplear un criterio de cambio de la
temperatura, en el cual generalmente se emplea una funcin expo-
nencial. A continuacin se presenta el algoritmo en seudocdigo. El
punto s
0
es el estado inicial, el proceso interno contina haciendo
KMAX pasos, o hasta que se encuentre algn estado con energa
menor. N(s
0
), representa la vecindad del estado s
0
. El valor u es un
nmero aleatorio que pertenece al intervalo [0, 1]. La funcin (t)
genera un valor decreciente para la temperatura, dado el valor t.
El factor e
/t
se conoce como factor de Boltzmann, en donde es
el incremento del costo: f(s) f(s
0
) y representa la probabilidad
con la que una mala movida es aceptada.
1.1. OPTIMIZACIN 29
Algoritmo 1.2 Procedimiento Recocido Simulado
1: s s
0
{Generar al azar un estado inicial}
2: Calcular f(s)
3: Repetir
4: k 1
5: Repetir
6: s N(s
0
){ Seleccionar algn vecino }
7: = f(s) f(s
0
)
8: si < 0 entonces
9: s
0
= s
10: De lo contrario
11: Generar u U[0, 1] { Generar un nmero aleatorio}
12: si u < e
/t
entonces
13: s
0
= s
14: Fin si
15: Fin si
16: k k + 1
17: hasta k = KMAX
18: t = (t)
19: hasta (se cumple criterio de parada) { El sistema ha enfriado, devuelve la mejor
solucin}
La expresin ms comn para t = (t) es t
i+1
= .t
i
, en donde es
la tasa de enfriamiento (0 < < 1). Si se ja a 0,999 el enfriamiento
es lento, pero si se desea obtener un enfriamiento rpido se puede
jar a 0, 5. Aceptacin de una solucin: En este algoritmo se aplica
el siguiente criterio para aceptar o rechazar una solucin:
P
C
aceptar j =
_
_
_
1 si f(j) f(i),
e
(f(i)f(j))/C
si f(j) > f(i).
30 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
Antes de la aplicacin de este algoritmo es preciso elegir los val-
ores de los parmetros: la temperatura inicial y nal. En cuanto a
la temperatura inicial, puede comenzar con un valor de T grande
y nalizar con un valor muy bajo, por ejemplo 10
6
0. Adems
debe denirse el criterio de parada y el nmero de iteraciones a
realizar en la bsqueda local. Este mtodo ha sido aplicado para
resolver una variedad de problemas. El Mtodo del Recocido Simu-
lado, tiene diferentes versiones. La versin presentada aqu
7
, es una
adaptacin para el caso del empleo de cadenas de bits, en donde
existe una funcin objetivo f(v
i
) y las cadenas de dgitos binarios
se representan por v
i
.
7
Algoritmo presentado por Zbigniew Michalewicz [19]
1.1. OPTIMIZACIN 31
Algoritmo 1.3 Recocido Simulado para cadenas de bits
()
1: t 0
2: Iniciar temperatura
3: Generar una cadena al azar v
c
4: Evaluar v
c
5: Repetir
6: Repetir
7: Bsqueda local:
8: Generar nueva cadena v
n
en la vecindad de v
c
cambiando un bit de v
c
9: si f(v
c
) < f (v
n
) entonces
10: v
c
v
n
11: De lo contrario
12: si (aleatorio[0, 1) < e
(f (v
n
)f (v
c
))/T
) entonces
13: v
c
v
n
14: Fin si
15: Fin si
16: hasta (condicin de terminacin)
17: T g(T, t)
18: t t + 1
19: hasta (se cumple criterio de parada)
En el lazo interno del algoritmo, se halla una cadena vecina a la
solucin actual, si esta le supera, pasa a ser la solucin actual, pero
si no le supera, se calcula una probabilidad de transicin, la cual
empleando la funcin random[0, 1), genera un nmero aleatorio en
ese intervalo. La condicin de terminacin verica si el equilibrio
trmico se ha alcanzado. Tambin se emplea un contador k, cuyo
valor mximo se involucra en esta condicin de terminacin. La
temperatura es disminuida en el paso g(T, t) para todo t. El algo-
32 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
ritmo termina con un valor pequeo de T, el cual se expresa en el
criterio de parada.
1.1. OPTIMIZACIN 33
Ejemplo
Mostraremos la aplicacin del Mtodo del Recocido Simulado para
el caso de cadenas binarias. Se quiere hallar una cadena binaria de
longitud N que contenga el mximo nmero de unos posible. Sea la
longitud de las cadenas: N = 10. La funcin de evaluacin a emplear
ser: f(v) = [11 uno(v) 10[, en donde uno(v) es una funcin que
da como resultado el nmero de unos presentes en v.
Se espera maximizar la funcin f, o sea obtener una cadena nal
con el mximo nmero de unos.
En la aplicacin del algoritmo, es importante destacar que en
el lazo interno del algoritmo presentado, la comparacin entre las
evaluaciones de v
c
y v
n
, ser Si f(v
c
) > f(v
n
), ya que se trata de un
problema de maximizacin. Se tomar como temperatura inicial T
0
= 5.000 y la temperatura mnima de 0,0001. De tal manera que el
criterio de parada ser cuando T sea menor o igual que 0,0001. En
el lazo interno, por razones de simplicidad, consideraremos como
condicin de terminacin que el contador de pasos de este lazo (k)
no sea mayor que 2, esto signica que la bsqueda local se har dos
veces. En cuanto al cambio del valor de T a travs de la funcin g
ser: g(t) = 0, 999 t
Aplicaremos varias iteraciones del algoritmo
T = T
0
= 5.000
En el primer paso se genera v
c
al azar: Sea v
c
= 1110110100,
34 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
su evaluacin es f(v
c
) = 56.
k = 1: Hallar un vecino v
n
. Sea v
n
= 1110110101, f(v
n
) = 67.
Como f(v
c
) < f(v
n
), se actualiza el valor de v
c
. Por lo tanto v
c
= 1110110101, f(v
n
) = 67.
k = 2: Hallar un vecino v
n
. Sea v
n
= 1110110111, f(v
n
) = 78.
Como f(v
c
) < f(v
n
), se actualiza el valor de v
c
. Por lo tanto v
c
= 1110110111, f(v
n
) = 78.
Se actualiza el valor de T: T = 4.995.
k = 1: Hallar un vecino v
n
. Sea v
n
= 1110110100, f(v
n
) = 56
Como f(v
c
) > f(v
n
), se obtiene un nmero aleatorio NA. Sea
NA = 0,998 . Se calcula exp(
5678
4995
) = 0, 995 Como 0,998 >0,995,
entonces se mantiene el valor de v
c
como: v
c
= 1110110111
El proceso contina, hasta que se obtendr una cadena con la
mayora de sus elementos iguales a 1.
Mtodo de Bsqueda Tab (Tabu Search, TS)
La bsqueda Tab es un mtodo de bsqueda, desarrollado por
Fred Glover y Manuel Laguna en el ao de 1989. Es un proced-
imiento determinista, en el cual una memoria conduce la bsque-
da para explorar nuevas reas del espacio, evitando regresar a
movidas recientemente realizadas. Algunas soluciones examinadas
1.1. OPTIMIZACIN 35
se hacen prohibidas(o tabes), de ah su nombre ya que se impo-
nen restricciones para guiar el procedimiento de bsqueda, a n
de negociar de otra manera las regiones difciles. La estructura
fundamental que emplea este mtodo es la memoria exible para
manejar los atributos de: frecuencia, lo reciente, la calidad e inu-
encia de las soluciones. Los mtodos TS operan con el concepto de
vecindad, para identicar soluciones adyacentes. A continuacin se
presenta un esquema del algoritmo bsico de la Bsqueda Tab.
Algoritmo 1.4 Algoritmo Bsqueda Tab
1: k 1
2: Generar una solucin inicial s
3: Mientras no se cumpla la condicin de parada hacer
4: Identicar vecindad N(s)
5: Identicar Conjunto Tab T(s, k)
6: Identicar Conjunto aspirante A(s, k)
7: Escoger la mejor solucin s

N(s, k) = N(s) T(s, k) + A(s, k)


8: si mejora la mejor solucin previa mejor conocida entonces
9: s s

10: Fin si
11: k k + 1
12: Fin Mientras
36 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
En el procedimiento de Bsqueda Tab se manejan los siguientes
trminos:
El criterio de aspiracin se emplea para violar la restriccin
tab de una solucin, si sta representa una solucin potencial
para llegar a una mejor solucin.
La lista tab es un registro en donde se almacenan los atribu-
tos de soluciones que sern consideradas no elegibles durante
cierto nmero de iteraciones, para prevenir que se re-visite una
solucin.
La permanencia tab (conocida como tabu tenure) es el nmero
de iteraciones en las que una solucin tab permanecer como
tal.
En la gura (1.11) se esboza un diagrama de ujo del algorit-
mo sobre la Bsqueda Tab. El proceso de construir la vecindad
consiste en generar las listas de candidatos, dadas las restricciones
tabes y emplear criterios de aspiracin. Los procedimientos espe-
cializados son procesos de ajustes que dependen del tipo de prob-
lema a resolver.
1.1. OPTIMIZACIN 37
Figura 1.11: Diagrama de Flujo de la Bsqueda Tab. Fuente: Manuel Laguna, University of Colorado at
Boulder
Para determinar si una solucin es o no admisible se aplica el
procedimiento mostrado en la gura (1.12)
Figura 1.12: Movidas admisibles y no admisibles
A continuacin presentaremos un ejemplo sencillo, para ilustrar
38 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
cmo funciona este tipo de bsqueda.
Ejemplo
Se quiere disear un material compuesto de varios mdulos ais-
lantes
8
, el orden de colocacin de los mdulos inuye en la capaci-
dad aislante del material. Por lo tanto el problema consiste en hal-
lar el mejor ordenamiento de mdulos que maximiza la propiedad
aislante del material, ver gura (1.1.2).
Figura 1.13: Disposicin de los mdulos
En general, en problemas de permutaciones como ste, una movi-
da corresponde a un intercambio de dos elementos. Si se considera
el nmero total de permutaciones posibles es de 7! =5.040. La
aplicacin del mtodo consiste en obtener un subconjunto de ellas.
Los mtodos Tab, operan bajo el concepto de vecindades de solu-
ciones, en este sentido considera soluciones adyacentes las que se
pueden alcanzar desde una solucin actual.
Primero que todo, se debe tener una solucin inicial. Supong-
amos que la solucin inicial es la que se presenta en la gura (1.14).
8
Ejemplo presentado por Colin R. Reeves [24]
1.1. OPTIMIZACIN 39
El orden presentado signica que el mdulo 2 ser colocado en la
primera posicin, el 5 en la segunda y as sucesivamente. El ma-
terial resultante tiene una propiedad aislante de 10 unidades, cuyo
valor fue obtenido por una rutina de evaluacin.
Figura 1.14: Solucin inicial
En este problema, una solucin cambia con el intercambio de dos
mdulos, o movida, como se muestra en la gura (1.15), en donde se
intercambiaron los contenidos de las posiciones 2 y 6. Una solucin
actual tiene 21 soluciones adyacentes o vecinas(verifquelo).
Figura 1.15: Intercambio de mdulos 2 y 6
El mecanismo para operar con la memoria es clasicar un sub-
conjunto de movidas en una vecindad como prohibidas (o tabes).
Esta clasicacin depende de la historia de la bsqueda, particu-
larmente de sus atributos(reciente, frecuente). Por ejemplo: en una
movida, se guarda memoria del par de elementos intercambiados
40 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
(dos mdulos intercambiados). Para evitar repetir estas movidas
ocurridas en el pasado reciente. Por lo tanto el par intercambiado
se mantendr tab por 3 iteraciones. Como el intercambio de (2, 5) es
equivalente al intercambio del par (5, 2), entonces se puede usar la
siguiente estructura de datos, ver la gura (1.16). Cada celda de la
estructura contendr el nmero de iteraciones restantes hasta que
a cualquier par de mdulos se les permite intercambiar posiciones
de nuevo. Por ejemplo si la celda correspondiente al par (3, 5) tiene
un 0, entonces los mdulos 3 y 5 son libres de intercambiarse. Por
lo contrario, si la celda (2, 4) tiene el valor 2, entonces los mdulos
2 y 4 no podrn intercambiarse en las siguientes 2 iteraciones, ya
que son clasicados como tabes.
Es importante claricar que la restriccin que consideramos es
la del intercambio de pares de mdulos, aunque podran ser otras
restricciones sobre los lugares posibles a donde se pueden colo-
car los mdulos o alguna otra restriccin. Las restricciones de tipo
tab no son inviolables, en efecto si una solucin tab es mejor que
cualquiera hallada hasta el momento, se puede obviar la condicin
de tab. Para obviar alguna solucin tab que sea potencialmente
buena, se emplea el criterio de aspiracin. A continuacin se pre-
sentan 4 iteraciones del procedimiento tab. En la iteracin 0, se
parte de una solucin inicial, cuyo valor es 10, ver gura (1.17).
La estructura de datos tiene ceros, ya que no se ha hecho ninguna
movida. En la tabla derecha estn las evaluaciones de las 5 mejores
soluciones, aunque slo interesa la mejor. Como el par (5, 4), el cual
1.1. OPTIMIZACIN 41
Figura 1.16: Estructura de datos Tab para el intercambio de mdulos
Figura 1.17: Iteracin 0: a) Solucin inicial, b) estructura Tab inicial, c) 5 mejores
candidatos
corresponde a los mdulos 5 y 4, tiene la mejor evaluacin. Inter-
cambiamos este par de mdulos y en la posicin correspondiente de
la tabla Tab se escribe un 3, el cual corresponde a las 3 iteraciones
tabes asociadas a este par.
La nueva solucin tiene un valor de aislamiento de 16 y la con-
guracin de la solucin y tablas se muestra en la gura (1.18).
Continuamos con la prxima iteracin. La mejor solucin en la
iteracin 1 es el intercambio del par (3, 1) = (1, 3).
El nuevo valor de aislamiento es 18, con el cual se inicia la it-
42 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
Figura 1.18: Iteracin 1: a) Nueva solucin, b) estructura Tab actualizada, c) la mejor
solucin tiene un valor igual a 2
eracin 2. Las marcas T al nal de las las de la tabla, indican que
son soluciones tabes. La solucin marcada con un asterisco es la
mejor, pero es negativa, por lo tanto no mejorar la solucin, pero
como todas estas soluciones proporcionan valores negativos, debe
escogerse. En la iteracin 3, el valor de aislamiento es 14, inferi-
Figura 1.19: Iteracin 2: a) Nueva solucin, b) estructura Tab actualizada, c) la mejor
solucin tiene un valor igual a 4
or a las dos evaluaciones de las dos ltimas iteraciones. La tabla
Tab mostrada en la gura (1.19) indica que 3 soluciones estn
prohibidas. En la tabla correspondiente a la iteracin 3 se obser-
va que el par (4, 5) est marcado como tab, pero como tiene un
1.1. OPTIMIZACIN 43
valor asociado que mejorara el valor de aislamiento, se aplica el
criterio de aspiracin, para obviar esta prohibicin, lo cual lleva a
la solucin con la que iniciaremos la iteracin 4.
Figura 1.20: Iteracin 3: a) Nueva solucin, b) estructura Tab actualizada, c) la mejor
solucin tiene un valor igual a 2 pero el valor tab es mejor
El nuevo valor de aislamiento es 20. La solucin actual, es hasta
ahora la mejor y el proceso contina. El criterio de parada po-
dra ser el nmero de iteraciones, supongamos que no ms de 100
as como la diferencia entre sucesivos valores de la medida de ais-
lamiento o la combinacin de ambos criterios. Al nal se obtiene
una solucin aceptable.
La Bsqueda Tab se puede aplicar para resolver problemas de
secuenciacin de trabajos en mquinas, problemas de planicacin
de horarios, de coloracin de grafos y muchos otros.
Nuestro inters, no es el de analizar los mtodos tradicionales,
muchos de los cuales han sido estudiados en otros cursos, sino es-
tudiar los mtodos evolutivos. En que se diferencian de los tradi-
44 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
Figura 1.21: Iteracin 4: a) Nueva solucin, b) estructura Tab actualizada, c) la mejor
solucin tiene un valor igual a 0
cionales?, Qu ventajas y desventajas poseen? Cmo los imple-
mentamos?
1.1. OPTIMIZACIN 45
1.1.3. Ejercicios
1. Sea el problema de hallar todos los subconjuntos de un con-
junto de n elementos de la forma:
A = a
1
, a
2
, . . . , a
n

El primer conjunto a considerar es el conjunto vaco: . Luego


se hallan todos los conjuntos unitarios(de un slo elemento)
que se pueden formar a partir de A, estos seran: a
1
, a
2
,
. . . , a
n
. Luego, los constituidos por dos elementos(recuerde
que el orden no importa), hasta obtener todos los subconjun-
tos posibles. Disee un algoritmo para tratar de resolver este
problema, por ejemplo para n = 5
2. Dado el problema de la conjuncin de clusulas(SAT), disee
otra manera de representacin y su implementacin en el com-
putador.
3. Implemente una funcin, en lenguaje de programacin que con-
vierta las cadenas binarias en cdigo Gray.
4. Explique cules heursticas se emplean en el algoritmo del Re-
cocido Simulado y en la Bsqueda Tab.
5. Explique cules son las semejanzas y diferencias que existen
entre los mtodos de Recocido Simulado y la Bsqueda Tab.
46 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
6. Implemente en lenguaje de programacin, el algoritmo del Re-
cocido Simulado, diseado para operar con cadenas binarias.
Emplee como funcin objetivo una medicin semejante a la
empleada en el ejemplo 1.1.2, tomando en consideracin la
longitud N de las cadenas.
1.1. OPTIMIZACIN 47
Consulta en la web
Se recomienda consultar la siguiente direccin en la Web:
http://geneura.ugr.es/ jmerelo/tutoriales/heuristics101/,
especcamente en la seccin 1, en donde se aborda el problema
de optimizacin.
Ampliacin de Conocimientos
Se recomienda investigar acerca del algoritmo Escalado de Colinas
Estocstico(en ingls: Stochastic Hill Climbing ). Cmo opera?, en
que tipos de problemas se aplica?, cul es su estructura?
48 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
1.2. Metfora de la Biologa en la Computacin Evolu-
tiva
Antes de entrar de lleno en los diferentes temas de Computacin
Evolutiva, presentaremos algunos conceptos biolgicos los cuales
tienen sus contra-partes en el mbito de la CE. El principio de
la Seleccin Natural nos dice que los individuos mejor adaptados
son aquellos que sobreviven, o visto de otra manera: La competi-
cin por los recursos producir la seleccin de aquellos individuos
que estn mejor adaptados al entorno. Con el paso del tiempo,
los organismos mejor adaptados desplazarn a los menos adapta-
dos mediante la acumulacin lenta de cambios genticos favorables
en la poblacin. Los algoritmos bioinspirados simulan el compor-
tamiento de sistemas naturales y se basan en mtodos heursticos
no determinsticos de bsqueda de la solucin, aprendizaje y com-
portamiento.
Ejemplo
Sea el espacio de bsqueda mostrado en la gura
9
(1.22) , es posible
tener una idea de cmo opera la evolucin, en donde se espera
obtener una casa con un buen diseo y generacin tras generacin
se obtienen soluciones mejores, hasta llegar al mejor diseo. De
esta manera acta el proceso evolutivo. En el mismo se contempla
una poblacin de 4 individuos y 4 generaciones.
9
Ejemplo tomado de Bentley, [3]
1.2. METFORA DE LA BIOLOGA EN LA COMPUTACIN EVOLUTIVA 49
Figura 1.22: Evolucin en 4 generaciones de diseos de casas
1.2.1. Conceptos
A continuacin se presentan los conceptos ms importantes que
se manejarn en este curso, algunos de los cuales sern especica-
dos en ms detalle en las secciones sub-siguientes.
Especie : Una especie es un grupo de organismos reproductiva-
mente homogneo, aunque muy cambiante a lo largo del tiempo y
del espacio.
Poblacin: Est constituida por un conjunto de individuos de
la misma especie que coexisten en un mismo espacio y tiempo y
que comparten ciertas propiedades biolgicas. Toda poblacin de
individuos habita en un determinado entorno con recursos lim-
itados. En los diferentes mtodos a estudiar a lo largo de este
curso, se tratan las soluciones como poblaciones. Las poblaciones
pueden tener o no un nmero jo de individuos. Ejemplo, en la
optimizacin de enjambres de hormigas, las hormigas articiales
constituyen una poblacin de individuos que construyen soluciones
50 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
parciales. Pero en los algoritmos genticos, las soluciones emulan
individuos, cuya informacin gentica se denomina genotipo y la
apariencia fsica, fenotipo,tal como se establece en la Gentica.
Vecindad: Esta se reere a la relacin de un individuo con sus
vecinos. Es de suma importancia tomar en consideracin la relacin
de vecindad entre los organismos, interesa conocer cmo ellos in-
tercambian informacin. Ejemplo, cuando se emplean algoritmos
de optimizacin de partculas, a cada partcula ( individuo) o solu-
cin se le compara con sus vecinos y se escoge la que tenga mejor
desempeo, esta servir para cambiar la posicin y direccin de
la primera y de sus vecinas que tengan bajo desempeo, ver la
gura(1.23).
Figura 1.23: Vecindad tipo anillo en un enjambre. Cada individuo se relaciona con sus dos
vecinos
Cuando se tienen problemas representados por grafos, a veces
interesa hallar el nodo vecino ms conveniente, por ejemplo aqul
que ocasiona menor costo, ver la gura (1.24)
1.2. METFORA DE LA BIOLOGA EN LA COMPUTACIN EVOLUTIVA 51
Figura 1.24: Los nodos vecinos al a son b, c y d. Cada uno tiene un costo asociado.
Medida de factibilidad o funcin de tness: es una medida de
bondad de un individuo o poblacin. Tambin se la conoce como
funcin de calidad, funcin de aptitud o funcin objetivo. Permite
evaluar a los integrantes de la poblacin, determinando qu tan
buenos son. En trminos de la Biologa esta funcin se entiende co-
mo el grado de adaptacin de los individuos a su ambiente, segn su
adaptacin, el individuo tendr mayor probabilidad de sobrevivir o
morir. Cuando se trata de optimizar una funcin, se suele emplear
dicha funcin como medida de evaluacin, por ejemplo cuando se
optimizan funciones empleando Enjambres de Partculas. En el ca-
so de los algoritmos genticos, los individuos de la poblacin que
obtengan mejor evaluacin, son los mejor adaptados, por lo tanto
van a ser seleccionados (Seleccin Natural) para formar las nuevas
generaciones, con algunas modicaciones, en caso que se requiera.
De acuerdo a una denicin de tness tomada de la biologa: Es la
habilidad relativa de un individuo o poblacin para sobrevivir, re-
producirse y propagar sus genes en un ambiente. En Computacin
Evolutiva, simplemente denimos una medida de evaluacin segn
sea el problema a tratar, sin tomar en sentido estricto este concep-
52 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
to.
Figura 1.25: Las partculas vecinas se ajustan a las mejores, este cambio se propaga
En la gura (1.25), se presenta una simplicacin de lo que po-
dra ser una bandada de aves, las aves se ajustan a las vecinas
que estn en mejor posicin. Este proceso se extender a toda la
poblacin.
Generacin: La evolucin de la poblacin en cada paso da origen
a una nueva generacin. Los algoritmos evolutivos, contemplan la
creacin de una poblacin inicial aleatoria, y en cada paso, luego
del intercambio de informacin entre los individuos produce nuevos
individuos, los cuales constituirn la nueva generacin.
En Computacin Evolutiva para construir las soluciones candi-
datas se manejan ciertas semejanzas o metforas de la Biologa
relacionadas con las teoras evolutivas (Ver Figura 1.26)
La Computacin Evolutiva (Evolutionary Computation - EC)
1.2. METFORA DE LA BIOLOGA EN LA COMPUTACIN EVOLUTIVA 53
Figura 1.26: Metforas de la Biologa con las teoras evolutivas
comprende un conjunto de tcnicas que permiten resolver una var-
iedad de problemas de optimizacin, las cuales estn basadas en
la emulacin de la forma de vida y en los mecanismos de organi-
zacin de seres vivientes para adaptarse al ambiente y de esta man-
era evolucionar. Haciendo analoga con los procesos que rigen a los
seres vivientes, las soluciones candidatas juegan el rol de individuos
en una poblacin. En cada iteracin, los individuos evolucionan, de
acuerdo a ciertas reglas establecidas. Adems, se introducen pero-
dos de auto-adaptacin, los cuales generan cambios en los individu-
os y perodos de colaboracin, en los que intercambian informacin
54 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
entre ellos. Las tcnicas evolutivas se han empleado exitosamente
en problemas como el del agente viajero y en otros problemas de
alta complejidad computacional. Una de las diferencias entre los
algoritmos evolucionistas(AE) y los mtodos tradicionales, es que
los AE manejan un conjunto de soluciones candidatas, mientras
que los mtodos tradicionales obtienen una solucin, bien sea en
forma iterativa o en forma constructiva.
En la Figura (1.27) se presenta una taxonoma de la Computacin
Evolutiva, bajo la visin actual. Esta clasicacin fue realizada por
Muoz, Lpez y Caicedo [21].
Figura 1.27: Taxonoma de Computacin Evolutiva, Fuente: Muoz M. A. et al [21]
1.2.2. Introduccin a los Modelos de Computacin Bio-inspirados
La Computacin Bioinspirada tambin conocida como Algorit-
mos Bio-inspirados o tambin como Computacin Natural, consiste
1.2. METFORA DE LA BIOLOGA EN LA COMPUTACIN EVOLUTIVA 55
en el desarrollo de algoritmos que emplean analogas con sistemas
existentes en la naturaleza, o sistemas sociales para resolver pro-
blemas. Los algoritmos bioinspirados simulan el comportamiento
de estos sistemas y se basan en tcnicas heursticas de bsqueda,
no deterministas. Sus caractersticas son las siguientes:
Son no determinsticos
Generalmente poseen una estructura paralela de mltiples agentes.
Son adaptativos. Poseen una estructura que evala a los individuos en el entorno
y de acuerdo a ello modican su comportamiento.
Ejemplo
Generacin de nuevos individuos empleando la distribucin de Gauss
Supongamos que queremos maximizar la funcin:
g(x
1
, x
2
) = (x
1
10)
3
+ (x
2
10)
3
donde: 10 x
1
, x
2
10
Se genera una poblacin, en donde se tomar el elemento inicial co-
mo: (x
1
, x
2
) = (1, 1). A cada individuo se le aplicar una mutacin,
para luego evaluar su desempeo, empleando la distribucin de
Gauss (o Normal), con media = 0 y desviacin estndar
2
= 1,
denotada por N(0; 1):
x
t+1
i
= x
t
i
+ N(0, 1) (1.1)
56 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
Figura 1.28: Funcin g(x
1
, x
2
) = (x
1
10)
3
+ (x
2
10)
3
La funcin de distribucin de probabilidad Normal o de Gauss
es una distribucin continua con una funcin de densidad de prob-
abilidad:
f(x) =
1

2
e
(x)
2
/2
2
en donde es la media y
2
es la desviacin estndar. La mxima
altura de la curva Normal ocurre en el punto x = , y la curva
comienza a achatarse en los puntos x =
2
. Esto signica que la
desviacin estndar mide la distancia entre el centro de la distribu-
cin al punto de inexin. Si consideramos la distribucin Normal
estndar( con media = 0 y desviacin estndar
2
= 1), la funcin
de distribucin es: f(x) =
1

2
e
x
2
/2
.
Utilizamos la ltima distribucin para generar valores de f(x) y
as obtener el nuevo individuo. Calculamos x
t+1
1
y x
t+1
2
de la sigu-
iente manera:
x
t+1
1
= 1 +N(0, 1)
Para hallar una variable aleatoria que es N(0, 1), comnmente de-
1.2. METFORA DE LA BIOLOGA EN LA COMPUTACIN EVOLUTIVA 57
nominada estandarizada, debemos operar con la distribucin acu-
mulada F(z) = P(Z z). Si utilizamos una hoja de clculo, gen-
eramos un nmero aleatorio, sea por ejemplo NA = 0, 58690862, al
calcular el valor de z empleando la distribucin Normal, se utiliza
la funcin: DISTR.NORM.ESTAND.INV. Esta funcin halla un
valor z tal que se conoce la probabilidad, la cual viene dada por el
nmero aleatorio previamente obtenido, es decir:
z = DISTR.NORM.ESTAND.INV (NA)
En este caso se obtuvo: z = 0, 219599905, por lo tanto:
x
t+1
1
= 1 + 0, 219599905
Igualmente hacemos el mismo procedimiento para x
2
, NA = 0, 184517379,
z = 0, 898282879
x
t+1
2
= 1 0, 898282879
x
1
= 0, 7804001 x
2
= 0, 10171712
La funcin de evaluacin, es la misma funcin objetivo g(x). Se
calcula el valor de g en el punto inicial: g(1, 1) = 2,060 y en el
nuevo punto g(0, 7804001, 0, 10171712) = 2,222, 66024
Para generar un nuevo individuo, se emplea la ecuacin 1.1 de
nuevo.
El valor de g muestra un valor mayor. En caso de que la nueva
solucin tenga una evaluacin peor que la solucin anterior, se toma
la anterior y se vuelve a generar un nuevo elemento. Esta manera
58 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
NA z x
t+1
i
g(x
t+1
i
)
0,87319324 1,141616362 0,361216262 -1.455,250008
0,95123524 1,656950318 1,758667438
Cuadro 1.4: Nuevo individuo obtenido a partir del anterior
de generar individuos es empleada en las Estrategias Evolutivas,
como lo veremos ms adelante. Otra manera de obtener nmeros
gaussianos, es empleando el Mtodo de Box-Muller.
Mtodo de Box-Muller
Este mtodo permite generar nmeros con distribucin Normal.
El siguiente algoritmo en seudo-lenguaje, representa la aplicacin
del mtodo en forma polar:
Algoritmo 1.5 Mtodo de Box-Muller
1: Generar (u, v), uniformemente distribuidos en [1, 1]
2: S = u
2
+ v
2
3: si S 1 ( S est fuera del crculo) entonces
4: Ir al paso (1)( a buscar un nuevo par)
5: Fin si
6: si S (0, 1) entonces
7: x = u
_
2ln(s)/S es un nmero aleatorio con distribucin normal estndar
8: Fin si
Tambin es posible obtener otro nmero aleatorio en el paso (4),
usando la expresin:
w = v
_
2ln(s)/S
Para generar un nmero aleatorio z con cualquier distribucin
1.2. METFORA DE LA BIOLOGA EN LA COMPUTACIN EVOLUTIVA 59
normal N(,
2
),dado el procedimiento anterior, se utiliza la sigu-
iente transformacin:
z = + x
2
60 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
1.2.3. Ejercicios
1. Investigue sobre otros campos que estn relacionados con la
Computacin Evolutiva. Cules son sus analogas y diferen-
cias?
2. Los nmeros aleatorios generados por el computador en re-
alidad no son aleatorios. Si proporcionamos la misma semil-
la, obtenemos la misma secuencia. Es por ello que a estos
nmeros se les denomina quasi-aleatorios. Cuando no cono-
cemos el mtodo que los genera, pensamos que se trata de
verdaderos nmeros aleatorios. Implemente un algoritmo en
lenguaje de programacin que genere nmeros aleatorios en
un intervalo [a,b]. Efecte varias corridas. Explique cmo se
introduce la semilla en el lenguaje utilizado?.
1.3. Ejercicios de Autoevaluacin
1. Formule matemticamente el problema TSP( Agente Viajero)
2. Disee un algoritmo en seudolenguaje, que determine la dis-
tancia de Hamming entre pares de cadenas, de longitud N,
formadas por ceros y unos. Implemente este algoritmo en un
lenguaje de programacin y prubelo con cadenas de dgitos
1.3. EJERCICIOS DE AUTOEVALUACIN 61
binarios correspondientes a diferentes nmeros decimales.
3. Sea el problema de la Mochila 0 1, conocido en ingls como
Knapsack, el cual consiste en lo siguiente: Se tiene un conjunto
de n objetos y se desea colocar el mayor nmero de ellos en una
mochila o bolsa, la cual tiene una capacidad de C
max
objetos.
Cada objeto tiene un valor asociado v
i
y un costo c
i
. Cmo
se selecciona un subconjunto de esos objetos, de manera que
el benecio sea mximo?. Este problema es una generalizacin
de muchos problemas industriales. Es frecuente ver problemas,
tales como el de la capacidad de un avin, cuando se tienen
limitaciones de volumen o de peso y se requiere cargar cierto
nmero de objetos en el avin.
Realice lo siguiente:
a) Formule este problema en trminos matemticos.
b) Halle la representacin de este problema empleando vari-
ables 01, en donde un 1, indica que el objeto se introducir
en la bolsa y un 0 que no se introducir.
c) Determine en qu casos una solucin es factible y en cules
casos no lo es.
4. El problema del empacamiento (packing) consiste en hallar el
mejor arreglo de mltiples objetos en regiones o contenedores,
siendo el objetivo: maximizar la utilizacin del contenedor o
minimizar el desperdicio del material, o el espacio no ocupa-
62 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
do,ver la gura (1.29). En esta gura, se observan dos contene-
dores, en los cuales se intenta colocar los objetos, en este caso
se trata de objetos bi-dimensionales. Los problemas de Corte y
Figura 1.29: Empacado de objetos en contenedores
Empacamiento surgen en muchas industrias. El estudio, anli-
sis y solucin de los mismos tiene muchas aplicaciones en la
produccin, planicacin y en las nanzas, entre otros cam-
pos. En la industria se plantean problemas relacionados con el
corte de materiales tales como el vidrio, la madera, el cartn
o el papel, entre otros, dirigidos a reducir el desperdicio de
material y los costos de produccin. Por otra parte, la may-
ora de los problemas de empacamiento en la industria, tienen
que ver con la colocacin de guras irregulares. En general el
problema del Corte y del Empacado estn ubicados en el rea
de la optimizacin combinatoria y son de alta complejidad.
Dado el problema del empacamiento, para el caso en que tanto
los objetos como los contenedores tienen formas rectangulares,
explique en qu consiste el espacio de bsqueda para hallar la
solucin de este problema.
1.3. EJERCICIOS DE AUTOEVALUACIN 63
5. Dado el problema del ejercicio anterior, sugiera qu aspectos
deben tomarse en consideracin para construir la funcin de
tness.
6. El problema de rutas de vehculos es un problema de opti-
mizacin combinatoria. Un ejemplo de este tipo de problemas
es el siguiente: Se tiene un conjuntos de puntos(A,B,C,...,M)
en una regin en donde se coloca la basura. Se requiere estable-
cer rutas ptimas para el traslado de la basura empleando una
ota de camiones. Se toma en consideracin el costo de cada
tramo de la ruta el cual incide en el costo total de la gestin
de recoleccin de desechos. Suponga que se desea aplicar un
mtodo de optimizacin heurstica para resolverlo, por ejemp-
lo el del Recocido Simulado o el de la Bsqueda Tab. Sobre
la base de esta situacin, determine cmo se representa una
solucin y como se podran elegir un vecino a una solucin.
7. Sea el problema SAT, el cual consiste en hallar los valores
booleanos( verdadero falso) que satisfacen una conjuncin
de clusulas, es decir que la hacen verdadera. Suponga que
se tienen 12 variables booleanas las cuales estn presentes en
clusulas presentadas en el cuadro (1.5).
64 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
Clusula No. Cuerpo
L
1
(x
8
x
2
x
3
x
4
)
L
2
( x
1
x
3
x
5
x
10
)
L
3
(x
6
x
8
x
11
x
12
)
L
4
( x
7
x
9
x
10
x
11
)
L
5
( x
7
x
9
x
10
)
L
6
( x
3
x
5
x
8
x
11
)
Cuadro 1.5: Clusulas
La funcin f(x) es una conjuncin de clusulas:
f(x) = L
1
L
2
L
3
L
4
L
5
L
6
Dada esta situacin, se desea aplicar la Bsqueda Tab, para
hallar su solucin. Para ello se deben responder previamente
las siguientes preguntas:
a) Cmo se representa un estado?
b) En qu consiste una movida local?
c) Qu es una solucin tab?
d) Cmo se halla una solucin vecina?
e) Cmo se crea la memoria asociada al problema de la
Bsqueda Tab?
f ) Cmo se evalan las soluciones?
1.3. EJERCICIOS DE AUTOEVALUACIN 65
8. Explique en pocas palabras qu es una poblacin en el contexto
de AE. Cmo se representan los individuos y las poblaciones
?.
9. Explique brevemente por qu una poblacin inicial debe ser
generada al azar.
10. Explique por qu es importante evaluar a los individuos.
Respuestas a Ejercicios de Autoevaluacin
1. Formulacin Matemtica del Problema del Agente Viajero(Programacin
Entera):
Minimizar

i,j
d
ij
x
ij
i,

j
x
ij
= 1
j,

j
x
ij
= 1
i, j, x
ij
= 0, 1
2. Algoritmo en seudolenguaje para determinar la distancia de
Hamming:
Algoritmo 1.6 Determinacin de la distancia de Hamming
Datos: cadenas v
1
y v
2
, de longitud N
1: dist 0
2: Para i = 0 hasta N 1 hacer
3: si v
1
(i) ,= v
2
(i) entonces
4: dist dist + 1
5: Fin si
6: Fin Para
66 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
En la variable dist, se almacena el valor de la distancia de
Hamming. Para implementarlo en el computador, se pueden
tratar las cadenas v
i
como strings o como vectores de unos y
ceros.
Funcin que calcula la distancia de Hamming:
int Hamming(int v1[ ], int v2[ ]) { int i, dist;
dist = 0;
for (i = 0; i < N; i + +)
if (v1[i] != v2[i]) (dist += 1);
}
return (dist); }
3. a) Formulacin Matemtica del problema de la Mochila(Knapsack)
Maximizar

iI
v
i
Sujeto a :

iI
c
i
C
max
en donde I es un subconjunto
I 1, . . . , n
b) Para este problema se puede emplear una estructura de
longitud ja, con n posiciones, las cuales pueden contener
valores 0 1. Ver la gura (1.30). Cada solucin se repre-
senta, en trminos computacionales como un vector booleano
o como una cadena de n dgitos binarios. Esto se interpreta
1.3. EJERCICIOS DE AUTOEVALUACIN 67
de la siguiente manera: si el objeto j se pone en la bolsa,
entonces la posicin j del vector est en 1, en caso contrario
est en 0.
Figura 1.30: Vector de dimensin n, de tipo booleano
c) Una solucin factible, es aqulla que satisface las restric-
ciones. En este caso, para determinar si una solucin es o
no factible, se suman todos los elementos del vector que
representa una solucin, si el resultado es menor o igual
que C
max
, entonces la solucin es factible, en caso contrario
es infactible, ya que sobrepasa la capacidad de la bolsa.
4. En el caso del problema del Empacamiento, el espacio de bsque-
da consiste en el conjunto de soluciones vlidas o congura-
ciones de los objetos de maneras que no se superpongan entre
si. Es importante considerar las rotaciones de los objetos.
5. En cuanto a la construccin de la funcin de tness para el prob-
lema del Empacamiento, debe considerarse el rea del objeto
a insertar, el rea de la regin no utilizada.
6. En el problema de rutas de vehculos, una solucin es una
sucesin de letras, cada una de ellas representa un punto de
recoleccin, por ejemplo una solucin podra ser: ABDCG-
68 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
FIHJKML. En cuanto al vecino de una solucin: consiste en
invertir un tramo de la ruta, el intercambio de tramos de rutas
entre dos soluciones o el traslado de un tramo de una parte a
otra dentro de la misma ruta.
7. a) Un estado se representa como una cadena de 11 dgitos
binarios, cada un representa una variable, ver gura (1.31)
Figura 1.31: Ejemplo de una solucin
b) Una movida local consiste en la conmutacin del valor de
una variable, es decir si su valor es 0 se cambia a 1 y si su
valor es 1 cambia a 0
c) En este sentido existen dos concepciones de lo que debe
ser una solucin tab. La primera es considerar tab la
variable que es conmutada, por ejemplo, si la variable x
1
cambia de 0 a 1, se considera tab dicha variable, esto
signica que no podr ser conmutada en cierto nmero de
iteraciones. La segunda concepcin consiste en considerar
la totalidad del estado como tab.
d) Para hallar una solucin vecina, se puede considerar la con-
mutacin de una variable, como una nueva solucin vecina.
e) Memoria asociada al problema de la Bsqueda Tab, en
las celdas se insertan el nmero de iteraciones en que una
1.3. EJERCICIOS DE AUTOEVALUACIN 69
variable se mantendr tab, ver la gura (1.32)
Figura 1.32: Memoria de soluciones tabes
f ) Cada solucin se evala, sustituyendo los valores de las
variables. El valor obtenido es verdadero o falso.
8. En el contexto de los AE, una poblacin es un conjunto de indi-
viduos o de soluciones potenciales. La representacin del indi-
viduo depende de la naturaleza del problema, generalmente se
representa como un vector de dgitos binarios y la poblacin se
representa como una matriz. Existen problemas en que se em-
plean vectores y matrices de nmeros reales para representar
a los individuos y las poblaciones.
9. Las poblaciones deben iniciarse al azar, para proporcionar di-
versidad. De esta manera el mtodo evolutivo puede explorar
en diferentes regiones del espacio de bsqueda y no quedarse
estancado en un punto que podra ser un ptimo local.
10. Los individuos deben ser evaluados para determinar su calidad,
que es la calidad de la solucin, en otras palabras permite
medir qu tan buena o mala es esta solucin. Por otra parte
las soluciones deben evaluarse para saber qu tan cerca estn
70 CAPTULO 1. LA OPTIMIZACIN Y EL ENFOQUE EVOLUTIVO
de la solucin ptima. Adems la evaluacin de los individuos
permite aplicar el principio de la Seleccin Natural.
Consulta en la web
Se recomienda consultar la siguiente direccin en la Web.
http://geneura.ugr.es/ jmerelo/tutoriales/heuristics101/,
especcamente en las seccin 2, en donde se trata de manera
introductoria el tema de los algoritmos bio-inspirados.
Captulo 2
Algoritmos Evolutivos
2.1. Fundamentos de los Algoritmos Evolutivos
La idea en la que se basan los Algoritmos Evolutivos (AE) es
la existencia de una poblacin de individuos(soluciones), entre los
cuales se aplican mecanismos de seleccin natural para escoger los
mejor adaptados. La medida de evaluacin que sirve para determi-
nar cules individuos estn mejor adaptados es la funcin a min-
imizar(o maximizar),esta puede ser una medida heurstica de la
calidad de la solucin. Los individuos seleccionados darn origen
a una nueva generacin (de soluciones). En los AE el proceso de
bsqueda y seleccin se maneja con operadores de variacin y se-
leccin, los cuales son tcnicas que se aplican para realizar el cruce
y las mutaciones en individuos y para realizar la seleccin de los
individuos a considerar para las nuevas generaciones respectiva-
mente.
Existen 3 caractersticas comunes a los AE que son:
71
72 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Estn basados en poblaciones de individuos.
Emplean mecanismos de cruce o recombinacin y mutacin
para dar origen a nuevos individuos
Son estocsticos
En torno a los Algoritmos Evolutivos, se consideran varios paradig-
mas: Algoritmos Genticos, Estrategias Evolutivas, Programacin
Gentica, Programacin Evolutiva y Aprendizaje de Mquinas( o
Sistemas de Clasicacin) Trataremos los 3 primeros tipos de al-
goritmos evolutivos. Los Algoritmos Genticos emplean vectores o
cadenas de smbolos tomados de un alfabeto, las Estrategias Evolu-
tivas emplean vectores de valores reales y la Programacin Genti-
ca opera con estructuras de rboles. Las diferencias entre ellos son
de tipo histrico.
Los algoritmos genticos fueron desarrollados por John H. Hol-
land en Estados Unidos, en la dcada de 1960, quien inspirado
en los autmatas celulares y en las redes de neuronas articiales,
quiso desarrollar procesos basados en la adaptacin para estudiar
la evolucin del comportamiento de sistemas complejos. Paralela-
mente, en Alemania, Peter Bienert, Ingo Rechenberg y Hans-Paul
Schwefel, para resolver un problema de optimizacin en el rea de
mecnica de uidos, desarrollaron un algoritmo, en el que usaban
ajustes discretos aleatorios, que creaban mutaciones. Esta tcnica
di buenos resultados, y posteriormente se formaliz bajo el nom-
2.1. FUNDAMENTOS DE LOS ALGORITMOS EVOLUTIVOS 73
bre de Estrategias Evolutivas. Actualmente se desarrollan nuevas
tcnicas de optimizacin que involucran algoritmos genticos, tan-
to en el campo de la optimizacin combinatoria como en el caso
de funciones cuyo dominio es continuo. Por otra parte, la Progra-
macin Gentica fue desarrollada por David Fogel y su equipo en el
ao 1966, esta investigacin estuvo dirigida hacia el problema del
autmata de estados nitos. Posteriormente estuvo dirigida hacia
la generacin automtica de programas.
Cada da es ms difcil distinguir las diferencias entre los tipos
de algoritmos evolutivos. En las siguientes secciones se presentar
primero el algoritmo estndar y de cada uno de estos tipos: sus
fundamentos, descripcin del mtodo y ejemplo en el que se aplica
el algoritmo. Los operadores genticos estn relacionados con los
tipos de operaciones tales como: reproduccin, recombinacin y
mutacin que se aplican a los individuos y los operadores de selec-
cin se emplean para escoger elementos de la poblacin, tambin se
utilizan mecanismos de competicin para eliminar elementos de la
poblacin, a efecto de que esta no crezca de manera descontrolada.
Debido a que estos operadores y mecanismos se pueden utilizar en
todos los tipos de algoritmos a considerar, los trataremos a medida
que se requiera hacerlo.
Algoritmo Evolutivo: En la gura (2.1) se presenta un esquema
del algoritmo evolutivo estndar
1
, en el mismo, el lazo generacional
1
Ejemplo tomado de Hans-Georg Beyer [4]
74 CAPTULO 2. ALGORITMOS EVOLUTIVOS
se reere al paso de una nueva generacin, en donde los individ-
uos que participan son los mejor adaptados. Los mecanismos de
seleccin y de reproduccin de individuos vara de acuerdo al tipo.
Figura 2.1: Algoritmo Evolutivo
Operadores de Seleccin: Estos son los mecanismos que se em-
plean para seleccionar los padres en cada generacin. Los mtodos
ms comunes son: Mtodo de la Ruleta o Mtodo Proporcional,
el Mtodo del Torneo y el Mtodo de Escalamiento por Rango (o
Ranking).
2.1. FUNDAMENTOS DE LOS ALGORITMOS EVOLUTIVOS 75
Mtodo de la Ruleta: Se seleccionan ambos padres al azar, de
acuerdo a alguna distribucin de probabilidad, obtenida sobre la
base de la mejor adaptacin de los individuos( evaluacin). A cada
individuo le corresponde un sector de la ruleta, ver gura (2.2).
Este mtodo funciona sobre la base del principio: Los mejor adap-
tados tienen ms posibilidad de ser seleccionados, en trminos
prcticos: a los individuos mejor adaptados les corresponde un sec-
tor ms grande de la ruleta. Se generan nmeros al azar y de acuer-
do a la distribucin de probabilidad, correspondern a algn sector
de la ruleta y consecuentemente al individuo que se seleccionar.
La probabilidad viene dada por la siguiente frmula:
p
i
=
f
i

n
j=1
f
j
con f
i
tness
Figura 2.2: Mtodo de la Ruleta para 7 individuos
A continuacin se presenta un esquema del algoritmo para aplicar
el Mtodo de la Ruleta.
76 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Algoritmo 2.1 Procedimiento del Mtodo de la ruleta
1: Para j = 1 hasta N hacer
2: Generar un nmero aleatorio r en [0, 1]
3: si F(x
i1
) r < F(x
i
) entonces
4: Seleccionar el individuo i, i 1, 2, . . . , N
5: Fin si
6: Fin Para
en donde N es el nmero de individuos de la poblacin y F(x
j
)
es la funcin de probabilidad acumulativa.
Mtodo del Torneo: Consiste en la seleccin de un grupo de q
individuos de la poblacin al azar, con o sin reemplazo. Este grupo
de individuos seleccionados formar parte del torneo. El mejor in-
dividuo seleccionado es el que tiene mejor evaluacin, por lo tanto
esta seleccin es determinista. El individuo seleccionado no es elim-
inado, por lo cual podra formar parte de la nueva seleccin( caso
con reposicin). Este proceso se repite veces, hasta obtener una
nueva poblacin. Al proceso de seleccionar los mejores individuos
se le conoce como elitismo, este consiste en copiar el mejor cro-
mosoma en la nueva descendencia, antes del cruce y mutacin. La
palabra torneo se reere a una competencia entre individuos, el
torneo clsico se realiza entre dos individuos, sin embargo, puede
generalizarse a q individuos. El mtodo descrito se esboza de la
siguiente manera:
2.1. FUNDAMENTOS DE LOS ALGORITMOS EVOLUTIVOS 77
Algoritmo 2.2 Mtodo del Torneo
1: Para i = 1 hasta hacer
2: a

i
mejor individuo entre los q individuos
3: Fin Para
4: Retornar a

i
, . . . , a

En el Mtodo de la Ruleta a diferencia del Mtodo del Torneo,


todos los individuos participan
Mtodo de Escalamiento por Rango o Ranking: En este mtodo
se modican los valores de adaptacin. Primero, los individuos se
ordenan ascendentemente de acuerdo con su valor de adaptacin.
Una vez ordenados, sus valores de adaptacin cambian de acuerdo
a su posicin en la lista ordenada. Esta alteracin ocasiona que
los individuos estn cerca de los que tienen semejantes niveles de
adaptacin. En la gura (2.3) se ilustra el mtodo con un ejemplo.
Algunos algoritmos de seleccin se disean de manera que no todos
los individuos participen en la seleccin.
Operadores de Variacin: Son los mecanismos que se aplican
para recombinar( o cruzar) y para generar mutaciones en los in-
dividuos. El operador de recombinacin o cruce acta sobre dos
o ms individuos seleccionados, para dar origen a uno o ms in-
dividuos. Para hacer el cruce de dos individuos, normalmente se
deben revisar los cromosomas de cada individuo y calcular su gra-
78 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.3: Mtodo de Escalamiento por Rango: a) Lista original, b) Lista ordenada, c)
Lista renumerada. Los nmeros al lado de cada celda corresponden al valor de tness
do de adaptacin. Los mejores individuos se seleccionan entre los
que tengan mayor grado de adaptacin. Existen diferentes formas
de cruce, en algunos casos se predeterminan uno o varios puntos
de cruce y en otros casos el punto de cruce se determina al azar.
El cruce de punto sencillo, el cual consiste en copiar los caracteres
del cromosoma de un padre, hasta un gen especco y a partir de
ste se copian los del otro padre, ver gura (2.4).
Figura 2.4: Cruce de punto sencillo
En el cruce de dos puntos: se copian los aleles de un padre,
2.1. FUNDAMENTOS DE LOS ALGORITMOS EVOLUTIVOS 79
Figura 2.5: Cruces a) En dos puntos, b) En mltiples puntos
marcados en dos sectores diferentes del cromosoma y los restantes
se copian del segundo padre. Otro tipo de cruce es el de mltiples
puntos, semejante al anterior pero con ms de dos sectores, ver
gura (2.5).
Si consideramos las cadenas o vectores: (x
1
, . . . , x
n
) y (y
1
, . . . , y
n
)
al cruzarlas obtenemos el hijo: (z
1
, . . . , z
n
). Existen varios tipos de
operadores de cruce, entre los cuales estn:
1. Recombinacin Aritmtica:
z
i
=
x
i
+ y
i
2
2. Recombinacin Geomtrica:
z
i
=

x
i
y
i
3. Recombinacin Plana:
z
i
= x
i
+ (1 )y
i
, con (0, 1)
80 CAPTULO 2. ALGORITMOS EVOLUTIVOS
4. Recombinacin Esfrica:
z
i
=
_
x
2
i
+ (1 )y
2
i
, con (0, 1)
Los operadores de variacin son probabilistas y los de seleccin
pueden ser probabilistas o totalmente deterministas
2.1. FUNDAMENTOS DE LOS ALGORITMOS EVOLUTIVOS 81
Operadores de Mutacin: Al efectuarse la reproduccin, luego
del cruce de individuos, eventualmente podran ocurrir mutaciones.
El operador de mutacin acta sobre un individuo. Las mutaciones
ocurren con una frecuencia baja. Normalmente se emplea una tasa
de mutacin, para ello se asocia una probabilidad por gen. Un valor
tpico de esta probabilidad de mutacin es el de 0, 01 % por gen.
Generacin: Una vez que se hace un cruce entre dos individuos
seleccionados, se obtiene un nuevo individuo, que formar parte de
una nueva generacin de individuos. El proceso de reproduccin y
formacin de nuevas generaciones continuar, hasta que el proceso
se detenga, para ello se establecer un criterio de parada.
Ejercicios
1. Disee un algoritmo para la aplicacin del Mtodo de la Rule-
ta, el cual constar de dos partes:
a) Asignacin de probabilidades, de acuerdo con las evalua-
ciones de poblaciones de 10 individuos de 8 cromosomas cada
uno. Emplee la funcin de evaluacin f(x) = x
3
.
b)Seleccin de 10 individuos (con reposicin)
2. Disee un algoritmo para la aplicacin del Mtodo del Ranking
a la poblacin considerada en el ejercicio anterior.
3. Implemente un algoritmo, para realizar los tipos de cruces:
82 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Recombinacin Aritmtica, Recombinacin Geomtrica y Re-
combinacin Plana, entre pares de individuos.
2.2. Ventajas de los Algoritmos Evolutivos
A continuacin se presentan, de manera esquemtica, algunas
de las ventajas de los AE. Se espera que a lo largo del curso, se
puedan experimentar estas bondades.
Son simples, se basan en las leyes de la naturaleza.
Son de fcil implementacin.
Son aplicables a mltiples problemas cuya solucin es difcil de
hallar.
Tienen buen desempeo en una gran variedad de problemas
del mundo real.
Es posible combinarlos con diferentes tcnicas de representacin,
bsqueda, optimizacin entre otras, para obtener excelentes
hbridos.
Es posible incorporar mecanismos de auto adaptacin a sus
parmetros.
2.3. EJERCICIOS DE AUTOEVALUACIN 83
2.3. Ejercicios de Autoevaluacin
1. Qu funcin tiene un operador de seleccin, de recombinacin
o de mutacin?
2. Qu representa una generacin, en trminos de los Algoritmos
Evolutivos?
3. Seis individuos de una poblacin tienen los siguientes valores
de tness: 5, 10, 15, 25, 50 y 100. Obtenga la distribucin
de probabilidad para este problema, necesaria para aplicar el
Mtodo de la Ruleta.
Respuestas a Ejercicios de Autoevaluacin
1. El operador de seleccin escoge los padres que participarn en
el proceso de reproduccin para generar nuevos individuos.
El operador de cruce, combina ambos padres para dar origen
a uno o dos descendientes.
El operador de mutacin perturba un individuo(cromosoma).
2. En trminos de los Algoritmos Evolutivos una generacin es
una iteracin en el lazo principal.
3. Distribucin de probabilidad necesaria para aplicar el Mtodo
de la Ruleta, ver cuadro (2.1)
84 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Individuos f
i
f
i

n
j=1
f
j
F(x)
1 5 0,02439 0,02439
2 10 0,04878 0,07317
3 15 0,07317 0,14634
4 25 0,12195 0,26829
5 50 0,24390 0,51219
6 100 0,48780 1
Cuadro 2.1: Distribucin de probabilidad
Ampliacin de Conocimientos
En el contexto de las teoras evolutivas, investigue en qu con-
siste el efecto Baldwin. Adems cules implicaciones podra
tener en el mbito de la Computacin Evolutiva.
Investigue sobre la Evolucin Ingenua (N aive).
Investigue en qu consiste la Evolucin Diferencial(en ingls:
Dierential Evolution). Cules son los elementos comunes con los
mtodos analizados. En cules problemas se ha aplicado con
xito?.
Los Teoremas de No hay Almuerzo Gratis (en ingls No Free
Lunch Theorems) establecen en este mbito, en trminos muy
simples, que ningn algoritmo de optimizacin puede ser con-
siderado ms eciente que otro cuando se emplea en todas las
posibles funciones, si hay un conocimiento insuciente de las
caractersticas de los problemas dentro de un dominio. Inves-
2.3. EJERCICIOS DE AUTOEVALUACIN 85
tigue sobre este interesante aspecto, cuyo planteamiento orig-
inal proviene del mundo de las Finanzas.
86 CAPTULO 2. ALGORITMOS EVOLUTIVOS
2.4. Algoritmos Genticos
Fundamentos
De acuerdo con la Teora de la Evolucin, los organismos que
viven en un ambiente determinado se reproducen, pero tambin
los organismos mejor adaptados al ambiente tienen caractersticas
que les permiten reproducirse ms que aquellos que estn menos
adaptados. Por lo tanto, los organismos mejor adaptados, tienen
ms posibilidades de pasar sus genes a las siguientes generaciones.
Si ocurren mutaciones, es posible que se incorporen nuevas carac-
tersticas a las prximas generaciones. Es muy conocido el ejemplo
de las jirafas, cuya evolucin ha sido estudiada. Al respecto los
investigadores llegaron a la conclusin que las jirafas que tenan
cuellos ms largos podan alcanzar las hojas en las ramas ms al-
tas, que aquellas cuyos cuellos eran ms cortos, cuando las hojas
que estaban en las partes ms bajas se haban agotado. Por lo
tanto, stas tenan ms posibilidades de sobrevivir. Esto condu-
jo a pensar que ocurri una mutacin que produjo un cuello ms
largo, pero como result favorable, se propag a las generaciones
siguientes.
Los seres vivos, en su mayora, poseen ADN. La molcula de
ADN, tiene la forma de una doble hlice, dentro de la cual se
encuentran las unidades bsicas o nucletidos denominados: Aden-
ina, Timina, Guanina y Citosina. Determinada combinacin de los
nucletidos indica que una especie animal tendr por ejemplo, el
2.4. ALGORITMOS GENTICOS 87
pelambre pardo, pero otra combinacin indicar que el pelambre
ser de color negro. El ADN est organizado dentro de la clula
en cromosomas. Los cromosomas varan segn las especies y estn
compuestos de genes. Los genes son los responsables de la herencia,
por lo cual determinan la forma y el comportamiento de las mismas
en todas las generaciones. La informacin gentica que posee un
organismo se llama genotipo y la apariencia fsica se llama fenotipo.
Este ltimo se determina a partir del primero y comprende la mor-
fologa, siologa y conducta del organismo.
Los algoritmos genticos(GA, Genetic Algorithms) son mtodos
computacionales ubicados dentro del rea de Algoritmos Evolu-
tivos, que se basan en los aspectos genticos de la evolucin biolg-
ica de las especies y ofrecen un enfoque novedoso en cuanto a la
bsqueda de soluciones a problemas. Bsicamente emulan la evolu-
cin, considerando generaciones de soluciones, entre las cuales se
eligen los padres mejor adaptados para dar origen a nuevas gen-
eraciones y sucesivamente se obtendrn buenas soluciones. Cuando
John Holland conjuntamente con su equipo, en la dcada de los
sesenta, desarroll el estudio de estos algoritmos, se establecieron
dos metas: la primera de ellas era emplear la abstraccin y la rig-
urosidad para explicar los procesos adaptativos de los sistemas nat-
urales y la segunda, disear sistemas de software que emularan los
mecanismos ms importantes de los sistemas naturales. Esto con-
dujo al descubrimiento en las ciencias de los sistemas naturales y
articiales.
88 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Los AG han demostrado proporcionar una bsqueda robusta en
sistemas complejos. En la implementacin tpica de un AG se em-
plean cadenas de longitud ja de caracteres, las cuales representan
la informacin gentica de los individuos. Entre estos individuos
podran ocurrir cruces o recombinaciones y eventualmente muta-
ciones, dando origen a nuevas generaciones.
La meta de estos algoritmos es hallar la solucin, mediante
bsquedas ecientes. Lo que ocurre es que se crea un espacio mul-
tidimensional de soluciones, para lo cual no existe un algoritmo
particular. Son algoritmos bastante rpidos y han sido emplead-
os, por ejemplo, para resolver el problema del agente viajero. Este
problema como hemos apuntado, se considera NP-completo, esto
signica en pocas palabras, que el algoritmo de resolucin toma un
tiempo no polinomial. Los algoritmos genticos no necesariamente
conducen a la solucin ptima, slo se sabe que las soluciones cada
vez resultarn mejores, debido a la evolucin.
En los algoritmos genticos la unidad bsica se denomina sm-
bolo. La naturaleza de estos smbolos depende del algoritmo en
particular. Estos smbolos consisten en funciones, variables y con-
stantes y cada posicin en el cromosoma representa un gen y el con-
tenido se denomina alelo. Cuando se hable de individuos, estaremos
rerindonos a cromosomas o cadenas de genes (smbolos), por lo
tanto cada cromosoma representa en forma codicada una solucin
al problema.
2.4. ALGORITMOS GENTICOS 89
Ejemplo
Representacin de un cromosoma: En la Figura (2.6), se repre-
senta un cromosoma que tiene 7 genes. Por ejemplo, al gen 3 le
corresponde el alelo &.
Figura 2.6: Cromosoma con 7 genes
En trminos computacionales, esta estructura se representa con
un vector o arreglo, el cual puede tener valores booleanos, enteros,
de caracteres, reales, complejos o de algn otro tipo denido. A
continuacin mencionaremos algunas deniciones relacionadas con
las operaciones que se ejercen sobre los cromosomas:
Operacin gentica de cruce o crossover: Cuando los organismos
se reproducen, los hijos adquieren caractersticas de ambos padres.
Puede ocurrir una mutacin, lo cual causa cambios en el cromoso-
ma que ocasiona nuevas caractersticas del individuo. En este caso
en el cruce se copian caractersticas de ambos padres, dependiendo
de ciertas reglas. As se podr emplear el cruce de punto sencillo,
el cual consiste en que a partir de algn gen se copian los genes del
cromosoma de un padre y desde el inicio hasta ese gen se copian los
del otro padre, ver gura (2.7). Se selecciona una posicin al azar
90 CAPTULO 2. ALGORITMOS EVOLUTIVOS
en el cromosoma, por ejemplo en el gen 4 y se copian los caracteres
de ambos padres. En este ejemplo el cruce da origen a un slo hijo.
Figura 2.7: Ejemplo de cruce de punto sencillo
Ejemplo
Considere cromosomas de 6 caracteres(longitud L = 6). Sean los
pares p
1
= 000000 y p
2
= 111111. Sea un cruce sencillo en la posicin
4 (P
c
= 4). En este caso consideramos que el cruce da origen a dos
hijos: 000011 y 111100. Esta operacin consiste en la sustitucin de
los caracteres 5 y 6 de cada padre por los correspondientes 5 y 6
del otro padre, generando dos hijos.
Existe tambin el cruce de dos puntos, como se muestra en la
gura (2.8). En este caso se trata de un cruce que produce un slo
hijo.
2.4. ALGORITMOS GENTICOS 91
Figura 2.8: Ejemplo de cruce en dos puntos
92 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Ejemplo
Considere dos cromosomas de longitud L = 9. Los padres son p
1
=
000000000 y p
2
= 111111111. Sean dos puntos de cruce: P
c
= 3 y P
c
=
7. La operacin de cruce da como resultados dos hijos: 000111100 y
111000011.
Operacin gentica de mutacin: Una mutacin produce cambios
en las caractersticas del nuevo organismo. Las mutaciones pueden
ser buenas o malas, segn las caractersticas que introducen cam-
bios al nuevo organismo. Las mutaciones pueden ocurrir durante el
cruce. En la Figura (2.9), se muestra la ocurrencia de una mutacin
cuando se hace el cruce anterior.
Figura 2.9: Ejemplo de cruce y mutacin en el gen 4
Las poblaciones generalmente se crean de manera aleatoria ini-
cialmente. En la gura (2.10) se muestra un ejemplo de poblacin
inicial.
2.4. ALGORITMOS GENTICOS 93
Figura 2.10: Poblacin inicial de individuos obtenida al azar
Un ejemplo sencillo para visualizar el empleo del AG en la res-
olucin de un problema es el siguiente:
Ejemplo
Se desea explorar una regin de 1,000 Km, para determinar si hay
algn pozo de petrleo. Por simplicidad consideramos la explo-
racin en una sola dimensin. Debemos escoger nmeros al azar en-
tre 0 y 1000, el intervalo [0,1000] es el espacio de bsqueda. Supong-
amos que escogemos al azar, los nmeros n = 300 y n = 900, estos
son soluciones. Codicamos estas soluciones en cadenas de nmeros
binarios; para este caso se requieren 10 dgitos. En el cuadro (2.2)
se presenta la conversin a binario de estas soluciones y el mximo
nmero en decimal representable en 10 dgitos binarios.
En la gura (2.11) se muestra un esquema con dos soluciones
iniciales. Cada solucin tiene asociada una representacin y se
puede medir su calidad calculando su valor f(x), as f(300) = 10
y f(900) = 5. La funcin a maximizar f(x), permitir medir qu
tan buena es la solucin y en este ejemplo supongamos que no
94 CAPTULO 2. ALGORITMOS EVOLUTIVOS
512 256 128 64 32 16 8 4 2 1
900 1 1 1 0 0 0 0 1 0 0
300 0 1 0 0 1 0 1 1 0 0
1023 1 1 1 1 1 1 1 1 1 1
Cuadro 2.2: Codicacin de soluciones: genotipos
Figura 2.11: Poblacin inicial
conocemos su forma. Cada punto en el espacio es un genotipo. Sea
una poblacin inicial de un conjunto de soluciones en el interva-
lo [0,1000] como 120, 250, 300, 360, 480, 650, 730 y 900. Es fcil
observar, ver gura (2.12) que x = 480 es la solucin del conjunto
presentado que tiene el mejor valor. Al hacer la seleccin de los ms
adaptados, posiblemente esta solucin o individuo ser escogida por
su calidad, al emplear algn operador de seleccin. Seguidamente
se har el cruce y mutacin y en un proceso iterativo, se obtendr
al menos un solucin muy cercana a la ptima (x

= 520). El AG
hallar soluciones con mejor tness.
Supongamos que el operador de seleccin escoge entre varios
individuos: x = 480 y x = 360. Los genotipos son:

111100000

101101000

. Si el cruce es de un solo punto, de manera que a par-


2.4. ALGORITMOS GENTICOS 95
Figura 2.12: Espacio de bsqueda y correspondencia con la funcin de tness
tir del gen sexto se copian los genes del segundo padre, entonces
se obtiene el genotipo del nuevo individuo:

111101000

, el cual cor-
responde al individuo x = 498. No se realizaron mutaciones. Este
nuevo individuo tiene una mejor evaluacin que todos los individ-
uos de la poblacin. El proceso debe continuar hasta crear una
nueva poblacin.
Las nuevas soluciones debern seleccionarse correctamente, no
es conveniente tener un espacio completamente aleatorio para hal-
lar la solucin. En algunos casos es mejor hallar soluciones que
representen una pequea mejora, a n de llegar a la ptima. Por
otra parte tambin es posible que el AG produzca soluciones que
se queden estancadas en un ptimo local.
96 CAPTULO 2. ALGORITMOS EVOLUTIVOS
2.4.1. Esquemas de Representacin de cadenas de smbolos
Debido a la informacin que contiene cada cadena de smbolos,
es importante analizar las semejanzas entre las diferentes cadenas,
y de esta manera considerar clases de las mismas, lo cual podra
ser de utilidad para la realizacin de una bsqueda. Una forma de
representar estas clases, es empleando lo que Holland denomin
esquemas ( en ingls: Schema, plural: Schemata)
Un esquema es una plantilla de semejanzas la cual describe o
representa a subconjuntos de cadenas que tienen similitudes en
determinadas posiciones. Por ejemplo, si consideramos el alfabeto
0, 1, podemos crear un esquema, agregando un smbolo adicional,
el , creando una plantilla en la cual el smbolo signica que no
importa el valor que tenga en esa posicin, en este caso puede
ser 0 1. Esto signica que se trabaja bajo un esquema ternario
0, 1, . Por ejemplo si consideramos una cadena de 5 smbolos y
el esquema es: 00 1

, se est describiendo un subconjunto de


smbolos formado por las cadenas: 00001, 10001, 00011, 10011
Es interesante saber cuntos esquemas podemos construir. Si
consideramos el sistema ternario de smbolos: 0, 1, , y cadenas
de 6 smbolos, podemos crear 3 3 3 3 3 3 = 3
6
= 729 esquemas.
En general para k smbolos y cadenas de longitud l, existen (k +1)
l
esquemas.
2.4. ALGORITMOS GENTICOS 97
Atencin
Los esquemas pueden emplearse para denir subconjuntos de cro-
mosomas semejantes
Si tenemos un conjunto de cadenas de smbolos o poblacin de
individuos, nos interesan sus valores de tness y las semejanzas
entre estos.
2.4.2. Ejercicios de Autoevaluacin
1. Dado el nmero en base decimal: 19, halle su representacin
binaria ( en dgitos 0 y 1). Cuntos dgitos binarios se nece-
sitan para representarlo?, y con el nmero de dgitos hallado,
Cul es el mximo nmero binario y decimal representable?
2. Dados los siguientes nmeros en notacin decimal: 13, 10, 8
y 24, y la funcin de tness: f(x) = x
2
realice una tabla, en
cuya primera columna represente a cada nmero en binario,
en la segunda columna, su representacin en decimal y en la
tercera columna el valor de f(x) en decimal asociado a cada
nmero, al nal de esta columna sume todos los elementos.
En la siguiente columna coloque el porcentaje que representa
el valor de la columna de al lado(tness), con respecto a la
suma o total. (Guarde estos resultados, ya que este ejercicio
98 CAPTULO 2. ALGORITMOS EVOLUTIVOS
se emplear en la prxima seccin de ejercicios).
3. Disee un esquema para representar nmeros enteros impares,
dado que los cromosomas son de 12 caracteres binarios.
4. Explique cmo se debe disear un algoritmo en el cual dado el
esquema 10 11 1 00, se generen todas las cadenas posibles.
5. Implemente un algoritmo sencillo, empleando algn lenguaje
de programacin, que contemple operaciones de cruce en un
punto y mutacin para pares de vectores de 10 caracteres 0
y 1. Para esta ltima operacin emplee un proceso aleatorio
que escoja al azar el gen a mutar, si ste es 0 lo cambia a 1 y
viceversa.
2.4.3. Formulacin matemtica del problema bajo el AG
El problema de optimizacin se plantea de la siguiente manera:
Minimizar g(x)
xA
con g(x) = g(c(x))
La funcin g est denida como:
g : 1
Las variables de decisin son cadenas (strings) de smbolos, v es
representado por una cadena de x smbolos, tomados de /, usando
la aplicacin:
c : /
l
1
2.4. ALGORITMOS GENTICOS 99
en donde / es un alfabeto y l es la longitud de la cadena. Los
elementos de las cadenas son los genes y los valores que esos genes
pueden tomar se llaman alelos. A la aplicacin c se le denomina
aplicacin genotipo-fenotipo. El espacio /
l
es un subespacio de A
En los AG no se trabaja directamente con puntos de un espacio
A, sino con estos puntos codicados, es decir se necesita emplear
una aplicacin de A en un conjunto de smbolos, todos de igual
longitud, escogidos de un alfabeto /. Estos puntos codicados son
los genotipos.
Un algoritmo gentico, tiene bsicamente la siguiente estructura:
Algoritmo 2.3 Algoritmo Gentico general
1: Iniciar la poblacin P(0)
2: Calcular la funcin tness de cada individuo de la poblacin
3: si criterio de parada se satisface entonces
4: Finalizar
5: Fin si
6: Seleccionar M(k) de la poblacin P(k), de acuerdo a algn criterio
7: Ejecutar operaciones genticas como cruce( crossover) y mutacin sobre M(k), para
formar una nueva poblacin
8: k k + 1
9: Ir al paso 2
Bsicamente se tiene una poblacin inicial P(0), se evala la fun-
cin objetivo en cada individuo de esta poblacin. Eventualmente
100 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.13: Funcin a optimizar
se realizan operaciones de cruce y mutacin. El proceso se repite it-
erativamente, dando origen a sucesivas poblaciones: P(1), P(2)....P(k),
hasta que se cumpla cierto criterio de parada. Los elementos de la
poblacin o individuos se representan como vectores en el com-
putador, en donde cada componente por lo general representa un
parmetro. En los AG los nmeros reales se codican en nmeros
binarios ( o bits) para asociar cada bit con un gen. La poblacin
es un conjunto de estos vectores o cadenas de bits.
Ejemplo
Se quiere hallar los valores de x enteros
2
, que maximizan la fun-
cin
3
:
f(x) = sen(x/256)
0 x 255
2
por simplicidad de representacin
3
Ejemplo presentado por Kennedy y Eberhart [16]
2.4. ALGORITMOS GENTICOS 101
Representaremos a cada individuo de la poblacin por una ca-
dena de 8 bits (string). La cadena

00000000

representa a x = 0 y la
cadena

11111111

representa a x = 255.
En este ejemplo se crea la poblacin inicial de 8 individuos. Esto
se hace de manera aleatoria, empleando un generador de nmeros
aleatorios entre 0 y 1. As se genera cada uno de los bits de los 8
individuos. La poblacin obtenida est en la tabla (2.3). En esta
tabla se observa que al sumar todos los valores, en la columna cor-
respondiente a f(x) la suma es 5.083 el cual es el promedio de tness.
Luego los valores normalizados de f(x) denominados

f(x) son los
valores de f(x) divididos entre 5.083. La columna F(x) representa
la acumulativa de los valores de

f(x).
Luego de evaluar a cada individuo, el prximo paso es la repro-
duccin. La reproduccin consiste en formar una nueva poblacin,
a partir de la seleccin de individuos, para crear una poblacin
del mismo tamao. Esta seleccin se hace aplicando el Mtodo de
la Ruleta y segn el resultado se escogern los individuos para
su reproduccin. Este proceso se lleva a cabo en el computador
generando nmeros aleatorios, en (0,1). De acuerdo con el cuadro
(2.3), observando la columna correspondiente a

f, si se obtiene un
nmero aleatorio entre 0 y 0, 144, se seleccionar el primer individ-
uo. Si el nmero aleatorio es mayor que 0, 144 y menor que 0, 237,
se seleccionar el segundo individuo y as sucesivamente.
Los individuos con mejor evaluacin tendrn mayor probabili-
102 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Individuos x f(x)

f F(x)
10111101 189 0,733 0,144 0,144
11011000 216 0,471 0,093 0,237
01100011 99 0,937 0,184 0,421
11101100 236 0,243 0,048 0,469
10101110 174 0,845 0,166 0,635
01001010 74 0,788 0,155 0,790
00100011 35 0,416 0,082 0,872
00110101 53 0,650 0,128 1,000
Cuadro 2.3: Poblacin inicial
dad de ser seleccionados, ya que el intervalo correspondiente a los
nmeros aleatorios es ms amplio. Es posible que estos individu-
os sean seleccionados ms de una vez para la prxima generacin.
Anlogamente, los individuos con peor evaluacin, tienen una prob-
abilidad menor de ser seleccionados. La nueva generacin tiene un
valor total de tness mejor que el anterior ( 6.313 frente a 5.083)
y dos de sus miembros tienen una evaluacin superior a 0,99. El
proceso debe continuar: seleccin , cruce y una eventual mutacin,
hasta que alguna condicin de parada detecte el n de la aplicacin
del mtodo.
El prximo paso, consiste en generar 8 nmeros aleatorios, para
seleccionar los individuos que se van a cruzar, en este caso se apli-
car el Mtodo de la ruleta, ver gura (2.14).
Si los 8 nmeros aleatorios generados son: 0,293, 0,971, 0,160,
0,469, 0,664, 0,568, 0,371 y 0,109, al buscar en el cuadro (2.3) a
cules individuos corresponde, se obtienen los individuos: 3, 8, 2,
2.4. ALGORITMOS GENTICOS 103
Figura 2.14: Mtodo de la ruleta: Cada sector est asociado a la distribucin de probabi-
lidad
5, 6, 5, 3 y 1. Por lo tanto, los individuos que se van a cruzar se
presentan en el cuadro (2.4).
1- 01100011 3- 01001010
00110101 10101110
2- 11011000 4- 01100011
10101110 10111101
Cuadro 2.4: Pares de individuos seleccionados para reproduccin
Al hacer el cruce(crossover), se intercambian porciones de los
cromosomas de los individuos. Generalmente se estima una prob-
abilidad asociada al proceso de cruce, la cual es la probabilidad
de que dados dos padres, ocurra el cruce. La tasa de cruce es fre-
cuentemente tomada en el rango de 0,65 a 0,80. En este caso se
tom el 0,75.
104 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Padres Descendientes x f(x)
01100011 01110111 119 0,994
00110101 00100001 33 0,394
11011000 10101000 168 0,882
10101110 11011110 222 0,405
01001010 10001010 138 0,992
10101110 01101110 110 0,976
01100011 01100011 99 0,937
10111101 10111101 189 0,733
Cuadro 2.5: Poblacin resultante del cruce. Los nmeros resaltados en negrilla son las
porciones de los cromosomas a intercambiar
Los individuos sern cruzados, de acuerdo con la tasa de cruce,
en el orden en que resultaron del proceso aleatorio, por lo tanto de
los cuatro pares de individuos, se cruzarn los tres primeros.
Luego, entre los pares que sern cruzados se determinarn al
azar dos puntos de cruce, de tal manera que las porciones del cro-
mosoma entre estos dos puntos de cruce, de izquierda a derecha
sern intercambiadas entre ambos individuos. En el cuadro (2.5),
se resaltan en letra negrilla las porciones a intercambiar. En este
cuadro se observa que el tercer par de individuos, el primer punto
de cruce est a la derecha del segundo, por lo tanto se trata la
cadena como si fuera circular y se toman el ltimo gen y los dos
primeros, para demarcar la porcin a intercambiar.
La operacin nal en esta etapa debe ser la mutacin, sta con-
siste en conmutar bits al azar. Por lo general se ja una proba-
2.4. ALGORITMOS GENTICOS 105
bilidad constante en cada generacin. Normalmente tiene un valor
bajo entre 0,001 y 0,01, esto signica que en cada cadena de bits,
se conmutan entre un 0,1 % y un 1 % bits. En este ejemplo hay un
total de 8 8 = 64 bits, como se trata de una poblacin de pocos
individuos, es posible que ningn bit sea cambiado.
Se puede observar en este ejemplo que el nuevo valor total de
tness es de 6.313, el cual es mayor que el valor de la poblacin
inicial de 5.083. Adems hay dos individuos con evaluaciones altas,
en el orden de 0.99. En resumen, se increment el valor promedio
de tness de la poblacin y el mximo valor de tness. La nueva
poblacin podr pasar por los procesos de seleccin, cruce y even-
tual mutacin, dando lugar a una nueva poblacin, hasta que el
criterio de parada se haga efectivo.
Ejemplo
Se quiere maximizar la siguiente funcin:
4
f(x) = x
3
60x
2
+ 900x + 100
x [0, 31]
x es el fenotipo. Obtendremos una poblacin de 5 individuos x al
azar, los cuales sern convertidos a cadenas binarias( genotipo)( ver
tabla 2.6). La suma de los valores de tness es 11.635 y el promedio
de tness es 2.325.
4
Ejemplo presentado por Colin E. Reeves [24]
106 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Num. Individuos x f(x)

f F(x)
1 10011 19 2.399 0,2063 0,2063
2 00101 5 3.225 0,2774 0,4838
3 11010 26 516 0,0444 0,5282
4 10101 21 1.801 0,1549 0,6831
5 01110 21 3.684 0,3169 1,0
Cuadro 2.6: Poblacin inicial: polinomio cbico
Ahora corresponde la seleccin de los individuos a reproducir.
En el cuadro (2.7) se presentan los resultados luego de aplicar un
proceso de generacin de nmeros aleatorios para seleccionar los
padres que se van a cruzar. Se establece un punto de cruce y no se
aplican mutaciones.
Padre 1 Padre 2 Pto. cruce Hijo f(x)
1 2 4 10011 2.399
5 3 2 01010 4.100
5 2 3 01101 3.857
4 2 1 10101 1.801
2 5 4 00100 2.804
Cuadro 2.7: Cruce y obtencin de nuevos individuos
En este ejemplo al hacer el cruce, importa el orden de seleccin
de los padres, se toma como base el primer padre y a partir del
punto de cruce, se copian los genes del segundo padre, para formar
un nico nuevo individuo. En esta nueva generacin se obtuvo un
promedio de tness de 2.992, lo cual indica que han mejorado los
individuos, y por lo tanto la solucin al problema. Se podra tomar
como criterio de parada que el valor absoluto de la mejor evaluacin
2.4. ALGORITMOS GENTICOS 107
actual menos la mejor evaluacin de la generacin anterior sea
mayor que un valor jo , o un nmero mximo de generaciones,
as como la combinacin de ambos criterios. Es importante observar
que no siempre el cruce de dos soluciones buenas conduce a obtener
una solucin mejor o tan buena como las que se cruzan.
De nuevo, calculamos la distribucin de probabilidades, ver el
cuadro (2.8).
Individuos x f(x)

f F(x)
10011 19 2399 0,1604 0,1604
01010 10 4100 0,2741 0,2741
01101 13 3857 0,2578 0,2578
10101 21 1801 0,1204 0,1204
00100 4 2804 0,1874 1,0
Cuadro 2.8: Nueva poblacin, evaluacin y distribucin de probabilidad
Para la seleccin de los nuevos padres, se generan nmeros aleato-
rios, as como los puntos de cruce y se aplica el Mtodo de la ruleta,
la nueva seleccin es la siguiente, ver cuadro (2.9).
Padre 1 Padre 2 Pto. cruce Hijo f(x)
3 5 3 01100 3988
2 3 4 01011 4071
5 4 1 00101 3225
4 5 2 10100 2100
2 1 4 01011 2804
Cuadro 2.9: Cruce y obtencin de nuevos individuos
Se puede vericar que el promedio redondeado de tness de la
108 CAPTULO 2. ALGORITMOS EVOLUTIVOS
nueva poblacin es de 3.238, lo cual indica que ha mejorado el
desempeo de la poblacin. Se contina aplicando el mismo pro-
cedimiento hasta cumplir algn criterio de parada, al nal del cual
se obtendr el valor mximo de f(x).
2.4.4. Representacin de nmeros reales en los AG
Cuando se intenta resolver un problema de optimizacin emple-
ando algoritmos genticos, se debe elegir una representacin bi-
naria acorde con la precisin requerida. Sea el siguiente problema
de optimizacin, en donde se quiere maximizar la funcin f en el
dominio dado:
f(x) = x
2
10cos(2x)
x [1, 2]
La longitud del vector que representar los valores de x depende
de la precisin requerida. Supongamos que en este ejemplo se nece-
sitan obtener valores de x en [1, 2], con 6 dgitos de precisin, de-
spus del punto decimal. Como el intervalo tiene una longitud de
3 unidades, debe dividirse en al menos 3 10
6
= 3000000 rangos de
igual tamao. Para representar un nmero de esta magnitud, se
requiere emplear vectores binarios de 22 bits, por lo cual:
2097152 = 2
21
< 3 10
6
< 2
22
= 4194304
De manera que para representar nmeros en el intervalo dado,
con 6 dgitos de precisin se debe denir una aplicacin desde una
2.4. ALGORITMOS GENTICOS 109
cadena de dgitos binarios de la forma b
21
b
20
. . . b
0
) hasta un nmero
real x en el rango [1, 2]
Esta transformacin se lleva a cabo a travs de dos pasos:
1. Convertir la cadena binaria b
21
b
20
. . . b
0
) de la base 2 a la base
10
(b
21
b
20
. . . b
0
))
2
=
_
21

i=0
b
i
2
i
_
10
= x

2. Hallar el correspondiente nmero real x:


x = 1 +x

.
3
2
22
1
donde 1 es el extremo izquierdo del intervalo y 3 es la longitud
del dominio.
En la gura (2.15) se representa la transformacin, que denom-
inamos T. La cadena 0000000000000000000000 corresponde al
valor 1 y la cadena 1111111111111111111111 al valor 2. Estos
valores corresponden a los extremos del intervalo.
Figura 2.15: Se dene una funcin que transforma las cadenas de 22 bits en nmeros en
el intervalo [1, 2]
Por ejemplo, para saber cul es el valor decimal correspondi-
110 CAPTULO 2. ALGORITMOS EVOLUTIVOS
ente a la siguiente cadena binaria: 1011101110111101000000, se
convierte a decimal, obteniendo:
x

= (1011101110111101000000)
2
= (3075904)
10
Luego, para determinar a cul nmero corresponde en el inter-
valo [1, 2], se aplica la transformacin:
x

= 1 + 3075904.
3
4194303
= 1, 200058508
Por lo tanto el nmero correspondiente en el intervalo es:1, 200058508
Sobre los operadores genticos: Cruce y mutacin: Entre los
parmetros que se dan en un problema en donde se plantea aplicar
el Algoritmo Gentico, estn la probabilidad de cruce, denotada
por p
c
y la probabilidad de mutacin. La probabilidad de cruce
representa el nmero esperado de cromosomas que participarn en
el cruce. El procedimiento que usualmente se emplea es el siguiente:
Algoritmo 2.4 Procedimiento general de Cruce
1: Para cada cromosoma hacer
2: Generar un nmero aleatorio r en [0, 1]
3: si (r < P
c
) entonces
4: Seleccionar el cromosoma para el cruce
5: Fin si
6: Fin Para
La probabilidad de cruce representa el nmero de bits que sern
mutados. Cada bit ( gen) dentro de cada cromosoma tiene igual
2.4. ALGORITMOS GENTICOS 111
probabilidad de mutar. El procedimiento a aplicar es el siguiente:
Algoritmo 2.5 Procedimiento general de Mutacin
1: Para cada cromosoma hacer
2: Generar un nmero aleatorio r en [0, 1]
3: si (r < P
m
) entonces
4: Mutar el gen
5: Fin si
6: Fin Para
Conclusiones: El AG, como otros algoritmos evolutivos, opera
como una caja negra, es decir a partir de una poblacin inicial,
empleando la funcin de evaluacin y los operadores de seleccin,
cruce y mutacin obtiene soluciones. Estas soluciones a travs de
cada corrida del algoritmo, debido al carcter estocstico del mis-
mo podran ser diferentes (en algunos casos ptimas y en otros
subptimas). Los AG son de fcil implementacin. En resumen,
representan una excelente alternativa de resolucin, por la sim-
pleza de su diseo e interpretacin y por sus resultados.
112 CAPTULO 2. ALGORITMOS EVOLUTIVOS
2.5. Ejercicios
1. Implemente una funcin o procedimiento en un lenguaje de
programacin que realice un cruce en dos puntos, dados dos
individuos X e Y( vectores de ceros y unos).
2. Implemente un algoritmo que permita resolver el problema
(1.0.2). Utilice como criterio de parada un nmero mximo
de generaciones, por ejemplo 100. Vare el nmero mximo de
generaciones y compare los resultados.
3. Dado un nmero entero n expresado en notacin decimal y sea
a
m
a
m1
. . . a
0
su representacin binaria, tal que a
i
es igual a 0
1, entonces n se representa de la siguiente manera:
n
10
= a
m
2
m
+ a
m1
2
m1
+ . . . + a
1
2
1
+ a
0
2
0
Verique que la siguiente expresin es correcta:
n
10
= (((. . . (((a
m
2 + a
m1
)2 +a
m2
)2 +a
m3
) . . .)2 + a
1
)2 + a
0
)
La evaluacin de esta expresin proporciona un mtodo de
conversin computacionalmente eciente, en contraste con la
primera.
4. Disee un algoritmo que convierta nmeros decimales en bi-
narios(cadenas de bits).
2.5. EJERCICIOS 113
5. Emplee la expresin del ejercicio anterior para representar el
entero n = 195
114 CAPTULO 2. ALGORITMOS EVOLUTIVOS
2.6. Ejercicios de Autoevaluacin
1. Explique qu es un genotipo y qu es un fenotipo en un AG.
2. Implemente el mtodo anidado de conversin de binario a dec-
imal descrito en el ejercicio 3 de la seccin (2.5), para ello
elabore un procedimiento o funcin que efecte la conversin.
3. Sea el problema:
Minimizar f(x
1
, x
2
) = x
2
1
+ x
2
1023 x
i
1023, x
i
entero
Figura 2.16: funcin a minimizar: f(x
1
, x
2
) = x
2
1
+ x
2
. (http://www.obitko.com/tutorials/genetic-
algorithms/example-3d-function.php)
Realice lo siguiente:
a) Determine el nmero de bits requerido para representar a
los individuos, empleando cadenas de ceros y unos.
b) Disee el esquema de un algoritmo gentico, para resolver
este problema.
2.7. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 115
2.7. Respuestas a Ejercicios de Autoevaluacin
Seccin (2.4.2)
1. El nmero (19)
10
en binario es: (10011)
2
. Por lo tanto, se re-
quieren 5 dgitos binarios para representarlos. El mximo nmero
binario representable con 5 dgitos es (11111)
2
= (32)
10
.
2. La tabla est en el cuadro (2.10)
Individuos x
10
f(x) = x
2
01101 13 169
00110 10 100
01000 8 64
11000 24 576
Cuadro 2.10: Poblacin inicial, x
10
representa el nmero en notacin decimal
3. El esquema de representacin de nmeros impares es:
1. Todo nmero binario que termine en 1 es impar.
4. Como en este caso hay elementos jos en el vector, slo se
deben generar los dgitos para las posiciones representadas por
asteriscos. Como se trata de 3 posiciones, corresponde a gener-
ar 2
3
combinaciones, que van desde 000 hasta 111. Cada uno de
estos dgitos se sustituyen por los asteriscos en la cadena, de
est manera se obtienen 8 individuos diferentes.
5. En este problema se consideran vectores de 10 caracteres. Se
toma como base el primer vector y a partir del punto de corte,
116 CAPTULO 2. ALGORITMOS EVOLUTIVOS
se copian los caracteres restantes del segundo vector. A contin-
uacin se presentan las funciones implementadas en Lenguaje
C++:
2.7. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 117
Funcin: Generacin de un cromosoma (implementada en
Lenguaje C)
void GenerarCromosoma(unsigned char A[ ]) {
int i;
double r;
randomize();
for (i = 0; i < N; i + +) {
r = (double) (rand()/((double)RAND_MAX));
if (r < 0,5) A[i] =

;
else A[i] =

; }
}
En este cdigo, la funcin rand es una funcin que permite la
generacin de nmeros seudo-aleatorios, en un rango entre 0 y
RAND_MAX, mximo valor obtenible a travs de la funcin
rand.
En la siguiente funcin se hace el cruce de dos individuos, el
punto de corte es el entero c.
118 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Funcin: Cruce de dos individuos (implementada en Lenguaje
C)
void Cruce( unsigned char A[ ], unsigned char B[ ], unsigned char
C[ ],int c) {
int i;
for (i = 0; i < c; i + +)
C[i] = A[i];
for (i = c; i < N; i + +)
C[i] = B[i];
return; }
La siguiente funcin implementa una mutacin al azar:
Funcin: Mutacin (implementada en Lenguaje C)
void Mutacion(unsigned char A[ ]) {
int i;
randomize( );
i = random(N);
if (A[i] = 0) A[i] =

;
else A[i] =

;
}
2.7. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 119
El programa principal es el siguiente:
int main ( ){
unsigned char X[N], Y[N], Z[N];
GenerarCromosoma(X);
GenerarCromosoma(Y);
Cruce(X, Y, Z, 4);
Mutacion(Z);
return 0;
}
120 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Respuestas a Ejercicios de Autoevaluacin
Seccin (2.6)
1. Genotipo es la representacin interna del individuo, por ejem-
plo v = 11101 y el fenotipo es la representacin fsica del
mismo, por ejemplo x = 29.
2. La funcin de conversin es:
void ConvertirDecimal(int v[ ], int&x ) {
int i;
int acum;
acum = 0;
for (i = N 1; i > 0; i ) {
acum = (acum + v[i]) 2;
}
acum+ = v[0];
x = acum;
return; }
3. Problema de minimizacin: f(x
1
, x
2
) = x
2
1
+ x
2
, 1023 x
i

1023, x
i
entero
a) Emplearemos la notacin binaria para representar a los in-
dividuos. Cada individuo tiene dos componentes: x
1
y x
2
.
2.7. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 121
Como el espacio de bsqueda es: 1023 x
i
1023, para
representar el mayor nmero 1023, se requieren 10 bits, pero
se debe agregar un bit de signo(el ms izquierdo). La rep-
resentacin ms sencilla es la conocida como codicacin
binaria en magnitud y signo
5
. Esta consiste en apartar el
bit ms izquierdo para el signo y emplear los bits restantes
para la representacin de la magnitud del nmero. Por lo
tanto, para representar nmeros negativos y positivos en
ese rango, se requieren 11 bits. Recordamos que un nmero
entero binario de N dgitos binarios se convierte a decimal
m de la siguiente forma:
m =
N1

j=0
s
j
2
j
En la gura (2.17) se muestra un ejemplo de representacin.
El bit ms izquierdo contiene el signo (0 para los positivos
y 1 para los negativos).
b) Se sugiere el siguiente algoritmo para resolver este proble-
ma:
Iniciar valores: Individuos de 10 cromosomas ms el sig-
no; Generacin = 10;
Crear Poblacin al azar
Mientras no se cumpla la condicin de parada, hacer:
5
Existen otras ms idneas para la implementacin de operaciones aritmticas internamente, como
son: complemento a uno y complemento a dos
122 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.17: a) Nmero 164, b) -164
Evaluar adaptacin (tness)
Hallar el mejor individuo
Seleccionar n padres, utilizando el Mtodo de la Rule-
ta
Cruzar individuos: Usar m < 10 de los individuos se-
leccionados
Fin Mientras
Se cruza cada par de padres obtenidos por seleccin, en forma
consecutiva. El tipo de cruce es de un solo punto, elegido al
azar. Como resultado se obtienen dos individuos.
Ampliacin de Conocimientos
Investigue en qu consiste la Evolucin Diferencial (en ingls Dif-
ferential Evolution, DE). Cul es la analoga entre esta tcnica de
optimizacin y el Algoritmo Gentico?
2.8. ESTRATEGIAS EVOLUTIVAS 123
2.8. Estrategias Evolutivas
Las Estrategias Evolutivas (ES,Evolutive Strategies), fueron desar-
rolladas como mtodos para la optimizacin numrica, slo recien-
temente se estn aplicando en optimizacin discreta. Los algorit-
mos genticos y las estrategias evolutivas mantienen poblaciones
de soluciones potenciales y emplean el principio de seleccin so-
bre la base de la sobre-vivencia de los mejor adaptados. Como lo
hemos expresado anteriormente los GA emplean vectores binarios
y las ES emplean vectores de punto otante.
Cuando se emplean estrategias evolutivas, no hay diferencia en-
tre el genotipo y el fenotipo, cada individuo se representa como
un vector de valores reales. En los comienzos se cre con una sola
operacin: mutacin de valores de los parmetros del padre. Este
tipo de estrategia se conoce como (1 + 1)-ES. Se crea un individuo
al azar y se le aplica una mutacin. La mutacin se lleva a cabo
independientemente en cada elemento del vector, agregando una
variable aleatoria con distribucin Normal, con media igual a cero
y desviacin estndar pre-seleccionada. Al generarse este nuevo
individuo, se evala y si obtiene mejor tness que el original, ste
sustituye al primero.
La idea fundamental, no presente en los Algoritmos Genticos,
consiste en representar a cada individuo como un par de vectores
v = (x, ), donde el primer vector representa un punto en el espacio
de bsqueda y el segundo vector , es un vector de desviaciones
124 CAPTULO 2. ALGORITMOS EVOLUTIVOS
estndares. La mutacin se realiza reemplazando a x
t
por:
x
t+1
= x
t
+ N(0,
2
)
en donde N(0,
2
) es un vector de nmeros "gaussianos, con me-
dia cero y desviacin estndar
2
. Esta mutacin se hace conforme
ocurre en biologa, en donde cambios pequeos ocurren ms fre-
cuentemente que cambios grandes.
Al emplear la distribucin de Gauss o Normal (N(0, 1)), la de-
scendencia ser semejante a los padres, ya que esta distribucin
seleccionada tiene media 0 y desviacin estndar igual a 1. La dis-
tribucin de Gauss tiene la ventaja de permitir la obtencin de
nuevas soluciones.
Figura 2.18: Funcin Normal. Fuente: Eiben, A. E., Smith, J.E.[13]
Estrategias (+1): Se parte de una poblacin inicial de > 1 in-
dividuos. Se seleccionan al azar dos individuos de la poblacin y se
2.8. ESTRATEGIAS EVOLUTIVAS 125
genera un descendiente (generalmente a partir de recombinacin).
Se aplica el operador de seleccin para eliminar el peor de los +1
individuos de la poblacin y se continua hasta satisfacer la condi-
cin de terminacin. En la gura (2.19) se muestran las estrategias
evolutivas descritas.
Figura 2.19: Estrategias Evolutivas (1 + 1) y ( + 1)
Ejemplo
Sea la funcin:
6
f(x
1
, x
2
) = 21, 5 + x
1
sen(4x
1
) + x
2
sen(20x
2
)
donde o: 3, 0 x
1
12, 1 y 4, 1 x
2
5, 8
Los individuos son puntos (x
1
, x
2
), en el espacio de bsqueda o. Sea
x
t
un individuo de este espacio, al cual se le asocia = (
1
,
2
), de
la siguiente manera:
(x, ) = ((5,3, 4,9), (1, 1))
6
Ejemplo tomado de Michalewicz [19]
126 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Resultando la mutacin de este individuo:
x
t+1
1
= x
t
1
+ N(0, 1) = 5, 3 + 0, 4 = 5, 7
x
t+1
2
= x
t
2
+ N(0, 1) = 4, 9 0, 3 = 4, 6
en donde 0, 4 y 0, 3 son nmeros obtenidos al azar, empleando
la distribucin Normal con media 0 y desviacin 1. Como f(x
t
) =
f(5, 3, 4, 9) = 18, 383705 < 24, 849532 = f(5,7, 4,6) = f(x
t+1
) Por lo
tanto el hijo reemplazar a su padre.
Se aplica el operador de seleccin para eliminar el peor de los
+ 1 individuos de la poblacin y se prosigue hasta satisfacer la
condicin de terminacin. Se mantiene siempre una poblacin de
individuos.
Estrategias (+): Esta estrategia es una modicacin de la es-
trategia ( +1). Se parte de una poblacin inicial de > individ-
uos. Se generan individuos a partir de los individuos iniciales,
empleando recombinacin. Los individuos nuevos son mutados.
Se aplica un operador de seleccin para eliminar los peores indi-
viduos de los + de la poblacin y se continua hasta satisfacer la
condicin de terminacin.
Estrategias Evolutivas (, ): Es una modicacin de la estrate-
gia (+). Se parte de una poblacin inicial de > individuos. Se
generan individuos a partir de los individuos iniciales, emplean-
do recombinacin. Los individuos nuevos son mutados. Se aplica
un operador de seleccin para eliminar los peores individuos,
2.8. ESTRATEGIAS EVOLUTIVAS 127
hasta quedar con individuos. El proceso contina hasta satisfac-
er la condicin de terminacin. En la gura (2.20) se ilustran las
estrategias ( + ) y (, ).
Figura 2.20: Estrategias Evolutivas ( + ) y (, )
Ejemplo
Sea la funcin a maximizar
f(x, y) = x
2
y
2
+ 4
en [0, 10]
2
.
El grco de la funcin se muestra en la gura (2.21).
128 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.21: Funcin f(x, y) = x
2
y
2
+ 4
Se desea aplicar la estrategia evolutiva (, ) para optimizar esta
funcin, en donde = 6 y = 3. Primero se generan los valores de
x y y en [0, 10] empleando nmeros aleatorios. Para este ejemplo se
obtuvieron los 6 individuos mostrados en el cuadro (2.11)
Individuos x y f (x)
1 4,45 7,56 -72,96
2 6,68 5,23 -69,32
3 2,17 1,98 -4,63
4 0,5 1,39 1,82
5 3,04 0,08 -5,25
6 4,53 7,21 -68,51
Cuadro 2.11: Individuos y su evaluacin
Se aplica la recombinacin de los 6 individuos, para obtener 3
2.8. ESTRATEGIAS EVOLUTIVAS 129
individuos. Para realizar el cruce se emple la recombinacin plana:
z
i
= x
i
+ (1 )y
i
, con (0, 1)
para ello se obtuvieron nmeros aleatorios en (0, 1), los cuales repre-
sentan los valores de . En el cuadro (2.12) se presentan los nuevos
individuos obtenidos.
Individuos Nuevo x Nuevo y
1 y 2 0,33 6,01 5,99
3 y 4 0,54 1,40 1,70
5 y 6 0,15 4,31 6,14
Cuadro 2.12: La recombinacin genera = 3 nuevos individuos (x, y)
Ahora, se realiza la mutacin de estos individuos obtenidos, em-
pleando nmeros con distribucin Normal y las siguientes rela-
ciones:
x
t+1
= x
t
+ N(0, 1)
y
t+1
= y
t
+ N(0, 1)
En estas relaciones N(0, 1) representa una variable distribuida
normalmente, con media 0 y desviacin estndar 1. Los valores a
obtener, con esta distribucin se corresponden con los z normales
asociados a una probabilidad. Los resultados de las mutaciones se
presentan en el cuadro (2.13). Los nmeros aleatorios permiten
hallar los nuevos valores de x y y con distribucin Normal, de
acuerdo a las ecuaciones anteriores.
130 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Nuevox Nuevoy NA
1
NA
2
x y f (x, y)
6,01 5,99 0,01 0,32 3,69 5,53 -40,17
1,40 1,70 0,65 0,08 1,79 0,31 0,71
4,31 6,14 0,09 0,32 2,97 5,67 -36,98
Cuadro 2.13: Mutacin de los individuos empleando la distribucin Normal
Hasta ahora se cuenta con + = 6 +3 = 9 individuos. Se elimi-
narn los = 3 peores individuos. Los mejores individuos estn en
el cuadro (2.14).
Individuos x y f (x)
1 2,17 1,98 -4,63
2 0,5 1,39 1,82
3 3,04 0,08 -5,25
4 3,69 5,53 -40,17
5 1,79 0,31 0,71
6 2,97 5,67 -36,98
Cuadro 2.14: Nueva poblacin de individuos
El proceso iterativo contina hasta que se cumpla algn criterio
de parada.
2.8. ESTRATEGIAS EVOLUTIVAS 131
Resumen de las Estrategias Evolutivas :
: Nmero de individuos de la poblacin. individuos adi-
cionales
(1 + 1) ES es una estrategia evolutiva de dos miembros
( + 1), ( + ) y (, ) son estrategias evolutivas de mltiples
miembros.
En la actualidad se estn explorando nuevas estrategias evoluti-
vas que combinan las estrategias anteriores.
A continuacin se esboza el algoritmo general de Estrategias
Evolutivas. Como se trata de un algoritmo general, no se especica
el tipo de estrategias a considerar.
Algoritmo 2.6 general de Estrategias Evolutivas
1: Inicial variables
2: t 0
3: Evaluar f( x)
4: Mientras (t Gmax) hacer
5: Iniciar semilla de nmeros aleatorios
6: x

i
= x
i
+
2
(t).N
i
(0, 1) i N {Mutar el vector x
i
}
7: Evaluar f( x

i
)
8: Comparar x con x

i
y seleccionar el mejor
9: Fin Mientras
Gmax: nmero mximo de iteraciones, N: nmero de elementos
de la poblacin.
132 CAPTULO 2. ALGORITMOS EVOLUTIVOS
En el siguiente ejemplo se emplean estrategias evolutivas para
un caso de combinatoria.
Ejemplo
Sea el problema del agente viajero, dado el conjunto de ciudades,
conexiones y distancias entre las mismas, mostradas en la gura
(2.22). Se quiere hallar la ruta mnima que debe recorrer el agente,
de manera que visite todas las ciudades, regresando a punto desde
donde parti, empleando la estrategia evolutiva (+1). Primero que
Figura 2.22: Conjunto de ciudades y conexiones
todo debemos representar los individuos que forman la poblacin.
Supongamos que = 5, por razones de simplicidad. Cada solucin
es una permutacin de las letras A. . . J, siempre que sean factibles.
En la gura (2.23), se muestran 5 soluciones factibles y su tness.
La funcin de tness se calcula como la suma de longitudes de los
arcos que forman la ruta. Por ejemplo, en el primer individuo,
2.8. ESTRATEGIAS EVOLUTIVAS 133
f(x) = 7 + 7 + 2 + 11 + 9 + 5 + 4 + 3 + 15 + 8 = 71.
Figura 2.23: Poblacin de 5 individuos y su tness
Emplearemos la estrategia evolutiva ( + 1) modicada, ya que
si hacemos cruces tpicos entre individuos es posible obtener ciu-
dades repetidas en cada ruta, lo cual no conducira a una solucin.
Por lo tanto, en vez de seleccionar dos padres para el cruce, slo
seleccionaremos un individuo al azar, luego generaremos dos pun-
tos al azar dentro del cromosoma, eliminamos el alelo marcado por
la primera echa, desplazamos todos los alelos hasta donde indica
la segunda echa y en este punto insertamos el alelo eliminado. De
esta manera resulta una nueva permutacin, ver gura (2.24). El
valor de tness de este nuevo individuo es 83. Por lo tanto, susti-
tuir al segundo individuo cuya funcin de evaluacin es la mayor
de todas. La poblacin de individuos resultante se muestra en la
134 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.24: Desplazamiento y colocacin en el extremo
gura (2.25). El proceso de seleccin y cruce contina. Se trata de
un proceso iterativo, el cual se repetir cierto nmero de veces o
empleando otro criterio de parada.
Figura 2.25: Nueva poblacin
2.8. ESTRATEGIAS EVOLUTIVAS 135
Ejercicios
1. Investigue otras diferencias entre los Algoritmos Genticos y
las Estrategias Evolutivas.
2. Elabore otras estrategias evolutivas.
136 CAPTULO 2. ALGORITMOS EVOLUTIVOS
2.9. Programacin Gentica
La Programacin Gentica(GP,Genetic Programming) es una tc-
nica desarrollada por John Koza, a nales de la dcada de los
ochenta, bajo la necesidad de crear la generacin automtica de
programas, en situaciones en donde las bsquedas eran complejas
debido a que contaban con dominios muy grandes. Se cre una
estructura de rbol, bajo ciertas restricciones, en LISP
7
. El ejem-
plo creado por Koza fue un evaluador de expresiones aritmticas
primitivo que evolucionaba y produca programas simples. Esta
tcnica implement un operador de cruce el cual intercambiaba
ramas de sub-rboles. A comienzos de la dcada de 1990, Thomas
S. Ray dise un programa simulador denominado Tierra,que se
auto-copiaba y generaba nuevos segmentos de cdigos. Este ejem-
plo result una propuesta interesante en esta rea evolutiva que
simul un ecosistema. Algunos investigadores consideran la GP co-
mo una forma especializada de los algoritmos genticos.
En la Programacin Gentica se mantiene una poblacin de in-
dividuos o programas, compuestos de funciones y terminales, segn
sea el problema. Un conjunto de terminales consiste en: a)entradas
externas al programa, las cuales toman las formas de variables, por
ejemplo x e y, b) funciones sin argumentos como rand, para obten-
er nmeros aleatorios. c) constantes. El conjunto de funciones con-
7
Lenguaje intrprete de expresiones lgicas, que opera con estructuras de listas, muy empleado en
Inteligencia Articial
2.9. PROGRAMACIN GENTICA 137
siste de operadores aritmticos, funciones matemticas como las
trigonomtricas y logartmicas, operadores lgicos y de lazos. Los
individuos son obtenidos al azar. Luego, a travs de evaluaciones
y operaciones genticas se obtiene la nueva poblacin, de manera
semejante como ocurre con los otros tipos de algoritmos evolutivos.
La diferencia con respecto a los GA radica en que en PG no se
hace distincin entre el espacio de bsqueda y el espacio de solu-
ciones. Adems los genotipos son los mismos fenotipos, es decir no
hay una codicacin de los individuos. Por otra parte, en la PG las
soluciones se representan de manera jerrquica, ver gura (2.26).
En esta gura se representa un individuo o la expresin aritmti-
ca: x + [x[ y. Este individuo consta de una raz. Todos los nodos
internos, incluyendo la raiz corresponden a funciones(operaciones)
y los nodos externos (hojas del rbol o nodos extremos) que cor-
responden a terminales (datos de entrada).
La funcin de tness como en otros algoritmos evolutivos es un
valor real, el cual se obtiene al medir un individuo. Existen difer-
entes maneras de denir esta funcin, en algunos casos puede ser
la medicin del error entre la salida deseada y la obtenida, en otros
casos puede ser probabilista.
138 CAPTULO 2. ALGORITMOS EVOLUTIVOS
En la PG el principio de Seleccin Natural funciona de la
siguiente manera: los individuos ( programas) dbiles mueren
mientras que los fuertes se reproducen.
Figura 2.26: Representacin jerrquica de una solucin
Veamos un ejemplo sencillo, en donde los individuos se repre-
sentan como rboles:
2.9. PROGRAMACIN GENTICA 139
Ejemplo
Sean los individuos o cromosomas: A + B/C y A/B + C,
8
estos
son expresiones aritmticas representadas en rboles binarios, en
donde el smbolo indica la negacin de A. Al hacer el cruce, en
este caso para generar dos hijos se obtienen los descendientes que
se muestran en la gura (2.27). Si se usa un cruce simple, y el
punto de cruce se genera al azar, como se muestra en esta gura,
resultarn los dos hijos, ver gura (2.28)
Figura 2.27: Seleccin de dos padres, el punto de cruce se representa con un segmento de
linea gruesa
Los hijos son: El cruce se puede hacer para intercambiar ramas
de los rboles al azar, sin que la sintaxis se rompa. En PG el op-
erador de mutacin se emplea de manera diferente. Este operador
selecciona un punto al azar y borra todo lo que est bajo l, reem-
plazndolo con una rama obtenida al azar. Por ejemplo, si el hijo 2
obtenido en el cruce, es mutado en el primer nodo de la izquierda
se obtiene un nuevo individuo, ver la gura (2.29). El sub-rbol
8
Ejemplo presentado por Peter Bentley [3]
140 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.28: Descendientes que resultaron del cruce
conectado en el punto de mutacin es tambin generado al azar.
Figura 2.29: Mutacin en primer nodo izquierdo
2.9.1. Elementos de la PG para resolver problemas
En Programacin Gentica hay 5 puntos a cumplir para preparar
el programa gentico, cuyo n es el de resolver algn problema
particular, los cuales son:
2.9. PROGRAMACIN GENTICA 141
1. Determinar el conjunto de terminales.
2. Determinar el conjunto de funciones primitivas.
3. Denir la funcin de evaluacin.
4. Seleccionar los parmetros que controlan la corrida del pro-
grama.
5. Seleccionar la condicin de terminacin.
Existen algunos operadores avanzados que se emplean en PG,
tales como: Permutacin, el cual intercambia dos caracteres en un
rbol, Edicin, el cual reduce las expresiones muy largas, obtenien-
do expresiones ptimas y Encapsulacin, el cual convierte un sub-
rbol en un nodo simple, preservndolo de una alteracin cuando
se aplica un cruce o una mutacin.
Una manera de emplear este operador es la evolucin de fun-
ciones automticamente denidas ( ADF: Automatically Dened Func-
tions). El sistema hace evolucionar un nmero predeterminado de
funciones adicionales al programa principal. Cada funcin puede
ser llamada en el programa. Estas funciones se implementan como
subrutinas, permitiendo el uso mltiple del cdigo, sin necesidad de
evolucionarlo cada vez que se llame y de esta forma, minimizando
el peligro de alteracin por cruce o mutacin. En la gura (2.30)
se muestra el empleo de ADS.
142 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.30: rbol con ADS, en el sub-rbol derecho se efectan llamadas a funciones
Todos los individuos generados en la poblacin inicial son sin-
tcticamente vlidos y luego de actuar los operadores genticos, los
individuos obtenidos son igualmente sintcticamente correctos.
2.9.2. Algoritmo
El lazo generacional de la ejecucin de PG consiste en: funcin
de tness, seleccin natural y operaciones genticas. En la Figura
(2.31) se presenta un diagrama de ujo del algoritmo. En el mismo,
corr. denota corrida, gen. denota generacin, P
r
representa al oper-
ador de reproduccin, P
c
al operador de cruce, P
m
al operador de
mutacin y P
a
, al operador de alteracin por probabilidad. Es im-
portante aclarar que se hace distincin del operador reproduccin,
el cual copia al individuo. Este operador no se emplea normalmente
en los Algoritmos Genticos ni en las Estrategias Evolutivas.
2.9. PROGRAMACIN GENTICA 143
Figura 2.31: Diagrama de ujo del algoritmo de PG, fuente: John Koza ??
El lenguaje LISP tiene una estructura muy adecuada para op-
erar con PG. No obstante se pueden emplear otros lenguajes de
programacin
A continuacin de presentan dos ejemplos,
9
en los cuales se aplica
la PG.
9
Ejemplos presentados por John Koza[16]
144 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Ejemplo
Se tienen dos programas,los cuales corresponden a expresiones ar-
itmticas, ver gura (2.32). Estos programas han sido seleccionados
empleando algn operador gentico. Al hacer el cruce, se pretende
crear dos nuevos individuos.
Figura 2.32: Dos programas padres
El proceso de cruce ocasiona el intercambio de subrutinas, pro-
cedimientos y funciones entre los dos padres. Estos sub-rboles a
intercambiar, escogidos al azar como se explica a continuacin, son
de diferentes tamaos y formas. El primer padre tiene 7 nodos o
puntos y el segundo padre tiene 9 puntos. En la gura (2.32), los
nmeros que estn sobre los nodos se asignaron haciendo un recor-
rido de cada rbol bajo el concepto de primero en profundidad.
Para determinar los puntos de cruce, se escoge un nmero al azar
entre 1 y 7 para el primer padre y un nmero entre 1 y 9 para el
segundo. Supongamos que se obtuvo el nmero aleatorio 2 para el
primer padre y para el segundo padre, el 5. Luego, se cruzarn los
2.9. PROGRAMACIN GENTICA 145
sub-rboles mostrados en la gura (2.33) Los fragmentos restantes
de los rboles se muestran en la gura (2.34).
Figura 2.33: Fragmentos de cruce
Figura 2.34: Restos de ambos rboles
El primer descendiente es creado insertando el fragmento del
segundo padre en el del primer padre en el punto de cruce y el
segundo descendiente es creado insertando el primer fragmento de
cruce en el resto del segundo padre. En la gura (2.35) se presentan
los dos descendientes, productos del cruce. Es importante destacar
que para aplicar completamente el proceso de GP, se debe crear
una poblacin inicial de M programas genticos. Se recomienda
crear una poblaciones sucientemente grandes, lo cual slo es posi-
ble hacer a travs de un programa en el computador, es por ello
que slo mostramos un par de ellos.
146 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.35: Dos programas descendientes
Ejemplo
Se tienen dos cajas, en ellas consideramos 6 variables independi-
entes denotadas por: L
0
, W
0
, H
0
, L
1
, W
1
y H
1
y una variable depen-
diente denotada por D, ver gura (2.36). En el cuadro (2.15) se
presentan 10 casos de evaluaciones de ambas cajas. Se exponen los
valores de las 6 variables independientes y de la variable dependi-
ente D, cuya expresin matemtica hasta ahora no conocemos.
Figura 2.36: Las cajas tienen las dimensiones L W H
El problema consiste en construir un programa (expresin matemti-
ca, composicin de funciones primitivas y terminales), que produz-
2.9. PROGRAMACIN GENTICA 147
Casos a evaluar L
0
W
0
H
0
L
1
W
1
H
1
D
1 3 4 7 2 5 3 54
2 7 10 9 10 3 1 600
3 10 9 4 8 1 6 312
4 3 9 5 1 6 4 111
5 4 3 2 7 6 1 -18
6 3 3 1 9 5 4 -171
7 5 9 9 1 7 6 363
8 1 2 9 3 9 2 -36
9 2 6 8 2 6 10 -24
10 1 10 7 5 1 45 -155
Cuadro 2.15: Problema de las cajas
ca como resultado el valor observado de la variable dependiente,
cuando recibe como entrada los valores de las variables independi-
entes. A este tipo de problema se le denomina de Regresin Sim-
blica, porque busca una expresin matemtica en forma simblica
que se ajuste a los datos de entrada. Tambin se le denomina Sis-
tema de Identicacin Simblico o problema de la Caja Negra.
En la Regresin lineal, dado un conjunto de datos, se hallan los
coecientes numricos que minimizan el error al ajustar los datos
a una expresin lineal y en la Regresin cuadrtica, se hallan los
coecientes que minimizan el error para obtener un ajuste a una
expresin cuadrtica. Si analizamos la ltima columna del cuadro
(2.15), observamos que no es posible determinar fcilmente de un
vistazo cmo se obtuvo D. La GP provee una manera de hallar la
expresin matemtica que se ajusta al ejemplo. La expresin para
148 CAPTULO 2. ALGORITMOS EVOLUTIVOS
obtener D es la siguiente:
D = W
0
H
0
L
0
W
1
H
1
L
1
Cmo resolverlo?: Lo haremos de acuerdo a los aspectos observa-
dos en (2.9.1).
Como primer paso, se debe determinar el conjunto de terminales.
En este problema los terminales son las 6 variables independientes:
T = W
0
, H
0
, L
0
, W
1
, H
1
, L
1

El segundo paso es identicar el conjunto de funciones que deben


emplearse para hallar la expresin matemtica, tales como adicin,
substraccin y otras. En este caso usamos la operacin% que cor-
responde a la divisin entera entre dos nmeros, y en el caso que el
denominador es cero, o cuando ambos nmeros son ceros, retorna
un 1. As el conjunto de funciones es:
T = +, , , %
Adems se debe crear la lista de nmero de argumentos que re-
quiere cada funcin. Recordemos que hay operadores unarios (ac-
tan sobre un slo elemento) y binarios (actan sobre dos elemen-
tos). El conjunto es el siguiente:
2, 2, 2, 2
este conjunto tiene el nmero de argumentos asociado a cada fun-
cin de T.
2.9. PROGRAMACIN GENTICA 149
El tercer paso es identicar o construir la funcin de evaluacin.
Tomaremos como funcin de tness natural
10
, en este caso la suma,
tomada sobre los 10 casos, del valor absoluto de la diferencia del
error entre el valor producido por el programa para los 6 valores
de las variables independientes y el valor correcto de la variable
dependiente D. El valor ms cercano a estas sumas es el 0. Los
aciertos al evaluar la poblacin cuentan el nmero de casos en
los cuales la diferencia o error es menor que una tolerancia. Por
ejemplo [DD
i
[ < 0, 01, en donde D es el valor real de la expresin,
que est al nal de cada la de la tabla y D
i
es el valor resultante al
evaluar la expresin aritmtica asociada al programa o individuo.
Por lo tanto, la funcin es:

10
i=1
[D D
i
[. El xito del problema es
obtener 10 aciertos, ya que hay 10 casos.
En el cuarto paso se deben seleccionar los valores de los parmet-
ros de control de las corridas de los programas. Los dos parmetros
ms importantes son: el tamao de la poblacin M y el nmero de
generaciones G. Podramos tomar M = 4.000 y G = 50.
El quinto paso consiste en determinar el criterio de terminacin,
que en este caso podra ser hasta obtener 4.000 generaciones.
Supongamos que dos individuos, pertenecientes al conjunto de
los 50 individuos o programas obtenidos al azar, en la primera
iteracin son los mostrados en la gura (2.37). Al pie de cada in-
dividuo est la correspondiente expresin aritmtica.
10
en ingls raw tness, es aquella funcin que se establece en la terminologa natural del problema
150 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.37: Dos individuos y sus correspondientes expresiones
La funcin de evaluacin, considerando que estamos probando
el caso 1, ver cuadro (2.15), es: [54 225[ = 171 para el ejemplo (a)
y [54 (5)[ = 59 para el ejemplo (b). Se observa que el valor de la
funcin de tness del segundo individuo es mejor que la correspon-
diente al primer individuo. Supongamos que se va a hacer el cruce
de ambos individuos en los puntos de cruce mostrados en la gura
(2.38).
Como resultado del cruce se obtuvieron dos nuevos individuos.
Ver las guras (2.39) y (2.40).
Los valores a la funcin objetivo son [54 194[ = 140 para el
primer descendiente y [54 26[ = 28 para el segundo descendiente.
En estas dos evaluaciones, el mejor desempeo lo tiene el segundo
descendiente y en este caso se observa ms cercana de la expresin
2.9. PROGRAMACIN GENTICA 151
Figura 2.38: Dos individuos y sus puntos de cruce
Figura 2.39: Primer descendiente de los dos individuos
aritmtica asociada a este individuo con la expresin deseada:
W
0
H
0
L
0
W
1
H
1
L
1
Este proceso debe hacerse para el conjunto de individuos selec-
cionados para el cruce y entre todos los individuos con mejor eval-
uacin resultante de la iteracin anterior. Adems debe obtenerse
el desempeo para cada caso, ver cuadro(2.15) y calcular el nmero
de aciertos.
152 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Figura 2.40: Segundo descendiente de los dos individuos
2.9.3. Ejercicios
1. Enumere las semejanzas y las diferencias entre el Algoritmo
Gentico y la Programacin Gentica.
2. Implemente un algoritmo que cree individuos al azar, represen-
tados por rboles binarios de expresiones aritmticas en forma
semejante a la empleada en el ejemplo de las dos cajas.
2.9. PROGRAMACIN GENTICA 153
Consulta en la Web
Se recomienda consultar la siguiente direccin:
http://www.genetic-programming.com.
Esta pgina es una excelente referencia sobre los conceptos,
tcnicas e investigaciones sobre la Programacin Gentica. Pre-
senta ejemplos animados que muestran la accin de los oper-
adores genticos. (Est en el idioma ingls).
Se recomienda acceder a la siguiente direccin:
http://logit42.com/archives/2354
En ella se muestra un vdeo de demostracin del juego Tetris, el
cual fue realizado con Programacin Gentica. El Tetris origi-
nalmente se present como un vdeo juego, y consta de guras
de 4 cuadros que se lanzan en una ventana rectangular. El ob-
jetivo del juego consiste en ubicar las piezas de manera ptima
en la ventana.
154 CAPTULO 2. ALGORITMOS EVOLUTIVOS
Captulo 3
Inteligencia Social
El desarrollo de sistemas sociales articiales para resolver prob-
lemas se inspira fundamentalmente en el comportamiento de las
hormigas y el de otros insectos. Cada individuo cumple su propia
agenda y sigue reglas simples. Sus acciones se basan en la interac-
cin entre los individuos y en algunos casos con el medio ambiente.
No son objeto de supervisin ni de control centralizado. Hay dos
tipos de interacciones entre los insectos en una colonia: directas e
indirectas. Las interacciones directas son de tipo visual, qumico o
de contactos tctil. Las interacciones indirectas son iniciadas por
individuos que exhiben un comportamiento que modica el medio
ambiente, el cual a su vez estimula un cambio en el comportamien-
to de otros individuos. A pesar de que estas interacciones puedan
ser simples, el enjambre puede resolver problemas difciles. Segn
Bonabeau et al [6]:
La inteligencia de enjambres ofrece una manera alternativa de
disear sistemas inteligentes, en los cuales la autonoma, el surgimien-
155
156 CAPTULO 3. INTELIGENCIA SOCIAL
to
1
y el funcionamiento distribuido reemplaza el control, la pre-
programacin y la centralizacin
En este captulo se tratan dos tipos de metaheursticas: los de
enjambres de hormigas y los de partculas, que emulan el com-
portamiento de aves, peces o bacterias. La primera se aplica en
problemas de combinatoria, la segunda se aplica comnmente en
la resolucin de problemas de optimizacin de variable continua.
En ambos casos los problemas de optimizacin se modelan como
enjambres de soluciones cuyo objetivo grupal es hallar una solu-
cin.
3.1. Algoritmos inspirados en colonias de hormigas
Las hormigas han sido objeto de atencin por parte de los seres
humanos, especialmente por su comportamiento colectivo. Es comn
ver las de hormigas organizadas, a las que al ponerle un obstcu-
lo, reaccionan buscando un desvo. Las hormigas, al igual que otros
insectos de organizacin colectiva, tienen la caracterstica de ser
auto-organizados. Se entiende por auto-organizacin, la habilidad
de algunos sistemas de generar sus propias formas, sin controles
externos. Se puede observar que los sistemas auto-organizados se
intentan re-ordenar y logran formas ms complejas. Algunas es-
pecies de hormiga han sido estudiadas porque hallan el camino
1
Esta caracterstica se reere al comportamiento emergente de los grupos sociales, en los cuales a partir
de la aplicacin de reglas simples puede surgir un comportamiento complejo, que no estaba programado
para entidades simples
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 157
ms corto en bsqueda del alimento. Los bilogos al estudiar es-
tas especies han observado que ellas depositan en el camino unas
sustancias que segregan denominadas feromonas, por lo tanto en
los lugares donde hay mayores depsitos de las mismas, signica
que han transitado ms hormigas y es donde han hallado rutas de
recorrido ms cortas.
En el ao 1992, Marco Dorigo, propuso un algoritmo de colonias
de hormiga( en ingls Ant Colony Optimization, ACO) en la Uni-
versidad Libre de Bruselas. Este algoritmo se fundamentaba en el
comportamiento de las colonias de hormigas y fue empleado con
mucho xito en la resolucin de problemas de combinatoria. An-
teriormente varios investigadores como Denebourg, Goss y otros
haban propuesto un modelo estocstico para describir la dinmi-
ca de una colonia de hormigas observada en un experimento. Las
ecuaciones que rigen este modelo fueron empleadas por Dorigo y
otros investigadores en el modelo articial de hormigas.
La capacidad auto-organizativa de las hormiga ha sido la carac-
terstica ms resaltante que ha inspirado el desarrollo de sistemas
articiales, en los cuales las hormigas son agentes que colaboran
para resolver problemas de computacin. Existen adems ciertos
tipos de aspectos dignos de estudiar en las colonias de hormigas,
que han enriquecido las creacin de estos algoritmos. Entre ellos es-
tn las conductas que adoptan en la bsqueda de comida(foraging),
la divisin del trabajo, el mantenimiento de las cras y el transporte
158 CAPTULO 3. INTELIGENCIA SOCIAL
cooperativo. Uno de los ms destacadas es la manera de inuir so-
bre el ambiente al depositar las feromonas(estimerga, en ingls
stimergy), usadas para marcar los caminos.
Los experimentos realizados con algunas especies de hormiga,
muestran como ellas mismas perciben la feromona y tienden a es-
coger de manera probabilstica los caminos marcados por grandes
concentraciones de ella.
En el siguiente experimento se muestra esta conducta. Se con-
struy una estructura en forma de doble puente con dos ramas de
igual longitud, ver gura (3.1). Se cont el porcentaje de hormigas
que iban por una u otra rama en busca de comida. Al comienzo las
hormigas eran libres de escoger una de las dos ramas. El resultado
fue que an cuando en la fase inicial la seleccin de la rama era
aleatoria, eventualmente todas las hormigas se condujeron a una
sola rama. Esto se explica porque al comienzo no hay trazas de
feromonas, por lo cual no tienen preferencias de seleccin y esco-
gen con la misma probabilidad cualquiera de las dos ramas. Luego
mientras ms hormigas transiten por una rama, mayor ser la acu-
mulacin de feromonas en ella, lo cual estimular a las hormigas a
tomarla. Finalmente las hormigas convergern hacia una sola ra-
ma. Al repetir el experimento, se concentrarn en una rama o en la
otra. Este comportamiento es un ejemplo de comunicacin a travs
del ambiente.
Para el segundo experimento se construye un doble puente pero
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 159
Figura 3.1: Las hormigas usan cualesquiera de las dos ramas.
con una rama ms corta que la otra. En la mayora de las pruebas
result que las hormigas se concentraban en la rama ms corta,
en bsqueda de alimento. Esto se explica porque la hormiga que
us el camino ms corto regres primero al nido con el alimento, y
como las hormigas tienen que tomar una decisin de cul camino
escoger, lo harn en aqul que tenga la mayor concentracin de
feromonas. Por lo tanto habr menos hormigas en el camino ms
largo y como las feromonas se evaporan con el tiempo habr menos
concentracin de ellas en esta rama.
Figura 3.2: Las hormigas se conducen por la rama ms corta
160 CAPTULO 3. INTELIGENCIA SOCIAL
3.1.1. Fundamentos
Los experimentos del doble puente mostraron que las hormigas
tienen un comportamiento que conduce a hallar el camino ms
corto. Esto lo logran aplicando reglas probabilsticas basadas en
informacin local. El modelo original considera el tiempo una vari-
able continua, pero el modelo del sistema articial considera el
tiempo como una variable discreta, adems opera con un compor-
tamiento promedio del sistema y no con la movilidad estocstica
de hormigas individuales. En cada unidad de tiempo (t = 1, 2, . . .)
suponemos que cada hormiga ubicada en un nodo i se mueve hacia
un nodo j adyacente con una probabilidad p
ij
.
En la gura (3.3) se muestran dos tipos de caminos para ir desde
un nodo 1 al 2 o viceversa, en (a) el camino ms largo para ir de
un nodo al otro es aproximadamente el doble de largo que el ms
corto. En (b) cada arco tiene aproximadamente igual longitud y
un camino largo es el formado por una secuencia de dos arcos, por
ejemplo para ir desde 1 a 2, se toma la ruta 1 3 2.
Sea p
ic
la probabilidad de que la hormiga se desplace desde el
nodo i en el tiempo t escogiendo el camino ms corto y p
il
es la
probabilidad de que escoja el camino ms largo. Al visitar el arco
cada hormiga deja una unidad de feromona en l. Entonces se tiene
la siguiente relacin:
p
ic
(t) =
[
ic
(t)]

[
ic
(t)]

+ [
il
(t)]

, p
il
(t) =
[
il
(t)]

[
ic
(t)]

+ [
il
(t)]

(3.1)
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 161
Figura 3.3: Caminos posibles. Fuente: Dorigo et al [11]
en donde
ia
(t) es la cantidad de feromona, depositada en el
camino a, partiendo desde i. Las ecuaciones que relacionan los ras-
tros de feromonas que depositan las hormigas son las siguientes:

ic
(t) =
ic
(t 1) + p
ic
(t 1) +m
i
(t 1) +p
jc
(t 1) +m
j
(t 1)
(i = 1, j = 2; i = 2, j = 1) (3.2)

il
(t) =
il
(t 1) + p
il
(t 1) +m
i
(t 1) +p
jl
(t 1) +m
j
(t 1)
(i = 1, j = 2; i = 2, j = 1) (3.3)
en donde m
i
(t) es la cantidad de hormigas situadas en el nodo i
en un tiempo t.
Estas ecuaciones describen el modelo estocstico original.
162 CAPTULO 3. INTELIGENCIA SOCIAL
3.1.2. Sistema Articial de Hormigas y el problema del agente
viajero
Nuestro inters es desarrollar un modelo basado en el sistema de
hormigas articiales para resolver problemas como el del camino
ms corto y otros de combinatoria. Cuando se habla de problemas
de combinatoria existen los estticos y los dinmicos. Los estti-
cos son aqullos cuyas caractersticas no cambian mientras se est
resolviendo el problema, el ms conocido es el del agente viajero,
tambin estn: el problema de asignacin y de la coloracin de
mapas, entre otros. Los problemas dinmicos de combinatoria son
aqullos denidos como una funcin de algunos elementos cuyo val-
or cambia de acuerdo con la dinmica subyacente del sistema, un
ejemplo de ellos son las redes de telecomunicaciones, en donde la
informacin viaja desde una fuente hacia un destino en un tiempo
dado. Trataremos el problema de combinatoria esttica, en partic-
ular el problema del agente viajero(TSP).
La representacin ms apropiada del problema del TSP es la de
un grafo. Sea un grafo no dirigido G(N, A), con N el conjunto de
[N[ nodos, los cuales representan las ciudades y un conjunto A de
arcos. Cada arco (i, j) tiene un peso asociado d
ij
el cual representa
la distancia entre dos ciudades i y j. Se requiere hallar la ruta ms
corta, tal que saliendo desde un punto de origen, el agente regrese
a ste, visitando todas las ciudades. El problema del TSP, en tr-
minos matemticos consiste en hallar el circuito Hamiltoniano
2
de
2
Un camino hamiltoniano en una sucesin de aristas adyacentes, que visita todos los vrtices del
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 163
longitud mnima.
Crearemos el sistema articial de hormigas. Cada hormiga con-
struye una solucin(o tour), desplazndose desde una ciudad a la
otra en forma iterativa. Para ello es preciso emprender ciertos
procesos: 1)actualizacin de las feromonas, lo cual implica llevar
la cuenta de los depsitos y considerar la evaporacin de stas;
2)eliminacin de lazos para evitar que las hormigas se queden en
un circuito (loop) y 3)creacin de un mecanismo para evaluar la cal-
idad de las soluciones construidas por las hormigas, ver la gura
(3.4).
Figura 3.4: Las hormigas articiales construyen soluciones
Al comienzo del proceso de bsqueda, se asigna una cantidad
grafo una sola vez. Si adems el ltimo vrtice visitado es adyacente al primero, el camino es un ciclo
hamiltoniano
164 CAPTULO 3. INTELIGENCIA SOCIAL
ja de feromona a todos los arcos del grafo(comnmente se usa

ij
= 1, (i, j) A). La probabilidad de ir desde el nodo i al nodo
adyacente j depende de la cantidad de feromona depositada en el
arco (i, j) y en todos los arcos vecinos, por lo tanto se emplear la
siguiente relacin:
p
k
ij
=
_

ij

lN
k
i

il
, si j ^
k
i
0, si j / ^
k
i
(3.4)
Los depsitos de feromonas se evaporan a travs del tiempo.
Para simular esta accin se emplea la siguiente ecuacin:

ij
(1 )
ij
+
ij
, (i, j) A (3.5)
donde (0, 1] es un parmetro. Luego de la evaporacin, la
cantidad de feromona depositada en todos los arcos est dada por
la siguiente ecuacin:

ij

ij
+
m

k=1

k
ij
(i, j) L (3.6)
donde
k
ij
es la cantidad de feromona que la hormiga k deposita
en los arcos que ha visitado y se dene de la siguiente manera:

k
ij
=
_
_
_
1
C
k
, si arco (i, j) pertenece a T
k
0, en otro caso
(3.7)
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 165
en donde C
k
es la longitud de la ruta o tour T
k
construida por
la hormiga k y es igual a la suma de las longitudes de los arcos
que pertenecen a dicha ruta. Observe que de acuerdo a la ecuacin
(3.7), mientras mejor sea la ruta, mayor cantidad de feromona ser
depositada en los arcos que forman dicha ruta. A continuacin se
presenta un esquema del algoritmo en seudolenguaje.
Esquema del algoritmo ACO para problemas de optimizacin
combinatoria
Procedimiento Metaheurstica ACO
Programacin de Actividades
Construir Soluciones Hormigas
Actualizar Feromonas
Realizar Acciones Daemon
Fin de Programacin de Actividades
Fin
El esquema de este algoritmo representa una visin de esta meta-
heurstica de muy alto nivel. El algoritmo posee tres procedimien-
tos importantes que son: 1) Construir Soluciones Hormigas, 2) Ac-
tualizar Feromonas y 3) Acciones Daemon.
El procedimiento Construir Soluciones Hormigas, controla el
funcionamiento de las hormigas en la colonia, las cuales visitan los
estados adyacentes, desplazndose hacia nodos vecinos. Como lo
hemos descrito, en estos movimientos, las hormigas emplean reglas
166 CAPTULO 3. INTELIGENCIA SOCIAL
probabilistas, depositan feromonas y utilizan informacin heursti-
ca. Las hormigas de manera progresiva van construyendo las solu-
ciones.
El procedimiento Actualizar Feromonas, decide cunto de fer-
omona depositar en los arcos que conforman la solucin construi-
da. Tambin controla la evaporacin de feromonas. Las conexiones
usadas por muchas hormigas que obtengan una buena evaluacin
probablemente sern usadas en soluciones futuras. La evaporacin
de feromonas se justica debido que a veces es conveniente olvidar
soluciones a n de evitar una convergencia muy rpida, lo cual po-
dra conducir a soluciones sub-ptimas y as explotar nuevas reas
del espacio de bsqueda.
Las Acciones Daemon son un conjunto de acciones centralizadas
facilitadas por el conocimiento global del sistema. No pueden ser
ejecutadas por hormigas simples. Una accin de este tipo puede ser
la recoleccin de la informacin global, lo cual podra contribuir a
decidir si es conveniente depositar ms feromonas.
En la gura (3.5) se presenta una manera de almacenar la infor-
macin de la colonia de hormigas articiales.
Como lo hemos expresado anteriormente, se trata de un algorit-
mo constructivo, ya que genera soluciones, agregndole ms com-
ponentes en cada iteracin hasta completar la solucin. Durante
cada iteracin m hormigas construyen una ruta ejecutando n pasos
(para n ciudades), en cada uno de los cuales se aplica una regla de
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 167
Figura 3.5: Estructura de datos para almacenar la informacin de las hormigas
transicin de estado (ver la ecuacin 3.8). La hormiga situada en
el nodo i selecciona el nodo j, aplicando esta regla, por lo cual el
arco (i, j) es incluido en la ruta, en construccin de dicha hormiga,
hasta que todas las hormigas completan su ruta.
p
k
ij
=
[
ij
]

[
ij
]

l^
k
i
[
il
]

[
il
]

si j ^
k
i
(3.8)
donde
ij
= 1/d
ij
y y son parmetros que determinan la inu-
encia relativa de los rastros de feromona y la informacin heurstica
y ^
k
i
es la vecindad factible de la hormiga k, que est en la ciudad
168 CAPTULO 3. INTELIGENCIA SOCIAL
i o conjunto de ciudades que no han sido visitadas por la hormi-
ga k y que son accesibles desde i. La probabilidad de seleccionar
una ciudad no vecina es 0. En general, la probabilidad de selec-
cionar un arco particular (i, j) aumenta con el valor de la cantidad
de feromona
ij
y con el valor de la informacin heurstica
ij
( a
menor distancia de la ciudad i hacia la j, menor es su valor). Esta
relacin se conoce como regla de transicin proporcional. El valor
de p
k
ij
puede ser diferente para dos hormigas que estn en la misma
ciudad, ya que es funcin de la solucin parcial construida por ca-
da hormiga. Los parmetros y son ajustables, dependiendo del
tipo de resultados a hallar. Si = 0 es ms probable que resulten
seleccionadas las ciudades ms cercanas. Por el contrario, si = 0,
slo se tomar en cuenta la cantidad de feromonas presentes en
la conexin. Por lo tanto, se establece una especie de negociacin
para seleccionar los valores de ambos parmetros, en la bsqueda
de la mejor solucin.
En cuanto al depsito de feromona hay diferentes versiones: en
una de ellas, mientras la hormiga construye la solucin deposita la
feromona, en otras el depsito de feromona se hace una vez con-
struida la solucin. Los arcos con mayor depsito de feromonas se
hacen ms deseables para futuras hormigas. El proceso de evapo-
racin de feromonas se hace antes de que las hormigas efecten sus
depsitos. Finalmente las hormigas mueren y el proceso contina
con nuevas hormigas.
En el cuadro (3.1), se presenta una propuesta para la estructura
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 169
que almacena la informacin sobre los rastros de feromonas, que
van depositando las hormigas. Se trata de una matriz de n
2
ele-
mentos, para un problema de n ciudades. Esta matriz es simtrica
(
ij
=
ji
) en algunos casos,a este problema se le conoce como el del
problema del viajero simtrico. Por razones obvias en la diagonal
no hay informacin de feromonas.
1 2 3 . . . j n
1 -
12

i3
. . .
1j

1n
2
21
-
23
. . .
2j

2n
3
31

32
- . . .
3j

3n
.
.
.
.
.
.
.
.
.
.
.
.
j
j1
. . . -
jn
.
.
.
.
.
.
.
.
.
.
.
.
n
n1

n2
. . . . . .
nj
. . . -
Cuadro 3.1: Matriz de Feromonas
A continuacin ofrecemos un esquema de alto nivel del algorit-
mo y del proceso de iniciacin de datos, ajustado al problema en
cuestin.
170 CAPTULO 3. INTELIGENCIA SOCIAL
Procedimiento ACO para el TSP
Iniciar Datos
Mientras ( no se cumpla condicin terminal) hacer
Construir Soluciones
Bsqueda Local
Actualizar Estadsticas
Actualizar Trazas de Feromonas
Fin mientras
Fin
Procedimiento Iniciar Datos
Leer Datos del Problema
Iniciar estructuras de Almacenamiento
Iniciar Hormigas (aleatorio)
Iniciar Parmetros
Iniciar Estadsticas
Fin
Ejemplo
3.1.3. Aplicacin del Algoritmo ACO en un problema del Agente
Viajero
Sea el siguiente problema del agente viajero, en el cual se re-
quiere hallar la ruta ms corta entre el conjunto de 9 ciudades. Es
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 171
un problema simtrico, por lo tanto el costo ( o distancia) asociado
al arco (i, j) es igual al asociado al (j, i). El problema del TSP clsi-
co relaciona cada ciudad con todas las dems, esto signica que el
grafo o modelo de representacin es completo
3
. En el Cuadro(3.2)
se presenta la matriz de distancias entre cada par de ciudades.
Mostraremos cmo se aplica el algoritmo.
A B C D E F G H I
A - 12 5 7 10 8 10 11 13
B 12 - 16 8 11 10 13 15 6
C 5 16 - 12 8 11 7 14 15
D 7 8 12 - 10 14 16 13 12
E 10 11 8 10 - 5 8 14 12
F 8 10 11 14 5 - 10 6 8
G 10 13 7 16 8 10 - 10 5
H 11 15 14 13 14 6 10 - 5
I 13 6 15 12 12 8 5 5 -
Cuadro 3.2: Tabla de distancias entre las n ciudades
Realizamos lo siguiente:
Se ejecutan procesos iniciales. Se parte de una poblacin inicial
de m = 5 hormigas, para este problema.
Cada hormiga construye una ruta de n ciudades, paso a paso;
para ello se le asigna una memoria, a n de almacenar la ruta
que va creando.
3
En la teora de grafos, un grafo es completo si todo par de vrtices distintos est conectado por un
arco
172 CAPTULO 3. INTELIGENCIA SOCIAL
En cada paso de la construccin de la ruta, se aplica la regla
de decisin probabilista, tomando en cuenta las ciudades no
visitadas, a la cantidad de feromona depositada

ij
y a la in-
formacin heurstica

ij
.
Cada hormiga ser colocada al azar en algn nodo. A efecto de
llevar a cabo este proceso de seleccin, se aplica una funcin
que de acuerdo con una distribucin uniforme le asigna un
nmero entero entre 1, . . . , n.
Todas las hormigas construyen soluciones, por lo tanto se trata
de un proceso paralelo.
Una vez terminada de construir la ruta, se lleva a cada hormiga
a la ciudad a la que fue asignada inicialmente y se calcula la
longitud de la ruta.
Se actualizan la evaporacin y los depsitos de feromonas.
Se almacena la mejor ruta hasta el momento y su costo.
Primero que todo se debe crear la matriz de feromonas, por lo
cual le asignaremos un valor de
0
= 1 a cada entrada(
ij
= 1, (i, j)).
Iniciaremos los parmetros con los siguientes valores: = 1, =
5, = 0, 5. Se lleva a cabo un proceso de seleccin para hallar las ciu-
dades en donde cada una de las 5 hormigas se ubicar inicialmente.
Se obtuvieron las siguientes ciudades: A, C, E, G e I. Seguiremos
el proceso de construccin de la solucin de la hormiga ubicada en
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 173
la ciudad A. Partiendo de la ciudad A, la hormiga tiene las posi-
bles opciones:ir a B. . . I. Los datos y resultados se presentan en el
cuadro (3.3). Cabe destacar que los valores de la columna derecha
pueden ser mayores que 1, ya que no se trata propiamente de una
funcin de probabilidad.
No.

ij
d
ij
x = [
ij
]

[
ij
]

y =

lN
k
i
[
il
]

[
il
]
x
y
B 1 12 0,000004 0,000438919 0,009156
C 1 5 0,000320 0,000123 2,602941
D 1 7 0,000059 0,000383 0,155172
E 1 10 0,000010 0,000433 0,023098
F 1 8 0,000031 0,000412 0,073996
G 1 10 0,000010 0,000433 0,023098
H 1 11 0,000006 0,000437 0,014218
I 1 13 0,000003 0,000440 0,006118
Cuadro 3.3: Informacin que posee la hormiga para tomar su decisin partiendo de A
La prxima visita de la hormiga es a la ciudad C, en este caso,
obviamente no se considera la conexin (C,A). Los datos que posee
para tomar su decisin guran en el cuadro (3.4). La mejor opcin
es seguir hacia la ciudad G.
Desde la ciudad G, la hormiga posee la informacin que se mues-
tra en el cuadro (3.5).
Continuando con el proceso de construccin de la ruta, la hormi-
ga obtiene la siguiente solucin: ACGIHFBDE, cuyo costo es 56.
Ahora se aplica el mismo procedimiento a las hormigas restantes.
Los resultados se exponen en el Cuadro (3.6). Hasta ahora la mejor
solucin es: EFHIGCADB, cuyo costo es de 48. Como se trata de la
174 CAPTULO 3. INTELIGENCIA SOCIAL
No.

ij
d
ij
x = [
ij
]

[
ij
]

y =

lN
k
i
[
il
]

[
il
]
x
y
B 1 16 0,000001 0,000103 0,009221
D 1 12 0,000004 0,000100 0,040045
E 1 8 0,000031 0,000074 0,413199
F 1 11 0,000006 0,000098 0,063253
G 1 7 0,000059 0,000045 1,325870
H 1 14 0,000002 0,000103 0,018137
I 1 15 0,000001 0,000103 0,012778
Cuadro 3.4: Informacin que posee la hormiga para tomar su decisin partiendo de C
No.

ij
d
ij
x = [
ij
]

[
ij
]

y =

lN
k
i
[
il
]

[
il
]
x
y
B 1 13 0,000003 0,000371 0,007250
D 1 16 0,000001 0,000373 0,002555
E 1 8 0,000031 0,000344 0,088805
F 1 10 0,000010 0,000364 0,027460
H 1 10 0,000010 0,000364 0,027460
I 1 5 0,000320 0,000054 5,907924
Cuadro 3.5: Informacin que posee la hormiga para tomar su decisin partiendo de G
primera iteracin, esta ruta es la mejor; por lo tanto se almacena,
as como su costo.
La actualizacin de feromonas se efecta una vez que todas las
hormigas hayan completado su ruta, ya que se trata de un proceso
paralelo. Ahora se procede a actualizar las feromonas. Para ello se
aplican las reglas (3.5),(3.6) y (3.7), donde
ij
=

m
k=1

k
ij
, y m es el
nmero de hormigas. La nueva matriz simtrica de feromonas se
expone en el cuadro (3.7). Las entradas de esta matriz que corre-
sponden a arcos no visitados en esta iteracin tienen el valor 0, 5,
de acuerdo con la ecuacin (3.5), en donde = 0, 5,
ij
=
0
= 1 y
3.1. ALGORITMOS INSPIRADOS EN COLONIAS DE HORMIGAS 175
Ciudad origen Solucin Costo
A ACGIHFBDE 56
C CADBIGEFH 50
E EFHIGCADB 48
G GIHFEACDB 56
I IACBDEFHG 54
Cuadro 3.6: Soluciones obtenidas en la primera iteracin

ij
= 0.
A B C D E F G H I
A - 0,5 0,59507 0,54083 0,51786 0,5 0,5 0,5 0,51852
B 0,5 - 0,51852 0,59507 0,5 0,51786 0,5 0,5 0,52
C 0,59507 0,51852 - 0,51786 0,5 0,5 0,53869 0,5 0,5
D 0,54083 0,59507 0,51786 - 0,53638 0,5 0,5 0,5 0,5
E 0,51786 0,5 0,5 0,53638 - 0,57721 0,52 0,5 0,5
F 0,5 0,51786 0,5 0,5 0,57721 - 0,5 0,59507 0,5
G 0,5 0,5 0,53869 0,5 0,52 0,5 - 0,51852 0,57655
H 0,5 0,5 0,5 0,5 0,5 0,59507 0,51852 - 0,55655
I 0,51852 0,52 0,5 0,5 0,5 0,5 0,57655 0,55655 -
Cuadro 3.7: Matriz de feromonas actualizada
Este proceso debe continuar hasta un nmero mximo de itera-
ciones (t
max
). En cada iteracin se seleccionan al azar un conjunto
de ciudades, en donde se ubicar una hormiga, cada una de las
cuales construir una nueva solucin, ocasionando adems cam-
bios en el ambiente. En cada iteracin se mantendr actualizada la
mejor solucin y su costo.
En el caso del problema del agente viajero se puede observar c-
mo intuitivamente se le asocia a cada hormiga la tarea de construir
176 CAPTULO 3. INTELIGENCIA SOCIAL
la solucin, lo cual signica hallar una ruta. En otro problemas de
combinatoria es posible que el modelaje de la situacin,a n de
aplicar la tcnica de resolucin de algoritmos hormigas, no sea tan
directo.
3.1.4. Aplicaciones de los algoritmos basados en colonias de hormi-
gas
Los algoritmos hormiga, como hemos dicho, se emplean para
resolver problemas de combinatoria. Entre ellos estn los proble-
mas de rutas, de redes dinmicas, de asignacin, de planicacin
de horarios, de subconjuntos y otros ms recientes como los de
aprendizaje de mquinas(machine learning), a travs de los cuales se
pueden resolver problemas de clasicacin de patrones, de redes
Bayesianas y de Sistemas Borrosos(Fuzzy systems). Tambin se han
combinado los algoritmos hormiga con otras tcnicas para resolver
problemas, estas tcnicas se conocen como hbridas.
3.1.5. Conclusiones
Los algoritmos de Colonias de hormigas fueron diseados para
resolver problemas de optimizacin combinatoria, para los cuales
pueda llevarse a cabo la construccin de la solucin paso a paso.
En ellos las hormigas asumen el papel de multi-agentes actuando
asincrnicamente, tomando informacin del ambiente modicado
por los integrantes de la colonia. Se han probado en bancos de
problemas tpicos y han demostrado generar muy buenos resulta-
3.2. EJERCICIOS DE AUTOEVALUACIN 177
dos. Existen otros modelos inspirados en la bsqueda de alimento
y marcaje de caminos, que ofrecen implementaciones diferentes.
Tambin se ha estudiado la capacidad de algunas especies de hormi-
gas para ordenar las cras, el cual ha sido aplicado en problemas
de clustering
4
con buenos resultados. Otros modelos estn basados
en la distribucin del trabajo y en el sistema de transporte coop-
erativo. El campo est abierto para realizar mejoras tanto de tipo
computacional como de tipo conceptual, que puedan combinar en-
foques evolutivos con los propios de la inteligencia social, en pro
de la solucin de problemas.
3.2. Ejercicios de Autoevaluacin
1. El problema generalizado de la asignacin consiste en lo sigu-
iente
5
: Dado un conjunto de tareas i I, deben asignarse a un
conjunto de agentes j J. Cada agente tiene una capacidad
imitada de a
j
y cada tarea i asignada a un agente j consume
una cantidad r
ij
de la capacidad del agente. Adems se incurre
en un costo d
ij
de asignar la tarea i al agente j. El objetivo es
hallar una asignacin factible de tareas que ocasione un costo
mnimo.
Sea y
ij
= 1 si una tarea i es asignada al agente j y 0 en caso
4
Clustering: proceso de dividir un conjunto de elementos en grupos mutuamente excluyentes
5
Planteamiento presentado por Dorigo et al [11]
178 CAPTULO 3. INTELIGENCIA SOCIAL
contrario.
Explique cmo modelar este problema para aplicar la meta-
heurstica ACO.
2. Disee un procedimiento para resolver este problema con ACO.
3.3. Respuestas a Ejercicios de Autoevaluacin
1. El problema generalizado de la asignacin se formula de la
siguiente manera:
minf(y) =
m

i=1
n

i=1
d
ij
y
ij
(3.9)
sujeto a:
n

i=1
r
ij
y
ij
a
ij
, j = 1, . . . , m (3.10)
m

j=1
y
ij
= 1, i = 1, . . . , n (3.11)
y
ij
0, 1, i = 1, . . . , n, j = 1, . . . , m (3.12)
La primera restriccin, indica que cada asignacin de una tarea
a un agente, consume una capacidad r
ij
, la cual est limitada
3.3. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 179
por la capacidad del agente (a
j
) La restriccin (3.11) equivale
a forzar a que cada tarea i se corresponda con slo un agente.
La restriccin (3.12) indica que las asignaciones slo toman
valores binarios: 0 1.
Para modelar el problema se construye un grafo G = (N, L), en
donde N es el conjunto de nodos, el cual representa todas las
tareas y todos los agentes, es decir N = I J, representando
I, el conjunto de tareas y J el conjunto de agentes. L es el
conjunto de arcos, los cuales representan las asignaciones que
se llevan a cabo al construir la solucin, esto signica que hay
n pares (i, j) de tareas-agentes. Entonces una solucin factible
consiste en n tareas asignadas a m agentes. Existen ciertas
restricciones, como se expresa en la formulacin, entre ellas:
no puede asignarse a una tarea ms de un agente, as como no
puede asignarse a un agente mas de una tarea.
2. Al construir la solucin, cada hormiga debe disponer de un
conjunto de agentes factibles para asignar uno de ellos a cada
tarea, descartando los que ya han sido asignado. Igualmente
debe disponer de un conjunto de tareas factibles. El manejo de
la vecindad de una hormiga k, se hace a travs del conjunto ^
k
i
,
el cual es el conjunto de agentes para los cuales puede asignarse
la tarea i, sin violar la capacidad de recursos del agente.
Para construir la solucin, las hormigas continuamente tienen
que tomar las dos decisiones: 1) Escoger la prxima tarea a
180 CAPTULO 3. INTELIGENCIA SOCIAL
asignar, 2) escoger a cul agente asignarle la tarea, estas de-
cisiones pueden tomarse en cualquier orden. Los depsitos de
feromonas estn asociados a estas decisiones, as en el primer
caso,
ij
, representa el deseo de asignar la tarea j directamente
despus de la tarea i, mientras que en el segundo caso, este
representa el deseo de asignar el agente j a la tarea i. La in-
formacin heurstica
ij
puede asociarse a estas dos decisiones.
Por ejemplo, podra orientarse a escoger las tareas que utilizan
ms recursos y desviar la seleccin de agentes, de manera que
ocasionen menores costos y ste requiera slo una pequea
cantidad del recurso. La solucin se construye parcialmente,
de forma semejante a la vista en el problema del TSP.
Consulta en la Web
Se recomienda consultar la siguiente direccin electrnica:
http://www.madrimasd.org/informacionidi/noticias/noticia.asp?id=45169
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 181
3.4. Optimizacin por Enjambres de Partculas
La optimizacin por Enjambres de partculas (en ingls Particle
Swarm Optimization o PSO) es una tcnica estocstica basada en
la manera en que operan las bandadas de aves en bsqueda de
alimento. Los enjambres de individuos se mueven libremente en un
espacio, en bsqueda de alimento. Cuando un individuo lo halla, de
alguna manera se comunica con sus vecinos, por lo que el enjambre
seguir a dicho individuo.
El algoritmo en que se basa la tcnica PSO, est inspirado en el
trabajo colectivo de enjambres, especcamente en la organizacin
social de las bandadas de aves y de los cardmenes de peces. Es-
tas organizaciones sociales adquieren una conducta colectiva, que
proviene de la comunicacin y la cooperacin entre sus integrantes.
En el algoritmo, los individuos de la poblacin se tratan como
partculas o puntos de bsqueda, las cuales tienen una posicin
y una velocidad (el vector velocidad indica hacia donde se dirige)
y se mueven en un espacio de dimensin n. La partcula que obtiene
mejor evaluacin es la partcula gua o conductora, en el sentido
que todo el enjambre le seguir, pero que cualquier individuo po-
dra cambiar su orientacin, en cuyo caso el liderazgo pasa a ste.
El gua puede ser global a todo el enjambre o local a un vecindario
de ste, ya que pueden surgir ciertos ajustes en algunas porciones
o vecindarios dentro del enjambre(ajustes locales).
El desarrollo de la tcnica de optimizacin PSO, se debi a James
182 CAPTULO 3. INTELIGENCIA SOCIAL
Kennedy y Russell C. Eberhart en el ao 1995, quienes inspirados
en la manera en que operan los enjambres en bsqueda de ali-
mento, desarrollaron el modelo original o estndar del PSO y lo
aplicaron para la resolucin de problemas de optimizacin. Este
modelo en un principio se emple para operar con funciones en un
espacio binario de bsqueda pero posteriormente se modic para
problemas sin restricciones en espacios de bsqueda, con variable
continua. La conducta de los individuos se basa en tres principios:
evaluar, comparar e imitar.
En las siguientes guras se presenta de una manera muy simple
el problema, en una iteracin. Inicialmente se crea una poblacin
de partculas, ver gura (3.6). Se evala el desempeo de cada
partcula. La partcula encerrada en un crculo, es aquella cuya
evaluacin resulta mejor. Las partculas cambian su direccin ha-
Figura 3.6: Partculas en el espacio de bsqueda
cia la partcula con mejor evaluacin y luego cambia su posicin.
En este caso la partcula gua es un lder global, ver gura (3.7).Este
proceso de cambio de concentracin de las partculas hacia la
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 183
mejor, ocurre a medida que se va explorando el espacio de bsque-
da, generalmente no es inmediato porque podra tratarse de un
mnimo local y realmente lo que se intenta hallar es un mnimo
global.
Figura 3.7: las partculas modicaron su posicin acercndose a la de mejor desempeo
3.4.1. Elementos del modelo
A cada partcula o individuo i se le asocian 3 vectores:
su posicin:
x = (x
i1
, x
i2
, . . . , x
iD
)
la mejor posicin que tiene la partcula individualmente:
p = (p
i1
, p
i2
, . . . p
iD
)
y su velocidad:
v = (v
i1
, v
i2
, . . . v
iD
)
en donde D es la dimensin del espacio.
Las partculas en cada iteracin se movern en el espacio de
bsqueda de dimensin D. Inicialmente se les asignarn valores
184 CAPTULO 3. INTELIGENCIA SOCIAL
de posicin y velocidad al azar. Por lo tanto se puede decir que
en cada iteracin k se requiere obtener una nueva conguracin
del enjambre. La velocidad
6
es una magnitud fsica de carcter
vectorial que expresa el cambio de la posicin de un objeto por
unidad de tiempo t, se tiene:
v =
x
t+1
x
t
t
La velocidad y la posicin de la partcula sern actualizadas de
un paso de tiempo al otro, en donde t ^, por lo tanto t = 1.
En la prxima seccin se presentan las ecuaciones que se emplean
para cambiar la posicin y la velocidad de las partculas, en estas
ecuaciones se evidencia el componente estocstico.
El problema es denir ciertas reglas para determinar la manera
de mover las partculas en forma tal que mejore su posicin en el
espacio de bsqueda.
3.4.2. Ecuaciones que rigen el sistema de partculas
Las ecuaciones que reejan el cambio de posicin y velocidad en
cada iteracin son las siguientes:
v
(k+1)
d
= v
(k)
d
+ c
1

1
(p
(k)
d
x
(i)
d
) + c
2

2
(g
(k)
d
x
(k)
d
) (3.13)
x
(k+1)
d
= x
(k)
d
+ v
(k+1)
d
(3.14)
6
http://es.wikipedia.org
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 185
en donde:
v
(i)
d
es la d-sima componente de la velocidad de la partcula i,
x
(i)
d
la d-sima componente del vector posicin de la partcula i,
c
j
(j = 1, 2) es una constante con valor 2,
7

1
y
2
son nmeros aleatorios independientes, uniformes en [0,1],
p
d
es la d-sima componente de la mejor actuacin de la partcu-
la,
8
g
d
es la d-sima componente de la partcula con la mejor posicin
hallada
entre las partculas vecinas a lo largo de su historia.
Normalmente es necesario limitar la velocidad ya que puede lle-
gar a alcanzar valores muy grandes, para ello se puede establecer
un valor mximo denotado por V
max
. A menudo se toma V
max
no
mayor que 4, pero en general vara con el problema. Para ello se
introducen las siguientes condiciones:
Si v
(k+1)
d
> V
max
entonces v
(k+1)
d
= V
max
Si v
(k+1)
d
< V
max
entonces v
(k+1)
d
= V
max
7
Obtenido de resultados experimentales
8
En su historia
186 CAPTULO 3. INTELIGENCIA SOCIAL
Exceso de aleatoriedad conduce a la exploracin de nuevas posi-
bilidades. En contraste poca aleatoriedad permite explotacin de
patrones semejantes
La vecindad del enjambre se dene de acuerdo con la topologa
del sistema de partculas. Esto se reere a la manera en que se
considera que estn relacionadas las partculas y no tiene que ver
con la cercana en cuanto a su posicin. Existen varias topologas
para considerar las vecindades entre las partculas. La ms cono-
cida es las tipo anillo, en donde cada partcula se relaciona slo
con sus dos vecinas: derecha e izquierda, ver gura (3.8). Existen
otras topologas, como la tipo estrella, en la que cada partcula se
relaciona con todas las dems y al hallar la de mejor desempeo
se trata de la mejor de todo el enjambre( mejor global), ver gura
(3.9). Se pueden denir otras topologas segn convenga, ver gu-
ra (3.10). La organizacin del enjambre afecta la convergencia y
capacidad de bsqueda.
Figura 3.8: Topologa Anillo: cada partcula se relaciona slo con sus dos vecinas
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 187
Figura 3.9: Topologa Estrella: cada partcula se relaciona con todas las dems
Figura 3.10: Otras topologas
3.4.3. El problema de optimizacin bajo el enfoque del PSO
El problema de optimizacin continua puede denirse como:
Hallar el conjunto de soluciones en A

, subconjunto de A, con-
junto de dominio, con A 1
n
, tal que
f(x

) f(x) x A
El conjunto de soluciones est representado por las partculas, es
decir cada una de ellas es una solucin que evoluciona en posicin
y velocidad. Es importante aclarar que la variable es continua pero
el sistema de partculas es discreto.
188 CAPTULO 3. INTELIGENCIA SOCIAL
3.4.4. Algoritmo
El mtodo del PSO originalmente se hizo para nmeros bina-
rios, las partculas se operaban como los cromosomas del algorit-
mo gentico, posteriormente se adapt al caso de variable continua.
Luego algunos investigadores crearon variantes del modelo estn-
dar, como es el caso del empleo del peso inercial o del factor de
constriccin en el clculo de la velocidad, para acelerar la conver-
gencia. Tambin se han creado algoritmos hbridos, que combinan
PSO con algoritmos genticos u otros.
El algoritmo genera una poblacin inicial de partculas con posi-
cin y velocidad al azar. Estas partculas cambian de posicin y
velocidad de acuerdo con el desempeo del grupo. Es importante
considerar el tipo de topologa a emplear, en cuanto a la relacin
de las partculas con sus vecinas. El proceso se puede realizar un
nmero jo de iteraciones(maxiter) o tambin se puede comparar
dos iterados sucesivos y dependiendo de su aproximacin el proceso
se detiene o contina. Este algoritmo requiere de una estructura de
datos o memoria de las partculas. Como se trata de un algoritmo
estocstico, genera soluciones diferentes en cada corrida.
En la gura 3.11 se presenta un diagrama de ujo del algoritmo
del PSO.
Cada partcula modica su posicin y velocidad, en funcin de
pbest y gbest, en donde pbest es la mejor posicin y velocidad que
ha alcanzado la partcula (segn la evaluacin) y gbest es la mejor
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 189
Figura 3.11: Diagrama de Flujo del Algoritmo del problema PSO
partcula en su entorno. En la gura (3.12), se ilustra lo que ocurre
en trminos geomtricos. La partcula tiende a acercarse a la mejor.
La aceleracin( cambio de la velocidad en el tiempo) es estocsti-
ca y se puede controlar para que sea mayor al comienzo de la
bsqueda y menor al nal cuando se presume que est cerca de la
solucin, transformndose la bsqueda en local. En la gura (3.12),
S
k
y V
k
representan la posicin y velocidad actual respectivamente
d e una partcula a considerar; S
k+1
y V
k+1
, la posicin y veloci-
dad modicada y V
pbest
y V
gbest
las velocidades de pbest y de gbest
respectivamente.
190 CAPTULO 3. INTELIGENCIA SOCIAL
Figura 3.12: Modicacin la posicin y velocidad en un punto de bsqueda bsqueda. Fuente:
http://www.scribd.com/doc/23247787/PSO-Particle-Swam-Optimization
Ejemplo
Sea la siguiente funcin a minimizar:
f(x) = x
2
1
+ x
2
2
5,12 x
1
, x
2
5,12
Para mostrar cmo opera el algoritmo PSO, slo emplearemos
10 partculas, aunque normalmente se utiliza un nmero mayor de
ellas, aproximadamente entre 15 y 20 partculas. Cada partcula
representa una solucin (x
1
, x
2
). La topologa que empleamos en
este ejemplo es la de anillo, es decir al momento de comparar cada
partcula con sus vecinas, se har con la partcula que est a su
derecha y con la que est a su izquierda. El orden que se establece
para organizar las partculas, en este caso en forma de anillo, de-
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 191
pende de los ndices de la estructura, esto signica que la primera
partcula generada en forma aleatoria se almacena en la la uno,
la segunda en la la dos y as sucesivamente. Entonces, de acuerdo
con la organizacin tipo anillo, la partcula i se relacionar con la
partcula i + 1 y con la i 1. Es importante observar que se deben
tomar precauciones con respecto a las partculas 1 y N.
La funcin de tness es la funcin objetivo: f(x) = x
2
1
+ x
2
2
, la
cual nos proponemos a minimizar. Por razones de simplicidad se
emplearn slo 2 decimales.
Inicialmente se crean 10 partculas con posicin y velocidad
obtenidas al azar. En este ejemplo tanto la posicin como la veloci-
dad son nmeros aleatorios entre cero y uno. Supongamos que en la
iteracin i, se tienen las siguientes partculas ( nmero, posicin, ve-
locidad y tness) y las posiciones de las mejores en su historia(pbest),
ver cuadro(3.8).
192 CAPTULO 3. INTELIGENCIA SOCIAL
Partculas Actuales Mejores Partculas
No. x
1
x
2
v
1
v
2
f p
1
p
2
f
1 0,83 0,07 0,69 0,62 0,6 0,56 0,1 0,32
2 0,34 1 1,12 0,69 0,71 0,06 0,05 0,01
3 0,04 0,63 0,4 0,19 0,99 0,71 0,22 0,55
4 0,11 0,03 0,01 0,26 0,45 0,05 0,9 0,81
5 0,87 0,95 1,66 0,3 0,46 0,92 0,66 1,28
6 0,91 0,86 1,57 0,49 0,1 0,18 0,26 0,1
7 0,74 0,42 0,72 0,51 0,67 0,43 0,88 0,96
8 0,43 0,18 0,22 0,75 0,65 0,35 0,53 0,4
9 0,33 0,36 0,24 0,4 0,07 0,15 0,49 0,26
10 0,67 0,07 0,45 0,07 0,21 0,45 0,77 0,8
Cuadro 3.8: Posicin y velocidad de las partculas actuales y posicin de las mejores
partculas
Como se tiene almacenada la historia de las mejores partculas,
ver la parte derecha del cuadro (3.8), el desempeo de las partculas
actuales debe compararse con las primeras y en caso que estas
tengan mejor tness, se actualizar la memoria de las mejores. En
el cuadro (3.9) gura esta memoria actualizada.
No. p
1
p
2
f No. p
1
p
2
f
1 0,56 0,1 0,32 6 0,18 0,26 0,1
2 0,06 0,05 0,01 7 0,74 0,42 0,72
3 0,04 0,63 0,4 8 0,43 0,18 0,22
4 0,11 0,03 0,01 9 0,33 0,36 0,24
5 0,92 0,66 1,28 10 0,67 0,07 0,45
Cuadro 3.9: Memoria actualizada de las mejores partculas (pbest)
Una vez actualizada la memoria de las mejores partculas, se
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 193
procede a obtener la nueva velocidad y posicin de cada partcula
en funcin de la mejor de cada una de ellas y del mejor desempeo
de las vecinas ( ecuaciones 3.13 y 3.14). Cabe destacar que al con-
siderar los valores de tness de las partculas vecinas, empleando
la topologa anillo, no estamos tomando en cuenta la evaluacin
de la propia partcula. Este tipo de consideracin se conoce como
abnegada(en ingls: seless), por ms que sea mejor la evaluacin
de esta partcula, slo se considera el desempeo de sus vecinos. Es
posible que la evaluacin de la partcula actualizada sea peor que
la que tena en la etapa anterior, ya que como lo hemos menciona-
do las mejoras no son absolutas. En la gura (3.13) se muestra la
evaluacin de cada partcula al comienzo de la iteracin i y la de
cada partcula de la memoria de mejores partculas. En esta ltima
se han acentuado en negrilla aquellas partculas que tienen mejor
evaluacin que sus vecinas.
El proceso de bsqueda contina. Le sigue otra iteracin, cuyos
pasos son: comparar tness de cada partcula con las mejores, actu-
alizar la memoria y actualizar de nuevo la velocidad y posiciones.
Para detener el proceso, se suelen comparar dos evaluaciones suce-
sivas. Tambin se emplea un conteo de iteraciones, por ejemplo
maxiter = 1.000. Al nal de la actual iteracin, si detuviramos
el proceso, la mejor solucin surgir al comparar la ltima solu-
cin con la memoria de partculas, observndose que hasta ahora
la mejor partcula ha sido la No. 2, que ser identicada como gbest,
y corresponde a la solucin x
1
= 0, 006 y x
2
= 0, 005, el valor de la
194 CAPTULO 3. INTELIGENCIA SOCIAL
Valores Actualizados
No.
1

2
gbest v
1
v
2
x
1
x
2
f
1 0,63 0,84 2 -1,01 0,6042 -0,18 0,67 0,48
2 0,3 0,21 1 0,61 -0,24 0,95 0,76 1,48
3 0,03 0,39 4 0,25 0,52 0,28 1,15 1,4
4 0,3 0,13 3 0,24 0,61 0,35 0,64 0,53
5 0,5 0,55 4 -0,49 -0,84 0,38 0,11 0,16
6 0,82 0,6 7 -0,91 -1,41 0 -0,55 0,3
7 0,26 0,03 6 0,32 0,66 1,06 1,08 2,29
8 0,02 0,32 9 0,68 0,77 1,11 0,95 2,13
9 0,71 0,21 8 0,44 -0,08 0,77 0,28 0,67
10 0,61 0,93 9 -0,56 0,75 0,11 0,82 0,68
Cuadro 3.10: Actualizacin de las partculas, empleando la topologa tipo anillo
funcin es f(x) = 0, 001.
En algunos casos, en problemas complejos, la convergencia po-
dra ser lenta, obligando a aumentar el nmero mximo de itera-
ciones o usar variantes del algoritmo.
3.4.5. Variantes del algoritmo
El modelo de PSO es esencialmente un modelo experimental. A
lo largo de experimentos, se han propuesto ajustes a las velocidades
de las partculas, empleando un factor w conocido como peso inercial,
utilizando el concepto de la fsica sobre inercia de las partculas en
el proceso de friccin, cuando estn en movimiento. Esta modi-
cacin del algoritmo se hace para controlar el espacio de bsqueda
y para ello contrae algunos trminos de la ecuacin(3.13). Como un
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 195
Figura 3.13: a) Fitness de cada partcula actual b)Fitness de las mejores partculas (g
indica el vecino con mejor desempeo, topologa anillo).
peso inercial grande favorece la bsqueda global, y un peso inercial
pequeo favorece la bsqueda local, se experiment con un valor
mayor que 1, para fomentar la exploracin global y reducirlo grad-
ualmente a n de obtener soluciones ms renadas. Por lo tanto,
se emplea un factor de peso inercial dinmico, al cual normalmente
se le asigna un valor inicial mayor a 1.0 y luego en cada iteracin
decrece linealmente. Por otra parte, con el empleo del peso inercial
se elimina la restriccin aplicada sobre la velocidad con V
max
.
v
(i)
d
= wv
(i)
d
+ c
1

1
(p
(i)
d
x
(i)
d
) + c
2

2
(g
(i)
d
x
(i)
d
) (3.15)
El decrecimiento lineal del peso inercial, en cada iteracin se
196 CAPTULO 3. INTELIGENCIA SOCIAL
lleva a cabo a travs de la siguiente expresin:
w = w
max
(w
max
w
min
)
k
maxiter
(3.16)
en donde k es el ndice de la generacin, maxiter es el mximo
nmero de iteraciones preestablecido, w
max
es un valor mayor que
1, y w
min
inferior a 0,5. Esta variacin del mtodo se ha comprobado
que acelera la convergencia.
Otra variacin en el clculo de la velocidad es la propuesta por
Clerc y Kennedy[16], con la introduccin de un factor de constric-
cin , obtenido en funcin de las constantes que se emplean en el
clculo de la velocidad. Este factor afecta a ambos trminos de la
frmula(3.13) y se introdujo con el n de evitar la explosin de la
velocidad:
v
(i)
d
= [v
(i)
d
+ c
1

1
(p
(i)
d
x
(i)
d
) + c
2

2
(g
(i)
d
x
(i)
d
)] (3.17)
en donde es:
=
2
[2
_

2
4[
, = c
1
+ c
2
= 4,1 (3.18)
resultando = 0,729 y donde c
1
y c
2
tienen el valor 2.05. Estos
parmetros se obtuvieron de la experimentacin.
El factor es semejante al peso inercial, y cuando se emplea no
se requiere controlar la velocidad con V
max
. Bratton y Kennedy [7],
analizaron la estabilidad de este algoritmo empleando los parmet-
ros con los valores mencionados y luego de un estudio comparati-
vo de ambos algoritmos PSO (peso inercial y factor ), sobre la
3.4. OPTIMIZACIN POR ENJAMBRES DE PARTCULAS 197
base experimental, comprobaron que son matemticamente equiv-
alentes, en particular el algoritmo con el factor de constriccin es
un caso especial del mismo con el peso inercial. Se han experi-
mentado estas variaciones del algoritmo con ejemplos de funciones
que presentan dicultad para hallar la solucin ptima y se han
obtenido mejores resultados, que con el modelo estndar. Tambin
se han combinaciones del factor de constriccin con el peso inercial.
Una pregunta frecuente en relacin con la implementacin de
este mtodo, es cul es el nmero apropiado de partculas a con-
siderar. Normalmente se emplean entre 20 y 40 partculas. Se ha
comprobado experimentalmente que un incremento en el nmero
de partculas no acelera la convergencia.
3.4.6. Conclusiones
La tcnica PSO, igualmente como ocurre con los algoritmos evo-
lutivos, opera como una caja negra
9
Dado un conjunto inicial de
partculas, stas cambian de posicin y velocidad a travs de itera-
ciones, dando origen a nuevas soluciones. Las soluciones obtenidas
a travs de cada corrida del algoritmo, debido al carcter estocs-
tico del mismo podran ser diferentes (en algunos casos ptimas y
en otros subptimas). No obstante constituye una manera sencilla
de obtener soluciones a problemas que tradicionalmente requeran
9
Una caja negra es un dispositivo del cual nos interesan nicamente sus entradas y salidas. En la
caja negra no nos interesa su funcionamiento o diseo interno. El concepto de caja negra se utiliza en el
desarrollo de software y en electrnica [1]
198 CAPTULO 3. INTELIGENCIA SOCIAL
fuertes condiciones sobre las funciones y las restricciones.
3.5. EJERCICIOS DE AUTOEVALUACIN 199
3.5. Ejercicios de Autoevaluacin
1. Disee una estructura de datos que permita manejar las partcu-
las de un enjambre.
2. Elabore la funcin MejorVecino, en seudolenguaje, que deter-
mine las partculas vecinas a i, considerando la topologa anillo.
3. Elabore el algoritmo de PSO en seudolenguaje. Para calcular
la velocidad, emplee el factor de constriccin.
4. Compare el algoritmo de Optimizacin de Partculas con los
algoritmos evolutivos. Establezca las analogas y las diferen-
cias.
3.6. Respuestas a Ejercicios de Autoevaluacin
1. Existen diversas maneras de denir un conjunto de partculas
con el n de ser empleadas en un programa o cdigo. Interesa
saber qu se requiere saber en cada momento de una partcula.
Normalmente se requiere su identicacin(nmero), posicin,
velocidad y tness, as como saber cul es la mejor partcula en
la historia de cada una de ellas. Una manera sencilla de hacerlo,
es denir una matriz X de N M, en donde N es el nmero
200 CAPTULO 3. INTELIGENCIA SOCIAL
de partculas a considerar y M es la dimensin. Igualmente se
debe denir una matriz con las mismas dimensiones, para las
respectivas velocidades de las partculas. De esta manera x
ij
,
denota la posicin j (dimensin j) de la partcula i y v
ij
denota
la componente j de la velocidad de la partcula i. Debido a que
hay que almacenar la mejor partcula de cada una de ellas, es
preciso emplear adicionalmente otra matriz P de N M, para
almacenar la posicin de la mejor partcula. A esta ltima
estructura le llamamos memoria de partculas.
En la gura (3.14) se presenta la estructura de la matriz de las
posiciones del conjunto de partculas. Las matrices de veloci-
dades y la memoria de las mejores partculas son semejantes.
Al referirnos a alguna partcula lo hacemos por el ndice de la
i, de esta manera podemos hacer referencia a la mejor partcula
de un entorno, empleando un nmero entero, ejemplo l.
Figura 3.14: Matriz de posicin del conjunto de partculas
Otra manera de almacenar las partculas es empleando una
3.6. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 201
estructura tipo registro o estructura, en lenguaje de progra-
macin comnmente se denomina struct. Se puede denir un
vector de registros, en el cual cada uno representa la partcu-
la. A cada partcula se le podra asignar su posicin, velocidad
y tness, como se expresa en la gura 3.15. Tambin se pueden
incluir otros datos, dependiendo de lo que se quiere obtener a
travs del algoritmo. Los tipos de datos dependen del proble-
ma. La ventaja de usar esta estructura es que al referirnos a
una partcula, poseemos toda la informacin a mano.
Figura 3.15: Estructura tipo registro para almacenar a las partculas
2. Funcin para hallar el mejor vecino
202 CAPTULO 3. INTELIGENCIA SOCIAL
Algoritmo 3.1 Mejor Vecino
1: si (i = 1) entonces
2: j = Mejor(A, N, 2)
3: De lo contrario
4: si (i = N) entonces
5: j = Mejor(A, N 1, 1)
6: De lo contrario
7: j = Mejor(A, i 1, i + 1)
8: Fin si
9: Fin si
10: Retornar (j)
En este algoritmo, A es la estructura que contiene los datos de
posicin de las partculas, i se reere a la partcula i, a la cual
se le quiere hallar su mejor vecina, f es la funcin de tness y j
la variable que contiene el ndice de la mejor partcula vecina.
La funcin Mejor devuelve el ndice de la mejor partcula y
para el caso de minimizacin, es la siguiente:
Algoritmo 3.2 Mejor
1: si (f(A, i) f(A, k)) entonces
2: (j = i)
3: De lo contrario
4: (j = k)
5: Fin si
6: Retornar (j)
3.6. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 203
Algoritmo 3.3 Optimizacin Por Enjambres de Partculas
1: k = 0
2: Mientras (k < MAXITER) hacer
3: k k + 1
4: Para cada partcula i en el enjambre hacer
5: si (f(x) < f(p)) entonces
6: p x
7: Fin si
8: g = i
9: Para j J hacer
10: si (f(p
j
) < f(p
g
)) entonces
11: g = j
12: Fin si
13: Fin Para
14: Para d = 1 hasta D hacer
15: v
d
(t) = [v
d
(t 1) +c
1

1
(p
d
x
d
(t 1)) +c
2

2
(g
d
x
d
(t 1))]
16: x
d
= x
d
+v
d
17: Fin Para
18: Fin Para
19: Fin Mientras
3. Algunas analogas y diferencias entre AE y PSO son las sigu-
ientes:
Analogas: Tanto los algoritmos evolutivos como los de opti-
mizacin de partculas trabajan con poblaciones de partcu-
las. Por otra parte, el elemento probabilstico est presente
en los AE a travs de la creacin de la poblacin inicial y
de los diferentes operadores de seleccin(en algunos casos) y
204 CAPTULO 3. INTELIGENCIA SOCIAL
de variacin(cruce y mutacin). En los algoritmos de PSO lo
probabilstico est presente en la creacin de las posiciones
y velocidades iniciales de las partculas, as como en la ac-
tualizacin de las velocidades de las mismas. Segn algunos
investigadores el concepto de seleccin y cruce est presente
en el PSO a travs de la eleccin del mejor en la historia de
cada partcula(pbest) y en el mejor global(gbest) para crear una
partcula hija.
Diferencias: El algoritmo evolutivo es competitivo, cada indi-
viduo compite con los otros por lograr mejor evaluacin mien-
tras que el algoritmo PSO representa un proceso cooperativo.
En otro sentido el algoritmo PSO utiliza un procedimiento in-
dividualista de cada partcula(su propia historia), su solucin
anterior y su solucin actual para crear una nueva solucin. El
nico elemento que toma prestado de los dems individuos es
la mejor solucin global(gbest). En cambio los algoritmos evo-
lutivos utilizan los operadores de cruce empleando mltiples
individuos para mejorar las soluciones.
En este algoritmo se emple = 0,729
Consulta en la Web
Se recomienda consultar la siguiente direccin electrnica:
http://ocw.uc3m.es/informatica/computacion-biologica/material-de-clase-1/PSOT.pdf
3.6. RESPUESTAS A EJERCICIOS DE AUTOEVALUACIN 205
Ampliacin de Conocimientos
La tcnica de PSO se aplic originalmente con variables bina-
rias. Investigue cmo se opera en este caso con las partculas
y cmo cambia el algoritmo. Cules semejanzas tiene con el
Algoritmo Gentico?.
Investigue sobre el abordaje de los problemas con restricciones
empleando la metaheurstica PSO. Cmo tratar los puntos
infactibles?
206 CAPTULO 3. INTELIGENCIA SOCIAL
Captulo 4
Otros Temas y Casos de Estudio
En este captulo se presentan algunos temas relacionados con
la Computacin Evolutiva de manera introductoria y problemas
prcticos, que ilustren los temas expuestos. Algunos de los temas
se plantean bajo el enfoque de las ramas analizadas en este curso,
como son: la optimizacin, los algoritmos genticos, las estrategias
evolutivas, la programacin gentica y la inteligencia social. Otros,
como el autmata celular, el juego de la vida y las redes de neuronas
articiales tienen aspectos comunes con la Computacin Evolutiva
y representan reas de gran inters en la actualidad. El estudi-
ante puede ampliar sus conocimientos sobre los temas presenta-
dos, consultando las fuentes bibliogrcas y empleando buscadores
en la red Internet. Se pretende insertar nuevos temas y ejemplos,
en la medida que surjan durante el curso, as como incluir nuevas
tendencias.
207
208 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
4.1. Vida Articial: Vida es inteligencia
La Vida Articial (conocida como Articial Life o AL ) en trmi-
nos muy simples, consiste en simular la evolucin de los seres vivos
empleando el computador. Una denicin ms amplia, ofrecida por
la Sociedad Internacional de Vida Articial, es la siguiente:
La Vida Articial una nueva disciplina que investiga los temas
cientcos, ingenieriles, loscos y sociales involucrados en nues-
tra acelerada habilidad de crecimiento tecnolgico, para sintetizar
conductas semejantes a la vida, a partir del inicio en computa-
dores, mquinas, molculas y otros medios alternativos. Extendi-
endo los horizontes de la investigacin emprica en biologa ms
all del territorio circunscrito por la vida que conocemos, el estu-
dio de la vida articial nos provee un acceso al dominio de la vida,
como esta podra ser. Los tpicos relevantes extienden la jerar-
qua de la organizacin biolgica, que incluyen: origen de la vida,
auto-ensamblaje, crecimiento y desarrollo,dinmica evolucionista
y ecolgica, conductas animales y robticas, organizacin social y
evolucin cultural.
El trmino de vida articial se debe a Christopher Langton(1986).
La AL involucra la simulacin o la emulacin de los seres vivos, de
manera completa o parcial, sin intentar construir vida. La simu-
lacin puede llevarse a cabo realizando modelos en el computador,
empleando agentes vivos que ejecutan ciertas acciones, que en for-
ma parcial o total reconstruyen el medio. Uno de los ejemplos de
4.1. VIDA ARTIFICIAL: VIDA ES INTELIGENCIA 209
AL ms notables es el conocido juego Sims (en ingls Simss), se
trata de un juego estratgico de simulacin de la vida desarrollado
por Will Wright, en el cual el jugador debe tomar decisiones, que
estn afectadas por las otras personas y por el ambiente. En el mis-
mo ocurre la evolucin, los elementos que actan enfrentan compe-
tencias. Las reglas que se aplican para simular comportamiento de
estos individuos pueden ser semejantes o diferentes a las existentes
en el mundo real. Entre los objetivos de la vida articial estn el de
estudiar la evolucin en un mundo articial, permiten adems com-
parar las simulaciones con la realidad. La Vida Articial puede ser
til para estudiar problemas complejos como el origen de la vida,
las comunidades auto-organizadas y la evolucin de algunos seres
vivientes.
Existen diferentes enfoques de la AL: a partir del software, del
hardware y desde la bioqumica. El enfoque que abordaremos es
el basado en el software. El primer intento de creacin de la vida
articial en el computador, fue realizado en 1937 por Alan Turing
quien desarroll un modelo de autmata de estados nitos. Su idea
consista en construir un autmata abstracto que fungiera de aut-
mata universal. Se conceba un autmata abstracto que poda estar
en un tiempo, en cualquiera de los (1, . . . , n) estados y era capaz de
leer y escribir en una cinta las instrucciones, en unos y ceros. Cada
mquina de Turing se caracterizaba por reglas que deba cumplir
para cambiar de estado, las cuales dependan del bit actual ledo en
una cinta arbitrariamente larga y de su propio estado. Las acciones
210 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
de la mquina de Turing eran: mover la cabeza de lectura-escritura,
leer informacin de la cinta y escribir informacin en la cinta. El
autmata nito sirvi de base para el desarrollo de la teora de los
Lenguajes Formales.
Posteriormente en el ao 1951, John Von Newmann, extendi la
idea del autmata de estados nitos, incrementando el nmero de
operaciones. La habilidad del autmata lo llev a ejecutar patrones
ms complejos. El concepto del autmata celular fue desarrollado
por este eminente cientco. En general para denir un autmata,
se deben especicar los siguientes aspectos:
El alfabeto o conjunto de estados
Las reglas de transicin que describen la relacin entre las
entradas del dispositivo, el estado actual y el estado al cual se
accede.
Son ejemplos de autmatas:adems de las mquinas de Turing,
las mquinas expendedoras automticas, unidades de proceso con
umbral, las compuertas lgicas AND, OR, NAND entre otras.
Consulta en la Web
En esta direccin se presentan interesantes aspectos relacionados
con la simulacin de la Vida Articial en tres dimensiones: http://www.framstic
4.2. AUTMATAS CELULARES 211
4.2. Autmatas Celulares
Un autmata celular (CA, de Cellular Automata) es un mod-
elo matemtico de un sistema dinmico
1
que evoluciona en pa-
sos discretos. Tambin se describe como una mquina virtual que
tiene una conducta compleja en forma similar a una vida. Es til
para modelar sistemas naturales que puedan ser descritos como
una coleccin masiva de objetos simples que interactan de man-
era local, unos con otros. Los autmatas celulares pueden modelar
sistemas muy complejos desde fenmenos de turbulencia de uidos
hasta patrones de crecimiento de seres vivos. Los autmatas celu-
lares, actan bajo reglas completamente deterministas, pero las sal-
idas o resultados que producen parecen aleatorios. La adaptacin
tendr algunas componentes aleatorias. Algunos autores (citados
por Kennedy y Eberhart, [16]), consideran a la evolucin y a la
mente como grandes sistemas estocsticos, adems los procesos
mentales son muy semejantes a los evolutivos.
En el caso de un autmata binario en una dimensin, consider-
ado como una cadena de ceros y unos, una celda se representa en
una posicin, la cual contiene un 0 un 1. El estado de una celda
en el tiempo t +1 est determinado por el estado en el tiempo t y el
de las celdas vecinas, de lado izquierdo y derecho. Un ejemplo de
1
Un sistema dinmico es en trminos generales, aquel que presenta un cambio o evolucin de su estado
en un tiempo. En matemticas un sistema dinmico se dene como: Sea o 1
n
, un conjunto no vaco y
sea f : o o. Se denota por f
n
la composicin de f(x) n veces consigo misma, ejemplo: f
2
(x) = f(f(x)).
Para un x o, el conjunto x, f(x), f
2
(x), . . . se denomina la rbita de x bajo la ley dinmica f
212 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
vecindad para este caso uni-dimensional es la cadena 101, en la
cual el elemento del medio est en un estado con valor 0 y sus ve-
cinos izquierdo y derecho estn en estado con valor 1. Se establece
un sistema de reglas que permitirn hacer evolucionar el autma-
ta, ver cuadro (4.1). As la evolucin puede conducir a estructuras
peridicas, a patrones caticos o formaciones ms complejas.
Vecino 1 Clula actual Vecino 2 Prxima clula
1 1 1 0
1 1 0 1
1 0 1 0
1 0 0 1
0 1 1 1
0 1 0 0
0 0 1 1
0 0 0 0
Cuadro 4.1: Conjunto de reglas para implementar un autmata celular uni-dimensional.
Fuente: Kennedy y Eberhart[16]
Si partimos de la cadena 101, al aplicar las reglas (4.1) se ob-
tiene la siguiente conguracin de 20 bits:
10100111010011101001
Si se aplica este conjunto de reglas de manera continua, y se rep-
resenta en la pantalla la evolucin del autmata, asociando a cada
bit un pixel, de manera que los bits 0 tengan un color claro y los 1
un color oscuro, se obtienen patrones muy complejos.
En el caso del autmata celular en dos dimensiones, Von New-
mann consider una estructura de vecindad como la mostrada en
4.2. AUTMATAS CELULARES 213
la gura (4.1). El estado de la celda X(t + 1) en el tiempo t + 1
depende del estado de sus vecinos en el tiempo t. En el modelo
original de CA diseado por Von Newmann, los vecinos estn en
la direccin de los puntos cardinales y se establecieron 29 posibles
estados.
Figura 4.1: Vecindad en el autmata celular en dos dimensiones
El autmata celular en dos dimensiones, se desarrolla en una
red uniforme, en la cual cada clula puede contener varios bits de
datos, el tiempo avanza en pasos discretos y las reglas se presentan
en una tabla. En cada paso del tiempo, las clulas calculan su nuevo
estado, a partir de la tabla, tomando en cuenta el estado de sus
vecinas.
Los CA en las Ciencias de la Computacin constituyen la con-
traparte del concepto de campo en la Fsica. A travs de ellos se
pueden modelar problemas de la Fisica, de combinatoria (Matemti-
cas) y de Computacin. Los autmatas celulares que hemos visto
hasta ahora son deterministas ya que las reglas se aplican de man-
era establecida, logrando un comportamiento predecible. Existen
autmatas aleatorios o estocsticos.
214 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
Figura 4.2: Autmata celular bi-dimensional. Fuente: lactamme.polytechnique.fr
Algunos autmatas, entre ellos el Juego de la Vida, pueden fun-
cionar como computadores universales, se les considera precursores
de las arquitecturas paralelas. Ciertos tipos de ellos funcionan co-
mo sistemas dinmicos discretos. Tambin los autmatas celulares
pueden emplearse para obtener fractales
2
de manera aproximada.
El empleo de los autmatas ha evolucionado hacia considerar una
coleccin de mltiples agentes que interactan entre si denominado
enjambre (en ingls: swarm).
4.3. El juego de la Vida
3
Hemos visto que la Vida Articial consiste en ambientes crea-
dos por el hombre, que poseen las propiedades fundamentales de
la vida real. Un ejemplo es el juego de la vida creado en el ao
1970 por John Conway, el cual consiste en un tablero o reticulado
bi-dimensional, en donde las celdas pueden estar ocupadas o no
por un elemento o clula. Cada clula puede tener un vecindario
2
Un fractal es un objeto semi-geomtrico cuya estructura bsica, fragmentada o irregular, se repite a
diferentes escalas. Wikipedia.org
3
Ejemplo tomado de Kennedy et al [16]
4.3. EL JUEGO DE LA VIDA 215
de 8 celdas que la rodean. Las clulas pueden estar vivas o muer-
tas. El estado del reticulado evoluciona de iteracin (generacin)
en iteracin. El Juego de la Vida es un autmata celular. No es un
juego como tal, ya que no supone interaccin entre jugadores con
el computador, slo se realiza la conguracin inicial y el autmata
acta.
Existen unas reglas que permiten a estas clulas evolucionar.
Algunas mueren otras sobreviven.
Las reglas son las siguientes:
Si una clula est viva y tiene 2 o 3 vecinas vivas, esta per-
manecer viva.
Si una clula est muerta y tiene 2 o 3 vecinas vivas, esta
vendr a la vida.
En los otros casos la clula permanece muerta.
Todo el reticulado se actualiza simultneamente.
En las guras que siguen, se interpreta que una celda desocupada
representa una clula muerta, por lo tanto al aplicar las reglas
anteriores a la gura inicial (4.3).
216 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
Figura 4.4: Evolucin del patrn inicial
Figura 4.3: Figura inicial, las celdas desocupadas son clulas muertas
Seguidamente, en la gura (4.4) se presenta una secuencia de la
evolucin del patrn inicial.
La caracterstica que ms destaca del Juego de la Vida es la
propiedad emergente, la misma que hemos descrito previamente en
organismos sociales. Esta caracterstica se observa en la ocurren-
cia de patrones complejos auto-organizados, a partir de unos ms
simples, los cuales no son escritos en el cdigo. El comportamiento
emergente es lo que dene los sistemas dinmicos complejos. Una
aplicacin interesante del Juego de la Vida es la simulacin de la
interaccin de las economas de las naciones, estas evolucionan y
tienden a mantener un equilibrio. El Juego de la Vida constituye
un desafo para los computistas, en este sentido se han desarrolla-
do juegos para entretenimiento que emplean el Juego de la Vida.
Algunos entusiastas del desarrollo de juegos, inspirados en este
4.3. EL JUEGO DE LA VIDA 217
autmata, han desarrollado planeadores(gliders), que son pequeos
patrones que se mueven en el espacio reticulado, tambin naves
espaciales con velocidades variables. Adems se han desarrollado
tcnicas de composicin musical empleando este concepto.
Consulta en la web
En la direccin electrnica: http://www.conwaylife.com/ se pre-
senta una herramienta que permite simular el juego de la vida (est
en el idioma ingls). En una regin cuadriculada se trazan guras y
al cliquear el botn start se desarrolla el juego. En la siguiente di-
reccin tambin se dispone de una herramienta para la simulacin
del Juego de la Vida: http://www.bitstorm.org/gameoife
218 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
4.4. Redes de Neuronas Articiales
Los algoritmos evolutivos as como las Redes de Neuronas Ar-
ticiales(RNA) son abstracciones de los procesos naturales. Am-
bos son formulados bajo modelos computacionales, de manera que
tanto el proceso de aprendizaje de las RNA como los procesos
evolutivos de los AE pueden ser enmarcados en la Vida Articial.
Algunos autores relacionan las redes neuronales con los autmatas
celulares, argumentando que el modelaje de las RNA consiste en la
aplicacin de reglas bio-inspiradas propias de autmatas celulares.
Por ejemplo la primera neurona articial es esencialmente un aut-
mata binario que evoluciona segn una regla simple basada en el
concepto de un umbral.
Uno de los retos del hombre ha sido el desarrollo de simula-
ciones en el computador que imiten el funcionamiento del cerebro
humano. Debido a que el cerebro no funciona como los computa-
dores digitales, de manera serial, es preciso desarrollar procesos
paralelos, tal como ocurre en el cerebro.
La computacin tradicional es secuencial, los algoritmos constan
de un conjunto de pasos que se ejecutan de iteracin en iteracin.
Sin embargo se ha observado una semejanza entre las neuronas
y las puertas lgicas de un computador. Los computadores son
mquinas muy ecientes para realizar clculos aritmticos y efec-
tan operaciones aritmticas complejas en nanosegundos. En con-
traste, existen algunas funciones que realiza el cerebro humano que
4.5. LAS NEURONAS 219
resultan difciles para el computador. Una de ellas es el mecanismo
empleado por el cerebro humano para reconocer los rostros de las
personas. Pero si disponemos de una secuencia grande de condi-
ciones a ser probadas por el computador, ste es extremadamente
eciente, mientras que para una persona resultara muy difcil hac-
erlo. Ante estas observaciones, se plante la posibilidad de hacer
funcionar al computador como lo hara una red de neuronas. El
resultado ha sido un modelo de Redes de Neuronas Articiales
que posee ciertas caractersticas del cerebro y la velocidad de los
computadores digitales.
Ya en el siglo XX, desde la dcada de los cincuenta, se haban
desarrollado los primeros modelos de neuronas articiales o per-
ceptrones. Le sigui el desarrollo de redes de neuronas. El estudio
decay al presentar ciertas incapacidades de resolucin, hasta que
en la dcada de los ochenta recibi un nuevo impulso. Recomen-
damos al lector investigar sobre la evolucin de estos estudios hasta
su desarrollo actual.
4.5. Las neuronas
La mayora de las neuronas consisten de un cuerpo, un axn o eje
y muchas dendritas, ver gura (4.5). El axn es una protuberancia
que despacha la salida de la neurona hacia las otras neuronas. Las
dendritas son estructuras agrupadas en forma de arbustos, que
facilitan la conexin con los axones de otras neuronas. Una neurona
220 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
no hace nada a menos que la accin colectiva de todas sus entradas
alcancen un nivel de umbral.
Figura 4.5: Modelo de neurona
Al alcanzar el umbral, la neurona produce una salida de potencia
completa, desde el axn hasta sus ramas, en este caso se dice que
la neurona se dispara. Los axones inuyen en las dendritas sobre
unos estrechos espacios llamados sinapsis. La estimulacin de estas
sinapsis ocasiona que las neuronas se disparen. Existen estudios
que sustentan la creencia de que el aprendizaje se produce cerca
de la sinapsis y que est relacionado con el grado en que estas
sinapsis traducen el pulso que se transmite por el axn.
4.6. Modelo de Neurona
Para disear el modelo de neurona y posteriormente de redes de
neuronas a n de emular su funcionamiento, se tomaron en cuenta
4.6. MODELO DE NEURONA 221
algunos aspectos y se despreciaron otros. La neurona simple tiene
un conjunto de entradas x
i
y pesos asociados w
i
. Estos pesos son
valores reales que permitirn modelar la sinapsis. La ecuacin que
expresa el estado del sistema es la siguiente:
s =
n

j=1
w
j
x
j
+ w
0
Todas las entradas convergen al punto s( suma ponderada o funcin
de propagacin), en donde se percibe el estado actual de la neurona,
ver gura (4.6).
Figura 4.6: Neurona. Se emplea una funcin de activacin sobre la suma ponderada

x
j
w
j
para producir la salida y. El elemento bias es . ( Fuente: L. F. De Min-
go, [12])
El elemento w
0
se denomina bias o tendencia y sirve para mover
articialmente el valor transmitido por la neurona y puede ser til
si interesa que la salida de la neurona presente determinada ten-
dencia y su valor de salida siempre es 1. En este punto se establece
222 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
el concepto del umbral, para determinar si la informacin pasa o
no, se emplea una funcin de activacin o de salida y. La neurona se
activa si las entradas a la red resultan en un valor que sobrepasa el
umbral. Existen muchos tipos de funciones de activacin o salida,
ver la gura (4.7).
Hay dos tipos de neuronas simples: el perceptrn y el Ada-
line. El perceptrn se emplea principalmente para clasicacin de
patrones. Esta habilidad de las neuronas articiales ha sido em-
pleada para categorizar elementos, lo cual a veces no resulta tan
sencillo de realizar. En el perceptrn la salida se obtiene como
y = f(

i=n
i=1
w
i
x
i
+ w
0
) y la funcin de activacin f es:
f(s) =
_
_
_
1 si s > 0,
1 en caso contrario
Si la neurona produce una salida igual a 1 entonces el elemento
pertenece a la categora A, y si produce la salida igual a 1 entonces
el elemento pertenece a la categora B. El Adaline es fsicamente
idntico al perceptrn, pero a diferencia del ste, emplea la regla
Delta para el aprendizaje de la neurona. Mientras que el perceptrn
utiliza la salida de la funcin umbral para el aprendizaje. La regla
Delta se basa en el clculo de la diferencia entre la salida de la
neurona y la funcin deseada o error (y d) y emplea el mtodo
del gradiente descendente para obtener los nuevos pesos en cada
iteracin. En el perceptrn la salida es binaria y en el Adaline es
real.
4.6. MODELO DE NEURONA 223
Figura 4.7: Algunas funciones de activacin. Fuente: Luis Fernando De Mingo, [12]
En la neurona simple la separacin en dos categoras se hace
por medio de una recta cuya ecuacin es: w
1
x
1
+w
2
x
2
+. . . +w
n
x
n
+
= 0. Ver gura(4.8). Los problemas que no son separables, como
el o exclusivo no se pueden resolver empleando un perceptrn.
Para poder resolver problemas que no son linealmente separables
se emplean las redes de perceptrones multicapa.
Perceptrones multi-capa El cerebro humano est constituido por
un nmero muy grande de neuronas inter-conectadas y el proce-
so de funcionamiento es paralelo y distribuido. La emulacin de
este proceso inspir el desarrollo de las redes de neuronas arti-
224 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
Figura 4.8: Separacin lineal obtenida por una neurona o red monocapa.
ciales(RNA) o redes de perceptrones, estas constan de un conjunto
de nodos en cada capa, pesos asociados a los arcos, entradas y sal-
idas.
Figura 4.9: Red multicapa
Estructura de la RNA multicapa: Las RNA estn formadas por
una gran cantidad de unidades o elementos de procesamiento lla-
mados neuronas, las cuales se dividen de acuerdo a sus funciones en
tres grupos diferentes: 1)las que reciben la informacin del exterior,
4.6. MODELO DE NEURONA 225
tambin denominadas neuronas de entradas; 2) las que transmiten
informacin al exterior, denominadas neuronas de salida, y por
ltimo aquellas que no tienen ningn contacto con el exterior y
solamente intercambian informacin con las otras neuronas, a las
cuales se les denomina neuronas ocultas.
Cada neurona tiene los siguientes elementos:
Un valor numrico denominado valor de activacin.
Una funcin de salida. Se transforma el estado de activacin
en una seal de salida.
La seal de salida es enviada a travs de los canales de co-
municacin. En estos canales la seal se modica de acuerdo
con el peso asociado a cada uno de ellos, segn una regla de
propagacin. Estas ultimas se combinan entre s, generando la
entrada total.
La funcin de activacin asigna el estado de la neurona en
funcin de la entrada total y el anterior estado de activacin.
Los valores x
i
son las entradas, w
i
son los pesos asociados a los ar-
cos y las funciones de activacin que calculan el valor que permite
que cada neurona se active o excite, en funcin de su entrada y
pesos. Todas las neuronas cambian sus valores en forma sincrnica
y pasan la informacin a las siguientes. Otro aspecto importante a
considerar es la topologa de la red, que es la manera como las neu-
ronas individuales estn conectadas y el algoritmo de aprendizaje
226 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
que se aplicar.
En el contexto de las RNA, el aprendizaje se reere a que las
mismas pueden adoptar diferentes conductas dependiendo del con-
junto de datos con los que se les alimenta. Las redes de neuronas
son entrenadas en lugar de ser programadas, esto signica que para
que aprendan deben ajustarse los pesos en funcin de la respuesta
deseada. Es importante observar que estamos hablando de redes
de neuronas supervisadas, esto signica que se pretende que el sis-
tema aprenda a obtener una salida determinada, para ello se le
entrena.
4.6. MODELO DE NEURONA 227
Caractersticas de las Redes de Neuronas Articiales
Poseen aprendizaje adaptativo.
No almacenan informacin.
Presentan auto-organizacin.
Operan en tiempo real, pero procesan informacin en paralelo.
Topologa
En las redes de neuronas alimentadas hacia adelante(feedforward),
las neuronas estn separadas, poseen una capa de entrada, una de
salida y una o ms capas ocultas y slo pueden conectarse con las
neuronas de la capa siguiente. Existe un tipo de redes alimentadas
hacia adelante, cuyas neuronas poseen algunas conexiones con ca-
pas anteriores a las cuales se les denomina redes con atajos (short
cut connections), en ellas las neuronas pueden estar conectadas con
neuronas anteriores o posteriores a ellas, ver la gura (4.10). Tam-
bin estn las redes recurrentes, en las cuales normalmente no hay
neuronas de entrada ni de salida y permiten que una neurona est
conectada a si misma.
Entrenamiento de la red de neuronas articiales
La red cambia cuando sus componentes sufren modicaciones.
Tericamente la red puede cambiar si se alteran sus conexiones, pe-
sos, valores del umbral o funciones de activacin. Como lo hemos
228 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
Figura 4.10: (a) Red alimentada hacia adelante, (b) Red con atajos
dicho, el mtodo ms comn para entrenar una red, es cambiar
iterativamente sus pesos, dada una salida deseada( redes super-
visadas). En las redes no supervisadas, slo se dan patrones de
entrada, la red trata de identicar patrones semejantes y clasi-
carlos.
Una de las redes ms empleadas es la red de Retropropagacin
o Back Propagation. Esta red es multicapa y se alimenta hacia ade-
lante. El algoritmo de aprendizaje es una generalizacin del mtodo
Delta, est basado en el gradiente descendiente como tal y actu-
aliza los pesos de atrs hacia adelante, de ah su nombre. Como
indicamos al hacer mencin de la regla Delta, se intenta minimizar
el error al cuadrado, producido entre la deseada d y la salida logra-
da f: = (d f)
2
. Se calcula el gradiente de en el espacio de
los pesos w. Para calcular este gradiente, obviamente la funcin
f debe ser diferenciable. Se recomienda consultar cmo se apli-
ca este mtodo, en la bibliografa sealada ms abajo. Adems de
las redes Supervisadas y las no supervisadas, existen las redes neu-
ronales hbridas, las cuales combinan una fase supervisada con otra
4.6. MODELO DE NEURONA 229
no supervisada.
Ejemplo
El siguiente ejemplo fue desarrollado por Garca et al( [14]) y con-
siste en el ajuste de valores de una serie de tiempo o serie temporal.
Una serie temporal o cronolgica es una secuencia de datos, obser-
vaciones o valores, medidos en determinados momentos del tiempo,
ordenados cronolgicamente y, normalmente, espaciados entre s de
manera uniforme
4
. Para efectuar el ajuste se emplea por cada ter-
na de datos de entradas una red de 3 capas, una de ellas es la capa
oculta, con 2 neuronas, como se observa en la gura, ver 4.11. Ca-
da neurona de la capa oculta recibe 3 entradas (y
t2
, y
t1
, y
t
),esta
procesa los datos y los enva a la neurona que est en la capa de
salida.
Figura 4.11: Red de neuronas de 3 capas: Entrada-Oculta-Salida
Primero se introducen los datos originales en la columna A y
en la columna B, se efecta una suavizacin de los mismos. En el
4
Wikipedia.org
230 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
ejemplo presentado en el artculos hay 1,024 datos de entrada. Se
almacenan los pesos originales( ver la gura 4.12). Los detalles de
las frmulas a introducir se explican en el artculo [14]. En la colum-
nas C, cuyo encabezado es INA1, a partir de la la 8, se introduce
la suma ponderada s ( producto escalar de los pesos asociados a
la primera neurona por las entrabas que estn en la columna B).
Se hace lo mismo para el caso de D : INA2. Las columnas ON1A y
ON2A almacenan los valores de la funcin f(s) = 1/(1 + e
s
), apli-
cados a las columnas C y D. En la columna G se almacena la suma
ponderada de las entradas al nodo de salida.
Figura 4.12: Disposicin de los datos en la hoja de Microsoft Excel
En la columna H se almacena el error de prediccin, es decir
la diferencia entre el valor suavizado y la salida obtenida. En la
4.7. OTRAS REDES DE NEURONAS 231
columna I ( DIFCUA), los errores obtenidos en H al cuadrado. En
la columna J se efecta la operacin inversa a la suavizacin, de
esta maneras convierten los valores de salida.
El entrenamiento de la red consiste en obligar a que los valores
de salida se comporten como los de entrada( columna B). En el
ejemplo, se almacena la suma de los errores al cuadrado:

e
2
, al
nal de la columna J. Este ser el valor a minimizar. A travs del
mdulo de optimizacin SOLVER, empleando una macro, se mini-
miza

e
2
, una vez que se han introducido las opciones de tiempo,
convergencia, nmero de iteraciones y tolerancia, entre otros. Al
aplicar este proceso de optimizacin se observa que los valores del
error se van haciendo mnimos, para ello se van modicando los pe-
sos, ya que el rea de los pesos fue seleccionada como variable en
la hoja de clculo. Se recomienda realizar este ejercicio, de acuerdo
a las especicaciones del artculo.
4.7. Otras Redes de Neuronas
4.7.1. Redes de Base Radial
Las redes de base radial, son redes multicapa que se alimen-
tan hacia adelante, en donde las neuronas poseen carcter local,
para ello se emplean funciones de activacin de tipo gaussiana. Las
neuronas de la capa oculta, emplean como funcin de propagacin
recibe una norma que calcula la distancia entre las entradas a la
red y la posicin de la neurona ubicada en el centro. De esta man-
232 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
era las neuronas construyen una aproximacin local. Las neuronas
de salida realizan una combinacin lineal de las activaciones de las
neuronas ocultas.
Las funciones de base radial determinan las activaciones de las
neuronas ocultas en funcin del vector de entrada. La funcin de
base radial es la siguiente:

i
(n) =
_
[[X(n) C
i
[[
d
i
_
para i = 1, 2, . . . , m
en donde C
i
= (c
i1
, c
i2
, . . . , c
ip
) son los vectores centros de la base
radial, d
i
son nmeros reales que representan la desviacin y [[.[[ es
la norma eucldea
5
desde el vector de entrada hasta el centro C
i
.
En la gura 4.13 se presenta la arquitectura de este tipo de red.
Las funciones de base radial ms empleadas son:
Gaussiana: (r) = exp(r
2
/2)
Inversa cuadrtica: (r) = 1/(1 +r
2
)
Inversa multicuadrtica: (r) = 1/
_
(1 +r
2
)
Los mtodos de aprendizaje empleados al operar con las redes
de base radial son: el mtodo hbrido, el cual combina una fase
no supervisada, en la cual se determinan los centros y las desvia-
ciones de las neuronas ocultas y una fase supervisada en la que se
5
En un espacio Eucldeo ordinario, los vectores son representables como segmentos orientados entre
puntos de dicho espacio. Dado un vector de un espacio vectorial eucldeo, la norma de un vector se dene
como la distancia (en lnea recta) entre dos puntos A y B que delimitan dicho vector. En un espacio
eucldeo la norma de un vector coincide precisamente con el mdulo del vector. Ej.: en dos dimensiones
[[

AB[[ =
_
(a
1
b
1
)
2
+ (a
2
b
2
)
2
4.7. OTRAS REDES DE NEURONAS 233
Figura 4.13: Arquitectura de la red de base radial
calculan los pesos y los umbrales de la capa de salida y el mtodo
totalmente supervisado. Para calcular los centros ( fase supervisa-
da) se emplea un algoritmo denominado K medias y para calcular
los pesos y umbrales se utiliza el Mtodo de la Seudoinversa o Mn-
imos Cuadrados. El mtodo totalmente supervisado se basa en el
gradiente descendente.
4.7.2. Mapas Auto-organizados de Kohonen o SOM(Self Organiz-
ing Maps)
Fueron desarrolladas por Teuvo Kohonen a nales de la dcada
de 1980. Son redes neuronales que tienen una topologa de reticu-
lados, presentan alta dimensionalidad de entrada aplicada a reticu-
lados de baja dimensin de neuronas. Hay redes uni-dimensionales
semejantes a una cadena de neuronas,en la que cada neurona slo
se relaciona con sus dos vecinas. Hay reticulados bi-dimensionales,
234 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
los cuales se asemejan a un arreglo cuadrado o rectangular de neu-
ronas. Presentan aprendizaje no supervisado, en este caso no esta-
mos interesados en cul debe ser la salida de la neurona sino cul
neurona provee la salida.
Figura 4.14: Topologas de las aplicaciones auto-organizadas. Arriba(uni-dimensional),
abajo( bi-dimensional)
Los SOM estn ms relacionados con la biologa que las RNA
convencionales, tpicamente, tal como ocurre en el cerebro, se efec-
ta una aplicacin sobre un conjunto de entrada de alta dimensin
en una red de clulas de baja dimensin, para obtener un conjunto
de alta dimensin. Para ello SOM selecciona arbitrariamente var-
ios puntos de entrada y trata de cubrir el mayor nmero posible
de neuronas. En la gura (4.15) se muestra la arquitectura de la
red SOM.
Al igual que las redes de neuronas vistas, los SOM deben ser
entrenados antes de que puedan usarse. Para cada valor p selec-
4.7. OTRAS REDES DE NEURONAS 235
Figura 4.15: Arquitectura de SOM Fuente: Koua and Kraak International Journal of Health Geographics 2004 3:12
cionado de manera arbitraria del conjunto de entrada, se calcula
la distancia entre p y cada centro o neurona c
k
. Esto se hace calcu-
lando la norma [[p c
k
[[. La neurona que est mas cercana, es decir
la que produjo la menor distancia, es la que se activa. Las otras
permanecen inactivas. Los centros c
k
, al inicio se obtienen al azar
del espacio de entrada, luego cambian al aplicar la regla:

ck
= (t).h(i, k, t).(p c
k
)
en donde (t) es la tasa de aprendizaje, la cual depende del tiempo,
la funcin h depende de la topologa de la red. los valores
ck
se
suman a los centros existentes.
En la actualidad se han desarrollado variaciones de estos mode-
los auto-organizados.
236 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
4.8. Aplicaciones de las Redes de Neuronas Articiales
Las redes de neuronas articiales tienen importantes aplica-
ciones en el reconocimiento y la clasicacin de patrones, en trmi-
nos simples esto consiste en extraer informacin de objetos fsicos
o abstractos a n de establecer propiedades entre los conjuntos
de estos objetos. Esta funcin es til para el reconocimiento de la
voz, clasicacin de seales de radar, clasicacin de imgenes y
recuperacin de informacin en minera de datos. Por otra parte
son muy tiles en el desarrollo de modelos de prediccin y esti-
macin, lo cual tiene aplicaciones en la oceanografa, por ejemplo
en la prediccin de las temperaturas de las aguas de los ocanos, en
el control de mquinas y operacin de robots, en la prediccin de
series de tiempo y en la prediccin de costos. Tambin han sido em-
pleadas en optimizacin, por ejemplo para resolver problemas de
asignacin y en el problema del agente viajero. Los campos en los
que se han empleado las RNA son numerosos, entre ellos: medic-
ina (diagnsticos mdicos), gerencia, nanzas,negocios, geografa,
mercadeo y minera.
4.8. APLICACIONES DE LAS REDES DE NEURONAS ARTIFICIALES 237
Consulta en otros libros
A efecto de profundizar sus conocimientos sobre este tema, se
recomienda consultar el libro escrito por Xabier Basogain ([2]),
titulado: Redes Neuronales Articiales y sus aplicaciones, el cual
est disponible en la red Internet, en la siguiente direccin:
ocw.ehu.es/ensenanzas.../redes-neuronales...y...aplicaciones/.../libro-del-curso
Tambin se recomienda consultar el siguiente libro: A Brief Introduction of Neu-
ral Networks, de David Kriesel ( [18], el cual est disponible en la siguiente direccin:
www.dkriesel.com (est en ingls). Para comprender el Metodo de Backpropagation,
se recomienda consultar el libro Articial Intelligence: A New Synthesis, de Nils
Nilsson,[22].
238 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
Otros temas de inters:
Sistemas Inmunes Articiales: estn basados en el sistema de defensa del or-
ganismo frente a elementos patgenos. El sistema inmune natural reconoce los
elementos extraos, los categoriza e induce al desarrollo de un mecanismo de
defensa. Estas caractersticas lo hacen muy complejo y adems interesante de
estudiar, debido a su organizacin, autonoma y funcionamiento paralelo. Ac-
tualmente se emplea el modelo del sistema inmune para tratar problemas con
restricciones.
Computacin ADN(DNA Computing) es una rea interdisciplinaria de Com-
putacin semejante al Paralelismo, la cual emplea a la Biologa Molecular, la
Bioqumica y el ADN para la resolucin de problemas.
Computacin Memtica (Memetic Computing): Empleo del enfoque evolucionista,
basado en poblaciones, en el cual se separa, por perodos, el aprendizaje indi-
vidual o bsqueda local de la interaccin entre las soluciones o individuos.
Optimizacin por Difusin Evolutiva (Evolutionary Diusion Optimization):Tcnicas
inspiradas en la evolucin biolgica.
4.9. Casos de Estudio
Caso de Estudio: Algoritmo Gentico: TSP para ciudades de la India
6
Dado un conjunto de ciudades de India, cuyas distancias y costos se
presentan en una matriz. El objetivo que se persigue es hallar la ruta ms
corta, tal que se visite cada ciudad exactamente una vez, minimizando
los costos del viaje desde la primera ciudad hasta la ltima. En el cuadro
(4.2) se presentan las ciudades, a cada una de las cuales se les asocia un nmero. Una
ruta es una secuencia de nmeros enteros, por ejemplo la ruta [132465] representa
una ruta desde Mumbai hasta Calcutta, desde Calcutta hasta Nagpur, desde Nagpur
hasta Delhi, desde Delhi hasta Chennai y desde Chennai hasta Bangalore. En esta
6
ejemplo tomado de Chhavi Kashyap, www.cs.sunysb.edu/ cse634//students_presentations/ga.ppt
4.9. CASOS DE ESTUDIO 239
representacin de las rutas, la posicin importa, luego al permutar los elementos
cambian los costos(tness). Esta evaluacin es la suma de las distancias.
Ciudad cdigo
Mumbai 1
Nagpur 2
Calcutta 3
Delhi 4
Bangalore 5
Chennai 6
Cuadro 4.2: Ciudades
En el cuadro (4.3) se presentan las distancias entre ciudades, las cuales equivalen
a los costos. Por ejemplo para el Ejemplo[4 1 3 2 5 6 ], el costo total de la ruta o
tness se calcula como: 1407 + 1987 +1124 + 1049 + 331 + 2095 = 7993 Km. Debido
a que el objetivo es hallar la ruta ms corta o de costo mnimo, mientras menor sea
la distancia, mas adaptada es la solucin.
1 2 3 4 5 6
1 0 863 1987 1407 998 1369
2 863 0 1124 1012 1049 1083
3 1987 1124 0 1461 1881 1676
4 1407 1012 1461 0 2061 2095
5 998 1049 1881 2061 0 331
6 1369 1083 1676 2095 331 0
Cuadro 4.3: Matriz de distancias o Costos de 6 ciudades
Se crea una poblacin inicial P(0) al azar, en el cuadro (4.4), se muestran las
soluciones y su tness.
Como operador de seleccin se emple el torneo, es decir entre cada par de
soluciones se escoge la mejor y se coloca en el rea de cruce. Se selecciona otro par
240 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
Solucin Fitness
263451 8142
364125 8971
526431 8673
432156 6872
413256 7993
634521 8479
Cuadro 4.4: Poblacin inicial de soluciones
de soluciones y se elige igualmente la mejor, para el cruce. En la gura (4.16) se
muestran las soluciones seleccionadas para el cruce.
Figura 4.16: Seleccin por torneo
En este tipo de problemas un cruce de punto sencillo puede dar como resultado,
soluciones invlidas, como se observa en la gura (4.17)
4.9. CASOS DE ESTUDIO 241
Figura 4.17: Cruce de punto sencillo entre dos soluciones: intercambio del gen 3
Para evitar problemas como el presentado con el cruce que se ilustr, se emple
un operador denominado Recombinacin Mejorada de Arcos(Enhanced Edge Recombi-
nation). Lo que se hace es crear una tabla de arcos, para cada par de padres. Esta
tabla es una matriz de adyacencia que contiene los enlaces del par de padres a con-
siderar. En ella se almacenan todos los enlaces y si al intentar insertar algn enlace,
este est presente, se almacena con signo negativo. En la tabla se almacenan las ady-
acencias del primer par de padres. En el cuadro (4.18) se muestra el estado inicial
de la matriz. El algoritmo a aplicar es el siguiente:
Algoritmo:
1. Escoger al azar la ciudad inicial, a partir de la primera ciudad de cada uno de
los dos padres. Esta ser la ciudad actual.
2. Eliminar todas las ocurrencias de esta ciudad en la tabla (positivas o negativas).
3. Determine si la ciudad actual tiene entradas en la lista correspondiente y vaya
al paso 4. De lo contrario vaya al paso 5 .
4. Determine cul de las ciudades en la lista correspondiente a la ciudad actual
tiene el menor nmero de entradas. La ciudad con el menor nmero de entradas
ser la ciudad actual. En caso de la presencia de un nmero negativo, escoja
esta ciudad. Si hay empates, escoja la candidata al azar. Vaya al paso 2.
5. Si no quedan ciudades, nalice. En caso contrario escoja una ciudad no visitada
y vaya al paso 2.
242 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
Para construir esta tabla, primero anotamos los vecinos del nodo 1. En el padre:
432156, los vecinos del 1 son: el 2 y el 5, por lo tanto los anotamos en la primera la
de la tabla. En el padre 526431, los vecinos del 1 son: el 3 y el 5; observamos que
hay que tratar cada solucin en forma circular, ya que se trata de rutas circulares.
Como el arco (1, 5) est dos veces, asignamos un signo menos al 5. Esto se hace para
cada elemento. Seguimos con el 2, hasta llegar al 6 y obtener la tabla que se muestra
en la gura (4.18) Aplicando el algoritmo, se obtiene la solucin que se origina del
Figura 4.18: Tabla de arcos asociada a los dos padres. Iteracin 1
cruce de ambos padres. Las iteraciones siguientes se presentan a continuacin.
Figura 4.19: Iteraciones 2 y 3
4.9. CASOS DE ESTUDIO 243
Figura 4.20: Iteraciones 4 y 5
La solucin obtenida como producto del cruce l aplicar el algoritmo es 465123,
cuyo costo es 5.411. Se debe mantener una poblacin de 6 soluciones, para ello se
deben hacer 5 cruces adicionales, a n de obtener una nueva poblacin. Se har una
mutacin al azar, por lo cual se seleccionan dos soluciones obtenidas, y se intercambia
un par de aleles. Por ejemplo, si una de las soluciones seleccionadas resultara la
obtenida, la mutacin ocurrir entre los genes 2 y 6, como se muestra en la gura
(4.22).
Figura 4.21: Iteracin 6
Este problema se resolvi para un recorrido de un conjunto de 20 ciudades de
India. Las poblaciones tenan 20 individuos y se j un nmero mximo de 10.000
iteraciones. La mejor solucin se obtuvo luego de 4.876 iteraciones y el resultado
244 CAPTULO 4. OTROS TEMAS Y CASOS DE ESTUDIO
tuvo un costo de 13.170 Km.
Figura 4.22: Mutacin
Bibliografa
[1] Arrioja, N., Inteligencia Articial, Manuales Users, 2007.
[2] Basogain O.,X. Redes Neuronales Articiales y sus Aplicaciones,
ocw.ehu.es/ensenanzas.../redes-neuronales...y...aplicaciones/.../libro-del-curso
[3] Bentley, P., Evolutionary Design by Computers, Morgan Kaufmann Publishers,
Inc,1999.
[4] Beyer H.G., The Theory of Evolution Strategies,Springer-Verlag, Berlin Hei-
delberg,2001.
[5] Birattari, M., Di Caro G., Dorigo M. (2002). Toward the formal foundation of
Ant Programming. Ant Algorithms. Third International workshop, ANTS
[6] Bonabeau, E., Dorigo M., Theraulaz G. Swarm Intelligence, From Natural to
Articial Systems, Santa Fe Institute,Studies in the Sciences of Complexity,
Oxford University Press,1999.
[7] Bratton, D., Kennedy, J., Dening a Standard for Particle Swarm Optimiza-
tion, Proceedings of the 2007 IEEE Swarm Intelligence Symposium (SIS 2007).
[8] Chong, E.,

Zak, S., An Introduction to Optimization, John Wiley & Sons,1996.
[9] Coello C., Introduccin a la Computacin Evolutiva, Notas de Curso,
CINVESTAV-IPN, 2008.
[10] Darquenes, D., Implementations and Applications of Ant Colony Algorithms,
Master Thesis, Facults Universitaires Notre-Dame de la Paix, NamurMIT,
Institut dInformatique, 2005.
245
246 BIBLIOGRAFA
[11] Dorigo, M., St uzle, Tot. Ant Colony Optimization, MIT Press, 2004.
[12] De Mingo, L. F., Redes de Neuronas Articiales, Notas del Curso. Universidad
Politcnica de Madrid- Universidad Nacional Abierta, 2007.
[13] Eiben, A. E., Smith, J.E., Introduction to Evolutionary Computing. Springer,
Natural Computing Series. 2nd printing, 2007.
[14] Garca, J., Lpez, A. M.,Romero, J. E.,Garca, A. R.,Camacho, C., Cantero,
J. L., Atienza, M.,Salas, R., Hojas de Clculo para la Simulacin de Redes de
Neuronas Articiales(RNA), Q

UESTII, vol. 26, 1-2, p. 289-305, 2002.


[15] Goldberg, D., Genetic Algorithms in Search, Optimization, and Machine
Learning, Addison-Wesley,1989.
[16] Kennedy, J., Eberhart R., Swarm Intelligence, Morgan Kaufmann Publishers,
2001.
[17] Koza J.,R., Genetic Programming II, MIT Press, 1994.
[18] Kriesel D., A Brief Introduction to Neural Networks, www.dkriesel.com., 2005.
[19] Michalewicz Z., Fogel D., Genetic Algorithms + Data Structures = Evolution
Programs. Springer,1996.
[20] Michalewicz Z., Fogel D., How to solve it. Modern Heuristics. Springer,1998.
[21] Muoz, M. A. , Lpez, J. A., Caicedo , E. F., Swarm intelligence: problem-
solving societies (a review)
[22] Nilsson N., Articial Intelligence: A New Sinthesis. Morgan Kaufmann Pub-
lishers Inc., 1998.
[23] Osman, I. H., Kelly, J. P., MetaHeuristics: Theory & Applications. Kluwer
Academic Publishers. Second edition, 1997
[24] Reeves, C. R.,Modern Heuristics Techniques for Combinatorial Problems, John
Wiley & Sons, 1993.
BIBLIOGRAFA 247
[25] Russell, S. J., Norvig, P., Inteligencia Articial, Un Enfoque Moderno., Pear-
son Educacin, S. A., Madrid, 2003.
[26] Weise, T.,Global Optimization Algorithms Theory and Application, 2nd. ed.
2007, disponible en http//www.itweise.de
[27] Winston, P. H., Inteligencia Articial, Addison-Wesley Iberoamericana,1994.