You are on page 1of 6

Algoritmo Gentico para el TSP (Traveling Salesman

Problem) con Monodevelop utilizando C#


La computacin evolutiva es una parte de la inteligencia artificial donde se agrupan diferentes tcnicas
adaptativas enfocadas a encontrar las mejores soluciones para resolver problemas de optimizacin,
estas tcnicas parten de una de las principales ideas que existen en la teora de la evolucin biolgica
propuesta por Charles Darwin, la seleccin natural es el proceso histrico de transformacin de unas
especies en otras especies descendientes e incluye la extincin de la gran mayora de las especies que
han existido, lo que es sin duda un problema de optimizacin adems de que muchos de los trminos
que utiliza la computacin evolutiva son tomados de la biologa, con la advertencia de que se son
usados para representar ms o menos la misma idea biolgica lo que no equivale a que sean iguales.
La computacin evolutiva se compone por las siguientes tcnicas:
1. Programacin evolutiva: Son una estrategia de optimizacin estocstica hacen un nfasis
especfico en los operadores genticos tal y como se observan en la naturaleza.
2. Estrategias evolutivas: Esta tcnica esta bsicamente enfocada hacia la optimizacin. En
esencia son mtodos estocsticos con paso adaptativo, que permiten resolver problemas. A este
mtodo se le han agregado procedimientos propios de la computacin evolutiva, que lo han
convertido en un paradigma ms de dicha metodologa.
3. Algoritmos genticos: Usan mtodos que tienen analoga en la seleccin natural y la evolucin.
Entre los usos de la computacin evolutiva se encuentran la planificacin, el diseo de sistemas, la
simulacin, el reconocimiento de patrones, el control y la clasificacin de datos.
La alternativa para una solucin de problemas de planificacin y de optimizacin donde la mayora
estn se ubican dentro de la categora de los problemas NP los cuales no pueden ser resueltos usando
las tcnicas convencionales y solo pueden ser atacados desde las tcnicas de computacin evolutiva
donde el dominio de esos problemas le corresponden a los algoritmos genticos (John H. Holland,
1975)
Como ejemplo de este tipo de aplicaciones me encontr en este web site
(http://www.heatonresearch.com) un Applet Java, que utiliza algoritmos genticos para obtener una
solucin optima al problema del agente viajero (Traveling Salesman Problem), en el mismo web site el
autor nos hace un resumen del problema.

Fig 1 El applet del programa original

Pues bien como un ejercicio de aprendizaje, traduje el cdigo del applet de Java a C# como un proyecto
de Monodevelop utilizando Winforms, a continuacin algunas screenshots y el cdigo fuente del
proyecto. He de aclarar que debido a la falta de tiempo hice casi copia tal cul del cdigo, modificando
las partes de Java que el compilador me marcaba como errores.

Fig 2 La solucin en Monodevelop

Fig 3 Inicio de la aplicacin

Fig 4 Aplicacin en ejecucin

Fig 5 Resultado de la aplicacin.

En su web site el autor Jeff Heaton adems del cdigo fuente del applet, ofrece libros acerca de
inteligencia artificial y de programacin con Java y C#.

Descarga el cdigo fuente en un proyecto para MonoDevelop o Visual Studio

You might also like