39 #define SCIPSDPVERSION "3.0.1"
41 #include "objscip/objscipdefplugins.h"
61 #include "scipsdpgithash.c"
73 char scipsdpname[SCIP_MAXSTRLEN];
74 char scipsdpdesc[SCIP_MAXSTRLEN];
76 SCIP_CALL( SCIPcreate(&scip) );
79 SCIP_CALL( SCIPincludeObjReader(scip,
new ObjReaderSDPA(scip), TRUE) );
94 (void) SCIPsnprintf(scipsdpname, SCIP_MAXSTRLEN,
"SCIP-SDP %s",
SCIPSDPVERSION);
95 (void) SCIPsnprintf(scipsdpdesc, SCIP_MAXSTRLEN,
"Mixed Integer Semidefinite Programming Plugin for SCIP "
96 "[GitHash: %s] (www.opt.tu-darmstadt.de/scipsdp/)", SCIPSDP_GITHASH);
97 SCIP_CALL( SCIPincludeExternalCodeInformation(scip, scipsdpname, scipsdpdesc) );
100 SCIP_CALL( SCIPincludeDefaultPlugins(scip) );
103 SCIP_CALL( SCIPsetIntParam(scip,
"limits/restarts", 0) );
106 SCIP_CALL( SCIPsetIntParam(scip,
"timing/clocktype", 2) );
109 SCIP_CALL( SCIPsetIntParam(scip,
"display/verblevel", 5) );
112 SCIP_CALL( SCIPsetIntParam(scip,
"lp/solvefreq", -1) );
113 SCIP_CALL( SCIPsetIntParam(scip,
"relaxing/SDP/freq", 1) );
116 SCIP_CALL( SCIPsetIntParam(scip,
"display/lpiterations/active", 0) );
117 SCIP_CALL( SCIPsetIntParam(scip,
"display/lpavgiterations/active", 0) );
120 SCIP_CALL( SCIPsetIntParam(scip,
"display/nfrac/active", 0) );
121 SCIP_CALL( SCIPsetIntParam(scip,
"display/curcols/active", 0) );
122 SCIP_CALL( SCIPsetIntParam(scip,
"display/strongbranchs/active", 0) );
126 SCIP_CALL( SCIPsetIntParam(scip,
"display/sdpfastsettings/active", 0) );
127 SCIP_CALL( SCIPsetIntParam(scip,
"display/sdppenalty/active", 0) );
130 SCIP_CALL( SCIPsetRealParam(scip,
"numerics/epsilon", 1e-9) );
131 SCIP_CALL( SCIPsetRealParam(scip,
"numerics/sumepsilon", 1e-6) );
132 SCIP_CALL( SCIPsetRealParam(scip,
"numerics/feastol", 1e-6) );
135 SCIP_CALL( SCIPsetBoolParam(scip,
"lp/cleanuprows", FALSE) );
136 SCIP_CALL( SCIPsetBoolParam(scip,
"lp/cleanuprowsroot", FALSE) );
137 SCIP_CALL( SCIPsetIntParam(scip,
"lp/rowagelimit", 10) );
140 SCIP_CALL( SCIPsetIntParam(scip,
"separating/cutagelimit", 10) );
142 SCIP_CALL( SCIPsetIntParam(scip,
"separating/maxrounds", 20) );
151 SCIP_CALL( SCIPsetIntParam(scip,
"nodeselection/hybridestim/stdpriority", 1000000) );
152 SCIP_CALL( SCIPsetIntParam(scip,
"nodeselection/hybridestim/maxplungedepth", 0) );
153 SCIP_CALL( SCIPsetRealParam(scip,
"nodeselection/hybridestim/estimweight", 0.0) );
156 SCIPenableDebugSol(scip);
159 SCIP_CALL( SCIPprocessShellArguments(scip, argc, argv,
"scip.set") );
162 SCIP_CALL( SCIPfree(&scip) );
164 BMScheckEmptyMemory();
175 SCIP_RETCODE retcode;
178 if( retcode != SCIP_OKAY )
180 SCIPprintError(retcode);
SCIP_RETCODE SCIPincludeConshdlrSavedsdpsettings(SCIP *scip)
SCIP_RETCODE SCIPincludeDispSdpfastsettings(SCIP *scip)
Column to display the percentage of SDP-relaxations that were solved using fast settings.
SCIP_RETCODE SCIPincludePropSdpObbt(SCIP *scip)
int main(int argc, char **argv)
SCIP_RETCODE SCIPincludeConshdlrSdp(SCIP *scip)
file reader for mixed-integer semidefinite programs in CBF format
most fractional branching rule for SCIP-SDP
SCIP_RETCODE SCIPincludeDispSdppenalty(SCIP *scip)
SCIP_RETCODE SCIPincludeBranchruleSdpmostinf(SCIP *scip)
optimization-based bound tightening propagator for semidefinite programs
Column to display the percentage of SDP-relaxations that could not be solved even using a penalty for...
highest absolute objective branching rule for SCIP-SDP
combined infeasibility and absolute objective branching rule for SCIP-SDP
SCIP_RETCODE SCIPincludeBranchruleSdpmostfrac(SCIP *scip)
most infeasible branching rule for SCIP-SDP
Constraint handler for SDP-constraints.
SCIP_RETCODE SCIPincludeDispSdpavgiterations(SCIP *scip)
SCIP_RETCODE SCIPincludeReaderCbf(SCIP *scip)
SCIP_RETCODE SCIPincludeHeurSdpRand(SCIP *scip)
SDP diving heuristic that chooses fixings w.r.t. the fractionalities.
Column to display the total number of SDP-iterations.
SCIP_RETCODE SCIPincludeHeurSdpFracdiving(SCIP *scip)
randomized rounding heuristic for SDPs
SCIP_RETCODE SCIPincludeBranchruleSdpinfobjective(SCIP *scip)
reduced cost / dual fixing for SDPs
static SCIP_RETCODE runSCIP(int argc, char **argv)
SCIP_RETCODE SCIPincludeBranchruleSdpobjective(SCIP *scip)
Column to display the average number of SDP-iterations.
Column to display the percentage of SDP-relaxations where a penalty formulation had to be used...
SCIP_RETCODE SCIPincludePropSdpredcost(SCIP *scip)
SCIP_RETCODE SCIPincludeDispSdpiterations(SCIP *scip)
SCIP_RETCODE SCIPincludeDispSdpunsolved(SCIP *scip)
SCIP_RETCODE SCIPincludeRelaxSdp(SCIP *scip)
constraint handler for saving SDP settings