Beruflich Dokumente
Kultur Dokumente
ALGORITMOS GENTICOS
GUILLERMO GARCA
PALABRAS CLAVES
Determinstica:
Formalmente, una tcnica es determinstica cuando para una misma entrada E siempre
arroja el mismo resultado R. Adicionalmente, este tipo de tcnicas dan como resultado la
solucin ptima e inmejorable, ya que garantizan de una forma u otra que todas las
soluciones factibles fueron consideradas.
Heurstica:
Una tcnica es considerada heurstica cuando cada vez que se aplica, el resultado R puede
ser distinto para la misma entrada E. La solucin encontrada por este tipo de tcnicas es
considerada buena, pero jams se puede decir que es ptima, ya qu
quee solo considera una
parte de las soluciones factibles, usando un criterio considerado correcto, ms no perfecto,
para descartar soluciones no ptimas.
Solucin
ptima
Solucin
Buena
Tcnica
determinstica
Tcnica
Heurstica
El Tipo de Problema: la forma del problema a ser resuelto. Ej: Problema de decisin, de
bsqueda, de optimizacin, etc.
Los recursos necesarios: se refieren al tiempo o espacio a ser consumidos. Ej: Tiempo
Polinomial, Espacio Logartmico, etc.
Usando estos factores, se han definido clases de complejidad computacional para clasificar
problemas: como P que contiene todos los problemas de decisin que pueden ser resueltos en
tiempos polinomiales en una mquina de Turing determinstica; o NP que contiene todos los
problemas de decisin que pueden ser resueltos en tiempos polinomiales en una mquina de Turing
no determinstica.
3
NP
NP-Completo
Cruce: Las soluciones padres generan soluciones hijas que suelen ser ms fuertes
Mutacin: Las soluciones hijas tienen caractersticas que no proviene de sus padres
Representacin
binaria
Solucin
Real
Representacin
binaria
0
1
0
1
0
0
1
1
Solucin
Real
0
1
0
1
1
0
1
0
Fig. 4 El valor binario de los caracteres ASCII suele ser una buena representacin
cromosmica de los caracteres alfanumricos
Este estudio permite verificar si la ejecucin del algoritmo gentico tiene el comportamiento
deseado, y de ser as, la solucin obtenida podr ser considerada, con confianza, como una buena
solucin, aunque no se pueda saber si es ptima o no.
Ciertos cambios han de ser realizados cuando se busca resolver problemas multiobjetivo. Este tipo
de problema, subconjunto de los problemas de optimizacin, buscan optimizar ms de un objetivo al
mismo tiempo. Los objetivos suelen ser competitivos, lo que se traduce en la existencia de una
relacin inversa entre ellos (cuando un objetivo mejora, los otros empeoran) y no hay una forma
analtica de relacionarlos. Esto hace que la solucin a este tipo de problema sea un conjunto de
soluciones, calificadas como ptimas Pareto.
g(x) = x2
h(x) = (x-2)2
Solucin No Factible: es una respuesta imposible o invlida. Son todas aquellas soluciones
que se deben descartar al momento de la resolucin del problema.
Regin No
Factible
Regin Factible
X
Regin Factible
Aunque no todos los problemas son de optimizacin, suele usarse el trmino solucin ptima para referirse
a la respuesta correcta a cualquier problema
TIPOS DE PROBLEMAS
Un detalle importante a tomar en cuenta al momento de plantear problemas es saber determinar la
naturaleza del mismo.
Ejemplo: El problema de determinar los divisores de un nmero entero X, tiene como respuesta una
lista de nmeros enteros que dividen a X sin residuo. En cambio, el problema de saber si un nmero
X es primo, tiene como respuesta un valor booleano: SI o NO. Aqu se nota una clara diferencia en el
espacio de solucin, lo que se traduce en la necesidad de definir una estrategia distinta para
solucionarlo.
A
Problema
Espacio de
Solucin
Tcnica de
resolucin
SI o NO
nmero es primo.
El espacio de solucin se puede graficar si y solo si las soluciones se pueden ordenar y tienen menos de 4
dimensiones.
Las ciencias de la computacin clasifican a los problemas computables3 segn su naturaleza en los
siguientes grupos:
PROBLEMAS DE DECISIN
Los problemas que se pueden plantear en un sistema formal4 cuya respuestas posibles son
exclusivamente SI o NO son considerados Problemas de Decisin. Bsicamente son problemas que
buscan determinar la validez de una sentencia. Fjese que una de las caractersticas fundamentales
que definen a este tipo de problemas es que su espacio de solucin es binario: SI o NO, VERDARERO
o FALSO, UNO o CERO. Esto influye a la tcnica de resolucin a aplicar, ya que usualmente se asume
que la sentencia es verdadera hasta que se demuestre lo contrario, o viceversa.
Cuando a un problema de decisin se le puede disear un procedimiento de decisin5 que le d
respuesta, se dice que el problema es decidible. En caso contrario, si no se puede conseguir un
algoritmo para buscarle respuesta, se dice que el problema es indecidible6 y esto solo se determina a
travs de demostraciones matemticas. Es importante tener claro esto, ya que de estar trabajando
en un problema sobre el cual es muy difcil disear un algoritmo, posiblemente haya que recurrir a
demostraciones matemticas para determinar que es indecidible, es decir, que no tiene solucin.
Ejemplo:
Problema de la particin. Dado un conjunto de nmeros, determinar si se puede dividir este
conjunto en dos particiones buscando que la suma de los elementos de las particiones sumen lo
mismo.
3
Los problemas computables son todos aquellos problemas que se pueden resolver mediante un algoritmo.
Un sistema formal (Lgica) est formado por en un lenguaje formal y un conjunto de reglas de inferencia que
juntos permiten derivar o concluir una expresin a partir de otras expresiones. Ejemplo: (3+1 = 4). Ntese
que podemos derivar 4 a partir de 1 y 3, gracias al lenguaje de las matemticas (nmeros y operadores) y las
reglas de inferencias que la rigen (la suma).
5 Un procedimiento de decisin es tcnica de resolucin algortmica (algoritmo) que resuelve un problema de
decisin
6 Problema de la Parada, de Alan Turing y el Problema de la Correspondencia de Emil Post son dos problemas
indecidibles muy referenciados.
4
5! 1
4! 9
7! 3
5! 13
Ntese que la respuesta a este problema es binaria: SI o NO hay particiones posibles. Este espacio
de solucin afecta el diseo de la tcnica de resolucin, en la cual se asumir que no hay particiones
hasta que se demuestre lo contrario, o viceversa.
PROBLEMAS DE BSQUEDA
Cuando el problema planteado consiste en buscar en un conjunto de entrada aquellos elementos
que cumplan con una determinada condicin (o condiciones) se est frente a un Problema de
Bsqueda. El espacio de solucin de este tipo de problemas son tuplas8 de elementos, pudiendo ser
estos nmeros o cadenas de caracteres (pertenecientes a un lenguaje). Para este caso, el espacio de
solucin no ayuda a la definicin una tcnica de resolucin, ya que aqu el foco est en estudiar la
entrada y no la salida.
Hay dos formas comunes, ms no nicas, de los problemas de bsqueda:
Bsqueda directa: Los que requieren conseguir los elementos del conjunto de entrada que
cumplan con las condiciones dadas. Este tipo de problema tienen un conjunto finito de
elementos de entrada, y la salida o respuesta es un subconjunto de elementos de dicha
entrada.
7
8
Bsqueda combinatoria: Los que requieren combinar los elementos de la entrada para
conseguir la combinacin de ellos que cumpla con las condiciones dadas. Aqu la salida no
es una lista de elementos del conjunto de entrada, sino una lista de combinaciones de ellos.
Entender estas formas es muy importante porque esto afectar considerablemente el diseo de las
tcnicas de resolucin a aplicar. En el caso de problemas de bsqueda directa, usualmente la
tcnica esta en hacer un nico recorrido ordenado por la entrada, mientras la bsqueda
combinatoria recorre la entrada varias veces, armando combinaciones que cumplan con las
condiciones.
Ejemplo:
Factorizacin prima. Dado un nmero compuesto9 N, encontrar sus factores primos.
Un nmero entero, si no es primo, puede ser expresado como un producto de nmeros menores
que l. En matemtica, a esto se le llama Factorizacin. La Factorizacin Prima es un caso particular
de factorizacin, donde se exige que los nmeros menores, llamados factores, sean primos.
$
105 3 & 5 & 7
207 3 & 3 & 23
349 349 !
Es importante entender que la entrada de este problema de bsqueda directa no es el nmero a
descomponer, sino todos los posibles divisores de este. Por ejemplo, si se quiere descomponer el
nmero 105, el conjunto de entrada al problema es el rango de nmeros enteros [1, 105]10. Dentro
de este conjunto hay que buscar los elementos (nmeros) que cumplan con la condicin (ser un
divisor de 105 y ser un nmero primo).
PROBLEMAS DE CONTEO
Cuando se necesita saber la cantidad de elementos que cumplen con determinada condicin, se est
frente a un Problema de Conteo. Usualmente se define de la siguiente manera: dado el conjunto de
9
10
Hay problemas de conteo que no tienen esta forma, como por ejemplo los problemas que se resuelven con
Teora Combinatoria.
11
PROBLEMAS DE OPTIMIZACIN
Cuando se debe maximizar o minimizar el resultado arrojado por una funcin o procedimiento, se
dice que es un problema de optimizacin. Su forma usual es una funcin, llamada funcin objetivo,
que a partir de un grupo de parmetros de entrada, arroja una nica salida. El objetivo es encontrar
los valores de los parmetros de entrada que arrojen la mejor salida (mximo o mnimo).
El espacio de solucin de este tipo de problemas est conformado por tuplas de tamao igual al
nmero de parmetros que recibe la funcin objetivo, donde cada posicin de la tupla representa un
parmetro. Este tipo de espacio de solucin es el ms sencillo de manipular porque las tuplas
funcionan como un punto en un sistema de coordenadas12. Esto es importante tenerlo claro, ya que
la respuesta a este tipo de problemas son los valores de los parmetros de entrada (una tupla), no la
salida que ellos producen. La salida de la funcin es un resultado secundario, que es consecuencia
de haber conseguido la tupla que optimiza al problema.
Salida de la
Funcin a
optimizar
Parmetro B
Parmetro A
Espacio de
Solucin
Como la resolucin de este tipo de problemas consiste en conseguir un mximo o mnimo, el espacio
de solucin debe estar bien limitado en la direccin de la optimizacin, aunque su contenido sea
infinito. Si esto no es as, siempre se podr conseguir una tupla A que genere una mejor salida que la
tupla B, lo que hace que la bsqueda de la mejor tupla sea imposible o, en el mejor de los casos,
obvia. Las fronteras del espacio de solucin se llaman restricciones, las cuales simplemente indican
que valores de los parmetros de entrada son considerados vlidos.
12
En la mayora de los casos el dominio de los parmetros es R lo que hace al espacio de solucin continuo.
Esto permite usar el Sistema de Coordenada Cartesiano para graficar dicho espacio.
12
Peso = 7
Valor = 6
Peso = 3
Valor = 6
Peso = 5
Valor = 3
Peso = 8
Valor = 14
Peso = 3
Valor = 4
Peso = 4
Valor = 4
Peso = 3
Valor = 6
Peso = 9
Valor = 5
Problema de de
Bsqueda
Problema de Conteo
Problema de
Optimizacin
Dado un conjunto de
nmeros, determinar si
se puede dividir en dos
particiones haciendo
que la suma algebraica
de los elementos de las
particiones sumen lo
mismo.
Dado un conjunto de
nmeros,
determinar
todas las formas de
dividir a dicho conjunto
en
dos
particiones,
haciendo que la suma de
los elementos de las
particiones sumen lo
mismo.
Dado un conjunto de
nmeros,
determinar
cuntas formas existen
de dividir a dicho
conjunto
en
dos
particiones, haciendo que
la suma de los elementos
de las particiones sumen
lo mismo.
Dado un conjunto de
nmeros, determinar la
divisin
en
dos
particiones que minimice
la diferencia en la suma
de los elementos de las
particiones.
Formalmente, un problema computable es reducible a otro problema computable cuando se puede usar la
tcnica de resolucin de uno en el otro para resolverlo eficientemente.
14
Problema de de
Bsqueda
Problema de Conteo
Dado un nmero N,
determinar
si
ese
nmero tiene solo dos
factores primos.
Dado un nmero N,
determinar sus factores
primos.
Dado un nmero N,
determinar la cantidad
de factores primos que lo
componen.
Problema de
Optimizacin
----------------
Problema de de
Bsqueda
Problema de Conteo
Problema de
Optimizacin
Dado un contenedor de
capacidad
C
y
elementos con peso Pi y
valor Vi, determinar si
existe un contenido
que
respete
la
capacidad
del
contenedor ( +, < C)
y cuyo valor sea igual a
R ( -, .).
Dado un contenedor de
capacidad C y elementos
con peso Pi y valor Vi,
determinar todas las
formas posibles de crear
un contenido que respete
la
capacidad
del
contenedor (
< C) y
cuyo valor sea igual a R
( /).
Dado un contenedor de
capacidad C y elementos
con peso Pi y valor Vi,
determinar
cuntas
formas existen de crear
un contenido que respete
la
capacidad
del
contenedor (
< C) y
cuyo valor sea igual a R
( /).
Dado un contenedor de
capacidad C y elementos
con peso Pi y valor Vi,
maximizar el valor del
contenido del contenedor
(*& ), respetando
que la suma de su
contenido no supere su
capacidad (
< C)
14
Puede que exista un problema de optimizacin complejo, que requiera en determinada parte resolver el
problema de la factorizacin prima, pero usualmente es un paso a realizar, no el objetivo de la optimizacin.
15
16
CLASES P, NP Y NP-COMPLETO
Una buena forma de entender las clases de complejidad es pensar en ellas como conjuntos de
problemas y por ende, hay que familiarizarse con las intersecciones y los subconjuntos, que
contienen a los problemas que pertenecen a ms de una clase.
Basados en la regla emprica que intuye que por reduccin todo problema puede expresarse como
un problema de decisin, aqu se mencionar solamente las clases que clasifican a dichos problemas.
17
Es una Tesis y no un Teorema porque es una intuicin emprica no demostrada. La forma de modelo de
cmputo general y razonable se dej abstracto intencionalmente para hacer entrar dentro de ella a todos
aquellos modelos de cmputo conocidos hasta el momento.
17
Indecidibles
Decidibles
2 en una Mquina de
18
Un problema indecidible muy usado como ejemplo por los computistas es el Halting Problem, el cual
consiste en construir un algoritmo que dado otro algoritmo O con su entrada E, pueda determinar si el
algoritmo 0 terminar de procesar a E en algn momento. Esto es equivalente a crear una aplicacin que
determine que otra aplicacin est guindada.
19 Una Mquina de Turing Determinstica es aquella que para determinado comando, siempre ejecuta una
misma y nica accin.
18
NP
P
20
La definicin original de NP es: Un problema pertenece a NP si se puede obtener una solucin en tiempo
polinomial en una Mquina de Turing No Determinstica. El detalle es que est demostrado que ambas
definiciones son equivalente.
19
NP
NP-Completo
21
Esta pregunta se le suele referenciar como P vs NP. Este planteamiento es considerado uno de los grandes
enigmas matemticos de la actualidad.
20
21
Memoria
Procesamiento
8 Kb
5 mseg.
15 Kb
3 mseg.
5Kb
10 mseg.
15 Kb
3 mseg.
43 Kb
28 mseg.
Total
22
24 La encriptacin de clave asimtrica es una forma de cifrar y descifrar datos con una clave pblica, que todo
el mundo puede conocer, y una clave privada, que solo el que descifra los datos puede conocer.
25 Tambin son aspectos importantes la demanda y oferta de los productos, pero usualmente estos aspectos
son difciles de controlar y se asumen como condiciones.
26 Esto no necesariamente es as, ya que dependiendo de la realidad de la empresa, el transporte pudiera
partir de determinado lugar y pernotar en otro, pero esto es un pequeo detalle que no cambia la complejidad
del problema
23
27
Este estudio se le suele asociar con la bsqueda del Minimum Risk Portafolio, el cul es una combinacin de
bonos y acciones que generan el mnimo riesgo.
24
Portafolio
Capacidad = 10 MM
Costo = 5
Rend. = 8
Costo = 7
Rend. = 6
Costo = 3
Rend. = 6
Costo = 5
Rend. = 3
Costo = 8 MM
Rendimiento = 14 M
Costo = 3
Rend. = 4
Costo = 4
Rend. = 4
Costo = 3
Rend. = 6
Costo = 9
Rend. = 5
28 Es importante destacar que el rendimiento de los bonos es garantizado, mientras el rendimiento de las
acciones es estimado a partir de proyecciones, pero para el estudio se suelen considerar igual o se puede
multiplicar el rendimiento de la accin por algn factor asociado a la confianza en la proyeccin.
29 Las funciones matemticas son consideras determinsticas ya que siempre arroja el mismo resultado para
cada valor posible de x. Por ejemplo: 7&! & 1 para & 2 8 7&! 4
25
BSQUEDA EXHAUSTIVA
Esta tcnica es tambin llamada bsqueda por fuerza bruta por ser la solucin ms sencilla pero la
menos inteligente. Esta tcnica consiste en comparar cada solucin factible SF con todas las otras
soluciones factibles, si no existe una solucin factible mejor, se puede decir que la solucin factible SF
es la solucin ptima SO. Como esta tcnica recorre todo el espacio de solucin varias veces, dicho
espacio no requiere estar ordenado de una manera especial.
Solucion solucionOptima = null, solucionFactible = null;
boolean esOptima;
for(int i = 0; i < espacioDeSolucion.length; i++){
solucionOptima = espacioDeSolucion[i];
esOptima = true;
for(int j = 0; j < espacioDeSolucion.length; j++){
solucionFactible = espacioDeSolucion[j];
if(solucionFactible.esMejorQue(solucionOptima)){
esOptima = false;
break;
}
}
if(esOptima){
break;
}
}
return solucionOptima;
Fig. 12 Pseudo-cdigo de una bsqueda exhaustiva para problemas de optimizacin con espacio de
solucin no ordenados.
30
Muchas de estas tcnicas se puede aplicar a problemas NP, pero los tiempos de respuestas no son
aceptables, hablndose usualmente de siglos o milenios del calendario gregoriano (el usado por el mundo
occidental) para entradas grandes.
31 A este tipo de tcnicas tambin se le llaman meta-determinsticas.
26
BSQUEDA TERNARIA
Si el espacio de solucin tiene un orden natural estrictamente ascendente y luego estrictamente
descendente (o viceversa), se puede aplicar un principio de divide y vencers para obtener la
solucin ptima. La bsqueda ternaria divide el espacio de solucin en tres reas A, B y C de igual
tamao. La idea es ir demostrando que la solucin ptima no est en las reas A C, y por ende esta
en las dos restantes. Luego, se divide las reas restantes en otras tres reas y se repite el proceso,
recursivamente, hasta que se consigue un rea no divisible en tres, lo que es igual a decir que
quedan solo dos soluciones factibles, que definitivamente una de ella es la solucin ptima32.
Descartada
A
A Estudiar
B
A Estudiar
C
Descartada
B
Crece
Decrece
Crece
Crece
Decrece
Decrece
32
Es importante destacar que esta tcnica puede tener un sinfn de variantes para adecuarlas al problema y
su espacio de solucin. La forma aqu descrita es una forma muy genrica.
27
SIMPLEX
Las tcnicas basadas en bsquedas solo trabajan correctamente con espacios de solucin ordenados
y discretos donde la cantidad de soluciones factibles es finita. Pero existen muchos problemas cuyo
espacio de solucin es ordenado pero continuo y por ende entre dos soluciones factibles A y B
cualesquiera, existen infinitas soluciones factibles.
Cuando el modelo matemtico de un problema de optimizacin, incluyendo las restricciones, est
formado exclusivamente por ecuaciones y/o inecuaciones lineales y su espacio de solucin es
continuo y ordenado se pueden aplicar tcnicas de resolucin de problemas de programacin
lineal33, como el algoritmo SIMPLEX.
Restriccin
A
Restriccin
B
Restriccin
C
Regin
Factible
33
Es importante saber que est demostrado que cualquier problema de programacin lineal pertenece a la
clase de complejidad P.
28
RAMIFICACIN Y ACOTAMIENTO
Muchos problemas de programacin lineal no pueden dar respuesta con valores con decimales,
porque no tendra sentido en la vida real. Esto hace que el espacio de solucin vuelva a ser finito,
pero agrega una dificultad: la solucin ptima ya no est sobre las restricciones, sino sobre un punto
cerca de ellas34. En la Fig. 15 se puede observar que la regin factible no es un espacio continuo,
sino un grupo de puntos. Es importante resaltar que las soluciones factibles no estn sobre las
intersecciones de las restricciones, y por ende SIMPLEX es incapaz de darle respuesta.
Restriccin
A
Restriccin
B
Restriccin
C
Un problema de programacin entera o binaria, que no es ms que un problema de programacin lineal con
restricciones especiales, pertenece a la clase NP-Completo
29
35
30
BSQUEDA TAB
La bsqueda tab es una tcnica de bsqueda local, es decir, que no busca en todo el espacio de
solucin sino que empiezan con una determinada solucin factible del espacio y se limita a buscar en
sus alrededores. Ntese que lo importante aqu est en determinar la solucin factible inicial y
definir los alrededores donde se buscar: dos de los criterios ms sencillos de usar son empezar
en una solucin factible seleccionada de forma aleatoria y definir los alrededores a travs de la
distancia cartesiana entre las soluciones factibles. Una vez parada en una solucin factible, llamada
solucin actual, las tcnicas de bsqueda local seleccionan la mejor solucin en sus alrededores.
Esto lo hacen iterativamente hasta que se cumpla una condicin de parada, usualmente un nmero
de iteraciones definido al comienzo o si no consiguen una solucin factible mejor que la solucin
actual en los alrededores.
Iteracin
Uno
Solucin
Actual
Iteracin
Dos
Iteracin
Tres
Solucin
Actual
Solucin
Actual
Iteracin
Cuatro
Solucin
Actual
36
Las tcnicas que cuentan con este tipo de mecanismos son las determinsticas
31
SIMULATED ANNEALING
Esta tcnica meta-heurstica es una implementacin especial de una bsqueda local, es decir, que su
funcionamiento principal se basa en la bsqueda de una mejor solucin que la actual en los
alrededores hasta que se cumpla una condicin de parada definida.
Simulated Annealing define su funcionamiento inspirndose en el proceso de Recocido de Acero,
tcnica empleada para disminuir los defectos en el material que consiste en calentar el acero para
luego enfriarlo controladamente. El calor hace que los tomos salgan de su posicin inicial,
cambiando a posiciones de mayor energa. Cuando la temperatura del material es alta los tomos se
mueven prcticamente de forma aleatoria pero mientras baja la temperatura del material de forma
controlada el movimiento de los tomos se hace ms selectivo, ya que el material presenta mayores
diferenciales de energa y un determinado tomo puede no conseguir cerca de l una mejor
posicin en comparacin con su posicin actual.
En la Fig. 17 se puede observar una implementacin de una bsqueda local inspirada en el proceso
de Recocido del Acero. Lo primero que se define es la temperatura actual que suele ser un valor
muy alto, y una temperatura mnima a la que se llegar cuando poco a poco se disminuya la
temperatura (como en el Recocido). Estas dos temperaturas forman parte de la condicin de parada
de esta tcnica, ya que cuando la temperatura actual sea menor o igual que la temperatura mnima,
el algoritmo se detiene37. Luego, se selecciona la solucin factible donde se comenzar la bsqueda.
La forma ms sencilla de hacerlo es seleccionando una solucin al azar. Una vez establecidas las
temperaturas y seleccionada la solucin factible inicial comienzan las iteraciones.
37
Otras condiciones de parada adicionales se pueden agregar al algoritmo para mejorar su funcionamiento,
como por ejemplo nmero mximo nmero de iteraciones.
32
9
;<;=>?@
!
A;BC;=@AD=@
actual.39 Luego de este anlisis, se disminuye la temperatura actual antes de seleccionar la prxima
solucin a estudiar. Una de las estrategias ms sencillas para disminuir la temperatura es restarle
una constante (disminucin lineal).
33
Cromosoma representa a una solucin factible del espacio de solucin del problema a
resolver. La solucin factible se codifica en una lista o arreglo de elementos, usualmente
caracteres alfanumricos, para que se asemeje vagamente a la cadena de aminocidos que
conforman al cromosoma. Esta representacin facilita el intercambio gentico que se ha de
realizar en el algoritmo gentico, sin necesidad de que este conozca la naturaleza del
problema y de sus soluciones.
Bondad o Fitness es la evaluacin del cromosoma con respecto al problema a resolver. Suele
ser un nmero real que permite comparar a los cromosomas permitiendo determinar cul
es el mejor.
Estos elementos interactuaran rigindose por un algoritmo evolutivo, que es simplemente una
secuencia de pasos que simulan los mecanismos evolutivos de la vida real contenidos en un ciclo.
Cada ciclo de ejecucin del algoritmo evolutivo se le llama generacin, lo que representa el
transcurrir del tiempo de la vida real. Los elementos de evolucin van cambiando generacin tras
generacin, segn los mecanismos evolutivos, permitiendo as tener soluciones mejores en cada
35
40 Los algoritmos genticos es un marco referencial para implementar algoritmos que solucionan problemas,
no es un algoritmo per se. Por esta razn se pueden conseguir algoritmos genticos que tengan formas
diferentes a las descritas en este trabajo, aunque en general, tendrn la misma esencia.
41 La asignacin de bondad o fitness para problemas multiobjetivo no toma en cuenta la funcin del problema
a resolver, sino la ubicacin de los individuos en el espacio de solucin.
42 Un operador de seleccin con repeticiones es aquel que puede seleccionar a un individuo ms de una vez,
por lo cual tiene ms probabilidades de cruzarse.
36
ELEMENTOS DE EVOLUCIN
Los elementos de evolucin son el componente fundamental del modelado de un problema a ser
resuelto a travs de algoritmos genticos. Representan al problema a resolver y las soluciones
factibles de dicho problema. El primer paso que ha de hacerse para aplicar algoritmos genticos es
determinar la estructura y forma de los elementos de evolucin, para luego determinar los
mecanismos de evolucin que se le aplicarn.
C
B
Solucin Factible 1
{O,A,D,C,E,B,O}
Solucin Factible 2
{O,A,C,D,E,B,O}
43
El Problema de Grafo Hamiltoniano es mejor conocido con el nombre del Problema del Agente Viajero.
La forma ms estudiada de este problema es su forma de problema de optimizacin.
38
CROMOSOMA
Una vez determinado un modelo matemtico que represente las soluciones factibles del problema a
resolver, se puede proceder a conseguir una representacin cromosmica de dichas soluciones. Lo
importante aqu es tener claro que un cromosoma, en el contexto de algoritmos genticos, es una
lista o vector de caracteres alfanumricos.
Ejemplo: Para el problema del Agente Viajero se ha determinado un modelo matemtico de un
conjunto ordenado de elementos, lo que es igual a una lista a vector, lo que nos indica que ya se
tiene una representacin cromosmica vlida.
Representacin
cromosmica
Representacin
cromosmica
O
A
D
C
E
B
O
Modelo
matemtico
{O,A,D,C,E,B,O}
O
A
C
D
E
B
O
Modelo
matemtico
{O,A,C,D,E,B,O}
J
0
R0
Q
Q1
Q0
Q0
P0
K L M
1 0 0
0 0 0
0 0 0
0 0 0
0 0 1
0 1 0
N
0
1
0
0
0
0
O
0
0U
T
0T
1T
0T
0S
Fig. 21 Solucin factible para el problema del Agente Viajero en una matriz
44
39
BONDAD O FITNESS
La bondad o fitness suele ser simplemente un nmero escalar perteneciente a los reales, que
permite comparar a dos cromosomas de forma cuantitativa. Aunque parezca la parte ms sencilla
del modelo de algoritmos genticos, este elemento es sin duda uno de los ms importantes. La
bondad o fitness de un cromosoma se determina operando dicho cromosoma con una funcin
objetivo, es decir:
V $WEV
Y!.
En la mayora de los casos, la funcin objetivo coincide con la funcin matemtica que representa el
problema a resolver, pero no siempre es as. Por ejemplo, se pueden definir funciones objetivos que
basen su clculo en algn tipo de comparacin del cromosoma evaluado con el resto de la
poblacin45.
Ejemplo: El problema del Agente Viajero busca minimizar el costo del recorrido, por lo cual una
funcin objetivo obvia y muy efectiva es aquella que dado un recorrido (cromosoma), arroje el
costo del mismo (bondad o fitness), es decir:
V H
G/ !
INDIVIDUO
Es simplemente una estructura de datos que permite almacenar el cromosoma y a su bondad o
fitness. Lo importante de considerar tener esta estructura bien definida y separada de las dems es
que se pueden agregar otras caractersticas al individuo, pero esta estructura no es considerada
parte fundamental de los algoritmos genticos, ya que no es necesaria su existencia para su
funcionamiento.
Ejemplo: se podra almacenar en el individuo algn mecanismo y/o dato que le permita decir si se
quiere aparear o no con determinado individuo, lo que sera utilizado por el operador de eleccin.
Este tipo de consideraciones son muy experimentales y no se suelen ver con frecuencia en
implementaciones clsicas de algoritmos genticos.
45
40
POBLACIN
Es la lista de individuos que generacin tras generacin ir cambiando de contenido, es decir, de
individuos. Esta estructura debe permitir agregar y eliminar individuos fcilmente, ya que es el
objetivo principal de su existencia.
Poblacin
Ind. 1
Ind. 2
Ind. N
Bondad
...
Ind. 3
Bondad
Cromo.
Bondad
Cromo.
Bondad
Cromo.
Cromo.
MECANISMOS DE EVOLUCIN
Aunque los algoritmos genticos sean una meta-heurstica, la experiencia ha demostrado que es
importante adecuar o entonar los mecanismos de evolucin para cada problema basndose en
pequeos experimentos de tipo ensayo y error. En otras palabras, se hace una configuracin
inicial de los mecanismos de evolucin y luego se van haciendo pequeos ajustes que son probados
con corridas experimentales, buscando evitar consumir muchos recursos computacionales46.
46Se
deben disear pruebas experimentales que consuman mucho menos recursos que los que se invertir en
resolver el problema definido.
41
EVALUACIN DE LA POBLACIN
Ms que un mecanismo, se podra decir que esto es un paso o actividad que hay que ejecutar para
poder aplicar otros mecanismos evolutivos de forma determinstica, principalmente el mecanismo
de seleccin. La evaluacin de la poblacin consta simplemente en aplicar la funcin objetivo a cada
solucin factible representada en la poblacin. Esto permite colocar un escalar a cada individuo,
hacindolo comparable por su calidad (contextualizada en el problema a resolver). Este paso suele
separarse de todos los dems para que la evaluacin de la poblacin pueda hacerse de forma
individual (solo el cromosoma) o global (cromosoma y/o relacin con los otros individuos de la
poblacin).
Muchas implementaciones de algoritmos genticos no tienen este paso separado, ya que la bondad
o fitness suele ser simplemente una funcin que depende del cromosoma, por lo cual al momento
de crearse el individuo se puede calcular su bondad. Pero hay otras asignaciones de bondad o
fitness ms complejas que no dependen solo del cromosoma., como por ejemplo, se puede tener una
47 Greedy Algorithms son tcnicas de resolucin de problemas que buscan soluciones optimas movindose de
una solucin actual SA a aquella solucin factible vecina que genere el menor costo (o mxima ganancia). Se le
conoce con el nombre avaro, ya que esta tcnica toma siempre la opcin ms rentable, sin prever las
consecuencias de esa decisin.
42
OPERADOR DE SELECCIN
Este mecanismo de evolucin es el encargado de simular la teora de seleccin natural darwiniana.
Segn esta teora, solo los individuos ms aptos sobreviven y tienen descendencia, por lo cual la
prxima generacin ser una mezcla de muchas caractersticas genticas buenas, mejorando as,
generacin tras generacin, a la poblacin.
Para poder realizar esta seleccin de forma determinstica y por ende justa, los algoritmos
genticos usan la bondad o fitness como factor de comparacin. Los individuos ms aptos sern
aquellos cuya bondad o fitness sea superior en comparacin al del resto de la poblacin. Los
individuos considerados aptos por este operador, tendrn el derecho a cruzarse si el operador de
eleccin le consigue pareja, mientras que los individuos no aptos simplemente son descartados y no
son pasados al operador de eleccin. Como los individuos seleccionados por este operador forman
un subconjunto de la poblacin, una de las decisiones a tomar es el tamao de este subconjunto, y
otra es si se permiten individuos repetidos o no.
El tamao del subconjunto afecta considerablemente la diversidad de la poblacin resultante, ya
que si el subconjunto es muy pequeo la descendencia ser muy parecida, lo que ir disminuyendo
la diversidad muy rpido generacin tras generacin. Si el algoritmo converge a un valor
rpidamente, lo ms seguro es que se quede atrapado en un valor subptimo que quiz se pudiera
haber superado de haber habido ms individuos con caractersticas diferentes que sacaran a la
poblacin de esa tendencia subptima. Si el subconjunto es muy grande, el operador tender a
comportarse igual a una seleccin aleatoria de individuos, aumentando la diversidad rpidamente
generacin tras generacin. El problema es que si la diversidad aumenta bruscamente, el algoritmo
gentico nunca converger a un valor, por lo cual no se conseguir ni si quiera un valor subptimo
claro49.
Se dice que un operador de seleccin tiene repeticiones cuando dicho operador puede seleccionar a
un mismo individuo ms de una vez, es decir, que aparece repetido en el subconjunto de individuos
48
43
individuos aleatoriamente entre los N mejores individuos, lo que mejora la diversidad y permite
repeticiones, pero ha tenido un mal rendimiento experimental en la mayora de los casos.
Estos experimentos han llevado a una especie de nocin general de que todos los algoritmos de
seleccin determinsticos y la seleccin aleatoria afectan muy bruscamente la diversidad y por
ende son operadores ineficaces. Esto hizo que la atencin se centrara en algoritmos heursticos de
seleccin, algunos agregan valor a la seleccin aleatoria mientras otros se basan en probabilidades.
Torneo
Una de los operadores de seleccin ms utilizados es el Torneo. Este operador consiste en simular
enfrentamientos de bondad o fitness en un torneo jerrquico entre subconjuntos de individuos de
la poblacin, donde el vencedor de dicho torneo ser el seleccionado. Se deben ejecutar tantos
torneos como individuos se quieran seleccionar. El detalle importante de este operador es la
organizacin de los torneos.
Si el tamao del subconjunto del torneo es muy grande, se podrn organizar pocos torneos
diferentes, lo que resultar que siempre el mismo grupo de individuos sea el que gane los torneos.
50
No se debe descartar a los operadores de seleccin sin repeticiones, ya que estos pueden funcionar muy
bien para ciertos problemas. Usualmente la decisin de permitir o no las repeticiones se hace basndose en
pruebas experimientales y comparacin de resultados de ambas tcnicas sobre el problema a resolver.
44
45
OPERADOR DE ELECCIN
Muchos algoritmos genticos no formalizan la separacin de este operador, ya que la
implementacin clsica de apareamiento es la seleccin aleatoria de parejas entre los individuos
seleccionados. Algunos lo hacen formar parte del operador de seleccin, otros lo hacen formar
parte del operador de cruce, pero si este paso no se separa de los dems, se puede estar perdiendo
46
OPERADOR DE CRUCE
Encargado de la recombinacin gentica y de la creacin de la descendencia, el operador de cruce
es uno de los ms importantes mecanismos de evolucin que hacen que los algoritmos genticos
gentic
funcionen. Por cada pareja definida por el operador de eleccin, el operador de cruce toma los
cromosomas de una pareja y crear nuevas combinaciones a partir de los cromosomas padres. Estas
nuevas combinaciones genticas formarn parte de unos nuevos in
individuos
dividuos llamados descendencia.
Se pueden crear tantos hijos como combinaciones genticas creadas, pero la mayora de las
implementaciones solo generan solo dos individuos por cruce.
Padres
Padres
Hijos
Hijos
Un punto
Dos puntos
Padres
Hijos
Cortar y empalmar
Fig. 25 Operadores de Cruce
47
OPERADOR DE MUTACIN
Uno de los operadores ms sencillos, pero increblemente importante. Su responsabilidad es
mantener la diversidad en la poblacin agregando un poco de aleatoriedad en los cromosomas de
los individuos de la descendencia. Empricamente se ha demostrado que un algoritmo gentico sin
mutacin converge muy rpido y por ende tiende a estancarse en malas soluciones51.
La mutacin consiste en tomar cada cromosoma de la descendencia y cambiarlo en un porcentaje
muy, pero muy pequeo. El mejor porcentaje a utilizar no es fcil de determinar, usualmente se
define a travs de una entonacin basada en corridas consecutivas del algoritmo gentico con el
problema a resolver, y quedndose con la mutacin que genere mejores resultados.
En el caso de cromosomas binarios, el cambio a realizar con la mutacin es muy sencillo, ya que
consiste intercambiar unos (1) por ceros (0) y viceversa. Pero en otro tipo de representacin
cromosmica este cambio puede que no sea tan obvio y se requiera definir un algoritmo especfico
para realizarlo.
Como la mutacin afecta la diversidad, afecta la efectividad del algoritmo gentico: Si hay mucha mutacin
aumenta la diversidad y si hay muy poca mutacin la diversidad disminuye. La idea se centra en conseguir la
mutacin que mantenga la diversidad.
48
OPERADOR DE TRUNCAMIENTO
Muchas decisiones tomadas en los otros mecanismos de evolucin pueden producir que la
poblacin crezca. Por ejemplo, si el operador de cruce genera cuatro descendientes de dos padres,
la prxima generacin se duplica en tamao. Otro posible caso es que se decida que los padres no
salen de la poblacin al tener a su descendencia, lo que hace que en cada generacin la poblacin se
duplique. Este crecimiento se traduce en consumo de recursos computacionales, lo que
definitivamente es un problema que se debe solucionar si se desea que el algoritmo gentico
funcione correctamente en una computadora.
El operador de truncamiento es simplemente un mecanismo de control de crecimiento de la
poblacin. Simplemente se le coloca un tamao mximo a la poblacin y si este tamao mximo es
superado, el operador de truncamiento elimina individuos de la poblacin hasta que se tenga una
poblacin de tamao igual y menor al mximo establecido. Este operador no debera afectar el
rendimiento del algoritmo gentico, por lo cual hay que buscar alejarse de los extremos al momento
de escoger a que individuos eliminar. Por ejemplo, si se escoge eliminar a los peores individuos de
la poblacin, se pudiera estar afectando seriamente a la diversidad, mientras que el muestreo
aleatorio debera funcionar equitativamente, eliminando a tantos individuos malos como buenos.
49
DOMINANCIA
Esta es una de las formas ms sencillas de comparar tcnicas metaheursticas ya que permite
comparar las soluciones obtenidas en cientos o miles de corridas tomando en cuenta a todas las
soluciones, no solo a las mejores. El nico detalle que tiene es que permite comparar solo a dos (2)
tcnicas a la vez52.
Lo primero que se debe hacer es ejecutar la tcnica de resolucin unos cientos o miles de veces y
almacenar para cada corrida la mejor solucin alcanzada en un conjunto llamando mejores
soluciones obtenidas. Una vez obtenidos los conjuntos de mejores soluciones de las dos tcnicas a
comparar, llamadas aqu tcnicas A y B, se procede a calcular la dominancia, que se hace en los dos
sentidos soluciones de A que dominan a las soluciones de B y viceversa.
Para cada solucin i de A se contabiliza cuantas soluciones de B son peores. Esta cantidad
representa cuantas soluciones de B son dominadas por i. Esta cantidad de soluciones dominadas se
almacena en un acumulador que llamaremos cantidad de soluciones dominadas. Luego se hace el
mismo anlisis de forma inversa y se comparan las soluciones dominadas53.
WG
F
Z WG
F!, I!
I
WG
I
Z WG
I!, F!
F
] ^WG
([\
([\
F
I
_ WG ` 8 F I
I
F
52 La dominancia es una comparacin transitiva, as que se pueden hacer comparaciones no directas entre
varias tcnicas basndose en este concepto.
53 La forma ms elegante de hacer la comparacin de dominancia es llevando las soluciones dominadas a
50
n
o
glhp(mlm mi cdefg(dhic q
cdefg(dhicjdk(hlmlc
CONVERGENCIA Y DIVERSIDAD
La convergencia es un estudio que consiste en determinar para cada generacin cual es el valor de
la funcin objetivo ms representativo
ntativo de la poblacin y graficarlo. Esto da como resultado una
curva que indica cmo va mejorando este valor representativo generacin tras generacin.
El valor representativo es la medida de tendencia central (convergencia), determinada a travs de
un anlisis exploratorio de la poblacin. Este anlisis tambin nos permite determinar la medida de
dispersin (diversidad), indicador que describe que tan dispersos estn los resultados en el espacio
de solucin.. Por ejemplo, si el anlisis exploratorio nos lo indica, el promedio aritmtico de todas
las soluciones puede ser el valor representativo, y la desviacin estndar la medida de dispersin.
51