SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
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
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
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
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
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:
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)
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.
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.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Correcion e. completahj
Correcion e. completahjCorrecion e. completahj
Correcion e. completahj
 
Expresiones aritmetica
Expresiones aritmeticaExpresiones aritmetica
Expresiones aritmetica
 
Programación 1: tipos básicos de datos en C
Programación 1: tipos básicos de datos en CProgramación 1: tipos básicos de datos en C
Programación 1: tipos básicos de datos en C
 
Manual de Expresiones LIF v1.1 de eFactory ERP/CRM en la Nube
Manual de Expresiones LIF  v1.1 de eFactory ERP/CRM en la NubeManual de Expresiones LIF  v1.1 de eFactory ERP/CRM en la Nube
Manual de Expresiones LIF v1.1 de eFactory ERP/CRM en la Nube
 
Tarea de algebra definiciones 07 09 2012
Tarea de algebra definiciones 07 09 2012Tarea de algebra definiciones 07 09 2012
Tarea de algebra definiciones 07 09 2012
 
Programación 1: introducción a C
Programación 1: introducción a CProgramación 1: introducción a C
Programación 1: introducción a C
 
Integracion aproximada
Integracion aproximadaIntegracion aproximada
Integracion aproximada
 
Teoría de la gráfica de curva patron
Teoría de la gráfica de curva patronTeoría de la gráfica de curva patron
Teoría de la gráfica de curva patron
 
Manual de eFactory ERP/CRM - Expresiones LIF Generales
Manual de eFactory ERP/CRM - Expresiones LIF GeneralesManual de eFactory ERP/CRM - Expresiones LIF Generales
Manual de eFactory ERP/CRM - Expresiones LIF Generales
 
Alejo y n
Alejo y nAlejo y n
Alejo y n
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
cap8.pdf
cap8.pdfcap8.pdf
cap8.pdf
 
Computacion
ComputacionComputacion
Computacion
 
Biseccion matlab
Biseccion matlabBiseccion matlab
Biseccion matlab
 
Buscarv
BuscarvBuscarv
Buscarv
 
Manual de funcionamiento de sistema de calificaciones. Sandra Ortega
Manual de  funcionamiento de sistema de calificaciones. Sandra OrtegaManual de  funcionamiento de sistema de calificaciones. Sandra Ortega
Manual de funcionamiento de sistema de calificaciones. Sandra Ortega
 

Similar a Enunc tp350-2017-1

Mas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfMas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfmargothingrithllanca
 
Mas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfMas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfmargothingrithllanca
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoLincoln School
 
Evaluacion final hoja de ruta_practica_de_laboratorio_301303
Evaluacion final hoja de ruta_practica_de_laboratorio_301303Evaluacion final hoja de ruta_practica_de_laboratorio_301303
Evaluacion final hoja de ruta_practica_de_laboratorio_301303louis1984
 
Enunc tp350-2015-2
Enunc tp350-2015-2Enunc tp350-2015-2
Enunc tp350-2015-2Pablo Mora
 
Sistemas digitales combinacionales - ejercicios
Sistemas digitales combinacionales - ejerciciosSistemas digitales combinacionales - ejercicios
Sistemas digitales combinacionales - ejerciciosFrancesc Perez
 
Ejemplos de algoritmos
Ejemplos de algoritmos Ejemplos de algoritmos
Ejemplos de algoritmos Angelica Rada
 
Examen primera evaluacion_iii_2009_2010_solucion
Examen primera evaluacion_iii_2009_2010_solucionExamen primera evaluacion_iii_2009_2010_solucion
Examen primera evaluacion_iii_2009_2010_solucionJosé Díaz Pilpe
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosAlexandra Ochoa
 
Desarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXDesarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXReyna FalcÓn
 
Guia logica-lab1-c1
Guia logica-lab1-c1Guia logica-lab1-c1
Guia logica-lab1-c1zeta2015
 
Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2agustin rojas
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeIntJerry
 
Algoritmo 2
Algoritmo 2Algoritmo 2
Algoritmo 2Facebook
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaOmar B.
 
Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosEdward Ropero
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptssuser6eba56
 

Similar a Enunc tp350-2017-1 (20)

Mas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfMas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdf
 
Mas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfMas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdf
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmico
 
Evaluacion final hoja de ruta_practica_de_laboratorio_301303
Evaluacion final hoja de ruta_practica_de_laboratorio_301303Evaluacion final hoja de ruta_practica_de_laboratorio_301303
Evaluacion final hoja de ruta_practica_de_laboratorio_301303
 
Enunc tp350-2015-2
Enunc tp350-2015-2Enunc tp350-2015-2
Enunc tp350-2015-2
 
Sistemas digitales combinacionales - ejercicios
Sistemas digitales combinacionales - ejerciciosSistemas digitales combinacionales - ejercicios
Sistemas digitales combinacionales - ejercicios
 
Ejemplos de algoritmos
Ejemplos de algoritmos Ejemplos de algoritmos
Ejemplos de algoritmos
 
Prueba1
Prueba1Prueba1
Prueba1
 
