Я думаю, что вы ошиблись: пример только разделяет сокращения осуществимости.
Ваша идея использовать функцию separate
для оптимальных сокращений верна. Однако, поскольку подзадача является LP, а не MIP, вам придется проверить состояние для cpx.solution.status.optimal
.
В настоящее время нет примера кода для этого в Python. С другой стороны, возможно, не так уж сложно просто взять любое описание учебника Бендера, привести его в соответствие с примером Python, который вы процитировали, а затем расширить разделение самостоятельно.
В cplex/examples/src/remotec/parbenders.c
имеется реализация Benders, которая разделяет оба типа разрезов. Эта реализация написана на C, но, учитывая, что Python и C API похожи, это может вам помочь.