Algoritmo Genético para: MOCHILA-ECONOMÍA¶

Un comerciante necesita conocer la cantidad de productos que debe adquirir, de modo que maximice las utilidades, y el valor de mercancias no exceda su capital.

Importación de librerías¶

In [ ]:
import ag_lbpt.util as util

Ejecución de algoritmo genético¶

In [ ]:
#--------------------------------------------------------------------------------------------------------------------------------------
# INPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# ArchicoMOCHILAcsv = 'moc_12v.csv' : Archivo de datos (Producto, Valor) en formato csv
# PesoMochila = 20000           : Capital límite
# Iteraciones = 5               : cantidad de veces que se ejecuta el AG
# Generaciones = 50             : Cantidade de generaciones que itera el AG
# Poblacion = 150               : Cantidad de pobladores del AG
# ProbMutacion = 0.5            : Probabilidad de mutación
# TipoMutacion = 'UnPunto'      : El individuo mutante se consigue por permutación de un atributo
# TipoCruce = 'UnPunto'         : la operación cruce se genera en un punto
# GenUnico = False              : Los genes puedenn tener valores repetidos
# IniciFijo = False             : El primer gen puede tomar cualquier valor
# IniciFinFijo = False          : El perimer y último gene puede tomar cualquier valor
# N = 10                        : Cantidad de ciudades
# MinCromosoma = [0,0,0,0,0,0,0,0,0,0,0,0] : Mínimo valor de los genes (mínima cantidad de productos)
# MaxCromosoma : [30,30,30,30,30,30,30,30,30,30,30,30] : Máximo valor de los genes (máxima cantidad de productos)
# TipoDato : ['int','int','int','int','int','int','int','int','int','int','int','int'] : Tipo de dato 
#                                 de los genes, 'int' número entero; 'float' número real
# PobElite = 2                  : Indidivuos de la élite
#--------------------------------------------------------------------------------------------------------------------------------------
# OUTPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# AG        : Objeto algoritmo genético
# Solución  : Cromosoma solución al problema
# Costo     : Costo que implica dicha solución 
# Producto  : Productos para los que se evalua la solución, que contiene como ultima fila la solución de AG
#--------------------------------------------------------------------------------------------------------------------------------------

AG, Solucion, Costo, Producto = util.agMOCHILAutilidad('moc_12v.csv', 20000, 5, 50, 150, 0.5, 'UnPunto', 'UnPunto', 
                                   False, False, False, 12, [0,0,0,0,0,0,0,0,0,0,0,0], [30,30,30,30,30,30,30,30,30,30,30,30],
                                   ['int','int','int','int','int','int','int','int','int','int','int','int'],
                                   2)
print('Solucion: ', Solucion)
print('Costo: ', Costo)
Solucion:  [1, 0, 0, 7, 0, 23, 3, 16, 8, 17, 28, 28]
Costo:  2318.0

Evolución de costo¶

In [ ]:
AG.GraficaCosto()

Solucion¶

In [ ]:
display(util.muestraMOCHILAValor(Producto))
  Producto Valor Cantidad Importe
0 Laptop 4000 1 4000
1 Camara fotográfica 2600 0 0
2 Casaca 600 0 0
3 Botella de agua 7 7 49
4 Libro 60 0 0
5 Auriculares 180 23 4140
6 Kit de auxilio 110 3 330
7 Chocolate 18 16 288
8 Zapatilla 350 8 2800
9 Linterna LED 50 17 850
10 Repelento de insectos 28 28 784
11 Cargador solar 200 28 5600
12 CANTIDAD E IMPORTE DE LA MOCHILA None None 18841

Luis Beltran Palma Ttito, luis.palma@unsaac.edu.pe (autor)

Dennis Iván Candia oviedo, dennis.candia@unsaac.edu.pe (coautor)

Carlos Ramón Quispe Onofre, carlos.quispe@unsaac.edu.pe(coautor)

Willian Zamalloa Paro, willian.zamalloa@unsaac.edu.pe(coautor)

José Mauro Pillco Quispe, jose.pillco@unsaac.edu.pe(coautor)