Skip to content

El repositorio "Problema de la Mochila" contiene soluciones en Python para el conocido problema de la mochila (Knapsack Problem) en sus versiones no fraccionada y fraccionada. El problema de la mochila es un clásico de la optimización combinatoria.

Notifications You must be signed in to change notification settings

reyandres015/knapsack-problem-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

knapsack-problem-python

Problema de la Mochila

Este repositorio contiene soluciones en Python para el problema de la mochila (Knapsack Problem) en sus versiones no fraccionada y fraccionada.

Descripción del Código

Versión No Fraccionada

El archivo no-fractional-knapsack-problem..py contiene una implementación del problema de la mochila no fraccionada. Se define una clase BagObject para representar los objetos que pueden ir en la mochila, y se implementa el método __lt__ para permitir la comparación de objetos basada en su ratio valor/peso.

La función fillBag recibe tres listas: peso, valores y weight, que representan el peso de cada objeto, el valor de cada objeto y la capacidad de la mochila, respectivamente. La función selecciona los objetos de mayor valor que puedan caber en la mochila y muestra los objetos seleccionados y el valor máximo alcanzado.

Versión Fraccionada

El archivo fractional-knapsack-problem..py contiene una implementación del problema de la mochila fraccionada. Al igual que en la versión no fraccionada, se define la clase BagObject para representar los objetos que pueden ir en la mochila.

La función fillBag recibe tres listas: peso, valores y weight, que representan el peso de cada objeto, el valor de cada objeto y la capacidad de la mochila, respectivamente. La función selecciona los objetos de mayor valor que puedan caber en la mochila, ajustando fraccionalmente el peso si es necesario, y muestra los objetos seleccionados y el valor máximo alcanzado.

Ejemplo de Uso

Para utilizar los códigos, simplemente ejecuta los archivos no-fractional-knapsack-problem..py y fractional-knapsack-problem..py. Puedes modificar las listas peso, valores y weight con los valores deseados para realizar pruebas con diferentes conjuntos de objetos y capacidades de la mochila.

# Ejemplo para la versión no fraccionada
peso = [1, 6, 3, 2, 4]
valores = [10, 50, 20, 30, 60]
weight = 11
fillBag(peso, valores, weight)

# Ejemplo para la versión fraccionada
peso = [1, 5, 3, 2, 4]
valores = [10, 50, 20, 30, 60]
weight = 11
fillBag(peso, valores, weight)

Contribuciones

Siéntete libre de realizar mejoras, corregir errores o agregar nuevas funcionalidades al código. Las contribuciones son bienvenidas y te agradeceremos si deseas enviar un pull request. Esperamos que estos códigos te sean útiles para resolver el problema de la mochila en ambas versiones. Si tienes alguna pregunta o sugerencia, no dudes en comunicarte. ¡Gracias por visitar este repositorio!

About

El repositorio "Problema de la Mochila" contiene soluciones en Python para el conocido problema de la mochila (Knapsack Problem) en sus versiones no fraccionada y fraccionada. El problema de la mochila es un clásico de la optimización combinatoria.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages