Skip to content

Commit 8512084

Browse files
committed
Update gurobi to 13 and copt to 8
1 parent bf803b5 commit 8512084

File tree

5 files changed

+281
-67
lines changed

5 files changed

+281
-67
lines changed

lib/copt_model_ext_constants.cpp

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ void bind_copt_constants(nb::module_ &m)
5151
COPT.attr("INF_OR_UNB") = 4;
5252
COPT.attr("INTEGER") = "I";
5353
COPT.attr("INTERRUPTED") = 10;
54+
COPT.attr("ITERLIMIT") = 11;
5455
COPT.attr("LESS_EQUAL") = "L";
5556
COPT.attr("MAXIMIZE") = -1;
5657
COPT.attr("MINIMIZE") = 1;
@@ -65,9 +66,9 @@ void bind_copt_constants(nb::module_ &m)
6566
COPT.attr("UNDEFINED") = 1e+40;
6667
COPT.attr("UNFINISHED") = 9;
6768
COPT.attr("UNSTARTED") = 0;
68-
COPT.attr("VERSION_MAJOR") = 7;
69-
COPT.attr("VERSION_MINOR") = 2;
70-
COPT.attr("VERSION_TECHNICAL") = 5;
69+
COPT.attr("VERSION_MAJOR") = 8;
70+
COPT.attr("VERSION_MINOR") = 0;
71+
COPT.attr("VERSION_TECHNICAL") = 1;
7172

7273
nb::module_ Attr = COPT.def_submodule("Attr");
7374
Attr.attr("AffineCones") = "AffineCones";
@@ -82,6 +83,7 @@ void bind_copt_constants(nb::module_ &m)
8283
Attr.attr("ExpCones") = "ExpCones";
8384
Attr.attr("FeasRelaxObj") = "FeasRelaxObj";
8485
Attr.attr("HasBasis") = "HasBasis";
86+
Attr.attr("HasBranchFactor") = "HasBranchFactor";
8587
Attr.attr("HasDualFarkas") = "HasDualFarkas";
8688
Attr.attr("HasFeasRelaxSol") = "HasFeasRelaxSol";
8789
Attr.attr("HasIIS") = "HasIIS";
@@ -91,6 +93,7 @@ void bind_copt_constants(nb::module_ &m)
9193
Attr.attr("HasPrimalRay") = "HasPrimalRay";
9294
Attr.attr("HasPsdObj") = "HasPSDObj";
9395
Attr.attr("HasQObj") = "HasQObj";
96+
Attr.attr("HasSensitivity") = "HasSensitivity";
9497
Attr.attr("IISCols") = "IISCols";
9598
Attr.attr("IISIndicators") = "IISIndicators";
9699
Attr.attr("IISRows") = "IISRows";
@@ -103,6 +106,7 @@ void bind_copt_constants(nb::module_ &m)
103106
Attr.attr("LpObjVal") = "LpObjVal";
104107
Attr.attr("LpStatus") = "LpStatus";
105108
Attr.attr("MipStatus") = "MipStatus";
109+
Attr.attr("MultiObjs") = "MultiObjs";
106110
Attr.attr("NLConstrs") = "NLConstrs";
107111
Attr.attr("NLElems") = "NLElems";
108112
Attr.attr("NodeCnt") = "NodeCnt";
@@ -147,13 +151,21 @@ void bind_copt_constants(nb::module_ &m)
147151
Param.attr("IISMethod") = "IISMethod";
148152
Param.attr("IntTol") = "IntTol";
149153
Param.attr("LazyConstraints") = "LazyConstraints";
154+
Param.attr("LinearizeIndicators") = "LinearizeIndicators";
155+
Param.attr("LinearizeSos") = "LinearizeSos";
150156
Param.attr("LogToConsole") = "LogToConsole";
151157
Param.attr("Logging") = "Logging";
152158
Param.attr("LpMethod") = "LpMethod";
153159
Param.attr("MatrixTol") = "MatrixTol";
154160
Param.attr("MipStartMode") = "MipStartMode";
155161
Param.attr("MipStartNodeLimit") = "MipStartNodeLimit";
156162
Param.attr("MipTasks") = "MipTasks";
163+
Param.attr("MultiObjAbsTol") = "MultiObjAbsTol";
164+
Param.attr("MultiObjParamMode") = "MultiObjParamMode";
165+
Param.attr("MultiObjPriority") = "MultiObjPriority";
166+
Param.attr("MultiObjRelTol") = "MultiObjRelTol";
167+
Param.attr("MultiObjTimeLimit") = "MultiObjTimeLimit";
168+
Param.attr("MultiObjWeight") = "MultiObjWeight";
157169
Param.attr("NLPIterLimit") = "NLPIterLimit";
158170
Param.attr("NLPLinScale") = "NLPLinScale";
159171
Param.attr("NLPMuUpdate") = "NLPMuUpdate";
@@ -165,6 +177,7 @@ void bind_copt_constants(nb::module_ &m)
165177
Param.attr("Presolve") = "Presolve";
166178
Param.attr("RelGap") = "RelGap";
167179
Param.attr("ReqFarkasRay") = "ReqFarkasRay";
180+
Param.attr("ReqSensitivity") = "ReqSensitivity";
168181
Param.attr("RootCutLevel") = "RootCutLevel";
169182
Param.attr("RootCutRounds") = "RootCutRounds";
170183
Param.attr("RoundingHeurLevel") = "RoundingHeurLevel";
@@ -187,6 +200,7 @@ void bind_copt_constants(nb::module_ &m)
187200
Param.attr("TuneTimeLimit") = "TuneTimeLimit";
188201

