36#ifndef __SCIP_PARA_OBJ_BRANCHRULE_H__
37#define __SCIP_PARA_OBJ_BRANCHRULE_H__
43#include "objscip/objcloneable.h"
44#include "objscip/objscip.h"
63 : ObjBranchrule(solver->getScip(),
"ScipParaObjBranchRule",
"Branch rule plug-in for ParaSCIP",
76 SCIP_BRANCHRULE* branchrule
85 SCIP_BRANCHRULE* branchrule
94 SCIP_BRANCHRULE* branchrule
103 SCIP_BRANCHRULE* branchrule
112 SCIP_BRANCHRULE* branchrule
131 SCIP_BRANCHRULE* branchrule,
132 SCIP_Bool allowaddcons,
136 assert(result != NULL);
137 *result = SCIP_DIDNOTRUN;
138 if( SCIPgetLPSolstat(scip) == SCIP_LPSOLSTAT_OPTIMAL || SCIPgetLPSolstat(scip) == SCIP_LPSOLSTAT_UNBOUNDEDRAY )
142 SCIP_Real* fracs = 0;
143 SCIP_Real iisum = 0.0;
144#if (SCIP_VERSION == 301 && SCIP_SUBVERSION == 5) || (SCIP_VERSION >= 302 && SCIP_SUBVERSION != 0 || SCIP_VERSION >= 310 )
145 SCIP_CALL_ABORT( SCIPgetLPBranchCands(scip, NULL,NULL, &fracs, &ncands, NULL, NULL) );
147 SCIP_CALL_ABORT( SCIPgetLPBranchCands(scip, NULL,NULL, &fracs, &ncands, NULL) );
149 for(
int i = 0; i < ncands; ++i )
168 SCIP_BRANCHRULE* branchrule,
169 SCIP_Bool allowaddcons,
173 assert(result != NULL);
174 *result = SCIP_DIDNOTRUN;
190 SCIP_BRANCHRULE* branchrule,
191 SCIP_Bool allowaddcons,
195 assert(result != NULL);
196 *result = SCIP_DIDNOTRUN;
virtual SCIP_RETCODE scip_exit(SCIP *scip, SCIP_BRANCHRULE *branchrule)
ScipParaSolver * scipParaSolver
virtual SCIP_RETCODE scip_initsol(SCIP *scip, SCIP_BRANCHRULE *branchrule)
virtual SCIP_RETCODE scip_free(SCIP *scip, SCIP_BRANCHRULE *branchrule)
virtual SCIP_RETCODE scip_init(SCIP *scip, SCIP_BRANCHRULE *branchrule)
virtual SCIP_RETCODE scip_execlp(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_Bool allowaddcons, SCIP_RESULT *result)
virtual SCIP_RETCODE scip_execext(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_Bool allowaddcons, SCIP_RESULT *result)
virtual ~ScipParaObjBranchRule()
virtual SCIP_RETCODE scip_execps(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_Bool allowaddcons, SCIP_RESULT *result)
ScipParaObjBranchRule(ScipParaSolver *solver)
virtual SCIP_RETCODE scip_exitsol(SCIP *scip, SCIP_BRANCHRULE *branchrule)
void setII(double sum, int count)
set sum and number of integer infeasibility
ParaSolver extension for SCIP: Parallelized solver implementation for SCIP.