Skip to content

[FEA] Adding constraints and variables to an existing LP problem (C/C++ API) #725

@ktp-max

Description

@ktp-max

Hi all,

Thanks for your great work in developing cuopt.

I would like to ask if you could provide a feature in the C/C++ API for expanding an existing LP problem by adding additional constraints and variables and/or modifying existing constraints and variables (changing a matrix coefficient, an objective coefficient or a constraint/variable bound).

There seems to be something in the python API regarding adding constraints/variables, but I have not seen anything related in the C API. For the latter, it seems that the only way for modifying an LP problem is to delete the existing instance and build/solve from scratch the augmented one. In the C++ API, there are several get-type functions in the class optimization_problem_t which return non-cost references to containers e.g. :

rmm::device_uvector<f_t>& get_constraint_matrix_values();

Could these be used for augmenting the existing problem? Would that be safe?

Most simplex solvers support problem modifications since these provide runtime benefits if the primal/dual of the initial problem stays feasible in the modified instance. It would be very nice to have this also in cuopt, if possible.

Thanks,

C.

Metadata

Metadata

Assignees

Labels

awaiting responseThis expects a response from maintainer or contributor depending on who requested in last comment.feature requestNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions