1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (c) 2002-2023 Zuse Institute Berlin (ZIB) */ 7 /* */ 8 /* Licensed under the Apache License, Version 2.0 (the "License"); */ 9 /* you may not use this file except in compliance with the License. */ 10 /* You may obtain a copy of the License at */ 11 /* */ 12 /* http://www.apache.org/licenses/LICENSE-2.0 */ 13 /* */ 14 /* Unless required by applicable law or agreed to in writing, software */ 15 /* distributed under the License is distributed on an "AS IS" BASIS, */ 16 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ 17 /* See the License for the specific language governing permissions and */ 18 /* limitations under the License. */ 19 /* */ 20 /* You should have received a copy of the Apache-2.0 license */ 21 /* along with SCIP; see the file LICENSE. If not visit scipopt.org. */ 22 /* */ 23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 /**@file scipdefplugins.c 26 * @ingroup OTHER_CFILES 27 * @brief default SCIP plugins 28 * @author Tobias Achterberg 29 */ 30 31 /*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 32 33 #include "scip/scipdefplugins.h" 34 #include "scip/debug.h" 35 36 /** includes default SCIP plugins into SCIP */ 37 SCIP_RETCODE SCIPincludeDefaultPlugins( 38 SCIP* scip /**< SCIP data structure */ 39 ) 40 { 41 /* include some default dialogs, since other plugins require that at least the root dialog is available */ 42 SCIP_CALL( SCIPincludeDialogDefaultBasic(scip) ); 43 44 SCIP_CALL( SCIPincludeConshdlrNonlinear(scip) ); /* nonlinear constraint handler must be before linear due to constraint upgrading */ 45 SCIP_CALL( SCIPincludeConshdlrLinear(scip) ); /* linear must be before its specializations due to constraint upgrading */ 46 SCIP_CALL( SCIPincludeConshdlrAnd(scip) ); 47 SCIP_CALL( SCIPincludeConshdlrBenders(scip) ); 48 SCIP_CALL( SCIPincludeConshdlrBenderslp(scip) ); 49 SCIP_CALL( SCIPincludeConshdlrBounddisjunction(scip) ); 50 SCIP_CALL( SCIPincludeConshdlrCardinality(scip) ); 51 SCIP_CALL( SCIPincludeConshdlrConjunction(scip) ); 52 SCIP_CALL( SCIPincludeConshdlrCountsols(scip) ); 53 SCIP_CALL( SCIPincludeConshdlrCumulative(scip) ); 54 SCIP_CALL( SCIPincludeConshdlrDisjunction(scip) ); 55 SCIP_CALL( SCIPincludeConshdlrIndicator(scip) ); 56 SCIP_CALL( SCIPincludeConshdlrIntegral(scip) ); 57 SCIP_CALL( SCIPincludeConshdlrKnapsack(scip) ); 58 SCIP_CALL( SCIPincludeConshdlrLinking(scip) ); 59 SCIP_CALL( SCIPincludeConshdlrLogicor(scip) ); 60 SCIP_CALL( SCIPincludeConshdlrOr(scip) ); 61 SCIP_CALL( SCIPincludeConshdlrOrbisack(scip) ); 62 SCIP_CALL( SCIPincludeConshdlrOrbitope(scip) ); 63 SCIP_CALL( SCIPincludeConshdlrPseudoboolean(scip) ); 64 SCIP_CALL( SCIPincludeConshdlrSetppc(scip) ); 65 SCIP_CALL( SCIPincludeConshdlrSOS1(scip) ); 66 SCIP_CALL( SCIPincludeConshdlrSOS2(scip) ); 67 SCIP_CALL( SCIPincludeConshdlrSuperindicator(scip) ); 68 SCIP_CALL( SCIPincludeConshdlrSymresack(scip) ); 69 SCIP_CALL( SCIPincludeConshdlrVarbound(scip) ); 70 SCIP_CALL( SCIPincludeConshdlrXor(scip) ); 71 SCIP_CALL( SCIPincludeConshdlrComponents(scip) ); 72 73 /* include readers in order of chances to be necessary */ 74 SCIP_CALL( SCIPincludeReaderMps(scip) ); 75 SCIP_CALL( SCIPincludeReaderLp(scip) ); 76 SCIP_CALL( SCIPincludeReaderSol(scip) ); 77 SCIP_CALL( SCIPincludeReaderOsil(scip) ); 78 SCIP_CALL( SCIPincludeReaderZpl(scip) ); 79 #ifdef SCIP_WITH_AMPL 80 SCIP_CALL( SCIPincludeReaderNl(scip) ); 81 #endif 82 SCIP_CALL( SCIPincludeReaderGms(scip) ); 83 SCIP_CALL( SCIPincludeReaderOpb(scip) ); 84 SCIP_CALL( SCIPincludeReaderWbo(scip) ); 85 SCIP_CALL( SCIPincludeReaderPip(scip) ); 86 SCIP_CALL( SCIPincludeReaderFzn(scip) ); 87 SCIP_CALL( SCIPincludeReaderCnf(scip) ); 88 SCIP_CALL( SCIPincludeReaderCip(scip) ); 89 SCIP_CALL( SCIPincludeReaderSmps(scip) ); 90 SCIP_CALL( SCIPincludeReaderSto(scip) ); 91 SCIP_CALL( SCIPincludeReaderTim(scip) ); 92 SCIP_CALL( SCIPincludeReaderCor(scip) ); 93 SCIP_CALL( SCIPincludeReaderRlp(scip) ); 94 SCIP_CALL( SCIPincludeReaderBnd(scip) ); 95 SCIP_CALL( SCIPincludeReaderDiff(scip) ); 96 SCIP_CALL( SCIPincludeReaderDec(scip) ); 97 SCIP_CALL( SCIPincludeReaderFix(scip) ); 98 SCIP_CALL( SCIPincludeReaderMst(scip) ); 99 SCIP_CALL( SCIPincludeReaderPpm(scip) ); 100 SCIP_CALL( SCIPincludeReaderPbm(scip) ); 101 SCIP_CALL( SCIPincludeReaderCcg(scip) ); 102 103 SCIP_CALL( SCIPincludePresolBoundshift(scip) ); 104 SCIP_CALL( SCIPincludePresolConvertinttobin(scip) ); 105 SCIP_CALL( SCIPincludePresolDomcol(scip) ); 106 SCIP_CALL( SCIPincludePresolDualagg(scip) ); 107 SCIP_CALL( SCIPincludePresolDualcomp(scip) ); 108 SCIP_CALL( SCIPincludePresolDualinfer(scip) ); 109 SCIP_CALL( SCIPincludePresolGateextraction(scip) ); 110 SCIP_CALL( SCIPincludePresolImplics(scip) ); 111 SCIP_CALL( SCIPincludePresolInttobinary(scip) ); 112 #ifdef SCIP_WITH_PAPILO 113 SCIP_CALL( SCIPincludePresolMILP(scip) ); 114 #endif 115 SCIP_CALL( SCIPincludePresolQPKKTref(scip) ); 116 SCIP_CALL( SCIPincludePresolRedvub(scip) ); 117 SCIP_CALL( SCIPincludePresolTrivial(scip) ); 118 SCIP_CALL( SCIPincludePresolTworowbnd(scip) ); 119 SCIP_CALL( SCIPincludePresolSparsify(scip) ); 120 SCIP_CALL( SCIPincludePresolDualsparsify(scip) ); 121 SCIP_CALL( SCIPincludePresolStuffing(scip) ); 122 SCIP_CALL( SCIPincludeNodeselBfs(scip) ); 123 SCIP_CALL( SCIPincludeNodeselBreadthfirst(scip) ); 124 SCIP_CALL( SCIPincludeNodeselDfs(scip) ); 125 SCIP_CALL( SCIPincludeNodeselEstimate(scip) ); 126 SCIP_CALL( SCIPincludeNodeselHybridestim(scip) ); 127 SCIP_CALL( SCIPincludeNodeselRestartdfs(scip) ); 128 SCIP_CALL( SCIPincludeNodeselUct(scip) ); 129 SCIP_CALL( SCIPincludeBranchruleAllfullstrong(scip) ); 130 SCIP_CALL( SCIPincludeBranchruleCloud(scip) ); 131 SCIP_CALL( SCIPincludeBranchruleDistribution(scip) ); 132 SCIP_CALL( SCIPincludeBranchruleFullstrong(scip) ); 133 SCIP_CALL( SCIPincludeBranchruleGomory(scip) ); 134 SCIP_CALL( SCIPincludeBranchruleInference(scip) ); 135 SCIP_CALL( SCIPincludeBranchruleLeastinf(scip) ); 136 SCIP_CALL( SCIPincludeBranchruleLookahead(scip) ); 137 SCIP_CALL( SCIPincludeBranchruleMostinf(scip) ); 138 SCIP_CALL( SCIPincludeBranchruleMultAggr(scip) ); 139 SCIP_CALL( SCIPincludeBranchruleNodereopt(scip) ); 140 SCIP_CALL( SCIPincludeBranchrulePscost(scip) ); 141 SCIP_CALL( SCIPincludeBranchruleRandom(scip) ); 142 SCIP_CALL( SCIPincludeBranchruleRelpscost(scip) ); 143 SCIP_CALL( SCIPincludeBranchruleVanillafullstrong(scip) ); 144 SCIP_CALL( SCIPincludeEventHdlrEstim(scip) ); 145 SCIP_CALL( SCIPincludeEventHdlrSolvingphase(scip) ); 146 SCIP_CALL( SCIPincludeComprLargestrepr(scip) ); 147 SCIP_CALL( SCIPincludeComprWeakcompr(scip) ); 148 SCIP_CALL( SCIPincludeHeurActconsdiving(scip) ); 149 SCIP_CALL( SCIPincludeHeurAdaptivediving(scip) ); 150 SCIP_CALL( SCIPincludeHeurBound(scip) ); 151 SCIP_CALL( SCIPincludeHeurClique(scip) ); 152 SCIP_CALL( SCIPincludeHeurCoefdiving(scip) ); 153 SCIP_CALL( SCIPincludeHeurCompletesol(scip) ); 154 SCIP_CALL( SCIPincludeHeurConflictdiving(scip) ); 155 SCIP_CALL( SCIPincludeHeurCrossover(scip) ); 156 SCIP_CALL( SCIPincludeHeurDins(scip) ); 157 SCIP_CALL( SCIPincludeHeurDistributiondiving(scip) ); 158 SCIP_CALL( SCIPincludeHeurDps(scip) ); 159 SCIP_CALL( SCIPincludeHeurDualval(scip) ); 160 SCIP_CALL( SCIPincludeHeurFarkasdiving(scip) ); 161 SCIP_CALL( SCIPincludeHeurFeaspump(scip) ); 162 SCIP_CALL( SCIPincludeHeurFixandinfer(scip) ); 163 SCIP_CALL( SCIPincludeHeurFracdiving(scip) ); 164 SCIP_CALL( SCIPincludeHeurGins(scip) ); 165 SCIP_CALL( SCIPincludeHeurGuideddiving(scip) ); 166 SCIP_CALL( SCIPincludeHeurZeroobj(scip) ); 167 SCIP_CALL( SCIPincludeHeurIndicator(scip) ); 168 SCIP_CALL( SCIPincludeHeurIndicatordiving(scip) ); 169 SCIP_CALL( SCIPincludeHeurIntdiving(scip) ); 170 SCIP_CALL( SCIPincludeHeurIntshifting(scip) ); 171 SCIP_CALL( SCIPincludeHeurLinesearchdiving(scip) ); 172 SCIP_CALL( SCIPincludeHeurLocalbranching(scip) ); 173 SCIP_CALL( SCIPincludeHeurLocks(scip) ); 174 SCIP_CALL( SCIPincludeHeurLpface(scip) ); 175 SCIP_CALL( SCIPincludeHeurAlns(scip) ); 176 SCIP_CALL( SCIPincludeHeurNlpdiving(scip) ); 177 SCIP_CALL( SCIPincludeHeurMutation(scip) ); 178 SCIP_CALL( SCIPincludeHeurMultistart(scip) ); 179 SCIP_CALL( SCIPincludeHeurMpec(scip) ); 180 SCIP_CALL( SCIPincludeHeurObjpscostdiving(scip) ); 181 SCIP_CALL( SCIPincludeHeurOctane(scip) ); 182 SCIP_CALL( SCIPincludeHeurOfins(scip) ); 183 SCIP_CALL( SCIPincludeHeurOneopt(scip) ); 184 SCIP_CALL( SCIPincludeHeurPADM(scip) ); 185 SCIP_CALL( SCIPincludeHeurProximity(scip) ); 186 SCIP_CALL( SCIPincludeHeurPscostdiving(scip) ); 187 SCIP_CALL( SCIPincludeHeurRandrounding(scip) ); 188 SCIP_CALL( SCIPincludeHeurRens(scip) ); 189 SCIP_CALL( SCIPincludeHeurReoptsols(scip) ); 190 SCIP_CALL( SCIPincludeHeurRepair(scip) ); 191 SCIP_CALL( SCIPincludeHeurRins(scip) ); 192 SCIP_CALL( SCIPincludeHeurRootsoldiving(scip) ); 193 SCIP_CALL( SCIPincludeHeurRounding(scip) ); 194 SCIP_CALL( SCIPincludeHeurScheduler(scip) ); 195 SCIP_CALL( SCIPincludeHeurShiftandpropagate(scip) ); 196 SCIP_CALL( SCIPincludeHeurShifting(scip) ); 197 SCIP_CALL( SCIPincludeHeurSimplerounding(scip) ); 198 SCIP_CALL( SCIPincludeHeurSubNlp(scip) ); 199 SCIP_CALL( SCIPincludeHeurTrivial(scip) ); 200 SCIP_CALL( SCIPincludeHeurTrivialnegation(scip) ); 201 SCIP_CALL( SCIPincludeHeurTrustregion(scip) ); 202 SCIP_CALL( SCIPincludeHeurTrySol(scip) ); 203 SCIP_CALL( SCIPincludeHeurTwoopt(scip) ); 204 SCIP_CALL( SCIPincludeHeurUndercover(scip) ); 205 SCIP_CALL( SCIPincludeHeurVbounds(scip) ); 206 SCIP_CALL( SCIPincludeHeurVeclendiving(scip) ); 207 SCIP_CALL( SCIPincludeHeurZirounding(scip) ); 208 SCIP_CALL( SCIPincludePropDualfix(scip) ); 209 SCIP_CALL( SCIPincludePropGenvbounds(scip) ); 210 SCIP_CALL( SCIPincludePropObbt(scip) ); 211 SCIP_CALL( SCIPincludePropNlobbt(scip) ); 212 SCIP_CALL( SCIPincludePropProbing(scip) ); 213 SCIP_CALL( SCIPincludePropPseudoobj(scip) ); 214 SCIP_CALL( SCIPincludePropRedcost(scip) ); 215 SCIP_CALL( SCIPincludePropRootredcost(scip) ); 216 SCIP_CALL( SCIPincludePropSymmetry(scip) ); 217 SCIP_CALL( SCIPincludePropVbounds(scip) ); 218 SCIP_CALL( SCIPincludeSepaCGMIP(scip) ); 219 SCIP_CALL( SCIPincludeSepaClique(scip) ); 220 SCIP_CALL( SCIPincludeSepaClosecuts(scip) ); 221 SCIP_CALL( SCIPincludeSepaAggregation(scip) ); 222 SCIP_CALL( SCIPincludeSepaConvexproj(scip) ); 223 SCIP_CALL( SCIPincludeSepaDisjunctive(scip) ); 224 SCIP_CALL( SCIPincludeSepaEccuts(scip) ); 225 SCIP_CALL( SCIPincludeSepaGauge(scip) ); 226 SCIP_CALL( SCIPincludeSepaGomory(scip) ); 227 SCIP_CALL( SCIPincludeSepaImpliedbounds(scip) ); 228 SCIP_CALL( SCIPincludeSepaInterminor(scip) ); 229 SCIP_CALL( SCIPincludeSepaIntobj(scip) ); 230 SCIP_CALL( SCIPincludeSepaLagromory(scip) ); 231 SCIP_CALL( SCIPincludeSepaMcf(scip) ); 232 SCIP_CALL( SCIPincludeSepaMinor(scip) ); 233 SCIP_CALL( SCIPincludeSepaMixing(scip) ); 234 SCIP_CALL( SCIPincludeSepaOddcycle(scip) ); 235 SCIP_CALL( SCIPincludeSepaRapidlearning(scip) ); 236 SCIP_CALL( SCIPincludeSepaRlt(scip) ); 237 SCIP_CALL( SCIPincludeSepaZerohalf(scip) ); 238 SCIP_CALL( SCIPincludeDispDefault(scip) ); 239 SCIP_CALL( SCIPincludeTableDefault(scip) ); 240 SCIP_CALL( SCIPincludeEventHdlrSofttimelimit(scip) ); 241 SCIP_CALL( SCIPincludeConcurrentScipSolvers(scip) ); 242 SCIP_CALL( SCIPincludeBendersDefault(scip) ); 243 SCIP_CALL( SCIPincludeCutselEnsemble(scip) ); 244 SCIP_CALL( SCIPincludeCutselHybrid(scip) ); 245 SCIP_CALL( SCIPincludeCutselDynamic(scip) ); 246 SCIP_CALL( SCIPincludeExprhdlrAbs(scip) ); 247 SCIP_CALL( SCIPincludeExprhdlrCos(scip) ); 248 SCIP_CALL( SCIPincludeExprhdlrEntropy(scip) ); 249 SCIP_CALL( SCIPincludeExprhdlrExp(scip) ); 250 SCIP_CALL( SCIPincludeExprhdlrLog(scip) ); 251 SCIP_CALL( SCIPincludeExprhdlrPow(scip) ); 252 SCIP_CALL( SCIPincludeExprhdlrProduct(scip) ); 253 SCIP_CALL( SCIPincludeExprhdlrSignpower(scip) ); 254 SCIP_CALL( SCIPincludeExprhdlrSin(scip) ); 255 SCIP_CALL( SCIPincludeExprhdlrSum(scip) ); 256 SCIP_CALL( SCIPincludeExprhdlrValue(scip) ); 257 SCIP_CALL( SCIPincludeExprhdlrVar(scip) ); 258 SCIP_CALL( SCIPincludeExprhdlrVaridx(scip) ); 259 SCIP_CALL( SCIPincludeNlhdlrDefault(scip) ); 260 SCIP_CALL( SCIPincludeNlhdlrConvex(scip) ); 261 SCIP_CALL( SCIPincludeNlhdlrConcave(scip) ); 262 SCIP_CALL( SCIPincludeNlhdlrBilinear(scip) ); 263 SCIP_CALL( SCIPincludeNlhdlrPerspective(scip) ); 264 SCIP_CALL( SCIPincludeNlhdlrQuadratic(scip) ); 265 SCIP_CALL( SCIPincludeNlhdlrQuotient(scip) ); 266 SCIP_CALL( SCIPincludeNlhdlrSignomial(scip) ); 267 SCIP_CALL( SCIPincludeNlhdlrSoc(scip) ); 268 SCIP_CALL( SCIPincludeNlpSolverIpopt(scip) ); 269 SCIP_CALL( SCIPincludeNlpSolverFilterSQP(scip) ); 270 SCIP_CALL( SCIPincludeNlpSolverWorhp(scip, TRUE) ); 271 SCIP_CALL( SCIPincludeNlpSolverWorhp(scip, FALSE) ); 272 SCIP_CALL( SCIPincludeNlpSolverAll(scip) ); 273 274 #ifdef TPI_TNY 275 SCIP_CALL( SCIPincludeExternalCodeInformation(scip, "TinyCThread", "Small, portable implementation of the C11 threads API (tinycthread.github.io)") ); 276 #endif 277 278 SCIP_CALL( SCIPdebugIncludeProp(scip) ); /*lint !e506 !e774*/ 279 280 return SCIP_OKAY; 281 } 282