- Assume we have 100% feasible solution for the model with decision variable
a[i]
. - Then we are changing the objective function on something similar to
minimize sum(i in…)maxl(0, a[i]-100)
and trying to use our feasible solution as a start solution. - Sometimes we are lucky but sometimes we have a message: "No solution found from 1 MIP starts. Retaining values of one MIP start for possible repair" – in my case it means that I’ll nether get any solution because of model complexity. I suppose
maxl
makes some magic here.
Is there any way to tell CPLEX to use my start solution on every start with maxl
in the objective?
P.S.:
- After analizing LP file I tried to change the model by adding
b[i]
variable (b[i]==a[i]-100
) with corresponding changes in objective (minimizesum(i in…)maxl(0, b[i])
) and providing start values for it together with starting values fora[i]
– no effect except increasing solving time for succeed warmstarts. - I'm using OPL libraries for c#. Fixing all variables from the previous solution by GetStart and SetStart methods gives nothing. I had to use Attach method for some "float" variables to make a model accept the start solution. The list of variables for a successful warmstart was formed after experiments.
- I have an extra model to avoid numerical instability which fixes the precision of all numeric variables to 10^-3 and provides a feasible solution.