The pieces are all there for this in gurobipy v10 and since everything would be a 1D operations performance should be very good. We would only enable the extension for gurobipy>=10, and would likely want a way to disable it in case unsupported pandas operations come up.
A tricky part would be name generation:
- For variables, we get this for free from
.addVars, but .addMVar can only create names for dense numeric indexes, so names would need to be created by gurobipy-pandas (not difficult, but possibly slow)
- For constraints, we already create the names in
gurobipy-pandas, but I'm not sure that there is a supported way to feed a list of names when creating MConstrs and MQConstrs.
The pieces are all there for this in gurobipy v10 and since everything would be a 1D operations performance should be very good. We would only enable the extension for gurobipy>=10, and would likely want a way to disable it in case unsupported pandas operations come up.
A tricky part would be name generation:
.addVars, but.addMVarcan only create names for dense numeric indexes, so names would need to be created bygurobipy-pandas(not difficult, but possibly slow)gurobipy-pandas, but I'm not sure that there is a supported way to feed a list of names when creating MConstrs and MQConstrs.