Algoritmo Genético para: PROBLEMA DE MOCHILA¶

Problema de embalaje de productos optimizando el valor de envio, sin exceder el peso de la MOCHILA.

Importación de librería¶

In [ ]:
import ag_lbpt.util as util

Ejecución de algoritmo genético¶

In [ ]:
#--------------------------------------------------------------------------------------------------------------------------------------
# INPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# ArchicoMOCHILAcsv = 'moc_12vp.csv' : Archivo de datos (Producto, Valor, Peso) en formato csv
# PesoMochila = 80              : Peso límite de la mochila
# Iteraciones = 15              : 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 : [9,9,9,9,9,9,9,9,9,9,9,9] : 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.agMOCHILA('moc_12vp.csv', 80, 15, 50, 150, 0.5, 'UnPunto', 'UnPunto', 
                                   False, False, False, 12, [0,0,0,0,0,0,0,0,0,0,0,0], [9,9,9,9,9,9,9,9,9,9,9,9],
                                   ['int','int','int','int','int','int','int','int','int','int','int','int'],
                                   2)
print('Solucion: ', Solucion)
print('Costo: ', Costo)
print(Producto)
Solucion:  [8, 9, 8, 2, 6, 9, 7, 8, 7, 3, 9, 4]
Costo:  0.09586578789694428
                        Producto Valor  Peso Cantidad  Importe
0                         Laptop  4000   3.0        8    32000
1             Camara fotográfica  2600   2.0        9    23400
2                         Casaca   600   4.0        8     4800
3                Botella de agua     7   1.0        2       14
4                          Libro    60   0.5        6      360
5                    Auriculares   180   0.8        9     1620
6                 Kit de auxilio   110   2.5        7      770
7                      Chocolate    18   0.3        8      144
8                      Zapatilla   350   2.5        7     2450
9                   Linterna LED    50   0.6        3      150
10         Repelento de insectos    28   0.5        9      252
11                Cargador solar   200   2.0        4      800
12  PESO E IMPORTE DE LA MOCHILA  None  80.0     None    66760

Evolución de costo¶

In [ ]:
AG.GraficaCosto()

Visualización del contenido final de la mochila¶

In [ ]:
display(util.muestraMOCHILAValorPeso(Producto))
  Producto Valor Peso Cantidad Importe
0 Laptop 4000 3.000000 8 32000
1 Camara fotográfica 2600 2.000000 9 23400
2 Casaca 600 4.000000 8 4800
3 Botella de agua 7 1.000000 2 14
4 Libro 60 0.500000 6 360
5 Auriculares 180 0.800000 9 1620
6 Kit de auxilio 110 2.500000 7 770
7 Chocolate 18 0.300000 8 144
8 Zapatilla 350 2.500000 7 2450
9 Linterna LED 50 0.600000 3 150
10 Repelento de insectos 28 0.500000 9 252
11 Cargador solar 200 2.000000 4 800
12 PESO E IMPORTE DE LA MOCHILA None 80.000000 None 66760

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)