Anda di halaman 1dari 33

1.

UNIVERSIDAD NACIONAL DE TRUJILLO


ECUELA DE INGENIERA DE SISTEMAS

DOCENTE:
Ing. LUIS TENORIO
CURSO:
INTELIGENCIA ARTIFICIAL
TEMA:
COMPUTACION EVOLUTIVA

ALUMNOS:

CARDENAS ROJAS, JUAN CARLOS


ESPEJO ALAYO, KEVIN
NUEZ REYNA, JIM
PERALTA MEDINA, FABIO

CICLO:
VIII

TRUJILLO PER
2016

1
Introduccin

Desde los aos 1930s, algunos investigadores comenzaron a ver el proceso de evolucin de
las especies como un proceso de aprendizaje, mediante el cual la naturaleza dota a las
especies de diferentes mecanismos, buscando hacerlas ms aptas para sobrevivir.
Partiendo de estos preceptos no resulta entonces difcil percatarse de que pueden
desarrollarse algoritmos que traten de resolver problemas de bsqueda y optimizacin
guiados por el principio de la supervivencia del ms apto que postulara Charles Darwin en
su famosa (y controversial) teora de la evolucin de las especies. Dichos algoritmos son
denominados, hoy en da, algoritmos evolutivos y su estudio conforma la computacin
evolutiva, que es el tema del que se ocupa este artculo.

Los algoritmos evolutivos, en sus diferentes variantes, han resultado muy exitosos en la
solucin de una amplia gama de problemas del mundo real. Nuestro objetivo principal
es motivar el inters de los especialistas en economa y finanzas por utilizar algoritmos
evolutivos. Para ello, adems de describir brevemente su funcionamiento y sus ventajas
principales, proporcionamos algunos ejemplos de su uso en economa y finanzas.

2
1. Historia de la Computacin Evolutiva

La evolucin natural fue vista como un proceso de aprendizaje desde los 1930s. Walter
D. Cannon, por ejemplo, plantea en su libro The Wisdom of the Body que el proceso
evolutivo es algo similar al aprendizaje por ensayo y error que suele manifestarse en los
humanos. El clebre matemtico ingls Alan Mathison Turing reconoci tambin una
conexin obvia entre la evolucin y el aprendizaje de mquina en su artculo (considerado
hoy clsico en Inteligencia Artificial) titulado Computing Machinery and Intelligence.

A fines de los 1950s y principios de los 1960s, el bilogo Alexander S. Fraser public
una serie de trabajos sobre la evolucin de sistemas biolgicos en una computadora
digital, dando la inspiracin para lo que se convertira ms tarde en el algoritmo gentico. El
trabajo de Fraser incluye, entre otras cosas, el uso de una representacin binaria, de un
operador de cruce probabilstico, de una poblacin de padres que generaban una nueva
poblacin de hijos tras recombinarse y el empleo de un mecanismo de seleccin. Adems,
Fraser estudi el efecto
1 2
de la epstasis , la segregacin , los porcentajes de cruce y varios otros mecanismos
biolgicos que hoy son de sumo inters para la comunidad de computacin evolutiva. Su
trabajo de ms de
10 aos en este tema se resume en un libro titulado Computer Models in Genetics. De tal
forma, puede decirse que el trabajo de Fraser anticip la propuesta del algoritmo gentico
simple de John Holland y la de la estrategia evolutiva de dos miembros de Hans-Paul
Schwefel. Fraser adems lleg a utilizar el trmino aprendizaje para referirse al
proceso evolutivo efectuado en sus simulaciones, y anticip el operador de inversin, la
definicin de una funcin de aptitud y el anlisis estadstico de la convergencia del proceso
de seleccin.

A lo largo del siglo XX, diversos investigadores desarrollaron algoritmos inspirados en la


evolucin natural para resolver diferentes tipos de problemas. Por ejemplo, R. M.
Friedberg fue pionero en la tarea de evolucionar programas de computadora. El trabajo
de Friedberg consisti en generar un conjunto de instrucciones en lenguaje mquina que

3
pudiesen efectuar ciertos clculos sencillos (por ejemplo, sumar dos nmeros). Fogel
considera que Friedberg fue el primero en enunciar de manera informal los conceptos de

paralelismo implcito y esquemas, que popularizara Holland en los 1970s.

Friedberg utiliz un algoritmo de asignacin de crdito para dividir la influencia de


