Originally posted by: Petr Vilím
Hello FiFila,
If you want to use CP Optimizer then you have several options. You can use OPL, then you don't need a compiler, you simply model the problem in OPL. But there is also a way to use CP Optimizer in C++, Java or C# programs and we provide examples how to do it. That's probably what you saw. The main advantage of OPL is simplicity and rapid development. On the other hand OPL is an interpreted language and so the translation of the model from OPL to the engine level could take more time. So if you want to save that time, you can use CP Optimizer directly from other languages. Another reason to use in particular C++ interface for CP Optimizer is that it offers functionalities that are not accessible from OPL: develop your own constraints or your own search procedure.
To answer your second question, CP Optimizer offers many specialized constraints for combinatoric problems, for example allDiff(erent), distribute or pack and also many specialized constraint for scheduling problems such as precedences, noOverlap, cumulative expressions etc. On the other hand, CP Optimizer does not support floating-point variables. It supports floating-point expressions though, so you can write constraints such as 1.5*x*y <= 100, but x and y must be integer variables (or another expressions).
Petr
#CPOptimizer#DecisionOptimization