There's loads of usecases in logistics where you'd like to optimise a system while being subjected to constraints. In this series of videos we'd like to highlight a tool that can handle a subset of these problems called cvxpy.
This is the new problem definition with constraints;
import cvxpy as cp import pandas as pd df = pd.read_csv("/path/to/stigler.csv") price = df['price_cents'].values x = cp.Variable(price.shape) objective = cp.Minimize(cp.sum(price*x)) constraints = [ x >= 0, cp.sum(df['vitamin_c_mg'].values * x) >= 75, cp.sum(df['iron_mg'].values * x) >= 12, cp.sum(df['vitamin_b1_mg'].values * x) >= 1.8, cp.sum(df['vitamin_b2_mg'].values * x) >= 2.7, ] prob = cp.Problem(objective, constraints) prob.solve()
This is the pandas code at the bottom;
(df .assign(assignment = x.value) .sort_values(['assignment'], ascending=False) .head(5))
Feedback? See an issue? Feel free to mention it here.
If you want to be kept up to date, consider getting the newsletter.