diferentes instrucciones individuales en un programa. Este procedimiento fue comparado con
una bsqueda puramente aleatoria, y en algunos casos fue superado por sta. Tras ciertas
modificaciones al procedimiento, Friedberg fue capaz de superar a una bsqueda
totalmente aleatoria, pero no pudo resolver satisfactoriamente el problema de
estancamiento (stagnation, en ingls) de la poblacin que se le present y por ello
fue cruelmente criticado por investigadores de la talla de Marvin Minsky, quien en un
artculo de 1961 indic que el trabajo de Friedberg era una falla total. Minsky atribuy el
fracaso del mtodo de Friedberg a lo que l denomin el fenmeno de mesa, segn el cual
el estancamiento de la poblacin se deba al hecho de que slo una instruccin del programa
era modificada a la vez, y eso no permita explorar una porcin significativa del espacio de
bsqueda. Aunque estas observaciones no son del todo precisas, el problema del
estancamiento sigui siendo el principal inconveniente del procedimiento de Friedberg,
aunque Fogel considera que su trabajo precedi el uso de los sistemas de clasificadores
que popularizara varios aos despus John Holland.

George J. Friedman fue tal vez el primero en proponer una aplicacin de tcnicas evolutivas
a la robtica: su tesis de maestra propuso evolucionar una serie de circuitos de control
similares a lo que hoy conocemos como redes neuronales, usando lo que l denominaba
retroalimentacin selectiva, en un proceso anlogo a la seleccin natural. Muchos
consideran a este trabajo como el origen mismo de la denominada robtica evolutiva,
que es una disciplina en la que se intentan aplicar tcnicas evolutivas a diferentes aspectos
de la robtica (planeacin de movimientos, control, navegacin, etc.). Desgraciadamente,
las ideas de Friedman nunca se llevaron a la prctica, pero aparentemente fueron
redescubiertas por algunos investigadores varios aos despus.

Los circuitos de control que utilizara Friedman en su trabajo modelaban a las neuronas
humanas, y eran capaces de ser excitadas o inhibidas. Adems, era posible agrupar estos
circuitos simples (o neuronas) para formar circuitos ms complejos. Lo interesante es que
4
Friedman propuso un mecanismo para construir, probar y evaluar estos circuitos de forma
automtica, utilizando mutaciones aleatorias y un proceso de seleccin. Este es
probablemente el primer trabajo en torno a lo que hoy se denomina hardware evolutivo.

Friedman tambin especul que la simulacin del proceso de reproduccin sexual (o cruza)
y el de mutacin nos conducira al diseo de mquinas pensantes, remarcando
especficamente que podran disearse programas para jugar al ajedrez con este mtodo.

Hans Joachim Bremermann fue tal vez el primero en ver a la evolucin como un proceso de
optimizacin, adems de realizar una de las primeras simulaciones de la evolucin
usando cadenas binarias que se procesaban por medio de reproduccin (sexual o asexual),
seleccin y mutacin, en lo que sera otro claro predecesor del algoritmo gentico.
Bremermann y Bremermann y Rogson utilizaron una tcnica evolutiva para problemas de
optimizacin con restricciones lineales. La idea principal de su propuesta era usar un
individuo factible el cual se modificaba a travs de un operador de mutacin hacia un
conjunto de direcciones posibles de movimiento. Al extender esta tcnica a problemas ms
complejos, Bremermann y Rogson utilizaron adems operadores de recombinacin
especializados.

5
EL ORIGEN DE LA COMPUTACION EVOLUTIVA SE
EXPLICA EN EL SIGUIENTE ESQUEMA

6
2. Definicion:

La computacin evolutiva (en adelante CE) es una de las ramas de la Inteligencia Artificial que
se aplica para la resolucin de problemas de optimizacin combinatoria. La CE est inspirada en
los mecanismos de evolucin biolgica propuestos por Darwin, Medel y Lamark. Sin entrar
mucho en detalle sobre los estudios que hicieron estos cientficos, solo vamos a mencionar
brevemente lo que propusieron. Darwin propuso la Seleccin natural de los ms adaptados,
Medel propuso la Teora corpuscular de la herencia y Lamark propuso la Herencia de
caracteres adquiridos.

7
3. Principales paradigmas de la Computacin
Evolutiva:

El trmino computacin evolutiva o algoritmos evolutivos engloba una serie de tcnicas


inspiradas en los principios de la teora Neo-Darwiniana de la evolucin natural. En trminos
generales, para simular el proceso evolutivo en una computadora se requiere:

