Updating the model – lazy modification
Model modifications in the Gurobi optimizer are done in a lazy fashion, meaning that the effects of the modifications are not seen immediately. This approach makes it easier to perform a sequence of model modifications, since the model doesn't change while it is being modified. However, lazy modifications do require you to manually integrate model changes when needed. This is done with the following routine:
/* Integrate new variables */ error = GRBupdatemodel(model); if (error) goto QUIT;In our example, the model would contain zero variables immediately before the call to GRBupdatemodel(), and three immediately after. Later attempts to add constraints to the model without first making this call would fail, since the model would contain no variables.