Examen primera evaluacion_iii_2009_2010_solucion
Examen primera evaluacion_iii_2009_2010_solucionExamen primera evaluacion_iii_2009_2010_solucion
Examen primera evaluacion_iii_2009_2010_solucion
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Desarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXDesarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTX
 
Guia logica-lab1-c1
Guia logica-lab1-c1Guia logica-lab1-c1
Guia logica-lab1-c1
 
Teorico2
Teorico2Teorico2
Teorico2
 
Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeInt
 
Algoritmo 2
Algoritmo 2Algoritmo 2
Algoritmo 2
 
Evelin alejandra sanchez ayala t.i 1
Evelin alejandra sanchez ayala t.i 1Evelin alejandra sanchez ayala t.i 1
Evelin alejandra sanchez ayala t.i 1
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmica
 
Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmos
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 

Más de Pablo Mora

2da reprogramacion calendario_de_pruebas_2019_1
2da reprogramacion  calendario_de_pruebas_2019_12da reprogramacion  calendario_de_pruebas_2019_1
2da reprogramacion calendario_de_pruebas_2019_1Pablo Mora
 
Iatf 16949 2016 en español
Iatf 16949 2016 en españolIatf 16949 2016 en español
Iatf 16949 2016 en españolPablo Mora
 
Tp348 enunc-2015-2
Tp348 enunc-2015-2Tp348 enunc-2015-2
Tp348 enunc-2015-2Pablo Mora
 
348tp enunciado-2015-2
348tp enunciado-2015-2348tp enunciado-2015-2
348tp enunciado-2015-2Pablo Mora
 
Ams mit-2-math-writing
Ams mit-2-math-writingAms mit-2-math-writing
Ams mit-2-math-writingPablo Mora
 
305tp 2014-1-solo-enunciado
305tp 2014-1-solo-enunciado305tp 2014-1-solo-enunciado
305tp 2014-1-solo-enunciadoPablo Mora
 
Tp311 bases-de-datos-2014-1
Tp311 bases-de-datos-2014-1Tp311 bases-de-datos-2014-1
Tp311 bases-de-datos-2014-1Pablo Mora
 
Tp358 sistemas operativos-2014-2
Tp358 sistemas operativos-2014-2Tp358 sistemas operativos-2014-2
Tp358 sistemas operativos-2014-2Pablo Mora
 
COVENIN 389-98 bombillos de uso general
COVENIN 389-98 bombillos de uso generalCOVENIN 389-98 bombillos de uso general
COVENIN 389-98 bombillos de uso generalPablo Mora
 
ANSYS Parametric Design Language Guide
ANSYS Parametric Design Language GuideANSYS Parametric Design Language Guide
ANSYS Parametric Design Language GuidePablo Mora
 

Más de Pablo Mora (16)

Tp347 2019-2
Tp347 2019-2Tp347 2019-2
Tp347 2019-2
 
2da reprogramacion calendario_de_pruebas_2019_1
2da reprogramacion  calendario_de_pruebas_2019_12da reprogramacion  calendario_de_pruebas_2019_1
2da reprogramacion calendario_de_pruebas_2019_1
 
342 tp-2017-2
342 tp-2017-2342 tp-2017-2
342 tp-2017-2
 
342 tp-2017-2
342 tp-2017-2342 tp-2017-2
342 tp-2017-2
 
Iatf 16949 2016 en español
Iatf 16949 2016 en españolIatf 16949 2016 en español
Iatf 16949 2016 en español
 
Tp348 enunc-2015-2
Tp348 enunc-2015-2Tp348 enunc-2015-2
Tp348 enunc-2015-2
 
348tp enunciado-2015-2
348tp enunciado-2015-2348tp enunciado-2015-2
348tp enunciado-2015-2
 
Ams mit-2-math-writing
Ams mit-2-math-writingAms mit-2-math-writing
Ams mit-2-math-writing
 
348im 2013-2
348im 2013-2348im 2013-2
348im 2013-2
 
Tp336 2015-1
Tp336 2015-1Tp336 2015-1
Tp336 2015-1
 
305tp 2014-1-solo-enunciado
305tp 2014-1-solo-enunciado305tp 2014-1-solo-enunciado
305tp 2014-1-solo-enunciado
 
358pc
358pc358pc
358pc
 
Tp311 bases-de-datos-2014-1
Tp311 bases-de-datos-2014-1Tp311 bases-de-datos-2014-1
Tp311 bases-de-datos-2014-1
 
Tp358 sistemas operativos-2014-2
Tp358 sistemas operativos-2014-2Tp358 sistemas operativos-2014-2
Tp358 sistemas operativos-2014-2
 
COVENIN 389-98 bombillos de uso general
COVENIN 389-98 bombillos de uso generalCOVENIN 389-98 bombillos de uso general
COVENIN 389-98 bombillos de uso general
 
ANSYS Parametric Design Language Guide
ANSYS Parametric Design Language GuideANSYS Parametric Design Language Guide
ANSYS Parametric Design Language Guide
 

Enunc tp350-2017-1

  • 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.