gurobipy 12.0.0b3__cp310-cp310-macosx_10_9_universal2.whl → 12.0.2__cp310-cp310-macosx_10_9_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gurobipy might be problematic. Click here for more details.
- gurobipy/.libs/libgurobi120.dylib +0 -0
- gurobipy/__init__.py +4 -7
- gurobipy/__init__.pyi +3 -1
- gurobipy/_attrutil.cpython-310-darwin.so +0 -0
- gurobipy/_batch.cpython-310-darwin.so +0 -0
- gurobipy/_core.cpython-310-darwin.so +0 -0
- gurobipy/_exception.cpython-310-darwin.so +0 -0
- gurobipy/_grb.py +1 -1
- gurobipy/_helpers.cpython-310-darwin.so +0 -0
- gurobipy/_matrixapi.cpython-310-darwin.so +0 -0
- gurobipy/_model.cpython-310-darwin.so +0 -0
- gurobipy/_modelutil.cpython-310-darwin.so +0 -0
- gurobipy/_paramdetails.py +35 -18
- gurobipy/_util.cpython-310-darwin.so +0 -0
- gurobipy/nlfunc.py +32 -0
- {gurobipy-12.0.0b3.dist-info → gurobipy-12.0.2.dist-info}/METADATA +48 -43
- gurobipy-12.0.2.dist-info/RECORD +28 -0
- gurobipy/_tempconstr.cpython-310-darwin.so +0 -0
- gurobipy/_tupledict.cpython-310-darwin.so +0 -0
- gurobipy/_tuplelist.cpython-310-darwin.so +0 -0
- gurobipy/nlfunc.cpython-310-darwin.so +0 -0
- gurobipy-12.0.0b3.dist-info/RECORD +0 -31
- {gurobipy-12.0.0b3.dist-info → gurobipy-12.0.2.dist-info}/LICENSE.txt +0 -0
- {gurobipy-12.0.0b3.dist-info → gurobipy-12.0.2.dist-info}/WHEEL +0 -0
- {gurobipy-12.0.0b3.dist-info → gurobipy-12.0.2.dist-info}/top_level.txt +0 -0
|
Binary file
|
gurobipy/__init__.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
__version__ = "12.0.
|
|
1
|
+
__version__ = "12.0.2"
|
|
2
2
|
|
|
3
3
|
from gurobipy._batch import Batch
|
|
4
4
|
|
|
@@ -14,6 +14,9 @@ from gurobipy._core import (
|
|
|
14
14
|
SOS,
|
|
15
15
|
Var,
|
|
16
16
|
NLExpr,
|
|
17
|
+
TempConstr,
|
|
18
|
+
tuplelist,
|
|
19
|
+
tupledict,
|
|
17
20
|
)
|
|
18
21
|
|
|
19
22
|
from gurobipy._core import abs_, all_, and_, any_, max_, min_, norm, or_
|
|
@@ -54,10 +57,4 @@ from gurobipy._matrixapi import (
|
|
|
54
57
|
|
|
55
58
|
from gurobipy._model import Model
|
|
56
59
|
|
|
57
|
-
from gurobipy._tempconstr import TempConstr
|
|
58
|
-
|
|
59
|
-
from gurobipy._tupledict import tupledict
|
|
60
|
-
|
|
61
|
-
from gurobipy._tuplelist import tuplelist
|
|
62
|
-
|
|
63
60
|
import gurobipy.nlfunc as nlfunc
|
gurobipy/__init__.pyi
CHANGED
|
@@ -105,7 +105,9 @@ def quicksum(__x: tupledict[Any, Var]) -> LinExpr: ... # type: ignore[misc]
|
|
|
105
105
|
@overload
|
|
106
106
|
def quicksum(__x: Iterable[_LinExprLike]) -> LinExpr: ... # type: ignore[misc]
|
|
107
107
|
@overload
|
|
108
|
-
def quicksum(__x: Iterable[_QuadExprLike]) -> QuadExpr: ...
|
|
108
|
+
def quicksum(__x: Iterable[_QuadExprLike]) -> QuadExpr: ... # type: ignore[misc]
|
|
109
|
+
@overload
|
|
110
|
+
def quicksum(__x: Iterable[_NLExprLike]) -> NLExpr: ...
|
|
109
111
|
@overload
|
|
110
112
|
def hstack(tup: Iterable[MVar]) -> MVar: ... # type: ignore[misc]
|
|
111
113
|
@overload
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
gurobipy/_grb.py
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
gurobipy/_paramdetails.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# This file is automatically generated
|
|
2
|
+
# Docs git ref: b0963771a0aba71f524d18b068056a7c9fdaed0f
|
|
2
3
|
|
|
3
4
|
param_details = {
|
|
4
5
|
"AggFill": {
|
|
@@ -62,7 +63,7 @@ param_details = {
|
|
|
62
63
|
}
|
|
63
64
|
},
|
|
64
65
|
"BarIterLimit": {
|
|
65
|
-
"description": "Limits the number of barrier iterations performed. This parameter is\nrarely used. If you would like barrier to terminate early, it is\nalmost always better to use the BarConvTol parameter instead.\n\nOptimization returns with an ITERATION_LIMIT status if the limit is\nexceeded.\n\nNote:\n\n Barrier only",
|
|
66
|
+
"description": "Limits the number of barrier iterations performed. This parameter is\nrarely used. If you would like barrier to terminate early, it is\nalmost always better to use the BarConvTol parameter instead.\n\nOptimization returns with an ITERATION_LIMIT status if the limit is\nexceeded.\n\nThis parameter is callback settable. It can be changed from within a\ncallback when the \"where\" value is \"PRESOLVED\", \"SIMPLEX\", \"MIP\",\n\"MIPSOL\", \"MIPNODE\", \"BARRIER\", or \"MULTIOBJ\" (see the Callback Codes\nsection for more information). How to do that for the different APIs\nis illustrated here. In case of a remote server, the change of a\nparameter from within a callback may not be taken into account\nimmediately.\n\nNote:\n\n Barrier only",
|
|
66
67
|
"name": "BarIterLimit",
|
|
67
68
|
"values": {
|
|
68
69
|
"default": 1000,
|
|
@@ -318,7 +319,7 @@ param_details = {
|
|
|
318
319
|
}
|
|
319
320
|
},
|
|
320
321
|
"ConcurrentSettings": {
|
|
321
|
-
"description": "This command-line only parameter allows you to specify a comma-\nseparated list of .prm files that are used to set parameters for the\ndifferent instances in a concurrent MIP run.\n\nTo give an example, you could create two \".prm\" files with the\nfollowing contents\u2026\n\ns0.prm:\n\n MIPFocus 0\n\ns1.prm:\n\n MIPFocus 1\n\nIssuing the command \"gurobi_cl ConcurrentSettings=s0.prm,s1.prm\nmodel.mps\" would invoke the concurrent MIP solver, using parameter\nsetting MIPFocus=0 in one of the two concurrent solves and MIPFocus=1\nin the other.\n\nNote that if you want to run concurrent MIP on multiple machines, you\nmust also set the ConcurrentJobs parameter. The command for running\ndistributed concurrent optimization using the two example parameter\nfiles on two machines would be\n\n > gurobi_cl ConcurrentJobs=2 ConcurrentSettings=s0.prm,s1.prm model.mps\n\nNote:\n\n Command-line only (\"gurobi_cl\")",
|
|
322
|
+
"description": "This command-line only parameter allows you to specify a comma-\nseparated list of .prm files that are used to set parameters for the\ndifferent instances in a concurrent MIP run.\n\nTo give an example, you could create two \".prm\" files with the\nfollowing contents\u2026\n\ns0.prm:\n\n MIPFocus 0\n\ns1.prm:\n\n MIPFocus 1\n\nIssuing the command \"gurobi_cl ConcurrentSettings=s0.prm,s1.prm\nmodel.mps\" would invoke the concurrent MIP solver, using parameter\nsetting MIPFocus=0 in one of the two concurrent solves and MIPFocus=1\nin the other.\n\nNote that if you want to run concurrent MIP on multiple machines, you\nmust also set the ConcurrentJobs parameter. The command for running\ndistributed concurrent optimization using the two example parameter\nfiles on two machines would be\n\n > gurobi_cl ConcurrentJobs=2 ConcurrentSettings=s0.prm,s1.prm model.mps\n\nNote:\n\n Command-line only (\"gurobi_cl\"). See Concurrent environments for the\n equivalent feature in the Gurobi APIs.",
|
|
322
323
|
"name": "ConcurrentSettings",
|
|
323
324
|
"values": {
|
|
324
325
|
"default": "",
|
|
@@ -550,7 +551,7 @@ param_details = {
|
|
|
550
551
|
"name": "FuncPieces",
|
|
551
552
|
"values": {
|
|
552
553
|
"default": 0,
|
|
553
|
-
"maximum":
|
|
554
|
+
"maximum": 200000000,
|
|
554
555
|
"minimum": -2,
|
|
555
556
|
"type": "int"
|
|
556
557
|
}
|
|
@@ -666,7 +667,7 @@ param_details = {
|
|
|
666
667
|
}
|
|
667
668
|
},
|
|
668
669
|
"InputFile": {
|
|
669
|
-
"description": "Specifies the name of a file that will be read before beginning a\ncommand-line optimization run. This parameter can be used to input a\nMIP start (a \".mst\" or \".sol\" file), MIP hints (a \".hnt\" file), a\nsimplex basis (a \".bas\" file), Gurobi attributes (a \".attr\" file), or\na set of parameter settings (a \".prm\" file) from the Gurobi command\nline. The suffix may optionally be followed by \".zip\", \".gz\", \".bz2\",\
|
|
670
|
+
"description": "Specifies the name of a file that will be read before beginning a\ncommand-line optimization run. This parameter can be used to input a\nMIP start (a \".mst\" or \".sol\" file), MIP hints (a \".hnt\" file), a\nsimplex basis (a \".bas\" file), Gurobi attributes (a \".attr\" file), or\na set of parameter settings (a \".prm\" file) from the Gurobi command\nline. The suffix may optionally be followed by \".zip\", \".gz\", \".bz2\",\n\".7z\" or \".xz\" if the input files are compressed.\n\nNote:\n\n Command-line only (\"gurobi_cl\"), can be used multiple times\n\nFor examples of how to use this parameter, refer to the Reading Input\nFiles section.",
|
|
670
671
|
"name": "InputFile",
|
|
671
672
|
"values": {
|
|
672
673
|
"default": "",
|
|
@@ -770,7 +771,7 @@ param_details = {
|
|
|
770
771
|
}
|
|
771
772
|
},
|
|
772
773
|
"LogToConsole": {
|
|
773
|
-
"description": "Enables or disables console logging.
|
|
774
|
+
"description": "Enables or disables console logging. Note that this refers to the\noutput of Gurobi to the console. This includes the various display and\nprint functions provided by the API in interactive environments.\n\nUse OutputFlag to shut off all logging.",
|
|
774
775
|
"name": "LogToConsole",
|
|
775
776
|
"values": {
|
|
776
777
|
"default": 1,
|
|
@@ -870,7 +871,7 @@ param_details = {
|
|
|
870
871
|
}
|
|
871
872
|
},
|
|
872
873
|
"MinRelNodes": {
|
|
873
|
-
"description": "Number of nodes to explore in the minimum relaxation heuristic
|
|
874
|
+
"description": "Number of nodes to explore in the minimum relaxation heuristic.\n\nThis heuristic is quite expensive, and generally produces poor quality\nsolutions. You should generally only use it if other means, including\nexploration of the tree with default settings, fail to produce a\nfeasible solution.\n\nThe default value automatically chooses whether to apply the\nheuristic. It will only rarely choose to do so.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
874
875
|
"name": "MinRelNodes",
|
|
875
876
|
"values": {
|
|
876
877
|
"default": -1,
|
|
@@ -978,7 +979,7 @@ param_details = {
|
|
|
978
979
|
}
|
|
979
980
|
},
|
|
980
981
|
"NodeLimit": {
|
|
981
|
-
"description": "Limits the number of MIP nodes explored. Optimization returns with an\nNODE_LIMIT status if the limit is exceeded. Note that if multiple\nthreads are used for the optimization, the actual number of explored\nnodes may be slightly larger than the set limit.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
982
|
+
"description": "Limits the number of MIP nodes explored. Optimization returns with an\nNODE_LIMIT status if the limit is exceeded. Note that if multiple\nthreads are used for the optimization, the actual number of explored\nnodes may be slightly larger than the set limit.\n\nThis parameter is callback settable. It can be changed from within a\ncallback when the \"where\" value is \"PRESOLVED\", \"SIMPLEX\", \"MIP\",\n\"MIPSOL\", \"MIPNODE\", \"BARRIER\", or \"MULTIOBJ\" (see the Callback Codes\nsection for more information). How to do that for the different APIs\nis illustrated here. In case of a remote server, the change of a\nparameter from within a callback may not be taken into account\nimmediately.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
982
983
|
"name": "NodeLimit",
|
|
983
984
|
"values": {
|
|
984
985
|
"default": 1e+100,
|
|
@@ -1086,7 +1087,7 @@ param_details = {
|
|
|
1086
1087
|
}
|
|
1087
1088
|
},
|
|
1088
1089
|
"OutputFlag": {
|
|
1089
|
-
"description": "Enables or disables solver output. Use LogFile and LogToConsole for\nfiner-grain control. Setting OutputFlag to 0 is equivalent to setting\nLogFile to \"\"\"\" and LogToConsole to 0.",
|
|
1090
|
+
"description": "Enables or disables solver output. Use LogFile and LogToConsole for\nfiner-grain control. Setting OutputFlag to 0 is equivalent to setting\nLogFile to \"\"\"\" and LogToConsole to 0.\n\nNote that server-side logging is always active for remote jobs run on\nGurobi Instant Cloud, Compute Server, or Cluster Manager. This is not\nimpacted by any user parameter settings.",
|
|
1090
1091
|
"name": "OutputFlag",
|
|
1091
1092
|
"values": {
|
|
1092
1093
|
"default": 1,
|
|
@@ -1106,7 +1107,7 @@ param_details = {
|
|
|
1106
1107
|
}
|
|
1107
1108
|
},
|
|
1108
1109
|
"PSDTol": {
|
|
1109
|
-
"description": "Sets a limit on the amount of diagonal perturbation that the optimizer\nis allowed to perform on a Q matrix in order to correct minor PSD\nviolations. If a larger perturbation is required, the optimizer will\nterminate with a
|
|
1110
|
+
"description": "Sets a limit on the amount of diagonal perturbation that the optimizer\nis allowed to perform on a Q matrix in order to correct minor PSD\nviolations. If a larger perturbation is required, the optimizer will\nterminate with a Q_NOT_PSD error.\n\nNote:\n\n Only affects QP, QCP, MIQP, and MIQCP models",
|
|
1110
1111
|
"name": "PSDTol",
|
|
1111
1112
|
"values": {
|
|
1112
1113
|
"default": 1e-06,
|
|
@@ -1156,7 +1157,7 @@ param_details = {
|
|
|
1156
1157
|
}
|
|
1157
1158
|
},
|
|
1158
1159
|
"PoolSearchMode": {
|
|
1159
|
-
"description": "Selects different modes for exploring the MIP search tree. With the\ndefault setting (\"PoolSearchMode=0\"), the MIP solver tries to find an\noptimal solution to the model. It keeps other solutions found along\nthe way, but those are incidental. By setting this parameter to a non-\ndefault value, the MIP search will continue after the optimal solution\nhas been found in order to find additional, high-quality solutions.\nWith a non-default value (\"PoolSearchMode=1\" or \"PoolSearchMode=2\"),\nthe MIP solver will try to find \"n\" solutions, where \"n\" is determined\nby the value of the PoolSolutions parameter. With a setting of 1,\nthere are no guarantees about the quality of the extra solutions,\nwhile with a setting of 2, the solver will find the \"n\" best\nsolutions. The cost of the solve will increase with increasing values\nof this parameter.\n\nOnce optimization is complete, the PoolObjBound attribute can be used\nto evaluate the quality of the solutions that were found. For example,\na value of \"PoolObjBound=100\" indicates that there are no other\nsolutions with objective better 100, and thus that any known solutions\nwith objective better than 100 are better than any as-yet undiscovered\nsolutions.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1160
|
+
"description": "Selects different modes for exploring the MIP search tree. With the\ndefault setting (\"PoolSearchMode=0\"), the MIP solver tries to find an\noptimal solution to the model. It keeps other solutions found along\nthe way, but those are incidental. By setting this parameter to a non-\ndefault value, the MIP search will continue after the optimal solution\nhas been found in order to find additional, high-quality solutions.\nWith a non-default value (\"PoolSearchMode=1\" or \"PoolSearchMode=2\"),\nthe MIP solver will try to find \"n\" solutions, where \"n\" is determined\nby the value of the PoolSolutions parameter. With a setting of 1,\nthere are no guarantees about the quality of the extra solutions,\nwhile with a setting of 2, the solver will find the \"n\" best\nsolutions. The cost of the solve will increase with increasing values\nof this parameter.\n\nOnce optimization is complete, the PoolObjBound attribute can be used\nto evaluate the quality of the solutions that were found. For example,\na value of \"PoolObjBound=100\" indicates that there are no other\nsolutions with objective better 100, and thus that any known solutions\nwith objective better than 100 are better than any as-yet undiscovered\nsolutions.\n\nSee Solution Pool for more information about solution pools, including\nsubtleties and limitations.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1160
1161
|
"name": "PoolSearchMode",
|
|
1161
1162
|
"values": {
|
|
1162
1163
|
"default": 0,
|
|
@@ -1306,7 +1307,7 @@ param_details = {
|
|
|
1306
1307
|
}
|
|
1307
1308
|
},
|
|
1308
1309
|
"PumpPasses": {
|
|
1309
|
-
"description": "Number of passes of the feasibility pump heuristic
|
|
1310
|
+
"description": "Number of passes of the feasibility pump heuristic.\n\nThis heuristic is quite expensive, and generally produces poor quality\nsolutions. You should generally only use it if other means, including\nexploration of the tree with default settings, fail to produce a\nfeasible solution.\n\nThis parameter is callback settable. It can be changed from within a\ncallback when the \"where\" value is \"PRESOLVED\", \"SIMPLEX\", \"MIP\",\n\"MIPSOL\", \"MIPNODE\", \"BARRIER\", or \"MULTIOBJ\" (see the Callback Codes\nsection for more information). How to do that for the different APIs\nis illustrated here. In case of a remote server, the change of a\nparameter from within a callback may not be taken into account\nimmediately.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1310
1311
|
"name": "PumpPasses",
|
|
1311
1312
|
"values": {
|
|
1312
1313
|
"default": -1,
|
|
@@ -1376,7 +1377,7 @@ param_details = {
|
|
|
1376
1377
|
}
|
|
1377
1378
|
},
|
|
1378
1379
|
"ResultFile": {
|
|
1379
|
-
"description": "Specifies the name of the result file to be written upon completion of\noptimization. The type of the result file is determined by the file\nsuffix. The most commonly used suffixes are \".sol\" (to capture the\nsolution vector), \".bas\" (to capture the simplex basis), and \".mst\"\n(to capture the solution vector on the integer variables). You can\nalso write a \".ilp\" file (to capture the IIS for an infeasible model),\nor a \".mps\", \".rew\", \".lp\", or \".rlp\" file (to capture the original\nmodel), or a \".dua\" or \".dlp\" file (to capture the dual of a pure LP\nmodel). The file suffix may optionally be followed by \".
|
|
1380
|
+
"description": "Specifies the name of the result file to be written upon completion of\noptimization. The type of the result file is determined by the file\nsuffix. The most commonly used suffixes are \".sol\" (to capture the\nsolution vector), \".bas\" (to capture the simplex basis), and \".mst\"\n(to capture the solution vector on the integer variables). You can\nalso write a \".ilp\" file (to capture the IIS for an infeasible model),\nor a \".mps\", \".rew\", \".lp\", or \".rlp\" file (to capture the original\nmodel), or a \".dua\" or \".dlp\" file (to capture the dual of a pure LP\nmodel). The file suffix may optionally be followed by \".zip\", \".gz\",\n\".bz2\", \".7z\" or \".xz\", which produces a compressed result.\n\nMore information on the file formats can be found in the File Format\nsection.",
|
|
1380
1381
|
"name": "ResultFile",
|
|
1381
1382
|
"values": {
|
|
1382
1383
|
"default": "",
|
|
@@ -1600,7 +1601,7 @@ param_details = {
|
|
|
1600
1601
|
}
|
|
1601
1602
|
},
|
|
1602
1603
|
"TimeLimit": {
|
|
1603
|
-
"description": "Limits the total time expended (in seconds). Optimization returns with\na TIME_LIMIT status if the limit is exceeded.\n\nNote that optimization may not stop immediately upon hitting the time\nlimit. It will stop after performing the required additional\ncomputations of the attributes associated with the terminated\noptimization. As a result, the Runtime attribute may be larger than\nthe specified TimeLimit upon completion, and repeating the\noptimization with a TimeLimit set to the Runtime attribute of the\nstopped optimization may result in additional computations and a\nlarger attribute value.",
|
|
1604
|
+
"description": "Limits the total time expended (in seconds). Optimization returns with\na TIME_LIMIT status if the limit is exceeded.\n\nNote that optimization may not stop immediately upon hitting the time\nlimit. It will stop after performing the required additional\ncomputations of the attributes associated with the terminated\noptimization. As a result, the Runtime attribute may be larger than\nthe specified TimeLimit upon completion, and repeating the\noptimization with a TimeLimit set to the Runtime attribute of the\nstopped optimization may result in additional computations and a\nlarger attribute value.\n\nThis parameter is callback settable. It can be changed from within a\ncallback when the \"where\" value is \"PRESOLVED\", \"SIMPLEX\", \"MIP\",\n\"MIPSOL\", \"MIPNODE\", \"BARRIER\", or \"MULTIOBJ\" (see the Callback Codes\nsection for more information). How to do that for the different APIs\nis illustrated here. In case of a remote server, the change of a\nparameter from within a callback may not be taken into account\nimmediately.",
|
|
1604
1605
|
"name": "TimeLimit",
|
|
1605
1606
|
"values": {
|
|
1606
1607
|
"default": 1e+100,
|
|
@@ -1636,7 +1637,7 @@ param_details = {
|
|
|
1636
1637
|
}
|
|
1637
1638
|
},
|
|
1638
1639
|
"TuneCriterion": {
|
|
1639
|
-
"description": "Modifies the tuning criterion for the tuning tool. The primary tuning\ncriterion is always to minimize the runtime required to find a proven\noptimal solution. However, for MIP models that don\u2019t solve to\noptimality within the specified time limit, a secondary criterion is\nneeded. Set this parameter to 1 to use the optimality gap as the\nsecondary criterion. Choose a value of 2 to use the objective of the\nbest feasible solution found. Choose a value of 3 to use the best\nobjective bound. Choose 0 to ignore the secondary criterion and focus\nentirely on minimizing the time to find a proven optimal solution. The\ndefault value of -1 chooses automatically.\n\nNote that
|
|
1640
|
+
"description": "Modifies the tuning criterion for the tuning tool. The primary tuning\ncriterion is always to minimize the runtime required to find a proven\noptimal solution. However, for MIP models that don\u2019t solve to\noptimality within the specified time limit, a secondary criterion is\nneeded. Set this parameter to 1 to use the optimality gap as the\nsecondary criterion. Choose a value of 2 to use the objective of the\nbest feasible solution found. Choose a value of 3 to use the best\nobjective bound. Choose 0 to ignore the secondary criterion and focus\nentirely on minimizing the time to find a proven optimal solution. The\ndefault value of -1 chooses automatically.\n\nNote that values 1 and 3 are unsupported for multi-objective problems.",
|
|
1640
1641
|
"name": "TuneCriterion",
|
|
1641
1642
|
"values": {
|
|
1642
1643
|
"default": -1,
|
|
@@ -1763,9 +1764,9 @@ param_details = {
|
|
|
1763
1764
|
"type": "int"
|
|
1764
1765
|
}
|
|
1765
1766
|
},
|
|
1766
|
-
"
|
|
1767
|
+
"Username": {
|
|
1767
1768
|
"description": "Identify the user connecting to the Remote Services Manager.\n\nYou can provide either a username and password, or an access ID and a\nsecret key, to authenticate your connection to a Cluster Manager.\n\nYou can set this parameter through either a \"gurobi.lic\" file (using\n\"USERNAME=YOUR_USERNAME\") or an empty environment. Changing the\nparameter after your environment has been started will result in an\nerror.\n\nNote:\n\n Cluster Manager only",
|
|
1768
|
-
"name": "
|
|
1769
|
+
"name": "Username",
|
|
1769
1770
|
"values": {
|
|
1770
1771
|
"default": "",
|
|
1771
1772
|
"type": "string"
|
|
@@ -1789,6 +1790,22 @@ param_details = {
|
|
|
1789
1790
|
"type": "string"
|
|
1790
1791
|
}
|
|
1791
1792
|
},
|
|
1793
|
+
"WLSConfig": {
|
|
1794
|
+
"description": "When using a WLS On Demand license, this parameter can be used to\nspecify which configuration to use. If not specified, the\nconfiguration used will be the default configuration specified for\nthat license.",
|
|
1795
|
+
"name": "WLSConfig",
|
|
1796
|
+
"values": {
|
|
1797
|
+
"default": "",
|
|
1798
|
+
"type": "string"
|
|
1799
|
+
}
|
|
1800
|
+
},
|
|
1801
|
+
"WLSProxy": {
|
|
1802
|
+
"description": "Comma separated list of addresses of the WLS proxies to connect to.\nWhen using a WLS On Demand license, this parameter can be used to\nspecify the URLs to which Gurobi will connect to report usage. The\ndefault value (an empty string) is equivalent to\n\"http://localhost:61099\".",
|
|
1803
|
+
"name": "WLSProxy",
|
|
1804
|
+
"values": {
|
|
1805
|
+
"default": "",
|
|
1806
|
+
"type": "string"
|
|
1807
|
+
}
|
|
1808
|
+
},
|
|
1792
1809
|
"WLSSecret": {
|
|
1793
1810
|
"description": "When using a WLS license, set this parameter to the secret key for\nyour license. You can retrieve this string from your account on the\nGurobi Web License Manager site.",
|
|
1794
1811
|
"name": "WLSSecret",
|
|
@@ -1826,7 +1843,7 @@ param_details = {
|
|
|
1826
1843
|
}
|
|
1827
1844
|
},
|
|
1828
1845
|
"WorkLimit": {
|
|
1829
|
-
"description": "Limits the total work expended (in work units). Optimization returns\nwith a WORK_LIMIT status if the limit is exceeded.\n\nIn contrast to the TimeLimit, work limits are deterministic. This\nmeans that on the same hardware and with the same parameter and\nattribute settings, a work limit will stop the optimization of a given\nmodel at the exact same point every time. One work unit corresponds\nvery roughly to one second on a single thread, but this greatly\ndepends on the hardware on which Gurobi is running and the model that\nis being solved.\n\nNote that optimization may not stop immediately upon hitting the work\nlimit. It will stop when the optimization is next in a deterministic\nstate, and it will then perform the required additional computations\nof the attributes associated with the terminated optimization. As a\nresult, the Work attribute may be larger than the specified WorkLimit\nupon completion, and repeating the optimization with a WorkLimit set\nto the Work attribute of the stopped optimization may result in\nadditional computations and a larger attribute value.",
|
|
1846
|
+
"description": "Limits the total work expended (in work units). Optimization returns\nwith a WORK_LIMIT status if the limit is exceeded.\n\nIn contrast to the TimeLimit, work limits are deterministic. This\nmeans that on the same hardware and with the same parameter and\nattribute settings, a work limit will stop the optimization of a given\nmodel at the exact same point every time. One work unit corresponds\nvery roughly to one second on a single thread, but this greatly\ndepends on the hardware on which Gurobi is running and the model that\nis being solved.\n\nNote that optimization may not stop immediately upon hitting the work\nlimit. It will stop when the optimization is next in a deterministic\nstate, and it will then perform the required additional computations\nof the attributes associated with the terminated optimization. As a\nresult, the Work attribute may be larger than the specified WorkLimit\nupon completion, and repeating the optimization with a WorkLimit set\nto the Work attribute of the stopped optimization may result in\nadditional computations and a larger attribute value.\n\nThis parameter is callback settable. It can be changed from within a\ncallback when the \"where\" value is \"PRESOLVED\", \"SIMPLEX\", \"MIP\",\n\"MIPSOL\", \"MIPNODE\", \"BARRIER\", or \"MULTIOBJ\" (see the Callback Codes\nsection for more information). How to do that for the different APIs\nis illustrated here. In case of a remote server, the change of a\nparameter from within a callback may not be taken into account\nimmediately.",
|
|
1830
1847
|
"name": "WorkLimit",
|
|
1831
1848
|
"values": {
|
|
1832
1849
|
"default": 1e+100,
|
|
@@ -1862,7 +1879,7 @@ param_details = {
|
|
|
1862
1879
|
}
|
|
1863
1880
|
},
|
|
1864
1881
|
"ZeroObjNodes": {
|
|
1865
|
-
"description": "Number of nodes to explore in the zero objective heuristic
|
|
1882
|
+
"description": "Number of nodes to explore in the zero objective heuristic.\n\nThis heuristic is quite expensive, and generally produces poor quality\nsolutions. You should generally only use it if other means, including\nexploration of the tree with default settings, fail to produce a\nfeasible solution.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1866
1883
|
"name": "ZeroObjNodes",
|
|
1867
1884
|
"values": {
|
|
1868
1885
|
"default": -1,
|
|
Binary file
|
gurobipy/nlfunc.py
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""gurobipy nonlinear functions module
|
|
2
|
+
|
|
3
|
+
This module contains a number of functions for creating nonlinear expressions.
|
|
4
|
+
Each function can be called with any modeling object and returns an "NLExpr" or
|
|
5
|
+
"MNLExpr" representing the corresponding nonlinear expression. The resulting
|
|
6
|
+
object can be used to add nonlinear constraints to the model. For example::
|
|
7
|
+
|
|
8
|
+
import gurobipy as gp
|
|
9
|
+
from gurobipy import GRB, nlfunc
|
|
10
|
+
|
|
11
|
+
with gp.Env() as env, gp.Model(env=env) as model:
|
|
12
|
+
|
|
13
|
+
x = model.addVar(lb=-GRB.INFINITY, name="x")
|
|
14
|
+
y = model.addVar(lb=-GRB.INFINITY, name="y")
|
|
15
|
+
z = model.addVar(lb=-GRB.INFINITY, name="z")
|
|
16
|
+
|
|
17
|
+
# Create a constraint specifying z = sin(x + y)
|
|
18
|
+
model.addConstr(z == nlfunc.sin(x + y))
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from gurobipy._helpers import (
|
|
22
|
+
sqrt,
|
|
23
|
+
sin,
|
|
24
|
+
cos,
|
|
25
|
+
tan,
|
|
26
|
+
exp,
|
|
27
|
+
log,
|
|
28
|
+
log2,
|
|
29
|
+
log10,
|
|
30
|
+
logistic,
|
|
31
|
+
square,
|
|
32
|
+
)
|
|
@@ -1,78 +1,83 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: gurobipy
|
|
3
|
-
Version: 12.0.
|
|
3
|
+
Version: 12.0.2
|
|
4
4
|
Summary: Python interface to Gurobi
|
|
5
5
|
Home-page: https://www.gurobi.com
|
|
6
6
|
Author: Gurobi Optimization, LLC
|
|
7
7
|
License: Proprietary
|
|
8
|
+
Project-URL: Documentation, https://docs.gurobi.com
|
|
8
9
|
Keywords: optimization,mip,lp
|
|
9
10
|
Platform: Windows
|
|
10
11
|
Platform: Linux
|
|
11
12
|
Platform: macOS
|
|
12
|
-
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
13
23
|
License-File: LICENSE.txt
|
|
14
24
|
Provides-Extra: matrixapi
|
|
15
25
|
Requires-Dist: numpy; extra == "matrixapi"
|
|
16
26
|
Requires-Dist: scipy; extra == "matrixapi"
|
|
17
27
|
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+

|
|
29
|
+

|
|
30
|
+
[](https://docs.gurobi.com/)
|
|
20
31
|
|
|
21
|
-
|
|
22
|
-
problems of limited size. As a student or staff member of an academic
|
|
23
|
-
institution you qualify for a free, full product license. For
|
|
24
|
-
more information, see:
|
|
32
|
+
The Gurobi Optimizer is a mathematical optimization software library for solving mixed-integer linear and quadratic optimization problems.
|
|
25
33
|
|
|
26
|
-
|
|
34
|
+
This package comes with a trial license that allows you to solve problems of limited size. As a student or staff member of an academic institution, you qualify for a free, full product license. For more information, see:
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
- [Academic Program and Licenses](https://www.gurobi.com/academia/academic-program-and-licenses/)
|
|
29
37
|
|
|
30
|
-
|
|
38
|
+
For a commercial evaluation, you can [request an evaluation license](https://www.gurobi.com/free-trial/?utm_source=internal&utm_medium=documentation&utm_campaign=fy21_pipinstall_eval_pypipointer&utm_content=c_na&utm_term=pypi).
|
|
31
39
|
|
|
32
40
|
Other useful resources to get started:
|
|
33
41
|
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
- [Gurobi Documentation](https://docs.gurobi.com/)
|
|
43
|
+
- [Gurobi Community](https://support.gurobi.com/hc/en-us/community/topics)
|
|
36
44
|
|
|
37
|
-
A simple example
|
|
38
|
-
----------------
|
|
45
|
+
## A simple example
|
|
39
46
|
|
|
40
|
-
|
|
47
|
+
```python
|
|
48
|
+
# Solve the following MIP:
|
|
49
|
+
# maximize
|
|
50
|
+
# x + y + 2 z
|
|
51
|
+
# subject to
|
|
52
|
+
# x + 2 y + 3 z <= 4
|
|
53
|
+
# x + y >= 1
|
|
54
|
+
# x, y, z binary
|
|
41
55
|
|
|
42
|
-
|
|
43
|
-
# maximize
|
|
44
|
-
# x + y + 2 z
|
|
45
|
-
# subject to
|
|
46
|
-
# x + 2 y + 3 z <= 4
|
|
47
|
-
# x + y >= 1
|
|
48
|
-
# x, y, z binary
|
|
56
|
+
import gurobipy as gp
|
|
49
57
|
|
|
50
|
-
|
|
58
|
+
# Create a new model
|
|
59
|
+
m = gp.Model()
|
|
51
60
|
|
|
52
|
-
|
|
53
|
-
|
|
61
|
+
# Create variables
|
|
62
|
+
x = m.addVar(vtype='B', name="x")
|
|
63
|
+
y = m.addVar(vtype='B', name="y")
|
|
64
|
+
z = m.addVar(vtype='B', name="z")
|
|
54
65
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
y = m.addVar(vtype='B', name="y")
|
|
58
|
-
z = m.addVar(vtype='B', name="z")
|
|
66
|
+
# Set objective function
|
|
67
|
+
m.setObjective(x + y + 2 * z, gp.GRB.MAXIMIZE)
|
|
59
68
|
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
# Add constraints
|
|
70
|
+
m.addConstr(x + 2 * y + 3 * z <= 4)
|
|
71
|
+
m.addConstr(x + y >= 1)
|
|
62
72
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
m.addConstr(x + y >= 1)
|
|
73
|
+
# Solve it!
|
|
74
|
+
m.optimize()
|
|
66
75
|
|
|
67
|
-
|
|
68
|
-
|
|
76
|
+
print(f"Optimal objective value: {m.objVal}")
|
|
77
|
+
print(f"Solution values: x={x.X}, y={y.X}, z={z.X}")
|
|
78
|
+
```
|
|
69
79
|
|
|
70
|
-
|
|
71
|
-
print(f"Solution values: x={x.X}, y={y.X}, z={z.X}")
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Licensing information
|
|
75
|
-
---------------------
|
|
80
|
+
# Licensing information
|
|
76
81
|
|
|
77
82
|
GUROBI OPTIMIZATION, LLC
|
|
78
83
|
END-USER LICENSE AGREEMENT
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
gurobipy/__init__.py,sha256=I943C3a0TLeRzxInhXWDT1bZFlWVBxjM0S2_y8dpiK8,918
|
|
2
|
+
gurobipy/__init__.pyi,sha256=eZnx_O465OWVpALd4GifdxoQIUxAXEkfLIog9Ra2vv0,96342
|
|
3
|
+
gurobipy/_attrconst.py,sha256=MiaSyl6PgSW0UTT8aboeGoPqhH_wY8rN1tEIvUNLRDY,16616
|
|
4
|
+
gurobipy/_attrutil.cpython-310-darwin.so,sha256=JI1_OHrxWECbJ1IR2CnlgBsTvNlkgTqMG34n--ZS_Fg,343248
|
|
5
|
+
gurobipy/_batch.cpython-310-darwin.so,sha256=Kztgc4nEtKybQccsKHUq3_fMzOBX0DxV5oq3wj62p0Y,254208
|
|
6
|
+
gurobipy/_callbackconst.py,sha256=1AfVcVmzdGapyreB8VW3vW4XNZu-s-g4c7gCRJno-EA,6797
|
|
7
|
+
gurobipy/_core.cpython-310-darwin.so,sha256=swWJKtppA5M2fZqlArioTjRkAc8gESVE9NOJthtdejQ,2907616
|
|
8
|
+
gurobipy/_errorconst.py,sha256=6dzCQrZIhz7Drzmez7QVN8Q0JGgIqSABGdps6IMtC3U,3257
|
|
9
|
+
gurobipy/_exception.cpython-310-darwin.so,sha256=k1DDDvGiM-fHZWD4nhnf-uH387AmbpZuME-TSqky-9k,162296
|
|
10
|
+
gurobipy/_grb.py,sha256=NRO1MbXG99BoigZZ9PePD5y9F4JheEkSVdd3-mEwMX4,7261
|
|
11
|
+
gurobipy/_helpers.cpython-310-darwin.so,sha256=8uzw2OQiPtAMesbdljWQN_66PnX7IhiTghMUiIQ45uU,236272
|
|
12
|
+
gurobipy/_matrixapi.cpython-310-darwin.so,sha256=EyRMQQ40ux0ba2HjdGBTJSlnQwEWRpAGRKyOPo5ePrI,3911384
|
|
13
|
+
gurobipy/_model.cpython-310-darwin.so,sha256=ci6sZ5VMuDlqG5jg_IeIX5DE7dBDvkq3O7i2dMhzxRU,3512016
|
|
14
|
+
gurobipy/_modelutil.cpython-310-darwin.so,sha256=QZgd4plGqJf91_gBnlMgbenmFyCsb4R46z-rCi-aijI,382024
|
|
15
|
+
gurobipy/_paramconst.py,sha256=FJCm2d9JwaoelXv0P1zhtWeZGSmzS5ooM8zqvlXzBqc,19678
|
|
16
|
+
gurobipy/_paramdetails.py,sha256=KAB0U1H6XJoHNwaaf9cMOrW-7l1-OjltpX2qLPVRTWQ,151440
|
|
17
|
+
gurobipy/_statusconst.py,sha256=ZClEP0VXRsAWLzj5iVozzUgHfpfy4svJwFuY1DyNZN8,1601
|
|
18
|
+
gurobipy/_util.cpython-310-darwin.so,sha256=1RemEWnlytMRUuHd7twJq4TJdA2rFk-OJQl-f-JwRc0,282960
|
|
19
|
+
gurobipy/nlfunc.py,sha256=YoWLN6Hqr6qX-WkcxZ0_9XjMeOqSyNErMf2dAe8Jlr4,870
|
|
20
|
+
gurobipy/nlfunc.pyi,sha256=ict_m30E7sNMQE852db8wxRQtkgadda54sS9HeObKBw,1178
|
|
21
|
+
gurobipy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
+
gurobipy/.libs/gurobi.lic,sha256=9xDz4iLWRWHiICr_Ify12Lmd0NIfhIeObN_YbVJawnM,90
|
|
23
|
+
gurobipy/.libs/libgurobi120.dylib,sha256=fGzodDo-gjrcNhV1Lj3nL1J3AMIrMBuXhbGzaHu4G0k,15726752
|
|
24
|
+
gurobipy-12.0.2.dist-info/LICENSE.txt,sha256=EJaZyhnM1ArhpFDQ9ZGJ_o5LEtwq5uRJga4dpxwMu7Q,156613
|
|
25
|
+
gurobipy-12.0.2.dist-info/METADATA,sha256=TO0CHrEbsJZ1qM66UlFXgBURIbZMf7D1REiKWL6izow,16432
|
|
26
|
+
gurobipy-12.0.2.dist-info/WHEEL,sha256=_4-9bb7QIwAHvf_bVnSA8pF2cWt5z9quG49FBKitXRc,114
|
|
27
|
+
gurobipy-12.0.2.dist-info/top_level.txt,sha256=lI8imVf2_cKV2kVT6NVXJ4sH0ib8oAKeh06ysN_0_Bg,9
|
|
28
|
+
gurobipy-12.0.2.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
gurobipy/__init__.py,sha256=AlodDZMFyLtMhbmOBTMG-NseRRBwWc7-_Uq6LKzpv3o,1003
|
|
2
|
-
gurobipy/__init__.pyi,sha256=jElynesXXozDyEfib3-Wei91F-2UAE6GLbQTbn251tE,96254
|
|
3
|
-
gurobipy/_attrconst.py,sha256=MiaSyl6PgSW0UTT8aboeGoPqhH_wY8rN1tEIvUNLRDY,16616
|
|
4
|
-
gurobipy/_attrutil.cpython-310-darwin.so,sha256=_rvNQCGCEf7ApbJGFZ_PXF2bPycpkkBr_UiFty93w5Y,343360
|
|
5
|
-
gurobipy/_batch.cpython-310-darwin.so,sha256=A8J5rtGFar9vqiMPpbIBeWenfphnXS4blPxPByo075s,254208
|
|
6
|
-
gurobipy/_callbackconst.py,sha256=1AfVcVmzdGapyreB8VW3vW4XNZu-s-g4c7gCRJno-EA,6797
|
|
7
|
-
gurobipy/_core.cpython-310-darwin.so,sha256=P6amWbLNA8LH9lT2bvfOWhtaBYQcLsFWPfORDgTBBqg,2409472
|
|
8
|
-
gurobipy/_errorconst.py,sha256=6dzCQrZIhz7Drzmez7QVN8Q0JGgIqSABGdps6IMtC3U,3257
|
|
9
|
-
gurobipy/_exception.cpython-310-darwin.so,sha256=YOSSh--SIsZ4BL49yYsKuVnHr1jm8Pnr01xoLfp5ZIk,162296
|
|
10
|
-
gurobipy/_grb.py,sha256=0RVV4K0-z-2PDqAxmTiE65vKtsj2l34XGhJZKyw6v4A,7261
|
|
11
|
-
gurobipy/_helpers.cpython-310-darwin.so,sha256=G4a-pz2RrYT3dWpi-zKdE0DSucVdVm0yQgZldZa3Gz8,162048
|
|
12
|
-
gurobipy/_matrixapi.cpython-310-darwin.so,sha256=GQj1sQb_seRcaxjlKvGsAjp9Jc0unpImQCrIAK67b6A,3892408
|
|
13
|
-
gurobipy/_model.cpython-310-darwin.so,sha256=brJcfqu1V_032tUjAdOtWb_ujg0_-IcLbM3bHITrz-M,3492000
|
|
14
|
-
gurobipy/_modelutil.cpython-310-darwin.so,sha256=624UglbX4Fhz5RmagkZKLWYFOG3zGbs4HG-fP36nCZw,381800
|
|
15
|
-
gurobipy/_paramconst.py,sha256=FJCm2d9JwaoelXv0P1zhtWeZGSmzS5ooM8zqvlXzBqc,19678
|
|
16
|
-
gurobipy/_paramdetails.py,sha256=pzVMh5IGuzdI5o0iSoXy1yiV5KQupF7TmozAc3uKpL8,148362
|
|
17
|
-
gurobipy/_statusconst.py,sha256=ZClEP0VXRsAWLzj5iVozzUgHfpfy4svJwFuY1DyNZN8,1601
|
|
18
|
-
gurobipy/_tempconstr.cpython-310-darwin.so,sha256=6km2U3fFVfoM8rv59VzTiou0TdXVtfPMUWj1AK_H_f8,163192
|
|
19
|
-
gurobipy/_tupledict.cpython-310-darwin.so,sha256=dk-Pit0BtOmGspYXvBR5YjwkjBCVae1wGc6Z4LSks9Q,382024
|
|
20
|
-
gurobipy/_tuplelist.cpython-310-darwin.so,sha256=hqBYRndKgLmJJdTlfB0SU3QYAcwWt3cI8T3UByqfQBU,378776
|
|
21
|
-
gurobipy/_util.cpython-310-darwin.so,sha256=yVfhMN7QmNylRow_hQieOa55VwzJAN9R4Hs59eF5Nss,282960
|
|
22
|
-
gurobipy/nlfunc.cpython-310-darwin.so,sha256=NbDIFORXCQewcAlsRpwW5iCp_MSYQtt2VZULdul9zxw,217344
|
|
23
|
-
gurobipy/nlfunc.pyi,sha256=ict_m30E7sNMQE852db8wxRQtkgadda54sS9HeObKBw,1178
|
|
24
|
-
gurobipy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
gurobipy/.libs/gurobi.lic,sha256=9xDz4iLWRWHiICr_Ify12Lmd0NIfhIeObN_YbVJawnM,90
|
|
26
|
-
gurobipy/.libs/libgurobi120.dylib,sha256=l_pXCIz6ZQx4iMHMMqekFaQS10CaaY2l93kxEfauE48,15554544
|
|
27
|
-
gurobipy-12.0.0b3.dist-info/LICENSE.txt,sha256=EJaZyhnM1ArhpFDQ9ZGJ_o5LEtwq5uRJga4dpxwMu7Q,156613
|
|
28
|
-
gurobipy-12.0.0b3.dist-info/METADATA,sha256=c97h0ZxuKAmDsFmlfWENIpRZuAGo73k8j7utqaKCO0A,15700
|
|
29
|
-
gurobipy-12.0.0b3.dist-info/WHEEL,sha256=_4-9bb7QIwAHvf_bVnSA8pF2cWt5z9quG49FBKitXRc,114
|
|
30
|
-
gurobipy-12.0.0b3.dist-info/top_level.txt,sha256=lI8imVf2_cKV2kVT6NVXJ4sH0ib8oAKeh06ysN_0_Bg,9
|
|
31
|
-
gurobipy-12.0.0b3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|