Да, это возможно. А в OPL это достаточно просто попробовать. Просто добавьте или удалите строку
using CP;
в начале вашего .mod
для использования оптимизатора CP или CPLEX.
Однако у каждого из двух движков есть конструкции модели, которые он поддерживает и которые не поддерживает. Например, оптимизатор CP не поддерживает непрерывные переменные, в то время как CPLEX не поддерживает ограничения alldiff, интервальные переменные и т. Д. Если вы получаете исключение «не удается извлечь» или подобное, тогда ваша модель использует конструкцию моделирования, которая поддерживается только одним из двигатели.
Более того, даже если вы не получите исключения, тогда ваше сравнение может быть предвзятым: производительность механизма решателя зависит не только от типа и данных модели, но и от фактической модели формулировка, Для множества проблем есть способы сформулировать их так, чтобы это было хорошо для CP, но плохо для CPLEX или наоборот. Поэтому, если один из двух двигателей работает медленнее, вам также следует подумать о том, подходит ли ваша формулировка для этого конкретного двигателя.
Все это, как говорится, всегда стоит попробовать и просто посмотреть, что происходит.