Codificar las estructuras que se replicarn (O sea, una estructura de datos que se utilice
para almacenar a un individuo.
Operaciones que afecten a los individuos (tpicamente, se usa cruce y mutacin).
Una funcin de aptitud que nos indique qu tan buena es una solucin con respecto a las
dems.
Un mecanismo de seleccin que implemente el principio de supervivencia del ms
aptode la teora de Darwin.

Aunque hoy en da es cada vez ms difcil distinguir las diferencias entre los distintos tipos de
algoritmos evolutivos existentes, por razones sobre todo histricas, suele hablarse de tres
paradigmas principales:

Programacin Evolutiva
Estrategias Evolutivas
Algoritmos Genticos
Programacion Genetica

Cada uno de estos paradigmas se origin de manera independiente y con motivaciones muy
distintas, por lo que procederemos a describir brevemente a cada uno de ellos de forma
totalmente independiente.

8
Figura 1: Autmata finito de 3 estados. Los smbolos a la izquierda de / son de
entrada y los de la derecha son de salida. El estado inicial es C.

3.1. Programacin
Evolutiva

Lawrence J. Fogel propuso en los 1960s una tcnica denominada Programacin Evolutiva, en
la cual la inteligencia se ve como un comportamiento adaptativo. La Programacin
Evolutiva enfatiza los nexos de comportamiento entre padres e hijos, en vez de buscar emular
operadores genticos especficos (como en el caso de los Algoritmos Genticos).

El algoritmo bsico de la Programacin Evolutiva es el siguiente:

Generar aleatoriamente una poblacin inicial.


Se aplica mutacin.
Se calcula la aptitud de cada hijo y se usa un proceso de seleccin mediante
torneo (normalmente estocstico) para determinar cules sern las soluciones que se
retendrn.

La Programacin Evolutiva es una abstraccin de la evolucin al nivel de las especies, por lo que
no se requiere el uso de un operador de recombinacin (diferentes especies no se pueden cruzar
entre s). Asimismo, usa seleccin probabilstica. Resulta un tanto ms fcil entender la
Programacin Evolutiva analizando un ejemplo como el que se muestra en la figura 1. La tabla
de transiciones de este autmata es la siguiente:

En este autmata pueden ahora aplicarse cinco diferentes tipos de mutaciones: cambiar un
smbolo de salida, cambiar una transicin, agregar un estado, borrar un estado y cambiar un
simbolo de salida.
El objetivo es hacer que el autmata reconozca un cierto conjunto de entradas (o sea, una cierta
expresin regular) sin equivocarse ni una sola vez.

Algunas aplicaciones de la Programacin Evolutiva son:

Prediccin
Generalizacin
Juegos
Control automtico
Problema del viajero
Planeacin de rutas
Diseo y entrenamiento de redes neuronales
Reconocimiento de patrones.
3.2. Estrategias
Evolutivas

Las Estrategias Evolutivas fueron desarrolladas en 1964 en Alemania para resolver problemas
hidrodinmicos de alto grado de complejidad por un grupo de estudiantes de ingeniera
encabezado por Ingo Rechenberg.

La versin original (1+1)-EE usaba un solo padre y con l se generaba un solo hijo. Este hijo se
mantena si era mejor que el padre, o de lo contrario se eliminaba (a este tipo de seleccin se le
llama extintiva, porque los peores individuos tienen una probabilidad cero de ser seleccionados).

En la (1+1)-EE, un individuo nuevo es generado usando:


x t 1 x t N (0, )
donde t se refiere a la generacin (o iteracin) en la que nos encontramos, y N(0,) es un vector
de nmeros Gaussianos independientes con una media cero y desviacin estndar .

Rechenberg introdujo el concepto de poblacin, al proponer una estrategia evolutiva llamada


( +1)-EE, en la cual hay padres y se genera un solo hijo, el cual puede reemplazar al peor
padre de la poblacin (seleccin extintiva).

Schwefel introdujo el uso de mltiples hijos en las denominadas (+)-EEs y (,)-EEs. La


notacin se refiere al mecanismo de seleccin utilizado:
En el primer caso, los mejores individuos obtenidos de la unin de padres
e hijos sobreviven.
En el segundo caso, slo los mejores hijos de la siguiente generacin sobreviven.

Rechenberg formul una regla para ajustar la desviacin estndar de forma determinista durante
el proceso evolutivo de tal manera que el procedimiento convergiera hacia el ptimo. Esta se
conoce como la regla del xito 1/5, que indica:
La razon entre mutaciones exitosas y el total de mutaciones debe ser de 1/5, si es mayor
entonces debe incrementarse la desviacin estndar. Si es menor, entonces debe decrementarse.
Formalmente:
(t n) / c si p s 1 / 5

(t ) (t n) * c si p s 1/ 5

(t n) si p s 1 / 5

donde n es el nmero de dimensiones, t es la generacin, ps es la frecuencia relativa de


mutaciones exitosas medida sobre intervalos de por ejemplo 10n individuos, y c =0.817
(este valor fue derivado tericamente por Schwefel). (t) se ajusta cada n
mutaciones.
Los operadores de recombinacin de las Estrategias Evolutivas pueden ser:

Sexuales: el operador acta sobre 2 individuos elegidos aleatoriamente de la


poblacin de padres.
Panmticos: se elige un solo padre al azar, y se mantiene fijo mientras se elige al azar un
segundo padre (de entre toda la poblacin) para cada componente de sus vectores.

Algunas aplicaciones de las Estrategias Evolutivas son:

Problemas de rutas y redes


Bioqumica
ptica
Diseo en ingeniera
Magnetismo
3.3. Algoritmos
Genticos

Los Algoritmos Genticos (denominados originalmente planes reproductivos genticos) fueron


desarrollados por John H. Holland a principios de los 1960s, motivado por su inters en resolver
problemas de aprendizaje de mquina.

El algoritmo gentico enfatiza la importancia de la cruza sexual (operador principal) sobre el de


la mutacin (operador secundario) y usa seleccin probabilstica. El algoritmo bsico es el
siguiente:

Generar (aleatoriamente) una poblacin inicial.


Calcular la aptitud de cada individuo.
Seleccionar (probabilsticamente) con base a la aptitud.
Aplicar operadores genticos (cruza y mutacin) para generar la siguiente poblacin.
Ciclar hasta que cierta condicin se satisfaga.
La representacin tradicional es la binaria, tal y como se ejemplifica en la figura 2. A la cadena
binaria se le llama cromosoma. Al bloque de bits que codifica una sola variable del problema
se le denomina gen y al valor dentro de cada posicin cromosmica se le llama alelo.

Figura 2: Ejemplo de la codificacin (mediante cadenas binarias) usada


tradicionalmente con los Algoritmos Genticos.

Para poder aplicar el algoritmo gentico se requiere de los 5 componentes bsicos siguientes:

Una representacin de las soluciones potenciales del problema.


Una forma de crear una poblacin inicial de posibles soluciones (normalmente un
proceso aleatorio).
Una funcin de evaluacin que clasifique las soluciones en trminos de su aptitud.
Operadores genticos que alteren la composicin de los hijos que se producirn para las
siguientes generaciones (normalmente cruce sexual y mutacin).
Valores para los diferentes parmetros que utiliza el algoritmo gentico (tamao de la
poblacin, probabilidad de cruza, probabilidad de mutacin, nmero mximo de
generaciones, etc.)

Bajo representacin binaria, suelen usarse 3 tipos principales de cruce: de un punto (ver figura
3), de dos puntos (ver figura 4) y uniforme (ver figura 5).
Figura 3: Cruce de un punto.
En la Figura
5 se observa la cruza uniforma con una probabilidad de
50%. Ntese que la mitad de los bits del Hijo 1 se tomaron
del Padre 1 y la otra mitad, del Padre 2. El Hijo 2 obtiene
sus bits de manera opuesta a como las obtiene el Hijo 1.

Figura 5: Cruce uniforme.


Algunas aplicaciones de los Algoritmos Genticos son las siguientes:

Optimizacin (estructural, de topologas, numrica, combinatoria, etc.)


Aprendizaje de mquina (sistemas clasificadores)
Bases de datos (optimizacin de consultas)
Reconocimiento de patrones (por ejemplo, imgenes o letras)
Generacin de gramticas (regulares, libres de contexto, etc.)
Planeacin de movimientos de robots
Prediccin.
3.4. Programacion
Genetica

En la inteligencia artificial, la programacin gentica (GP, de sus siglas en ingls: Genetic


Programming) es una metodologa basada en los algoritmos evolutivos e inspirada en
la evolucin biolgica para desarrollar automticamente programas de computadoras que
realicen una tarea definida por el usuario. Es una especializacin de los algoritmos
genticos (GA, de sus siglas en ingls: Genetic Algorithms) donde cada individuo es un
programa de computadora. Es una tcnica de aprendizaje automtico utilizada para optimizar
una poblacin de programas de acuerdo a una funcin de ajuste o aptitud (en ingls: fitness
function) que evala la capacidad de cada programa para llevar a cabo la tarea en cuestin.

Historia:
En 1954, GP se inici con los algoritmos evolutivos utilizado por primera vez por Nils Aall
Barricelli y aplicados a simulaciones evolutivas. En 1960 y principios de 1970, los algoritmos
evolutivos fueron reconocidos como mtodos de optimizacin. Ingo Rechenberg y su grupo
fueron capaces de resolver problemas complejos de ingeniera a travs de estrategias de
evolutivas como lo documenta en su tesis PhD en 1971 y el libro resultante de 1973. John
Holland fue muy influyente durante la dcada de 1970.
En 1964, Lawrence J. Fogel, uno de los primeros profesionales de la metodologa de GP, aplica
los algoritmos evolutivos para el problema de descubrir autmatas de estado finito. Ms tarde, el
trabajo relacionado con GP surgi la comunidad de los sistemas de clasificacin basado en
aprendizaje, la cual desarroll un conjunto de reglas que describen las polticas ptimas para
los procesos de decisin de Markov. La primera declaracin de la moderna GP "basado en
rboles" (es decir, procedimiento con una estructuracin basada en rboles y operadores
adecuadamente definidos en GA) fue dada por Nichael L. Cramer (1985). Este trabajo fue
posteriormente ampliado en gran medida por John R. Koza., un proponente principal de GP que
ha sido pionero en la aplicacin de GP en la optimizacin de diversos y complejos problemas de
bsqueda.2Gianna Giavelli, un estudiante de Koza, luego fue el pionero en el uso de GP como
una tcnica para modelar la expresin del ADN.
En la dcada de los 1990's, GP se utiliz principalmente para resolver problemas relativamente
simples, ya que es muy costoso computacionalmente. Recientemente, GP ha producido
novedosos y excelentes resultados en reas como la computacin cuntica, diseo electrnico,
juegos, ordenamiento y bsqueda, debido a las mejoras en la tecnologa GP y la crecimiento
exponencial de la potencia de la CPU. Estos resultados incluyen la reproduccin o el desarrollo
de varias invenciones posteriores al ao 2000. GP tambin se ha aplicado a los programas de
computadoras, as como hardware evolutivo.
El desarrollo de una teora de la GP ha sido muy difcil, por lo que en la dcada de 1990's GP fue
considerado una especie de paria entre las tcnicas de bsqueda.

