PuLP: programmation linéaire simple
objectif
Expliquer et montrer comment résoudre un problème de PL (maximisation) avec PuLP.
code minimal
import pulp as pl
# Max z = 3x + 2y s.t. 2x + y <= 100, x + y <= 80, x,y >= 0
model = pl.LpProblem("demo", pl.LpMaximize)
x = pl.LpVariable("x", lowBound=0)
y = pl.LpVariable("y", lowBound=0)
model += 3*x + 2*y
model += 2*x + y <= 100
model += x + y <= 80
model.solve(pl.PULP_CBC_CMD(msg=False))
float(pl.value(x)), float(pl.value(y)), float(pl.value(model.objective))
utilisation
# ajouter une contrainte de demande minimale
model += x >= 20
model.solve(pl.PULP_CBC_CMD(msg=False))
variante(s) utile(s)
# problème de minimisation
# model = pl.LpProblem("min", pl.LpMinimize)
notes
- PuLP utilise CBC par défaut; installez glpk ou cbc pour meilleures perfs.
- Les coefficients doivent être numériques (pas de NaN).