ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

PROYECTO DE PROGRAMACIÓN AVANZADA QUE RECURRA A UN ALGORITMO GENÉTICO


Enviado por   •  29 de Marzo de 2017  •  Práctica o problema  •  2.286 Palabras (10 Páginas)  •  331 Visitas

Página 1 de 10

                        

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

  • libre y código fuente abierto
  • lenguaje de propósito general
  • multiplataforma
  • orientado a objetos
  • portable

  • los lenguajes interpretados suelen ser relativamente lentos

C

Popular para la creación de software de sistema

  • Rápido
  • Eficiente
  • Es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix

  • No es popular para la creación de aplicación
  • Sintaxis compleja

C#

Está orientado a objetos

 Esta estandarizado por Microsoft como parte de su plataforma net.

  • Se desempeña de forma plena en los sistemas operativos Windows.
  • Sintaxis más en comparación con C y C++
  • Posibilidad de realizar aplicaciones web, de escritorio y móviles.

  • Requiere un mínimo de 4 gb para su instalación.

Java

Es orientado a objetos

Multiplataforma

  • Al ser orientado a objetos permite su modularización
  • Permite la creación de aplicaciones de escritorio Tiene soporte a desarrollo de aplicaciones móviles y web.

  • Es un lenguaje interpretado así que es relativamente lento en comparación con otros lenguajes

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.

...

Descargar como (para miembros actualizados) txt (11 Kb) pdf (818 Kb) docx (963 Kb)
Leer 9 páginas más »
Disponible sólo en Clubensayos.com