sábado, 25 de mayo de 2013

Evidencia 5: Algoritmos genéticos para problema de la mochila

Objetivo
Analizar las técnicas de ajuste y auto-ajuste paramétrico mediante el análisis de algoritmos que requieren ajuste de parámetros y las técnicas más apropiadas para el correcto funcionamiento de las mismas.

Introducción
Implementa un algoritmo genético en el lenguaje de tu elección para resolver el problema de la mochila; utiliza como prueba las instancias proporcionadas (vienen más abajo).

Desarrollo
Se utilizaron esta instancia para probar el código. El cual fue desarrollado en C++ y compilado por DEV-C++
Instancia 1
Objetoo1o2o3o4o5
Ganancia1515303010
Peso8715105

Código



Conclusiones
Qué tan lejos quedó tu AG del óptimo?: En algunos casos obtuvo el óptimo, casi en un 70% de las veces

Qué valores funcionaron mejor para la instancia?: Ambos funcionan muy bien, pero opte por usar las del 1 por ser menores datos, y su facilidad de manejo.

Qué diferencia notaste entre resolver las instancias por fuerza bruta y resolverlas mediante un AG?: la rapidez del proceso y la sobre carga de información son muy notorias entre estos 2 métodos.

Qué tan fácil crees que sea resolver por fuerza bruta una instancia de 11 objetos? de 20? de 30? No es nada fácil por que cada vez que compara tiene que cargar un listado completo, y es mucho trabajo inutil para el procesador

Para que sirve un AG? para buscar una solución optima a combinaciones de casos ó objetos.

Qué ventajas tiene un AG? su eficacia al momento de obtener los mejores resultados y compararlos entre ellos para obtener el optimo.

Que desventajas tiene un AG? el inicio en la selección de la primera generación por obtenerlos de manera aleatoria.

Puntos Extra
Para que el usuario defina cuantos objetos con sus valores y pesos solo se crea un arreglo bidimensional de 2x"n" objetos. El cual es llamado en cada asignación de peso/valor de cada renglón.
Y la capacidad de la mochila solo se le pide al usuario que ingrese un numero >"0" el cual es vaciado en la variable: "Capacidad"..... Y así con esto puede ser modificable los parámetros del programa.


Referencias

Aplicación echa en DEV-C++: http://www.bloodshed.net/

No hay comentarios:

Publicar un comentario