Почему стратегия выбора переменных CPLEX влияет на решения пользовательских ветвей? (Python) - PullRequest
1 голос
/ 20 февраля 2020

Я последовал примеру для ветвления, используя make_branch () в обратном вызове управления (ветви) MIP. Но я заметил, что процессы решения неожиданно отличаются при разных настройках стратегии выбора переменных. Как это было возможно, поскольку я заменил все решения CPLEX своими решениями?

1 Ответ

1 голос
/ 20 февраля 2020

CPLEX не может определить, собираетесь ли вы запрашивать его решения о ветвлении из обратного вызова или нет. Поэтому, прежде чем вызывать обратный вызов, CPLEX вычисляет, на какие переменные он будет переходить, так что эта информация может быть передана обратному вызову.

Даже если вы никогда не запрашиваете эту информацию, она все еще вычисляется, и вычисление этой информации может измениться. остальная часть выполнения, что приводит к различным деревьям поиска.

...