Representacin
Una funcin representada como una estructura de rbol.

GP desarrolla programas informticos, tradicionalmente representados en la memoria


como estructuras de rboles. Los rboles pueden ser fcilmente evaluados de forma recursiva.
Cada nodo del rbol tiene una funcin como operador y cada nodo terminal tiene un operando,
por lo que las expresiones matemticas son fciles de evolucionar y evaluar. As,
tradicionalmente GP favorece el uso de lenguaje de programacin que, naturalmente, introduce
las estructuras de rbol (por ejemplo, Lisp; otros lenguajes de programacin funcionales tambin
son adecuados).
Representaciones que no utilizan rboles se han sugerido y aplicado con xito, tales
como programacin gentica lineal, la cual se adapta a los tradicionales lenguajes imperativos.
El software comercial de GP Discipulus utilizan la induccin automtica de cdigo mquina
binario ("AIM") para lograr un mejor rendimiento. GP usa multigrafos dirigidos para generar
programas que explotan al mximo la sintaxis de un dado lenguaje ensamblador.

Operadores genticos:
Los principales operadores usados en algoritmos evolutivos as como GP son cruzamiento y
mutacin.

Cruzamiento:
El cruzamiento es aplicado a un individuo mediante simples intercambios entre uno de sus nodos
por otro nodo de otro individuo de la poblacin. Con una representacin basada en rboles, la
sustitucin de un nodo implica la sustitucin de toda la rama. Esto aade una mayor efectividad
al operador de cruce. Las expresiones resultantes del cruce son muy diferentes de sus padres
iniciales.

