Cracking the Knapsack Problem: Python MIP for Beginners
An introduction to the Python MIP library for solving the knapsack problem.
Mathematical programming is a subclass of mathematical problems regarding the selection of the best decision among several options considering one or more criteria.
As a result, mathematical programming, and in particular the knapsack problem, finds many applications across diverse domains, ranging from investment selection to project scheduling.
In this article, we’re going to explore a way to solve this type of problem using the Python MIP library, without having to delve into the complicated mathematical theories behind it.
Mathematical optimization in a nutshell
Mathematical programming is also called mathematical optimization because it usually consists of finding the best value (max/min) for a given function by manipulating its parameters.
To simplify the scenario a little, we will consider integer programming problems in which all variables must take only integer values (whole numbers).
The basic structure of any mathematical programming problem includes:
- Sets and parameters: fixed values that define the problem and…