Dear community team,
I have tried to solve a scheduling model. I would like to use a warm start to solve my problem because The model takes much time to solve optimally even for a small set of given data. The model statistic and what I’m looking for are as follows.
The original model, a small instance, is solved in 2 minutes. Its objective function value is 5966.
MODEL STATISTICS
BLOCKS OF EQUATIONS 4 SINGLE EQUATIONS 101
BLOCKS OF VARIABLES 3 SINGLE VARIABLES 56 10 projected
NON ZERO ELEMENTS 291 DISCRETE VARIABLES 45
I’m using the following two different methods to implement a warm start.
1- Determine a basic feasible solution and feed them into the model.
2- Using GAP control to achieve a sub-optimal solution and then feeding into the model.
In the first choice, I’m using the below options:
* warm start
Free variable dummy;
Equation e0; e0.. dummy =e= 0;
Model schedule_warm / e0, e2, e3, e4 /;
schedule_warm.cutoff= 25000;
Options solvelink= 5, mip=cplex, optcr= 0.00, optca= 0.00, threads= 4;
Solve schedule_warm using mip minimize dummy;
c.up(j)= c.l(j);
y.up(j,k)= y.l(j,k);
$onecho > cplex.opt
mipstart 1
$offecho
schedule_warm.optfile=1;
* solve original
Model schedule_cold / e1, e2, e3, e4 /;
Options solvelink= 5, mip=cplex, optcr= 0.00, optca= 0.00, threads= 4;
Solve schedule_cold using mip minimize object;
In this case, the model is solved quickly (less than 1 second) and the objective function value is 6737.
In the second case, I adjusted the GAP in 0.20 and solved the model.
* using gap control
Model schedule_gap / e1, e2, e3, e4 /;
schedule_gap.cutoff= 25000;
Options solvelink= 5, mip=cplex, optcr= 0.20, optca= 0.20, threads= 4;
Solve schedule_gap using mip minimize object;
c.up(j)= c.l(j);
y.up(j,k)= y.l(j,k);
$onecho > cplex.opt
mipstart 1
$offecho
schedule_gap.optfile=1;
$offtext
* solve original
Model schedule_cold / e1, e2, e3, e4 /;
Options solvelink= 5, mip=cplex, optcr= 0.00, optca= 0.00, threads= 4;
Solve schedule_cold using mip minimize object;
In this case, the model is solved in 12 seconds and the objective function value is 5966.
MODEL STATISTICS
BLOCKS OF EQUATIONS 4 SINGLE EQUATIONS 101
BLOCKS OF VARIABLES 3 SINGLE VARIABLES 56
NON ZERO ELEMENTS 291 DISCRETE VARIABLES 20
According to the above comments, I was wondering if:
- Is my approach suitable to use a warm start into the model?
- What does “MIPSTART 1” mean? (when I remove it, the result is the same)
- Is there any way to improve the objective function value of 6737?
- Are there any specific ways to execute a warm start using GAMS/Cplex?
Regards
Omidi. A