Mutacin:
La mutacin afecta a un individuo de la poblacin. Se puede sustituir un nodo entero en el
individuo seleccionado, o puede simplemente reemplazar la informacin del nodo. Para
mantener la integridad, las operaciones deben ser salvo fallos o el tipo de informacin que el
nodo tiene debe ser tomada en cuenta. Por ejemplo, la mutacin debe ser consciente de nodos
operacin binaria, o el operador debe ser capaz de manejar los valores que faltan.
4. Ventajas de las tcnicas
evolutivas

Es importante destacar las diversas ventajas que presenta el uso de tcnicas evolutivas para
resolver problemas de bsqueda y optimizacin:

Simplicidad Conceptual.
Amplia aplicabilidad.
Superiores a las tcnicas tradicionales en muchos problemas del mundo real.
Tienen el potencial para incorporar conocimiento sobre el dominio y para hibridarse
con otras tcnicas de bsqueda/optimizacin.
Pueden explotar fcilmente las arquitecturas en paralelo.
Son robustas a los cambios dinmicos.

5. Aplicaciones de la Computacin Evolutiva:

Aunque la computacin evolutiva ha sido estudiada desde hace unos 40 aos, su aplicacin en el
rea de la Economa y las Finanzas es muy reciente, pues fue apenas en el ao 1987 en el que
comenzaron los primeros trabajos orientados a la Teora de Juegos, para despus crecer y
extenderse al rea de modelado macroeconmico y ms recientemente en la ingeniera financiera.
A continuacin se mencionan brevemente cada una de estas reas y se discutirn los trabajos ms
importantes que se han desarrollado en cada una de ellas utilizando algoritmos evolutivos.
5.1. Teora de
Juegos

