Recently, I've become interested in CP. As part of the learning process, I'm getting myself familiar with different CP solvers and IDEs available. I've already searched the web to see what is out there, which is probably bestdocumented here on ORX. So, here are my questions:
Thanks in advance for your time and kind attention. asked 01 Aug '16, 09:32 Ehsan ♦ 
Hi Ehsan,
answered 01 Aug '16, 11:49 Willem van H... 
As several other answers, I usually recommend MiniZinc as a first entry point to CP modelling as it is by far the simplest tool to use and you can already get great results. Unfortunately, there is currently no support for manually specified hybrid solving, although some of the underlying solvers use some "hybrid" technologies: for instance, SCIP supports MiniZinc and there are some portfolio solvers that may use both CP and MIP base solvers. Another tool to look at is OscaR (https://bitbucket.org/oscarlib/oscar/), which is a toolkit comprising (among other things) a CP solver, a CBLS solver (local search), and a wrapper to several MIP solvers (namely gurobi, glpk, and lp_solve). OscaR is a Scala library, making for relatively succinct models (almost on par with modelling languages). I think there are a few examples in the distribution of hybrid CPMIP solving. Regarding the comparative performance of different CP solvers, one might want to study and choose according to which "global constraints" are implemented as they can make a huge difference. Most solvers will implement the famous "alldifferent" constraint but more specific constraints are not available (or as well implemented) in all solvers. For instance, if you are planning to solve scheduling problems, then OscaR has stateoftheart propagators for the relevant constraints (usually called cumulative and disjunctive). But if you want to solve placement problems, you might want to use the "diff2" or "geost" constraints, which would rather be available in SICStus Prolog or Choco (if I remember correctly). Then again, if you are able to use MiniZinc, then it is much easier to compare the performance of several solvers and find the most appropriate one. MiniZinc has limitations and sometimes you want to access features of solvers that are not available through MiniZinc, but it is certainly a very good way to prototype your models, and it happens that the prototype is good enough. answered 02 Aug '16, 03:46 jmonette Thanks @jmonette. OscaR is very promising as it has various capabilities in addition to CP and MP. Although, it seems to be limiting for me as it requires me to migrate my previouslywritten codes from C++ and C# to Scala.
(02 Aug '16, 14:48)
Ehsan ♦
Yes, this is not something I considered in my answer. Beside CPO and ORtools, then Gecode is written in C++ and worth having a look at. It is also one of the solvers coming by default with MiniZinc.
(03 Aug '16, 07:08)
jmonette

Dear Ehsan, I used MiniZinc IDE as CP and MIP solver. Recently, I have found JaCoP: http://jacop.osolpro.com/. I do not know its performance. Find a detailed answer in Håkan Kjellerstrand page about CP: http://www.hakank.org/constraint_programming_blog/ answered 01 Aug '16, 18:39 hkarimi Thanks dear Hossein. I've been working with MiniZinc for sometime, however I'm not quite sure whether it is possible to have hybrid CP & MP model in MiniZinc. Do you have any experience with that?
(02 Aug '16, 01:15)
Ehsan ♦
No, I did not try to hybrid CP & MIP in MiniZinc before.
(02 Aug '16, 05:09)
hkarimi

MiniZinc is a great starting point. The MiniZinc developers also released a MiniZinc IDE which greatly lowers the entry barrier. Check it out at http://www.minizinc.org/ide answered 01 Aug '16, 19:28 turli 