I am new to IBM's CMPLEX Optimization Studio and I try to understand what is the best approach to take for realizing my goal. I am trying to implement a decision optimization solution, expressed as a Mix Integer Linear Program by creating a relevant representation for my problem and then interface it with the CMPLEX solver.
Initially, I started developing the model in the OPL language. However, as I intend to be dynamically calling the solver with the same model but with different data, from my C++ application, I realized that it makes more sense to build the model and call the solver through the CMPLEX C++ API, part of the Concert Technology (#reff1, #reff2). Of course, the interfaces the Concert Technology exposes for building your model are much more low level, in terms of how easy it is to express it, compared to building your model in OPL and running it directly. Then, I learn about the "OPL Interfaces" which also exposes a C++ API from which if understand it correctly, you can load your model from an OLP definition and use custom data sources, and invoke the solver.
So my question is how the OPL Interfaces and CMPLEX APIs (Concert Technology) for a specific language compare if both can be used for the same purpose, to build and execute the optimization model? I understand that the OPL Interfaces and the C++ API of OPL are based on the C++ Concert Technology. If the goal is to quickly test the model but with custom data input dynamically given by my C++ application, should I go for the OPL INterfaces, or there a reason why going for the CMPLEX C++ API in Concert Technology is better?
Software Version: IBM ILOG CMPLEX Optimization Studio 20.1.0