189202
nb::module_ Info = COPT.def_submodule("Info");
203+
Info.attr("BranchFactor") = "BranchFactor";
190204
Info.attr("Dual") = "Dual";
191205
Info.attr("DualFarkas") = "DualFarkas";
192206
Info.attr("LB") = "LB";
@@ -196,6 +210,12 @@ void bind_copt_constants(nb::module_ &m)
196210
Info.attr("RelaxLB") = "RelaxLB";
197211
Info.attr("RelaxUB") = "RelaxUB";
198212
Info.attr("RelaxValue") = "RelaxValue";
213+
Info.attr("SALBLow") = "SALBLow";
214+
Info.attr("SALBUp") = "SALBUp";
215+
Info.attr("SAObjLow") = "SAObjLow";
216+
Info.attr("SAObjUp") = "SAObjUp";
217+
Info.attr("SAUBLow") = "SAUBLow";
218+
Info.attr("SAUBUp") = "SAUBUp";
199219
Info.attr("Slack") = "Slack";
200220
Info.attr("UB") = "UB";
201221
Info.attr("Value") = "Value";

lib/gurobi_model_ext_constants.cpp

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ void bind_gurobi_constants(nb::module_ &m)
9494
GRB.attr("ITERATION_LIMIT") = 7;
9595
GRB.attr("LESS_EQUAL") = "<";
9696
GRB.attr("LOADED") = 1;
97+
GRB.attr("LOCALLY_INFEASIBLE") = 19;
98+
GRB.attr("LOCALLY_OPTIMAL") = 18;
9799
GRB.attr("MAXIMIZE") = -1;
98100
GRB.attr("MAXINT") = 2000000000;
99101
GRB.attr("MAX_CONCURRENT") = 64;
@@ -108,6 +110,7 @@ void bind_gurobi_constants(nb::module_ &m)
108110
GRB.attr("METHOD_DETERMINISTIC_CONCURRENT_SIMPLEX") = 5;
109111
GRB.attr("METHOD_DUAL") = 1;
110112
GRB.attr("METHOD_NONE") = -1;
113+
GRB.attr("METHOD_PDHG") = 6;
111114
GRB.attr("METHOD_PRIMAL") = 0;
112115
GRB.attr("MINIMIZE") = 1;
113116
GRB.attr("MIPFOCUS_BALANCED") = 0;
@@ -130,10 +133,12 @@ void bind_gurobi_constants(nb::module_ &m)
130133
GRB.attr("OPCODE_MULTIPLY") = 4;
131134
GRB.attr("OPCODE_PLUS") = 2;
132135
GRB.attr("OPCODE_POW") = 12;
136+
GRB.attr("OPCODE_SIGNPOW") = 19;
133137
GRB.attr("OPCODE_SIN") = 9;
134138
GRB.attr("OPCODE_SQRT") = 8;
135139
GRB.attr("OPCODE_SQUARE") = 7;
136140
GRB.attr("OPCODE_TAN") = 11;
141+
GRB.attr("OPCODE_TANH") = 18;
137142
GRB.attr("OPCODE_UMINUS") = 6;
138143
GRB.attr("OPCODE_VARIABLE") = 1;
139144
GRB.attr("OPTIMAL") = 2;
@@ -170,14 +175,15 @@ void bind_gurobi_constants(nb::module_ &m)
170175
GRB.attr("VARBRANCH_PSEUDO_REDUCED") = 0;
171176
GRB.attr("VARBRANCH_PSEUDO_SHADOW") = 1;
172177
GRB.attr("VARBRANCH_STRONG") = 3;
173-
GRB.attr("VERSION_MAJOR") = 12;
178+
GRB.attr("VERSION_MAJOR") = 13;
174179
GRB.attr("VERSION_MINOR") = 0;
175180
GRB.attr("VERSION_TECHNICAL") = 0;
176181
GRB.attr("WORK_LIMIT") = 16;
177182

