Originally posted by: qtbgo
Hi, I have a OPL CP model, I use it to solve a problem in the literature. It can solve all instances(about 200 instances) with perfect quality except one instance. For this instance, it even cannot find a feasible solution in 2 hours(and after 2 hours).
I use the search phase as follows:
execute {
var f = cp.factory;
cp.setSearchPhases( f.searchPhase(vt), f.searchPhase(vb));
}
Where vt and vb are arrays of interval variables.
I check the log, and it shows:
! ---------------------------------------------------------------------------- ! Minimization problem - 160 variables, 3,163 constraints, 2 phases ! TimeMode = ElapsedTime ! Initial process time : 0.00s (0.00s extraction + 0.00s propagation) ! . Log search space : 1,040.1 (before), 1,040.1 (after) ! . Memory usage : 2.7 MB (before), 3.1 MB (after) ! Using parallel search with 4 workers. ! ---------------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision 1,000 31 2 on vb(48) 1,001 29 4 on vb(22) 1,001 15 3 on vb(49) 1,002 36 1 on vb(73) 2,001 15 3 on vb(24) 2,000 14 1 on vb(6) 2,001 14 4 on vb(67) 2,000 31 2 on vb(40) 3,000 14 1 on vb(68) 3,001 15 3 on vb(49) 3,001 14 4 on vb(52) 3,000 31 2 on vb(48) 4,000 21 2 on vb(49) 4,000 15 3 on vb(70) 4,001 14 4 on vb(40) 4,001 14 1 on vb(55) 5,000 14 4 on vb(73) 5,002 21 2 on vb(5) 5,001 14 1 on vb(40) 5,001 14 3 on vb(27) ! Best Branches Non-fixed W Branch decision 6,001 14 1 on vb(21) 6,002 14 4 on vb(39) 6,001 21 2 on vb(4) 6,000 14 3 on vb(75) 7,000 14 1 on vt(55) 7,000 21 2 on vt(57) 7,000 14 4 on vt(49) 7,000 14 3 on vt(48) 8,000 14 1 on vb(68) 8,001 21 2 on vb(22) 8,000 14 3 on vb(22) 8,000 14 4 on vb(73) 9,001 14 3 on vb(31) 9,000 21 2 on vb(69) 9,000 14 4 on vb(31) 9,001 14 1 on vb(15) 10,002 14 2 on vb(49) 10,000 14 1 on vb(22) 10,001 14 3 on vb(69) 10,001 14 4 on vb(36) ! Best Branches Non-fixed W Branch decision 11,001 14 4 on vb(40) 11,000 14 2 on vb(9) 11,000 14 1 on vb(69) 11,000 14 3 on vb(29) 12,000 14 3 on vb(80) 12,000 14 2 on vb(73) 12,000 14 4 on vb(55) 12,001 14 1 on vb(40) 13,001 14 4 on vb(28) 13,001 14 3 on vb(62) 13,000 14 2 on vb(73) 13,000 14 1 on vb(24) 14,001 14 4 on vb(41) 14,000 14 1 on vb(50) 14,001 14 3 on vb(56) 14,001 14 2 on vb(22) 15,000 14 4 on vb(40) 15,002 14 2 on vb(40) 15,000 14 3 on vb(5) 15,000 14 1 on vb(25) ......
Please note that there are only a few vt in the log, Why? All other instances have a lot vt in the log. For example:
! ---------------------------------------------------------------------------- ! Minimization problem - 160 variables, 3,163 constraints, 2 phases ! TimeMode = ElapsedTime ! Initial process time : 0.00s (0.00s extraction + 0.00s propagation) ! . Log search space : 1,037.6 (before), 1,037.6 (after) ! . Memory usage : 2.7 MB (before), 3.1 MB (after) ! Using parallel search with 4 workers. ! ---------------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision 1,002 42 2 on vb(18) 1,003 1 1 on vt(13) 1,055 1 4 on vt(17) 1,048 1 3 on vt(53) * 74,505 243 0.89s 4 - 74,505 2,000 6 3 on vb(68) 74,505 2,000 15 4 on vb(33) 74,505 2,000 43 2 on vb(24) 74,505 2,000 29 1 on vb(53) * 71,488 1,851 1.08s 2 - 71,488 3,000 6 3 on vb(76) 71,488 3,000 15 4 on vb(18) 71,488 3,002 43 2 on vt(16) 71,488 3,026 1 1 on vt(70) 71,488 4,000 32 4 on vb(76) 71,488 4,000 11 1 on vb(10) 71,488 4,000 19 3 on vb(21) 71,488 4,000 6 2 on vb(14) 71,488 5,001 11 1 on vb(10) 71,488 5,000 17 4 on vb(69)
If I change search phase to: cp.setSearchPhases( f.searchPhase(vb), f.searchPhase(vt));}, it will solve out some feasible solutions, but the quality are too bad.
can any one help me figure it out?
Thank you very much. By the way, the model is being used to write a paper, so I cannot publish it here. But if you want to see the problem, I can send you through email.
Sorry for my english and hope you can unstander me.
#DecisionOptimization#OPLusingCPOptimizer