Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Declaro bajo juramento que el trabajo aqu descrito es de mi autora; que no ha sido previamente
presentado para ningn grado o calificacin profesional. En consecuencia, asumo la
responsabilidad de la originalidad del mismo y el cuidado al remitirme a las fuentes bibliogrficas
respectivas para fundamentar el contenido expuesto, asumiendo la responsabilidad frente a
cualquier reclamo o demanda por parte de terceros de manera exclusiva. Cedo a la
UNIVERSIDAD TCNICA DE MACHALA de forma NO EXCLUSIVA con referencia a la obra en
formato digital los derechos
de: a.
2
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0), la Ley de Propiedad Intelectual del Estado
Ecuatoriano y el Reglamento Institucional.
b.
DEDICATORIA Este esfuerzo dedico principalmente a mi querida madre Jenny Yolanda Salinas
Delgado que siempre me apoyo, ha sido mi gua y ha brindado su amor. A mi ta Carmen de
Lourdes Adrin Elizalde (+), que aunque ya no est con nosotros siempre me apoy y velo por m
desde pequeo. Por ltimo dedico este proyecto de vida a mis queridos primos Alexandra Elizabeth
Salinas Adrin y Jhon Mauricio Salinas Adrin, que nunca se cansaron de apoyarme y permitirme
culminar este trabajo.
AGRADECIMIENTO Desde estas lneas quiero dar las gracias a todas las personas que han
influenciado en m de manera positiva, y me han permitido llegar hasta aqu y lograr terminar este
trabajo. A mi tutor Ing. Wilmer Rivas por su gua, apoyo y dedicacin durante la elaboracin de este
trabajo. Tambin agradezco a los dems miembros del Comit Evaluador Ing. Jorge Luis Armijos
Carrin, Ing. Bertha Eugenia Mazn Olivo por sus revisiones y correcciones que me permitieron
culminar con este trabajo. De igual manera agradezco a todos los maestros que impartieron sus
conocimientos y que me llevaron a terminar mi formacin profesional. A mis amigos que me
brindaron su apoyo incondicional y con los que disfrute de la carrera todos estos aos.
RESUMEN En el mundo actual muchos de los problemas de mejora de rendimiento de las distintas
reas de la ingeniera son difciles de resolver a travs de mtodos comunes, por eso se crearon
algoritmos evolutivos capaces de adaptarse a su entorno y resolver estos inconvenientes. Los
Algoritmos Genticos son un logro de la inteligencia artificial, y han sido creados para intentar
simular los distintos comportamientos biolgicos basados en la seleccin natural y la gentica de
los seres vivos. Los Algoritmos Genticos son pasos bien organizados que se deben seguir, para
dar solucin a un problema, y se basan en las estrategias naturales que le han permitido al ser
humano adaptarse al medio en el que viven. El principal propsito de este trabajo es solucionar el
Problema de un Vendedor, utilizando un cdigo gentico. Este problema consiste en encontrar la
ruta ptima que debe seguir para visitar a los clientes, de manera que partiendo de cualquiera
pueda visitarlos a todos y volver a su punto inicial. La solucin del problema del Agente vendedor
es muy importante, ya que diversos problemas que existen en el mundo estn relacionados a est,
y pueden ser usados en distintas reas de la ingeniera como son logstica, fabricacin de circuitos,
tableros de circuitos o en la robtica. Para resolver este problema, se usara la Librera JGAPP que
es un componente de los Algoritmos Genticos para el lenguaje de programacin JAVA, que facilita
los mecanismos para aplicar los principios evolutivos y poder solucionar los problemas que se
plantean. Palabras Clave Algoritmo Gentico, Agente, Librera, Evolutivo, Entorno
ABSTRACT In today's world many of the problems of performance improvement of different areas of
engineering are difficult to solve through common methods, that is why evolutionary algorithms were
created that are able to adapt to their environment and solve these drawbacks. Genetic Algorithms
are an achievement of artificial intelligence, and have been created to try to simulate different
biological behaviors based on the natural selection and genetics of living beings. Genetic Algorithms
are well organized steps that must be followed to solve a problem, and are based on the natural
strategies that have allowed the human being to adapt to the environment in which they live. The
main purpose of this work is to solve the Problem of a Seller, using a genetic code. This problem
consists in finding the optimal route that must follow to visit the clients, so that from anyone can visit
3
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
them all and return to their starting point. The solution of the problem of the Selling Agent is very
important, since various problems that exist in the world are related to this, and can be used in
different areas of engineering such as logistics, circuit fabrication, circuit boards or robotics . To
solve this problem, we will use the JGAPP Library which is a component of the Genetic Algorithms
for the JAVA programming language, which facilitates the mechanisms for applying evolutionary
principles and solving the problems that arise. Keywords: Genetic Algorithm, Agent, Library,
Evolutionary, Environment
2.2.1.3.3. Disear las rutas de visitas para los clientes 23 2.2.1.3.4. Determinar la estructura
gentica 23 2.2.1.4. IMPLEMENTACIN 23 2.3. RESULTADOS 23 2.3.1. Especificacin de
Resultados. 23 3. CONCLUSIONES 26 4. REFERENCIAS BIBLIOGRFICAS 27 5. ANEXOS 28
Anexo 1. Se Agrega la Librera JGAP 28 Anexo 2. Diseo de Rutas Locales 28 Anexo 3. Diseo de
Rutas de los Locales 28 Anexo 4. Distancia entre locales 28 Anexo 5 -Resultado final: ptima Ruta
que recorre el agente Vendedor 28 Anexo 6 - Cdigo para evaluar el camino ms ptimo 28
1.1. MARCO CONTEXTUAL El problema del agente vendedor parte de un mapa en el cual constan
los locales que necesita recorrer, se establece en qu orden se debe visitar n tiendas de tal forma
que partiendo de una cualquiera, se determine la ruta ms ptima de visitas. En la actualidad se
puede obtener una variedad de informacin referente a las diferentes metodologas que existen
4
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
para comprender el problema de agente vendedor. Un extracto general de ellas se puede encontrar
en un documento publicado por el Ing. Marte Alejandro Castro Fabela en su tesis de postgrado
titulada: En Opcin al Grado de Maestro en Ciencias de La Administracin con Especialidad en
Sistemas. 1.2. PROBLEMA Se ha evidenciado que aplicando algoritmos genticos se puede
encontrar soluciones para el problema agente vendedor optimizando la eficiencia con respecto a la
relativa facilidad. La variedad de estudios efectuados se han determinado en desarrollar formas de
codificar posibles soluciones al problema (cromosomas) y establecer operadores genticos,
libreras o metodologas especiales para estas codificaciones. En determinadas problemticas se
ha desarrollado posibles soluciones mediante la implementacin de algoritmos hbridos, los cuales
son una mezcla de Algoritmos genticos y otras metodologas o lenguajes de programacin. 1.3.
OBJETIVO GENERAL Desarrollar un software mediante el uso de algoritmo gentico para
determinar la ruta optima de visitas de un agente vendedor utilizando JAVA con la librera JGAPP
que permita determinar la ruta ptima para llegar desde un punto inicial a un punto final.
2. DESARROLLO 2.1. MARCO TERICO 2.1.1. Algoritmos Genticos Los algoritmos genticos
son mtodos que se pueden adaptar, y se los puede usar para resolver problemas de bsqueda y
de optimizacin. Se basan en los procesos que los organismos vivos usan para poder adaptarse y
sobrevivir en su entorno, y que utilizan mtodos de bsqueda como lo son la mutacin y el cruce.
Estos mtodos fueron creados por Jhon Holland y Rechemberg quienes imitaron la teora de La
Evolucin Biolgica que fue propuesta por Charles Darwin, por eso siempre se parte de una
poblacin inicial, de la cual se escoge a los mejores individuos para que se puedan reproducir y
finalmente mutarlos y tener nuevas generaciones quienes estarn mejor adaptados. Estos
algoritmos son muy beneficiosos ya que pueden ser usados en diferentes reas, como lo son la
ingeniera, qumica, medicina, comercio, debido a que su aplicacin en estos campos permite la
construccin y diseo de turbinas, chips, disear redes, optimizar procesos de produccin, predecir
datos, analizar datos mdicos, o la creacin de sistemas de toma de decisiones. Para su correcto
aprovechamiento se debe tener en cuenta los operadores con los que se debe trabajar los cuales
son seleccin, reproduccin, cruce y mutacin. 2.1.2. Operadores genticos Seleccin: Aqu se
escogen a los individuos que estn mejor adaptados, para ello por lo general se suele usar un
mtodo en el cual se escogen aleatoriamente los individuos y de los cuales se seleccin una para
que sea el Padre y despus para escoger a la Madre se realiza el mismo proceso, con esto se trata
de obtener a los mejores individuos para tener una mejor descendencia. Reproduccin: Es un
operador gentico, el cual se encarga de la reproduccin de los individuos, generando uno nuevo
pero manteniendo las mismas caractersticas que permitieron que los individuos seleccionados
para este proceso sean escogidos. Cruce: Es la frecuencia con la que se reproducen los individuos,
pero en esta fase se mezclan los genes de los padres para as obtener muchos hijos, los cuales
pueden ser
copias de sus padres o a su vez tendrn partes de ellos, todo con el fin de originar un nuevo
individuo que herede lo mejor de sus progenitores. Mutacin: Es la alteracin aleatoria de los genes
del nuevo individuo, lo que permite aumentar o reducir el espacio de bsqueda del algoritmo
gentico, esta alteracin puede ser de forma fija se establece un mismo porcentaje de mutacin
para todos los individuos o de forma variable en la cual se establece un valor de mutacin distinto
para cada generacin que se obtiene. 2.1.3. Terminologa Los AG utilizan un vocabulario que es
adoptado de la gentica. A los individuos que conforman la poblacin se les conoce como
cromosomas o genotipos. Los cromosomas estn formados por unidades ordenadas en forma
lineal llamadas genes (Figura 1). Cada gene tiene una posicin dentro de un cromosoma conocida
como loci y toma algn elemento de un conjunto de posibles valores llamados alelos. Ilustracin 1.
Cromosoma Fuente: An Introduction to Genetic Algorithms. Elaborado por: Sr. Jimmy Salinas 2.1.4.
Componentes de un Algoritmo Gentico clsico Un Algoritmo Gentico, independientemente de lo
sofisticado que pueda ser su diseo, deber contener los siguientes 5 componentes: Una
5
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
0: http://www.uv.es/asepuma/XVI/707.pdf 100%
2.1.5.
2. Conservamos sin cambiar los bits antes del nmero e intercambiamos los bits despus del punto
de cruce entre los dos progenitores (Ilustracin 5). [1] Ilustracin 5. Cruzamiento de un Punto
6
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
Fuente: Fabela, Ing. Marte Alejandro Castro [1] Elaborado por: Sr. Jimmy Salinas b. Cruzamiento
de dos Puntos. Este tipo de cruzamiento es similar al de un punto, excepto que debemos
seleccionar dos posiciones y slo los bits intermedios sern intercambiados. Este tipo de cruce
preserva la primera y la ltima parte de un cromosoma y slo intercambia el segmento intermedio
(Ilustracin 6). [1] Ilustracin 6. Cruzamiento de dos Puntos Fuente: Fabela, Ing. Marte Alejandro
Castro [1] Elaborado por: Sr. Jimmy Salinas c. Cruzamiento Uniforme. El procedimiento del
cruzamiento uniforme (figura 6) es el siguiente: 1. Generar un nmero aleatorio (n), el cual indica
cuntas posiciones intercambiar.
Ilustracin 8. Diseo de locales a visitar el agente vendedor Fuente: Sr. Jimmy Salinas Elaborado
por: Sr. Jimmy Salinas 2.2.1.3. CONSTRUCCIN 2.2.1.3.1. Instalacin del IDE de programacin.
Se instala NetBeans, para desarrollar mediante el lenguaje de java el programa de algoritmo
gentico del problema agente vendedor. 2.2.1.3.2. Instalacin de la Librera JGAP Se procede a
descargar la librera JGAP para luego cargarla en el programa, y poder hacer uso de sus mtodos
(Ver Anexo 1). 2.2.1.3.3. Disear las rutas de visitas para los clientes Se traza la ruta de visitas para
los clientes dentro de un jframe en el entorno de Netbeans (Ver Anexo 3). 2.2.1.3.4. Determinar la
estructura gentica Se establece la estructura gentica mediante la utilizacin de una frmula
matemtica para obtener las posibles combinaciones, luego comparar las distancias, escoger la
ruta ms ptima para que el agente vendedor recorra y cumpla su objetivo (Ver Anexo 4-6).
7
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
se le determina la ubicacin de los locales a visitar, luego se presiona aceptar para obtener sus
distancias, las cuales se presentan en una tabla, seguidamente se presiona el botn generar el
mismo que se encarga de calcular la ruta ms ptima que el agente vendedor debe recorrer (Ver
Anexo 5). 2.3. RESULTADOS 2.3.1. Especificacin de Resultados. Para resolver el problema de
agente vendedor y encontrar la ruta ms ptima, se desarrolla una aplicacin que sigue el siguiente
proceso: 1. Se ejecuta el programa, luego aparece el entorno con el que se trabajara el diseo de la
ruta. (Ver anexo 2) 2. Se realiza el diseo de la ruta (poblacin inicial) que debe recorrer el agente
vendedor, la cual se puede escoger entre los distintos locales disponibles. (Ver Anexo 3.) 3. Usar el
operador de seleccin establecido para determinar la mejor distancia. Se realiza de la siguiente
manera [9]: En el Problema del Agente Vendedor, en el cual se debe obtener la mejor ruta
disponible para poder visitar los locales comerciales queda establecida por esta frmula de la
siguiente manera: Estableciendo los locales comerciales que debe visitar L= {Cliente 1 , Cliente 2
, Cliente 3 ,Lm} Y para cada par de locales Local 1 ,Local 2 , y donde la distancia entre ellas
ser d(Cliente 1 ,Cliente 2 ) La mejor solucin posible ser minimizar la distancia entre los
Clientes: u=1 (Li, i ) (Lu, Li) d L + 1 + d i=1
Esta frmula expresa el recorrido que hace el vendedor desde un local que empieza en Li (cliente
Inicial), luego visita las dems ciudades para regresar al punto de partida Li desde el ltimo cliente
en el que estuvo Lu (Cliente ltimo). En eI Anexo 4, se establece que: Cliente= {Cliente 1 ,
Cliente 2 , Cliente 3 , Cliente 4 , Cliente 5 } d= (Cliente1, Cliente2)= 7 d= (Cliente1, Cliente3)=
6 d= (Cliente1, Cliente4)= 1, d= (Cliente1, Cliente5)= 4 d= (Cliente2, Cliente3)= 1 d=
(Cliente2, Cliente4)= 8 d= (Cliente2, Cliente5)= 11 d= (Cliente3, Cliente4)= 7 d= (Cliente3,
Cliente5)= 10 d= (Cliente4, Cliente5)= 3 Cuyo ordenamiento Cliente1, Cliente2, Cliente3,
Cliente4, Cliente5 sera su posible solucin pero tiene una longitud de 23, pero el recorrido con una
menor distancia es Cliente1, Cliente5, Cliente4, Cliente3, Cliente 2 el cual tiene 22. 4. Utilizar los
operadores de reproduccin, cruce y mutacin al local actual para poder asignarlo a los dems. 5.
Retomar el paso 2 hasta que se hayan realizado todas las combinaciones para encontrar la ruta
ms ptima para llegar al punto de parada que se haya establecido. 6. Cuando termina de realizar
las combinaciones y cumples la condicin, se logra obtener y mostrar al mejor individuo en este
caso la distancia ms ptima entre los locales. (Ver Anexo 5) El caso del agente vendedor se
establece como un problema completo de tipo NP, debido a esto cuando se tiene un numero grande
de locales, no se podra verificar si los resultados obtenidos para determinar la ruta ms ptima
sean los mejores, y debido a esto los mtodos que se utilizan siempre son los que logran llegar a la
mejor solucin en un corto tiempo. [5] Los problemas de este tipo como el del Agente vendedor son
muy importantes en lo referente a la computacin y sus afines, ya que existe muchos problemas
que estn basados en este enunciado, por ejemplo en la elaboracin de circuitos integrados en la
cual se debe minimizar el tiempo en la que se deben grabas las lneas de conexin elctrica
entre los diferentes componentes que forman el integrado [10]. En el Campo de la medicina son
muy usados, un ejemplo de ellos es al momento de realizar los exmenes con los rayos X, el cual
mide la intensidad de la radiacin, por ejemplo estos exmenes deben lograr un determinado
nmero de posiciones, esto sera igual al nmero de locales comerciales, y el tiempo que se
demora en desplazarse de un punto a otro es la distancia entre los locales. [6] [2] Como podemos
apreciar Una vez que se cumplieron todas las condiciones establecidas, se obtiene como resultado
final (Ver anexo 8). El camino ms ptimo que debe tomar el vendedor, en el caso de este ejercicio
fue la Ruta L 1 , L 5 , L 4 , L 3 , L 2 , L 1, cuya distancia fue de 22.
3. CONCLUSIONES Durante todo este trabajo se ha podido hablar de los Algoritmos Genticos,
desde su origen, estructura y componentes, de una manera sencilla con el fin de lograr entender
cmo funciona el problema del Agente Vendedor y como se podra resolver. Los Algoritmos
genticos aportan muy buenos resultados sin necesidad de utilizar grandes recursos o sumas de
dinero, por lo que se deben seguir aprovechando para futuras investigaciones, siempre y cuando se
establezcan y se ajusten correctamente los parmetros que se vayan utilizar para cada problema.
Se debe elegir con mucho cuidado los parmetros que se van a utilizar como son la poblacin, el
mtodo de cruce, ya que de eso depender la tasa de natalidad. En conclusin el algoritmo
8
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
gentico que se utiliz para la resolucin del problema del agente vendedor, tratan de hacer que la
solucin se parezca lo ms acertada posible de lo que podra pasar en la vida real
5. ANEXOS Anexo 1. Se agrega la librera JGAP Anexo 2. Diseo de Rutas Locales . Fuente: IDE
de programacin Netbeans Elaborado por: Sr. Jimmy Salinas Fuente: IDE de programacin
Netbeans Elaborado por: Sr. Jimmy Salinas Anexo 3. Diseo de Rutas entre los Locales Anexo 4.
Distancia entre locales Fuente: IDE de programacin Netbeans Fuente: IDE de programacin
Netbeans Elaborado por: Sr. Jimmy Salinas Elaborado por: Sr. Jimmy Salinas Anexo 5 -Resultado
final: ptima Ruta que recorre el Anexo 6 - Cdigo para evaluar el camino agente Vendedor ms
optimo Fuente: IDE de programacin Netbeans Elaborado por: Sr. Jimmy Salinas Fuente: IDE de
programacin Netbeans Elaborado por: Sr. Jimmy Salinas
9
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
Declaro bajo juramento que el trabajo aqu descrito es de mi autora; Declaro bajo juramento que el trabajo aqu descrito es de mi autora;
que no ha sido previamente presentado para ningn grado o que no ha sido previamente presentado para ningn grado o
calificacin profesional. En consecuencia, asumo la responsabilidad calificacin profesional. En consecuencia, asumo la responsabilidad
de la originalidad del mismo y el cuidado al remitirme a las fuentes de la originalidad del mismo y el cuidado al remitirme a las fuentes
bibliogrficas respectivas para fundamentar el contenido expuesto, bibliogrficas respectivas para fundamentar el contenido expuesto,
asumiendo la responsabilidad frente a cualquier reclamo o demanda asumiendo la responsabilidad frente a cualquier reclamo o demanda
por parte de terceros de manera exclusiva. Cedo a la por parte de terceros de manera EXCLUSIVA.
UNIVERSIDAD TCNICA DE MACHALA de forma NO EXCLUSIVA
con referencia a la obra en formato digital los derechos Cedo a la UNIVERSIDAD TCNICA DE MACHALA de forma NO
EXCLUSIVA con referencia a la obra en formato digital los derechos
de: a. de:
Incorporar la mencionada obra al repositorio digital institucional para a. Incorporar la mencionada obra al repositorio digital institucional
su democratizacin a nivel mundial, respetando lo establecido por la para su democratizacin a nivel mundial, respetando lo establecido
Licencia Creative Commons Atribucion-NoComercial-CompartirIgual por la Licencia Creative Commons Atribucin-NoComercial-
4.0 Internacional (CC BY-NC-SA 4.0), la Ley de Propiedad CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0), la Ley de
Intelectual del Estado Ecuatoriano y el Reglamento Institucional. Propiedad Intelectual del Estado Ecuatoriano y el Reglamento
Institucional.
b.
b. Adecuarla a cualquier formato o tecnologa de uso en internet, as
Adecuarla a cualquier formato o tecnologa de uso en internet, as como incorporar cualquier sistema de seguridad para documentos
como incorporar cualquier sistema de seguridad para documentos electrnicos, correspondindome como Autor(a) la responsabilidad
electrnicos, correspondindome como Autor(a) la responsabilidad
10
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
de velar por dichas adaptaciones con finalidad de que no de velar por dichas adaptaciones con la finalidad de que no se
desnaturalice el contenido o sentido de la misma. Machala, 13 desnaturalice el contenido o sentido de la misma.
Machala, 25
11
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
con C.I. 0705341469, estudiante de la carrera de INGENIERA DE con C.I. 0704257518, estudiante de la carrera de INGENIERA DE
SISTEMAS de la UNIDAD ACADMICA DE INGENIERA CIVIL de SISTEMAS de la UNIDAD ACADMICA DE INGENIERA CIVIL de
la UNIVERSIDAD TCNICA DE MACHALA, en calidad de Autora la UNIVERSIDAD TCNICA DE MACHALA, en calidad de Autor del
del siguiente trabajo de titulacin siguiente trabajo de titulacin
12
URKUND SALINAS DELGADO JIMMY FABRICIO_PT-010517.pdf (D29684759)
tamao de la poblacin, probabilidades asociadas con la aplicacin tamao de la poblacin, probabilidades asociadas con la aplicacin
de los operadores genticos). [1] de los operadores genticos).
2.1.5.
13