PROYECTO DE PROGRAMACIÓN AVANZADA QUE RECURRA A UN ALGORITMO GENÉTICO
Enviado por Lore2396 • 29 de Marzo de 2017 • Práctica o problema • 2.286 Palabras (10 Páginas) • 326 Visitas
UNIVERSIDAD POLITÉCNICA DEL VALLE DE TOLUCA
NOMBRE DEL PROGRAMA EDUCATIVO:
INGENIERÍA EN INFORMÁTICA
NOMBRE DEL ASIGNATURA:
PROGRAMACIÓN AVANZADA
NOMBRE DE LA PRÁCTICA:
PROYECTO DE PROGRAMACIÓN AVANZADA QUE RECURRA A UN ALGORITMO GENÉTICO
FACILITADOR:
LIA. MONSERRAT PONCE CRUZ
INTEGRANTES:
No | Matrícula | Nombre | Firma |
MAYO 2016
OBJETIVO GENERAL
Buscar e identificar una solución óptima para este problema en los conocimientos dentro de la rama de la inteligencia artificial, de esta forma se requiere Implementar un algoritmo genético que beneficio en los resultados de un programa.
Para ello se empleará el método de la mutación donde se realiza intercambiando dos genes seleccionados aleatoriamente y en la selección se elige a la mitad de individuos con mejores soluciones
.
OBJETIVOS ESPECÍFICOS
- Analizar detalladamente la problemática presentada.
- Generar un conjunto de soluciones posibles.
- Desarrollar un algoritmo evolutivo que de solución a este problema.
INTRODUCCIÓN
La computación evolutiva es una parte de la inteligencia artificial donde se agrupan diferentes técnicas adaptativas enfocadas a encontrar las mejores soluciones para resolver problemas de optimización.
Estas técnicas parten de una de las principales ideas que existen en la teoría de la evolución biológica propuesta por Charles Darwin, la selección natural es el proceso histórico de transformación de unas especies en otras especies descendientes e incluye la extinción de la gran mayoría de las especies que han existido, lo que es sin duda un problema de optimización además de que muchos de los términos que utiliza la computación evolutiva son tomados de la biología, con la advertencia de que se son usados para representar más o menos la misma idea biológica lo que no equivale a que sean iguales.
El problema del agente viajero o TSP por sus siglas en inglés (Travelling Salesmen Problem ) es uno de los problemas más famosos y complejos de las ciencias computacionales y ha sido abordado por varias ramas de la ingeniería y por distintas razones, su principal aplicación es la de rutear desde distintas perspectivas, ya sea un proceso que lleva una secuencia específica o una distribución de carácter logístico en la que intervienen elementos del transporte,
buscando la mejor ruta posible con criterios de economía en distancia o en costo.
Proveer soluciones contribuye a mejorar tareas y procesos en distintos ámbitos
De esta forma implementado este algoritmo que es capaz de engendrar soluciones mediante la información obtenida con anterioridad, los algoritmos genéticos ayudan a la comprensión de problemas complejos y que requieren de soluciones dinámicas y consecutivas, un ejemplo de esto es el algoritmo de las mochilas en donde la solución al encontrar el peso adecuado depende de la información obtenida en cada posible solución descartando las soluciones erróneas o nulas y engendrando en base a ello nueva información.
DESCRIPCIÓN
El problema, más o menos, enuncia que: Un agente viajero tiene que visitar n ciudades sin pasar por la misma ciudad más que una vez, así mismo desea recorrer las ciudades trasladándose lo menos posible entre ellas, esto quiere decir que desea encontrar la ruta más corta para pasar por todas y cada una de ellas solamente una vez.
El problema es sencillo y se puede resolver con un algoritmo genético simple, basta con que se emplee técnicas permutativas (evitando así que se de una solución en la que se repitan ciudades para una ruta).
Para llegar a la solución de este problema escribí una pequeña aplicación en C#, en donde se emplea un algoritmo genético para llegar al resultado.
Para la cruza se emplea el método del algoritmo evolutivo en que la mutación se realiza intercambiando dos genes seleccionados aleatoriamente y en la selección se elige a la mitad de individuos con mejores soluciones.
¿CUAL ES SU OBJETIVO PRINCIPAL?
Encontrar la ruta más asertiva y menos complicada, cumpliendo con el objetivo de no pasar por más de una vez por el mismo punto
[pic 4]
Algoritmo
1.-Declarar variables
2.-encontrar puntos de viaje
3.-manipular los puntos de control
4.-validar los recursos del código
5.-realizar un análisis de las entradas
6.-encontrar coincidencias con sus antecesores
7.-mejorar la mutación de la nueva solución
8.-presionar al interprete
9.-realizar pruebas de su ejecución
10.-Realizar nueva manipulación del código
11.-validar la simulación
VENTAJAS DE C#
LENGUAJE | CARACTERISTICAS | FORTALEZAS | DEBILIDADES |
Python | Pemite la creación de todo tipo de programas incluso sitios web · no requiere de compilación es un código interpretado |
|
|
C | Popular para la creación de software de sistema |
|
|
C# | Está orientado a objetos Esta estandarizado por Microsoft como parte de su plataforma net. |
|
|
Java | Es orientado a objetos Multiplataforma |
|
|
De esta forma se deduce la comparación de diversos lenguajes utilizados actualmente.
C# Es un lenguaje ideal para desarrollar aplicaciones para los entorno de Windows.
DESARROLLO
Diagrama de flujo
Un diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo diferente que contiene una breve descripción de la etapa de proceso.
...