This is a very nice blog post written by Nathan Brixius here. He compares the persons who build solvers to shipbuilder, people who write models to sailors and the end user of applications to passengers. The problem with CP is that the boat is so difficult to sail that to be a good sailor, you also need to have a very good knowledge in shipbuilding so I'm not sure the comparison holds for CP.
My opinions is that CP is probably more like a formula one. Very cool, very fast but .... don't tell me that Michael Schumacher doesn't know anything about the internals of his car (the only problem is that there is no place for passengers in a formula one ;-)).
Mouais... (in french in the text).
RépondreSupprimerDo you apply this idea for any kind of solver or only for CP?
In any case solving an NP-Hard problem is hard, because the problem is NP-Hard. If it was easy the problem would not be so difficult and P vs NP question would have been solved!
What I mean is that CP us much less black-box than MIP (at least MIP with commercial solver like cplex or gurobi). Sometime, even for problems that I find very appropriate for CP I need to 1) make a very nice model 2) use as much global constraints as possible with the right consistency 3) design a custom heuristic 4) put some lns to scale and only with that I can compete with a cplex "model and run" approach. But for comparable performances, even if I need all these steps, I always prefer CP ;-) because at least I understand and can control what happens.
RépondreSupprimer