178183
nb::module_ Attr = GRB.def_submodule("Attr");
179184
Attr.attr("BarIterCount") = "BarIterCount";
180185
Attr.attr("BarPi") = "BarPi";
186+
Attr.attr("BarStatus") = "BarStatus";
181187
Attr.attr("BarX") = "BarX";
182188
Attr.attr("BatchErrorCode") = "BatchErrorCode";
183189
Attr.attr("BatchErrorMessage") = "BatchErrorMessage";
@@ -281,13 +287,15 @@ void bind_gurobi_constants(nb::module_ &m)
281287
Attr.attr("MinRHS") = "MinRHS";
282288
Attr.attr("ModelName") = "ModelName";
283289
Attr.attr("ModelSense") = "ModelSense";
290+
Attr.attr("NLBarIterCount") = "NLBarIterCount";
284291
Attr.attr("NodeCount") = "NodeCount";
285292
Attr.attr("NumBinVars") = "NumBinVars";
286293
Attr.attr("NumConstrs") = "NumConstrs";
287294
Attr.attr("NumGenConstrs") = "NumGenConstrs";
288295
Attr.attr("NumIntVars") = "NumIntVars";
289296
Attr.attr("NumNZs") = "NumNZs";
290297
Attr.attr("NumObj") = "NumObj";
298+
Attr.attr("NumObjPasses") = "NumObjPasses";
291299
Attr.attr("NumPWLObjVars") = "NumPWLObjVars";
292300
Attr.attr("NumQCNZs") = "NumQCNZs";
293301
Attr.attr("NumQConstrs") = "NumQConstrs";
@@ -304,16 +312,39 @@ void bind_gurobi_constants(nb::module_ &m)
304312
Attr.attr("ObjNAbsTol") = "ObjNAbsTol";
305313
Attr.attr("ObjNCon") = "ObjNCon";
306314
Attr.attr("ObjNName") = "ObjNName";
315+
Attr.attr("ObjNPass") = "ObjNPass";
307316
Attr.attr("ObjNPriority") = "ObjNPriority";
308317
Attr.attr("ObjNRelTol") = "ObjNRelTol";
309318
Attr.attr("ObjNVal") = "ObjNVal";
310319
Attr.attr("ObjNWeight") = "ObjNWeight";
320+
Attr.attr("ObjPassNIterCount") = "ObjPassNIterCount";
321+
Attr.attr("ObjPassNMIPGap") = "ObjPassNMIPGap";
322+
Attr.attr("ObjPassNNodeCount") = "ObjPassNNodeCount";
323+
Attr.attr("ObjPassNObjBound") = "ObjPassNObjBound";
324+
Attr.attr("ObjPassNObjVal") = "ObjPassNObjVal";
325+
Attr.attr("ObjPassNOpenNodeCount") = "ObjPassNOpenNodeCount";
326+
Attr.attr("ObjPassNRuntime") = "ObjPassNRuntime";
327+
Attr.attr("ObjPassNStatus") = "ObjPassNStatus";
328+
Attr.attr("ObjPassNWork") = "ObjPassNWork";
311329
Attr.attr("ObjVal") = "ObjVal";
330+
Attr.attr("PDHGIterCount") = "PDHGIterCount";
312331
Attr.attr("PStart") = "PStart";
313332
Attr.attr("PWLObjCvx") = "PWLObjCvx";
314333
Attr.attr("Partition") = "Partition";
315334
Attr.attr("Pi") = "Pi";
316335
Attr.attr("PoolIgnore") = "PoolIgnore";
336+
Attr.attr("PoolNBoundVio") = "PoolNBoundVio";
337+
Attr.attr("PoolNBoundVioIndex") = "PoolNBoundVioIndex";
338+
Attr.attr("PoolNBoundVioSum") = "PoolNBoundVioSum";
339+
Attr.attr("PoolNConstrVio") = "PoolNConstrVio";
340+
Attr.attr("PoolNConstrVioIndex") = "PoolNConstrVioIndex";
341+
Attr.attr("PoolNConstrVioSum") = "PoolNConstrVioSum";
342+
Attr.attr("PoolNIntVio") = "PoolNIntVio";
343+
Attr.attr("PoolNIntVioIndex") = "PoolNIntVioIndex";
344+
Attr.attr("PoolNIntVioSum") = "PoolNIntVioSum";
345+
Attr.attr("PoolNMaxVio") = "PoolNMaxVio";
346+
Attr.attr("PoolNObjVal") = "PoolNObjVal";
347+
Attr.attr("PoolNX") = "PoolNX";
317348
Attr.attr("PoolObjBound") = "PoolObjBound";
318349
Attr.attr("PoolObjVal") = "PoolObjVal";
319350
Attr.attr("PreFixVal") = "PreFixVal";
@@ -411,6 +442,7 @@ void bind_gurobi_constants(nb::module_ &m)
411442
Param.attr("DualReductions") = "DualReductions";
412443
Param.attr("FeasRelaxBigM") = "FeasRelaxBigM";
413444
Param.attr("FeasibilityTol") = "FeasibilityTol";
445+
Param.attr("FixVarsInIndicators") = "FixVarsInIndicators";
414446
Param.attr("FlowCoverCuts") = "FlowCoverCuts";
415447
Param.attr("FlowPathCuts") = "FlowPathCuts";
416448
Param.attr("FuncMaxVal") = "FuncMaxVal";
@@ -428,8 +460,10 @@ void bind_gurobi_constants(nb::module_ &m)
428460
Param.attr("ImproveStartGap") = "ImproveStartGap";
429461
Param.attr("ImproveStartNodes") = "ImproveStartNodes";
430462
Param.attr("ImproveStartTime") = "ImproveStartTime";
463+
Param.attr("ImproveStartWork") = "ImproveStartWork";
431464
Param.attr("InfProofCuts") = "InfProofCuts";
432465
Param.attr("InfUnbdInfo") = "InfUnbdInfo";
466+
Param.attr("InheritParams") = "InheritParams";
433467
Param.attr("IntFeasTol") = "IntFeasTol";
434468
Param.attr("IntegralityFocus") = "IntegralityFocus";
435469
Param.attr("IterationLimit") = "IterationLimit";
@@ -448,16 +482,22 @@ void bind_gurobi_constants(nb::module_ &m)
448482
Param.attr("MIQCPMethod") = "MIQCPMethod";
449483
Param.attr("MIRCuts") = "MIRCuts";
450484
Param.attr("MarkowitzTol") = "MarkowitzTol";
485+
Param.attr("MasterKnapsackCuts") = "MasterKnapsackCuts";
451486
Param.attr("MemLimit") = "MemLimit";
452487
Param.attr("Method") = "Method";
453488
Param.attr("MinRelNodes") = "MinRelNodes";
454489
Param.attr("MixingCuts") = "MixingCuts";
455490
Param.attr("ModKCuts") = "ModKCuts";
456491
Param.attr("MultiObjMethod") = "MultiObjMethod";
457492
Param.attr("MultiObjPre") = "MultiObjPre";
493+
Param.attr("NLBarCFeasTol") = "NLBarCFeasTol";
494+
Param.attr("NLBarDFeasTol") = "NLBarDFeasTol";
495+
Param.attr("NLBarIterLimit") = "NLBarIterLimit";
496+
Param.attr("NLBarPFeasTol") = "NLBarPFeasTol";
458497
Param.attr("NLPHeur") = "NLPHeur";
459498
Param.attr("NetworkAlg") = "NetworkAlg";
460499
Param.attr("NetworkCuts") = "NetworkCuts";
500+
Param.attr("NoRelHeurSolutions") = "NoRelHeurSolutions";
461501
Param.attr("NoRelHeurTime") = "NoRelHeurTime";
462502
Param.attr("NoRelHeurWork") = "NoRelHeurWork";
463503
Param.attr("NodeLimit") = "NodeLimit";
@@ -469,9 +509,16 @@ void bind_gurobi_constants(nb::module_ &m)
469509
Param.attr("NumericFocus") = "NumericFocus";
470510
Param.attr("OBBT") = "OBBT";
471511
Param.attr("ObjNumber") = "ObjNumber";
512+
Param.attr("ObjPassNumber") = "ObjPassNumber";
472513
Param.attr("ObjScale") = "ObjScale";
514+
Param.attr("OptimalityTarget") = "OptimalityTarget";
473515
Param.attr("OptimalityTol") = "OptimalityTol";
474516
Param.attr("OutputFlag") = "OutputFlag";
517+
Param.attr("PDHGAbsTol") = "PDHGAbsTol";
518+
Param.attr("PDHGConvTol") = "PDHGConvTol";
519+
Param.attr("PDHGGPU") = "PDHGGPU";
520+
Param.attr("PDHGIterLimit") = "PDHGIterLimit";
521+
Param.attr("PDHGRelTol") = "PDHGRelTol";
475522
Param.attr("PSDCuts") = "PSDCuts";
476523
Param.attr("PSDTol") = "PSDTol";
477524
Param.attr("PartitionPlace") = "PartitionPlace";
@@ -516,6 +563,8 @@ void bind_gurobi_constants(nb::module_ &m)
516563
Param.attr("SolutionTarget") = "SolutionTarget";
517564
Param.attr("StartNodeLimit") = "StartNodeLimit";
518565
Param.attr("StartNumber") = "StartNumber";
566+
Param.attr("StartTimeLimit") = "StartTimeLimit";
567+
Param.attr("StartWorkLimit") = "StartWorkLimit";
519568
Param.attr("StrongCGCuts") = "StrongCGCuts";
520569
Param.attr("SubMIPCuts") = "SubMIPCuts";
521570
Param.attr("SubMIPNodes") = "SubMIPNodes";
@@ -613,6 +662,19 @@ void bind_gurobi_constants(nb::module_ &m)
613662
Callback.attr("MULTIOBJ_SOLCNT") = 8002;
614663
Callback.attr("MULTIOBJ_STATUS") = 8007;
615664
Callback.attr("MULTIOBJ_WORK") = 8012;
665+
Callback.attr("NLBAR") = 11;
666+
Callback.attr("NLBAR_COMPL") = 11005;
667+
Callback.attr("NLBAR_DUALINF") = 11004;
668+
Callback.attr("NLBAR_ITRCNT") = 11001;
669+
Callback.attr("NLBAR_PRIMINF") = 11003;
670+
Callback.attr("NLBAR_PRIMOBJ") = 11002;
671+
Callback.attr("PDHG") = 10;
672+
Callback.attr("PDHG_COMPL") = 10006;
673+
Callback.attr("PDHG_DUALINF") = 10005;
674+
Callback.attr("PDHG_DUALOBJ") = 10003;
675+
Callback.attr("PDHG_ITRCNT") = 10001;
676+
Callback.attr("PDHG_PRIMINF") = 10004;
677+
Callback.attr("PDHG_PRIMOBJ") = 10002;
616678
Callback.attr("POLLING") = 0;
617679
Callback.attr("PRESOLVE") = 1;
618680
Callback.attr("PRE_BNDCHG") = 1003;

src/pyoptinterface/_src/gurobi.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,15 @@ def detected_libraries():
8484
pass
8585

8686
# default names
87+
gurobi_names = [
88+
"gurobi130",
89+
"gurobi120",
90+
"gurobi110",
91+
]
8792
default_libname = {
88-
"Linux": ["libgurobi120.so", "libgurobi110.so"],
89-
"Darwin": ["libgurobi120.dylib", "libgurobi110.dylib"],
90-
"Windows": ["gurobi120.dll", "gurobi110.dll"],
93+
"Linux": ["lib" + name + ".so" for name in gurobi_names],
94+
"Darwin": ["lib" + name + ".dylib" for name in gurobi_names],
95+
"Windows": [name + ".dll" for name in gurobi_names],
9196
}[platform.system()]
9297
libs.extend(default_libname)
9398

0 commit comments

Comments
 (0)