Originally posted by: EhsanN
1) Depending on when you're adding benders cuts, you should either use the user cut callback (i.e., adding cuts to fractional nodes) or lazy constraint callback (i.e., adding cuts to integer nodes). You could also use both callbacks.
2) To get the solution of node and fix it for the SP, you should define a IloNumArray object within the callback and set its value equal to the desired part of the node solution. To do this, you should use the getValues method.
3) All the necessary operations (e.g., retrieving the solution, deriving the cut, and adding the benders cuts) is done within the callback.
To better understand the process, you might take a look at the ilobendersatsp.cpp example in your CPLEX installation folder. You could find some useful info using the links below:
http://pic.dhe.ibm.com/infocenter/cosinfoc/v12r5/index.jsp?topic=%2Filog.odms.studio.help%2FCPLEX%2FReleaseNotes%2Ftopics%2Freleasenotes123%2Freleasenotescplex123_22.html
http://orinanobworld.blogspot.com/2012/07/benders-decomposition-in-cplex.html
#CPLEXOptimizers#DecisionOptimization