La primera aplicacin de los Algoritmos Genticos a las Ciencias Sociales fue un trabajo de
Axelrod en el rea de Teora de Juegos que data de 1984. Axelrod us un Algoritmo Gentico
(AG) para estudiar el Problema del Prisionero cuando se juega en repetidas ocasiones. Axelrod
realiz un torneo entre diferentes computadoras, cada una de las cuales jugaba al Problema
del Prisionero durante un nmero n de veces y en cada juego intenta jugar con la mejor
estrategia para mejorar su ganancia. Se realizaban comparaciones de los resultados obtenidos por
dos computadoras (jugadores), y con base en los resultados obtenidos se modificaba la
estrategia para declararse culpable o inocente con cierta probabilidad, esto es, permita que la
estrategia fuese evolucionando con base en los resultados obtenidos. Su objetivo era
encontrar una estrategia para los jugadores ms robusta que la mejor conocida en aquel
entonces para el Problema del Prisionero. Axelrod era un experto en Ciencias Polticas, pero
estaba influenciado por el bilogo William Hamilton, quien utilizaba un modelo de competencia
muy parecido a la seleccin natural (en la que se observa que una especie compite con otras en
un nicho ecolgico). John Miller, en su tesis doctoral de 1988 (de la Universidad de
Michigan), model tambin a un conjunto de jugadores como individuos en un algoritmo
gentico, los cuales respondan a estmulos de eventos externos. Este fue el inicio de la
denominada Escuela Michigan, que iniciara y liderara por varios aos John H. Holland. El
trabajo pionero que realizara John Holland en los aos 1960s y que luego continuara David
Goldberg en los 1980s, tuvo una profunda influencia en diversas reas del conocimiento, y la
Economa no fue la excepcin.

Otro trabajo pionero interesante ha sido el de Thomas Riechmann, que se ha enfocado a


demostrar que la Teora de Juegos puede arrojar luz sobre los fundamentos de los AGs.
Motivado por el xito que han tenido los AGs en la solucin de problemas en Economa,
Reichman se interes en saber si haban ciertas propiedades en los AGs que fuesen las
responsables de su xito. Durante varios aos, los tericos de la computacin evolutiva han
usado cadenas de Markov para modelar el comportamiento de un algoritmo gentico y para
estudiar aspectos tales como su convergencia. El enfoque de Reichman, sin embargo, consiste en
interpretar un AG como un juego de N-personas repetitivo. De tal forma, Riechmann utiliza la
estructura bsica del algoritmo gentico como modelo de aprendizaje en el que utiliza una
poblacin como algo ms que una distribucin de economas o un comportamiento en las
estrategias a seguir por diferentes jugadores (o agentes). As entonces, un agente econmico
intenta resolver un problema el cual utiliza una funcin que lidia directamente con el concepto
del equilibrio de Nash. Una estrategia de Nash est definida como la mejor estrategia que
pueden seguir los jugadores (o agentes); y es lo que todo agente econmico busca encontrar al
resolver cualquier problema, es decir, encontrar un equilibrio en el que se sienta satisfecho o ha
encontrado la ganancia mxima del problema. Por tanto, Riechmann usa un algoritmo gentico
para modelar un sistema completo de agentes econmicos, cada uno intentando llegar a un
equilibrio de Nash. En trminos econmicos, esto significa que cada agente intenta coordinar una
estrategia con los dems agentes, y la mejor forma de hacer esto es maximizando su beneficio (o
utilidad o ganancia o todo lo que el modelo quiere que el agente maximice).

5.2. Uso de agentes inteligentes en la


economia:
En esta rea es donde ms trabajos se han publicado en los ltimos aos y donde se muestra el
mayor potencial para el uso de los algoritmos evolutivos. En 1988, cuando John Holland y
Brian Arthur establecieron el programa de Economa en el Instituto Santa Fe, el problema de
simulacin de mercados o mercados artificiales se escogi como el punto de partida para este
proyecto de investigacin.

Yang siguiendo el trabajo de Chan utiliz una Red Neuronal para un problema de doble subasta
en el que desarroll una estrategia que los agentes o jugadores deben seguir para maximizar las
ganancias en un mercado artificial. Este mercado artificial lo model con una red neuronal la
cual reduca la lnea existente entre los mercados simulados y los reales. El mercado simulado de
Yang es capaz de tener un comportamiento parecido a un equilibrio de esperanzas homogneas
racionales (homogeneous rational expectations equilibrium) en el que los consumidores de un
mercado simulado se comportan igual de racionales que los consumidores de un mercado real.

Shu-Heng Chen, propuso un software llamado AIE-ASM, el cual realiza simulaciones de acciones
en bolsa basadas en algunos modelos de precios activos. Una caracterstica distinguible de este
software es que el comportamiento de los agentes es modelado utilizando la
programacin gentica en vez de los Algoritmos Genticos. La programacin gentica es
realmente una variante del algoritmo gentico en la cual los individuos son representados
mediante rboles (o programas de computadora), en vez de usar cadenas binarias, como en los
Algoritmos Genticos.

Jasmina Arifovic, fue la primer persona en obtener un doctorado con una tesis relacionada con
aplicaciones de los Algoritmos Genticos en macroeconoma. Arifovic public tambin
varios artculos en el tema de intercambio de divisas. En estos estudios, utiliz los Algoritmos
Genticos para entrenar agentes simulados en varios modelos con dos diferentes monedas.
Implement los Algoritmos Genticos en el mtodo de aprendizaje y consider varias alternativas
posibles, como por ejemplo optimizar el aprendizaje y utilizar el conocimiento adquirido para
realizar predicciones en este tipo de problemas de intercambio de divisas. En estos
problemas se pretende optimizar las ganancias obtenidas de la toma de decisiones al elegir un
portafolio de inversiones adecuado.

