logo

... cvxpy one.


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.


Episode Notes

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[0])
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.