74 SCIP_Real goodscorefac;
75 SCIP_Real badscorefac;
76 SCIP_Real goodmaxparall;
78 SCIP_Real dircutoffdist;
79 SCIP_Real efficacyweight;
80 SCIP_Real objparalweight;
81 SCIP_Real intsuppweight;
95 SCIP_Bool usecutselection;
124 for( j = 0; j < 3; ++j )
128 for( k = 0; k < 3; ++k )
140 for( states[0] = 0; states[0] < nstates && ncutscreated <
MAXCUTSCREATED; ++states[0] )
147 states[1] = succs1[j];
153 states[2] = succs2[k];
158 if( (states[0] != states[1] && states[0] != states[2] && states[1] > states[2]) )
161 for( l = 0; l < 3 ; ++l )
163 violation[ncutscreated] = sign[l][0]
165 violation[ncutscreated] += sign[l][1]
167 violation[ncutscreated] += sign[l][2]
170 if( violation[ncutscreated] > 0 )
179 getEdgevar(edgevars, states[1], states[2], 0), sign[l][2]) );
181 getEdgevar(edgevars, states[0], states[1], 1), sign[l][0]) );
183 getEdgevar(edgevars, states[0], states[2], 1), sign[l][1]) );
187 if( ncutscreated >= size - 1 )
197 violation[ncutscreated] = sign[l][0]
199 violation[ncutscreated] += sign[l][1]
201 violation[ncutscreated] += sign[l][2]
204 if( violation[ncutscreated] > 0)
213 getEdgevar(edgevars, states[1], states[2], 0), sign[l][2]) );
215 getEdgevar(edgevars, states[1], states[0], 1), sign[l][0]) );
217 getEdgevar(edgevars, states[2], states[0], 1), sign[l][1]) );
221 if( ncutscreated >= size - 1 )
233 if( states[0] > states[1] && states[1] > states[2] )
235 for( l = 0; l < 3; ++l )
237 violation[ncutscreated] = sign[l][0]
239 violation[ncutscreated] += sign[l][1]
241 violation[ncutscreated] += sign[l][2]
244 if( violation[ncutscreated] > 0 )
250 getEdgevar(edgevars, states[0], states[1], 0), sign[l][0]) );
252 getEdgevar(edgevars, states[0], states[2], 0), sign[l][1]) );
254 getEdgevar(edgevars, states[1], states[2], 0), sign[l][2]) );
256 if( ncutscreated >= size - 1 )
274 for( states[0] = 0; states[0] < nstates; ++states[0] )
281 states[1] = succs1[j];
287 states[2] = succs2[k];
296 if( violation[ncutscreated] > 0 )
305 getEdgevar(edgevars, states[0], states[1], 1), 1.0) );
307 getEdgevar(edgevars, states[1], states[2], 1), 1.0) );
309 getEdgevar(edgevars, states[2], states[0], 1), -1.0) );
313 if( ncutscreated >= size - 1 )
327 if( ncutscreated > 0 )
330 if( usecutselection )
342 goodmaxparall, maxparall, dircutoffdist, efficacyweight, objparalweight, intsuppweight,
343 ncutscreated, 0,
MAXCUTS, &ncutsapplied) );
351 for( j = 0; j < ncutsapplied; ++j )
359 for( j = 0; j < ncutscreated; ++j )
365 for( j = 0; j < 3; ++j )
SCIP_RETCODE SCIPselectCutsHybrid(SCIP *scip, SCIP_ROW **cuts, SCIP_ROW **forcedcuts, SCIP_RANDNUMGEN *randnumgen, SCIP_Real goodscorefac, SCIP_Real badscorefac, SCIP_Real goodmaxparall, SCIP_Real maxparall, SCIP_Real dircutoffdistweight, SCIP_Real efficacyweight, SCIP_Real objparalweight, SCIP_Real intsupportweight, int ncuts, int nforcedcuts, int maxselectedcuts, int *nselectedcuts)