Tambin existen aplicaciones en las que se utilizan los algoritmos evolutivos para abordar
problemas de microeconoma como el control de la contaminacin en un ambiente de simulacin
de problemas econmicos, y el problema de encontrar el rol adecuado de las instituciones en el
mbito social; estos trabajos se describen brevemente a continuacin.
David Fogel realiz un estudio sobre la representacin de los agentes inteligentes que se suelen
utilizar en problemas econmicos. Fogel indica que existen clases de modelos que se usan
para representar a los agentes inteligentes, y demostr que estos modelos afectan
considerablemente el desempeo del mismo. Este estudio lo valida en dos diferentes problemas
muy utilizados por los economistas como lo son el problema del Farol y el problema del
Prisionero. Tambin demuestra que el uso de diferentes ajustes en los parmetros de
simulacin como cambiar de una respuesta discreta a una continua, o el incluir un proceso
inteligente a los agentes (jugadores) es suficiente para obtener un comportamiento muy diferente
en los resultados.
5.3. Ingeniera
Financiera

La primera aplicacin de los algoritmos evolutivos en econometra fue desarrollada por John
Koza. En ella se dice que un problema importante en Economa es encontrar una relacin
matemtica entre las variables observadas empricamente para medirlas en un sistema. En las
tcnicas tradicionales de modelado, uno necesita escoger el tamao y la forma del modelo para
despus encontrar los valores de algunos coeficientes necesarios para utilizar un modelo en
particular y poder obtener el mejor ajuste entre los datos observados y el modelo real. Para
Koza, el encontrar la forma de un modelo puede ser vista como el buscar en un espacio de
bsqueda conformado por ciertos programas de computadora que produzcan una salida para
ciertas entradas. Koza hizo uso de la programacin gentica para formular una ley fundamental
en Economa llamada la ecuacin de intercambio o la teora cuntica del dinero.

George Szpiro, propone el uso de Algoritmos Genticos para buscar dependencias entre conjuntos
de datos para problemas en Finanzas y Economa. Se usan los algorimos genticos para
problemas en minera de datos. stos se muestran idneos para detectar e identificar
relaciones ocultas en espacios multi-dimensionales que son caracterizados por la existencia de
mltiples ptimos. De tal forma, se deja que los Algoritmos Genticos descubran ecuaciones
matemticas que recrean, o al menos, imitan las frmulas reales de generacin de datos.
En, Robert Pereira muestra como es que la computacin evolutiva resulta relevante en el estudio
de las estrategias comerciales. Comienza con la revisin de dos clases bsicas de reglas
comerciales, llamadas reglas de moving-average (MA) y reglas de order-statistics (OS). Luego,
utiliza los Algoritmos Genticos para encontrar los parmetros ptimos que se utilizan en estas
dos ltimas reglas comerciales. En este trabajo, se utilizaron datos reales del mercado
Australiano comprendidos del 4 de Enero de 1982 al 31 de Diciembre de 1989. Las reglas
ptimas que se encontraron, se utilizaron despus para evaluarlas y probar su habilidad de
pronosticar el beneficio econmico durante el periodo comprendido entre el 2 de Enero de 1990
al 31 de Diciembre de 1997. Los resultados indicaron que las reglas encontradas por el
algoritmo gentico mejoraron las estrategias seguidas por un simple mecanismo de ajuste de
riesgo.

Raymond Tsang y Paul Lajbcygier ofrecen una alternativa al uso de los Algoritmos
Genticos estndar. Ellos proponen dividir el algoritmo gentico en un modelo de islas, en el
que la poblacin de soluciones se divide en un nmero fijo de subpoblaciones, cada una
evolucionando de forma independiente, pero todas resolviendo el mismo problema. As pues,
proponen el uso de un operador de migracin el cual peridicamente intercambia soluciones
entre las subpoblaciones. Adoptando este tipo de Algoritmos Genticos, se pueden diferenciar
las subpoblaciones con diferentes parmetros de control y la bsqueda se hace ms extensa y
mucho ms efectiva. Las simulaciones en problemas de estrategias comerciales evidencian una
superioridad de los Algoritmos Genticos con esquemas de islas sobre los Algoritmos Genticos
tradicionales.

Otra aplicacin relacionada con el problema de eleccin de precios es en la que se involucra la


