Я хочу получить хорошие оценки ветвления с помощью cplex и python, и в качестве первого шага я просто попытался использовать «cplex.advanced.strong_branching» для решения очень простой проблемы MILP (мой код точно следовал примеру использования этой функции). Однако он сказал мне, что «Ошибка CPLEX 1017: недоступно для задач со смешанными целыми числами», что меня сильно смутило, поскольку SB должен быть традиционным алгоритмом ветвления и ограничения. Но когда я использовал его для решения проблемы с LP, он работал хорошо.
Ошибка, похоже, возникла из "CPXXstrongbranch", базового API C / C ++, что также заставило меня задуматься о том, как cplex может принимать решения SB, когда я устанавливаю параметр стратегии ветвления в SB. Подобный вопрос в том, что я знаю, что Python API не имеет важной функции "CPXgetcallbacknodelp", так как же может работать "cplex.advanced.strong_branching"? Может ли это быть причиной этой ошибки?
Я не совсем понимаю, как "CPXstrongbranch" работает в C, поэтому следующая информация может быть неверной: я пытался использовать "CPXstrongbranch" в пользовательской ветвиобратный вызов примера "adlpex1.c" и возникла та же ошибка;это остановило меня, чтобы использовать "ctypes", чтобы получить функцию "CPXgetcallbacknodelp".
Может ли быть проблема с версией? Cplex блокирует доступ SB? Потому что я прочитал статью, которая опиралась на оценки SB в Cplex 12.6.1 и C API. Или я просто сделал несколько ошибок.
Мой вопрос заключается в том, может ли Cplex выполнять SB и доставлять результаты пользователям в проблеме MILP.