1. 350 – T. P. LAPSO 2017/1 1/8
Ingeniería de Sistemas
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADÉMICO
ÁREA INGENIERÍA
TRABAJO PRÁCTICO
ASIGNATURA: COMPUTACIÓN EVOLUTIVA
CÓDIGO: 350
FECHA DE ENTREGA DE LAS ESPECIFICACIONES AL ESTUDIANTE:
Adjunto a la Primera Prueba Parcial
FECHA DE DEVOLUCIÓN DEL INFORME POR EL ESTUDIANTE:
Adjunto a la Prueba Integral
NOMBRE DEL ESTUDIANTE:
CÉDULA DE IDENTIDAD:
DIRECCIÓN DE CORREO ELECTRÓNICO:
TELÉFONO:
CENTRO LOCAL:
CARRERA: 236
NÚMERO DE ORIGINALES:
FIRMA DEL ESTUDIANTE:
LAPSO: 2017-1
UTILICE ESTA MISMA PÁGINA COMO
CARÁTULA DE SU TAREA O TRABAJO
RESULTADOS DE CORRECCIÓN:
OBJ N° 8
0:NL 1:L
2. 350 – T. P. LAPSO 2017/1 2/8
Ingeniería de Sistemas
ESPECIFICACIONES: Este trabajo práctico se basará en el objetivo
N° 8, correspondiente al Módulo IV. En él se evidenciará las destrezas y
habilidades adquiridas por el estudiante, al momento de resolver
problemas del mundo real, empleando conceptos y técnicas relacionadas
con los algoritmos evolutivos, inteligencia social o enfoques afines.
TRABAJO PRÁCTICO
COMPUTACIÓN EVOLUTIVA (350)
OBJETIVO N° 8
Resolución del Problema del Agente Viajero (Travel Salesman Problem)
Mediante Estrategias Evolutivas
El propósito de este trabajo es iniciar al estudiante en la resolución de
problemas del mundo real mediante los principios de algoritmo genético
y estrategias evolutivas. El Problema del Agente Viajero (TSP por sus
siglas en inglés) trata de un vendedor ambulante que debe visitar un
conjunto de ciudades, pasando una sola vez por cada una. El problema
consiste en determinar el orden óptimo de visitas al conjunto de ciudades,
tal que el costo sea mínimo o que el tiempo de recorrido sea mínimo o
como en este ejercicio que la distancia recorrida sea mínima, por tanto es
un problema de minimización.
Las especificaciones del problema se dan a continuación:
• Se tienen diez (10) ciudades de Venezuela que deben ser recorridas
en la menor distancia posible para ello las ciudades son enumerada
(partiendo desde 0 hasta 9, esto es especialmente útil a la hora de
trabajar con arrays en la programación) en la Tabla 1.
Numeración Ciudad
0 Caracas
1 Maracaibo
2 Barquisimeto
3 Valencia
4 Maracay
5 Mérida
6 Ciudad Bolívar
7 Los Teques
8 Barinas
9 Pto. La Cruz
Tabla 1
3. 350 – T. P. LAPSO 2017/1 3/8
Ingeniería de Sistemas
Se tiene en cuenta que la distancia de ir de una ciudad i a una ciudad
j es la misma que ir desde j hasta i, con lo cual se reducen las
combinaciones de 3.628.800 (n!) a 181.440 ((n-1)!/2) posibles.
Figura 1
A continuación se presenta la distancias entre cada una de las
ciudades
(Km)
CIUDAD DESTINO
0 1 2 3 4 5 6 7 8 9
CIUDADORIGEN
0 0 694 351 145 96 674 585 26 512 339
1 694 0 343 549 596 413 1178 668 455 1033
2 351 343 0 206 255 419 835 325 264 690
3 145 549 206 0 49 529 668 119 367 484
4 96 596 255 49 0 578 626 70 416 435
5 674 413 419 529 578 0 1099 648 174 958
6 585 1178 835 668 626 1099 0 611 937 796
7 26 668 325 119 70 648 611 0 486 365
8 512 455 264 367 416 174 937 486 0 796
9 339 1033 690 484 435 958 796 365 796 0
Tabla 2
Para crear las rutas aleatorias (individuos) luego de la numeración
(0,1,..9) de las ciudades se debe generar diez (10) números aleatorios
entre 0 y 9 y que no se repitan. Como todas las ciudades tienen las
mismas probabilidades de aparecer para generar el número aleatorio se
4. 350 – T. P. LAPSO 2017/1 4/8
Ingeniería de Sistemas
debe emplear la Distribución Uniforme. El algoritmo se presenta a
continuación:
Algoritmo para generar los números aleatorios entre 0 y 9 con
Distribución Uniforme sin repeticiones
1 c=0 *Se inicializa el contador
2 Hacer {
3 marca=0 *Inicializa el indicador del generado repetido
4 i=0 *Inicializa el índice del arreglo
5 num=entero(9*(aleatorio(0,1])) *número aleatorio
*0<=num<=9 entero Distribución
Uniforme
6 Mientras (c>0 Y marca!=1 Y c>i){
7 Si (num==vec[i]) Entonces{
8 marca=1
9 }
10 i=i+1
11 }
12 Si (marca!=1) Entonces {
13 vec[c]=num *se guarda valor generado
14 c=c+1
15 }
16 }Mientras(c<10) *llega hasta diez valores generados
Ejemplo: Se generan los siguientes valores aleatorios, que constituyen el
cromosoma de un individuo al azar:
2 – 7 – 0 – 6 – 5 – 4 – 9 – 3 – 8 – 1
Orden
Número aleatorio
generado
Ciudad
1 2 Barquisimeto
2 7 Los Teques
3 0 Caracas
4 6 Ciudad Bolívar
5 5 Mérida
6 4 Maracay
7 9 Pto. La Cruz
8 3 Valencia
9 8 Barinas
10 1 Maracaibo
5. 350 – T. P. LAPSO 2017/1 5/8
Ingeniería de Sistemas
Tabla 3
Recorrido Distancia de una Ciudad a otra (Km)
Barquisimeto - Los Teques 325
Los Teques – Caracas 26
Caracas - Ciudad Bolívar 585
Ciudad Bolívar - Mérida 1099
Mérida - Maracay 578
Maracay - Pto. La Cruz 435
Pto. La Cruz - Valencia 484
Valencia - Barinas 367
Barinas - Maracaibo 455
Cálculo del Fitness 4354
Tabla 4
Para obtener su fitness se deben sumar todas las distancias
recorridas entre las ciudades. Se requiere minimizar la distancia
recorrida (fitness) que a su vez permitiría minimizar los costos de
transporte y reducir el tiempo, para ello debe emplear la estrategia
evolutiva (μ + 1) modificada, ya que si se hacen cruces típicos entre
individuos es posible obtener ciudades repetidas en cada ruta, lo cual
no conduciría a una solución. Por lo tanto, en vez de seleccionar dos
padres para el cruce, se debe seleccionar un individuo al azar, luego
se generan dos (2) números aleatorios (0-9) que serán puntos al azar
dentro del cromosoma. Se elimina el alelo marcado por el primer valor
aleatorio, se desplaza todos los alelos hasta donde indica el segundo
valor aleatorio y en este punto insertamos el alelo eliminado. De esta
manera resulta una nueva permutación. Como recomendación para
optimizar la generación de los dos (2) números aleatorios de los
alelos asegúrese que sean dos números diferentes.
Ejemplo:
Se genera el siguiente individuo:
Cromosoma Fitness
2 7 0 6 5 4 9 3 8 1 4354
Tabla 5
Se generan los dos números aleatorios, 4 y 8, para la permutación
que generará un nuevo individuo, una nueva generación:
6. 350 – T. P. LAPSO 2017/1 6/8
Ingeniería de Sistemas
0 1 2 3 4 5 6 7 8 9
↓ Se extrae este alelo
2 7 0 6 5 4 9 3 8 1
Se desplazan alelos hasta el 2do punto - 1 ↓
2 7 0 6 4 9 3 8
Se inserta el alelo extraído ↓
2 7 0 6 4 9 3 8 5
Se completa el llenado del nuevo cromosoma
2 7 0 6 4 9 3 8 5 1
Tabla 6
Se calcula el fitness
Recorrido Ciudades Distancia (Km)
De 2 a 7 Barquisimeto - Los Teques 325
De 7 a 0 Los Teques – Caracas 26
De 0 a 6 Caracas - Ciudad Bolívar 674
De 6 a 4 Ciudad Bolívar - Maracay 626
De 4 a 9 Maracay - Pto. La Cruz 435
De 9 a 3 Pto. La Cruz - Valencia 484
De 3 a 8 Valencia – Barinas 367
De 8 a 5 Barinas – Mérida 174
De 5 a 1 Mérida - Maracaibo 413
Cálculo del Fitness 3524
Tabla 7
• Inicialmente se crea una población 10 rutas, generadas al azar, se
toma el mejor individuo para crear la siguiente ruta, si su fitness es
mejor que alguno de los diez (10) individuos de la población debe
sustituirlo.
• Al aplicar cierto número de iteraciones, se espera que la población
resultante minimice el recorrido.
• Explique cómo puede emplear otra función de fitness creada por
Ud.
• Explique otro método para resolver el Problema del Agente
Viajero (TSP)
7. 350 – T. P. LAPSO 2017/1 7/8
Ingeniería de Sistemas
• Función de selección de padres: Se propone escoger el padre
mejor adaptado para la creación de la nueva generación.
Sobre la base de la información presentada, desarrolle un programa que
genere diez (10) rutas (individuos) al azar, genere nuevos individuos a
partir del método explicado y muestre el top 10 ordenado de los
individuos con mejor fitness, pruebe aplicando al programa 100
iteraciones y .
El estudiante implementará el programa, bien sea empleando un lenguaje
de programación como Pascal, C, ó C++ o cualquier otro que le permita
emplear las funciones propuestas para obtener la solución del problema.
Instrucciones generales sobre el Trabajo Práctico
El estudiante debe entregar lo siguiente:
• Una carpeta que contenga un informe que incluya lo siguiente:
1- Explique cómo realizó el método de cambio de alelos en el
cromosoma y proponga otro método.
2- Explique cómo generó los números aleatorios
3- Lenguaje de programación empleado.
Si emplea algún lenguaje de programación, entregue un listado
documentado del programa y el programa ejecutable. En el
encabezado de cada procedimiento, función o sección del
código que lo requiera, debe incluir un breve comentario del
proceso que se realiza. Igualmente es conveniente hacerlo en la
definición de las estructuras de datos y variables utilizadas.
4- Listado de los resultados, mostrando diferentes corridas. Puede
emplear corridas con diferentes límites de iteraciones o variar el
tamaño de la población. Así como diferentes estrategias de
selección.
5- Conclusiones: Escriba las conclusiones obtenidas al aplicar el
algoritmo genético en la resolución del problema. No responda
con aspectos generales tomados de alguna fuente
relacionada con los Algoritmos Genéticos.
8. 350 – T. P. LAPSO 2017/1 8/8
Ingeniería de Sistemas
• Un disco compacto (CD). El mismo debe contener el programa fuente y
el programa ejecutable (.exe), en caso de requerir un compilador. Si
empleó otro lenguaje deberá enviar las instrucciones para su ejecución.
En este caso procure ejecutarlo desde el CD, en otro computador, a fin
de determinar si el programa funciona. De esta manera se evitan los
retrasos en la entrega de calificaciones, ya que en algunos casos
deben hacerse llamadas urgentes, con las posibles fallas de
comunicación, que podrían perjudicar la calificación del trabajo.
El CD debe estar libre de virus, rotulado con el nombre del estudiante,
el Centro Local y entregarse en un sobre, conjuntamente con el listado
del programa y los resultados.
• El trabajo se entregará completo, adjunto a la prueba integral.
• Recuerde incluir su dirección de correo electrónico con sus datos
personales, en la portada del informe, para establecer contactos, en
caso que se requiera.
Criterio de corrección
Se considera logrado el objetivo si al menos se cumple con lo siguiente:
El programa funciona correctamente de acuerdo a lo indicado.
Entrega de un informe que incluya todo lo solicitado en las
secciones previas.
Entrega el listado documentado del programa o código.
Entrega el listado de los resultados.
Entrega de un CD que contenga lo especificado en la sección
anterior.
FIN DEL TRABAJO PRÁCTICO
Nota: Los Trabajos prácticos son estrictamente individuales y una producción
inédita del estudiante, cualquier indicio que ponga en duda su originalidad, será
motivo para su anulación. Queda a discreción del asesor o profesor corrector,
solicitar una verificación de los objetivos contemplados en el mismo, únicamente en
aquellos casos en los que se vea comprometida la originalidad de la autoría del
presente trabajo práctico.