volatilidad. Medir la volatilidad financiera es uno de los problemas ms difciles en las Finanzas
econmicas de la actualidad. La volatidad implica que para cierto problema de eleccin de
precios se tiene que invertir la funcin de Black-Scholes, pero esto no es una tarea sencilla y se
realiza con varias aproximaciones analticas para atacar este problema como lo es el mtodo de
Newton-Raphson. Christian Keber muestra que la programacin gentica puede usarse para
derivar aproximaciones muy precisas y determinar la volatilidad en este tipo de problemas.
Keber genera 1.000 soluciones aleatorias y con base en stas deriva una expresin analtica
utilizando programacin gentica. La aproximacin obtenida se prueba en dos conjuntos de
datos tomados en la literatura y en dos ms generados artificialmente. Para realizar las
comparaciones, se utiliza el modelo de Black-Scholes como el modelo a vencer. Los resultados
muestran que las frmulas dadas por la aproximacin evolutiva resultan ms precisas en los
problemas con ms parmetros.
5.4. Otros desarrollos
actuales

La Computacin Evolutiva se ha convertido en una metodologa eficiente para resolver


problemas financieros y econmicos. Ha demostrado ser una herramienta muy poderosa en
problemas que los mtodos analticos no logran resolver. Como resultado, existen varias
conferencias y talleres internacionales que intentan cubrir este tpico. Algunos ejemplos son las
sesiones especiales en computacin evolutiva en Finanzas y Economa que se organizan en el
IEEE Congress on Evolutionary Computation (CEC), la Conference on Computacional
Intelligence in Economics and Finance (CIEF); y el Workshop on Economic Heterogeneous
Interacting Agents (WEHIA).

Hasta ahora, la computacin evolutiva ha sido aplicada en problemas de pronstico financiero,


estimacin de parmetros economtricos, modelos macroeconmicos, eleccin de precios,
simulacin de mercados financieros y procesos sociales. Como sabemos, los problemas del
mundo real involucran una alta complejidad, ambientes con ruido, imprecisiones e
incertidumbre. Por esta razn, el uso de las tcnicas evolutivas se vuelve necesario para
problemas en diversas reas en Finanzas y Economa.

En cuanto a ultimas publicacions sobre uso de algotirmos geneticos se destacan lso siguientes:

Streichert, Ulmer y Zell en 2004 realiz un estudio comparativo de distintos tipos de cruce
en un algoritmo evolutivo con representacin real para resolver problemas de portafolios
de inversin basados en el modelo de media-varianza de Markowitz. Este problema trata
de elegir un conjunto de activos que tienen un cierto precio, y se busca maximizar las
ganancias obtenidas de elegir los activos correctos.

Asuncin Mochn y co-autores en 2005 hicieron un anlisis del uso de la


computacin evolutiva en problemas de subastas. Se dise una simulacin para
examinar el comportamiento de las subastas, buscando encontrar la estrategia ptima de
los apostadores para problemas dinmicos de subastas. El algoritmo propuesto se prob
en varios experimentos con muchos apostadores y muchas subastas simultneas, y los
resultados indicaron que el algoritmo evolutivo es capaz de encontrar estrategias que
mejoran a las estrategias cannicas que usualmente se utilizan.

Garca-Almanza y Tsang en 2006 presenta un mtodo para simplificar los rboles de


decisin con ayuda de la programacin gentica. En l se identifican y se eliminan las
reglas que causan errores en la clasificacin y, como consecuencia, se obtiene un rbol
ms eficiente para tomar decisiones en problemas de mercados financieros.

Jin Li en 2006 presenta un algoritmo que utiliza la programacin gentica para


resolver problemas multi-objetivo para pronosticar sistemas financieros. En este caso, se
resuelven problemas de pronsticos financieros en los que se hace uso de la dominancia
de Pareto para encontrar varias soluciones eficientes en una misma ejecucin,
permitiendo al usuario tomar una decisin ms completa.

6.
Conclusiones

En este informe hemos proporcionado una introduccin general a la computacin


evolutiva, incluyendo su desarrollo histrico y una descripcin breve de los tres
paradigmas principales que la conforman. En la parte final del informe se describen
diversas aplicaciones de los algoritmos evolutivos en la economa y las finanzas,
incluyendo varios trabajos pioneros en el rea.

A lo largo del informe, se ha buscado despertar el inters de los especialistas en economa


y finanzas por el uso de los algoritmos evolutivos. La motivacin principal para usar estas
tcnicas radica en su amplia aplicabilidad (pueden usarse para problemas de optimizacin
no lineales de enorme complejidad) y su facilidad de uso. Las aplicaciones aqu
reportadas sirven como evidencia tangible de dichas ventajas.
Finalmente, se hace notar que a pesar de existir ya diversos trabajos importantes en
economa y finanzas, existen todava muchas reas de oportunidad para nuevos
desarrollos. Por ejemplo, el uso de algoritmos evolutivos para estudiar patrones de
consumo, para esquemas de asignacin de crdito o para predecir tendencias de las
acciones en la bolsa de valores, son slo algunas de las muchas reas de oportunidad que
todava existen para los interesados en trabajar en este apasionante campo.