39 #define SCIPSDPVERSION "3.1.0"
41 #include "objscip/objscipdefplugins.h"
63 #include "scipsdpgithash.c"
78 char scipsdpname[SCIP_MAXSTRLEN];
79 char scipsdpdesc[SCIP_MAXSTRLEN];
81 SCIP_CALL( SCIPcreate(&scip) );
84 SCIP_CALL( SCIPincludeObjReader(scip,
new ObjReaderSDPA(scip), TRUE) );
101 (void) SCIPsnprintf(scipsdpname, SCIP_MAXSTRLEN,
"SCIP-SDP %s",
SCIPSDPVERSION);
102 (void) SCIPsnprintf(scipsdpdesc, SCIP_MAXSTRLEN,
"Mixed Integer Semidefinite Programming Plugin for SCIP "
103 "[GitHash: %s] (www.opt.tu-darmstadt.de/scipsdp/)", SCIPSDP_GITHASH);
104 SCIP_CALL( SCIPincludeExternalCodeInformation(scip, scipsdpname, scipsdpdesc) );
107 SCIP_CALL( SCIPincludeDefaultPlugins(scip) );
110 SCIP_CALL( SCIPsetIntParam(scip,
"limits/restarts", 0) );
113 SCIP_CALL( SCIPsetIntParam(scip,
"timing/clocktype", 2) );
116 SCIP_CALL( SCIPsetIntParam(scip,
"display/verblevel", 5) );
119 SCIP_CALL( SCIPsetIntParam(scip,
"lp/solvefreq", -1) );
120 SCIP_CALL( SCIPsetIntParam(scip,
"relaxing/SDP/freq", 1) );
123 SCIP_CALL( SCIPsetIntParam(scip,
"display/lpiterations/active", 0) );
124 SCIP_CALL( SCIPsetIntParam(scip,
"display/lpavgiterations/active", 0) );
127 SCIP_CALL( SCIPsetIntParam(scip,
"display/nfrac/active", 0) );
128 SCIP_CALL( SCIPsetIntParam(scip,
"display/curcols/active", 0) );
129 SCIP_CALL( SCIPsetIntParam(scip,
"display/strongbranchs/active", 0) );
133 SCIP_CALL( SCIPsetIntParam(scip,
"display/sdpfastsettings/active", 0) );
134 SCIP_CALL( SCIPsetIntParam(scip,
"display/sdppenalty/active", 0) );
140 SCIP_CALL( SCIPsetBoolParam(scip,
"table/relaxator/active", FALSE) );
143 SCIP_CALL( SCIPsetRealParam(scip,
"numerics/epsilon", 1e-9) );
144 SCIP_CALL( SCIPsetRealParam(scip,
"numerics/sumepsilon", 1e-6) );
145 SCIP_CALL( SCIPsetRealParam(scip,
"numerics/feastol", 1e-6) );
148 SCIP_CALL( SCIPsetBoolParam(scip,
"lp/cleanuprows", FALSE) );
149 SCIP_CALL( SCIPsetBoolParam(scip,
"lp/cleanuprowsroot", FALSE) );
150 SCIP_CALL( SCIPsetIntParam(scip,
"lp/rowagelimit", 10) );
153 SCIP_CALL( SCIPsetIntParam(scip,
"separating/cutagelimit", 10) );
155 SCIP_CALL( SCIPsetIntParam(scip,
"separating/maxrounds", 20) );
164 SCIP_CALL( SCIPsetIntParam(scip,
"nodeselection/hybridestim/stdpriority", 1000000) );
165 SCIP_CALL( SCIPsetIntParam(scip,
"nodeselection/hybridestim/maxplungedepth", 0) );
166 SCIP_CALL( SCIPsetRealParam(scip,
"nodeselection/hybridestim/estimweight", 0.0) );
169 SCIPenableDebugSol(scip);
172 SCIP_CALL( SCIPprocessShellArguments(scip, argc, argv,
"scip.set") );
175 SCIP_CALL( SCIPfree(&scip) );
177 BMScheckEmptyMemory();
188 SCIP_RETCODE retcode;
191 if( retcode != SCIP_OKAY )
193 SCIPprintError(retcode);
SCIP_RETCODE SCIPincludeConshdlrSavedsdpsettings(SCIP *scip)
SCIP_RETCODE SCIPincludePropCompAnalCent(SCIP *scip)
SCIP_RETCODE SCIPincludeDispSdpfastsettings(SCIP *scip)
Column to display the percentage of SDP-relaxations that were solved using fast settings.
SCIP_RETCODE SCIPincludeTableRelaxSdp(SCIP *scip)
SCIP_RETCODE SCIPincludePropSdpObbt(SCIP *scip)
SCIP_RETCODE SCIPincludeTableSlater(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 SCIPincludeTableSdpSolverSuccess(SCIP *scip)
SCIP_RETCODE SCIPincludeHeurSdpRand(SCIP *scip)
advanced SDP relaxator statistics table
compute analytic center propagator
SDP diving heuristic that chooses fixings w.r.t. the fractionalities.
Column to display the total number of SDP-iterations.
SCIP_RETCODE SCIPincludeConshdlrSavesdpsol(SCIP *scip)
SDP solver success statistics table.
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)
constraint handler for saving SDP solutions in nodes
SCIP_RETCODE SCIPincludeRelaxSdp(SCIP *scip)
constraint handler for saving SDP settings