gurobipy 12.0.3__cp310-cp310-win_amd64.whl → 13.0.0b1__cp310-cp310-win_amd64.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.
- gurobipy/__init__.py +83 -4
- gurobipy/__init__.pyi +99 -2
- gurobipy/_attrconst.py +48 -2
- gurobipy/_attrutil.cp310-win_amd64.pyd +0 -0
- gurobipy/_batch.cp310-win_amd64.pyd +0 -0
- gurobipy/_callbackconst.py +21 -0
- gurobipy/_core.cp310-win_amd64.pyd +0 -0
- gurobipy/_exception.cp310-win_amd64.pyd +0 -0
- gurobipy/_grb.py +24 -19
- gurobipy/_helpers.cp310-win_amd64.pyd +0 -0
- gurobipy/_load_model.py +169 -0
- gurobipy/_lowlevel.cp310-win_amd64.pyd +0 -0
- gurobipy/_matrixapi.cp310-win_amd64.pyd +0 -0
- gurobipy/_model.cp310-win_amd64.pyd +0 -0
- gurobipy/_modelutil.cp310-win_amd64.pyd +0 -0
- gurobipy/_paramconst.py +68 -30
- gurobipy/_paramdetails.py +200 -22
- gurobipy/_statusconst.py +19 -17
- gurobipy/_util.cp310-win_amd64.pyd +0 -0
- gurobipy/gurobi.lic +4 -4
- gurobipy/{gurobi120.dll → gurobi130.dll} +0 -0
- gurobipy/nlfunc.py +2 -0
- gurobipy/nlfunc.pyi +9 -1
- {gurobipy-12.0.3.dist-info → gurobipy-13.0.0b1.dist-info}/METADATA +17 -5
- gurobipy-13.0.0b1.dist-info/RECORD +30 -0
- {gurobipy-12.0.3.dist-info → gurobipy-13.0.0b1.dist-info}/WHEEL +1 -1
- {gurobipy-12.0.3.dist-info → gurobipy-13.0.0b1.dist-info/licenses}/LICENSE.txt +537 -57
- gurobipy-12.0.3.dist-info/RECORD +0 -28
- {gurobipy-12.0.3.dist-info → gurobipy-13.0.0b1.dist-info}/top_level.txt +0 -0
gurobipy/_paramdetails.py
CHANGED
|
@@ -318,7 +318,7 @@ param_details = {
|
|
|
318
318
|
}
|
|
319
319
|
},
|
|
320
320
|
"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\"). See Concurrent environments for the\n equivalent feature in the Gurobi APIs.",
|
|
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. It is also possible to provide one parameter file with\nseveral parameter settings, refer to PRM Format for more details.\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
322
|
"name": "ConcurrentSettings",
|
|
323
323
|
"values": {
|
|
324
324
|
"default": "",
|
|
@@ -336,7 +336,7 @@ param_details = {
|
|
|
336
336
|
}
|
|
337
337
|
},
|
|
338
338
|
"Crossover": {
|
|
339
|
-
"description": "Determines the crossover strategy used to transform the interior\nsolution produced by barrier into a basic solution (note that\ncrossover is not available for QP or QCP models). Crossover consists\nof three phases: (i) a *primal push* phase, where primal variables are\npushed to bounds, (ii) a *dual push* phase, where dual variables are\npushed to bounds, and (iii) a *cleanup* phase, where simplex is used\nto remove any primal or dual infeasibilities that remain after the\npush phases are complete. The order of the first two phases and the\nalgorithm used for the third phase are both controlled by the\nCrossover parameter:\n\n+---------------------+----------------+-----------------+-------------+\n| **Parameter value** | **First push** | **Second push** | **Cleanup** |\n|=====================|================|=================|=============|\n| 0 | Disabled | Disabled | Disabled |\n+---------------------+----------------+-----------------+-------------+\n| 1 | Dual | Primal | Primal |\n+---------------------+----------------+-----------------+-------------+\n| 2 | Dual | Primal | Dual |\n+---------------------+----------------+-----------------+-------------+\n| 3 | Primal | Dual | Primal |\n+---------------------+----------------+-----------------+-------------+\n| 4 | Primal | Dual | Dual |\n+---------------------+----------------+-----------------+-------------+\n\nThe default value of -1 chooses the strategy automatically. Use value\n0 to disable crossover; this setting returns the interior solution\ncomputed by barrier. Since an interior solution is typically
|
|
339
|
+
"description": "Determines the crossover strategy used to transform the interior\nsolution produced by barrier or PDHG into a basic solution (note that\ncrossover is not available for QP or QCP models). Crossover consists\nof three phases: (i) a *primal push* phase, where primal variables are\npushed to bounds, (ii) a *dual push* phase, where dual variables are\npushed to bounds, and (iii) a *cleanup* phase, where simplex is used\nto remove any primal or dual infeasibilities that remain after the\npush phases are complete. The order of the first two phases and the\nalgorithm used for the third phase are both controlled by the\nCrossover parameter:\n\n+---------------------+----------------+-----------------+-------------+\n| **Parameter value** | **First push** | **Second push** | **Cleanup** |\n|=====================|================|=================|=============|\n| 0 | Disabled | Disabled | Disabled |\n+---------------------+----------------+-----------------+-------------+\n| 1 | Dual | Primal | Primal |\n+---------------------+----------------+-----------------+-------------+\n| 2 | Dual | Primal | Dual |\n+---------------------+----------------+-----------------+-------------+\n| 3 | Primal | Dual | Primal |\n+---------------------+----------------+-----------------+-------------+\n| 4 | Primal | Dual | Dual |\n+---------------------+----------------+-----------------+-------------+\n\nThe default value of -1 chooses the strategy automatically. Use value\n0 to disable crossover; this setting returns the interior solution\ncomputed by barrier or PDHG. Since an interior solution is typically\nless accurate than a basic solution after crossover, disabling\ncrossover may sometimes result in barrier or PDHG performing more\niterations to improve the returned interior solution.\n\nNote:\n\n Barrier and PDHG only",
|
|
340
340
|
"name": "Crossover",
|
|
341
341
|
"values": {
|
|
342
342
|
"default": -1,
|
|
@@ -346,7 +346,7 @@ param_details = {
|
|
|
346
346
|
}
|
|
347
347
|
},
|
|
348
348
|
"CrossoverBasis": {
|
|
349
|
-
"description": "Determines the initial basis construction strategy for crossover. A\nvalue of 0 chooses an initial basis quickly. A value of 1 can take\nmuch longer, but often produces a more numerically stable start basis.\nThe default value of -1 makes an automatic choice.\n\nNote:\n\n Barrier only",
|
|
349
|
+
"description": "Determines the initial basis construction strategy for crossover. A\nvalue of 0 chooses an initial basis quickly. A value of 1 can take\nmuch longer, but often produces a more numerically stable start basis.\nThe default value of -1 makes an automatic choice.\n\nNote:\n\n Barrier and PDHG only",
|
|
350
350
|
"name": "CrossoverBasis",
|
|
351
351
|
"values": {
|
|
352
352
|
"default": -1,
|
|
@@ -475,6 +475,16 @@ param_details = {
|
|
|
475
475
|
"type": "double"
|
|
476
476
|
}
|
|
477
477
|
},
|
|
478
|
+
"FixVarsInIndicators": {
|
|
479
|
+
"description": "Controls how Gurobi deals with indicator constraints when creating the\nfixed model (e.g. \"GRBconverttofixed\" and \"GRBfixmodel\" in C, or\n\"Model.convertToFixed\" and \"Model.fixed\" in Python).\n\nIf set to 0 (the default), then an indicator constraint is discarded\nif its premise is false (i.e., if the associated binary indicator\nvariable is fixed to a value that does not satisfy the premise\ncondition) in the solution or MIP start that is associated to the\nfixed model. On the other hand, if the premise of the indicator is\ntrue, then the implied linear constraint is added as a regular linear\nconstraint to the fixed model.\n\nLet\u2019s consider the case where FixVarsInIndicators is set to 0. If\nthere is an indicator constraint\n\nz = 0 \\rightarrow ax \\leq b\n\nin the model and variable z has value 1 in the solution for which the\nfixed model is created, then the indicator constraint is not active\nand it is therefore discarded from the fixed model. If the indicator\nvariable z has value 0, then the indicator is active and the linear\nconstraint ax \\leq b is added to the fixed model.\n\nIf the FixVarsInIndicators parameter is set to 1, then all variables\n(including continuous variables) in the indicator constraint are fixed\nto their solution value, independent of whether the indicator is\nactive or not in the associated solution.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
480
|
+
"name": "FixVarsInIndicators",
|
|
481
|
+
"values": {
|
|
482
|
+
"default": 0,
|
|
483
|
+
"maximum": 1,
|
|
484
|
+
"minimum": 0,
|
|
485
|
+
"type": "int"
|
|
486
|
+
}
|
|
487
|
+
},
|
|
478
488
|
"FlowCoverCuts": {
|
|
479
489
|
"description": "Controls flow cover cut generation. Use 0 to disable these cuts, 1 for\nmoderate cut generation, or 2 for aggressive cut generation. The\ndefault -1 value chooses automatically. Overrides the Cuts parameter.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
480
490
|
"name": "FlowCoverCuts",
|
|
@@ -636,7 +646,7 @@ param_details = {
|
|
|
636
646
|
}
|
|
637
647
|
},
|
|
638
648
|
"ImproveStartTime": {
|
|
639
|
-
"description": "The MIP solver can change parameter settings in the middle of the\nsearch in order to adopt a strategy that gives up on moving the best\nbound and instead devotes all of its effort towards finding better\nfeasible solutions. This parameter allows you to specify the time
|
|
649
|
+
"description": "The MIP solver can change parameter settings in the middle of the\nsearch in order to adopt a strategy that gives up on moving the best\nbound and instead devotes all of its effort towards finding better\nfeasible solutions. This parameter allows you to specify the time (in\nseconds) when the MIP solver switches to a solution improvement\nstrategy. For example, setting this parameter to 10 will cause the MIP\nsolver to switch strategies 10 seconds after starting the\noptimization.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
640
650
|
"name": "ImproveStartTime",
|
|
641
651
|
"values": {
|
|
642
652
|
"default": 1e+100,
|
|
@@ -645,6 +655,16 @@ param_details = {
|
|
|
645
655
|
"type": "double"
|
|
646
656
|
}
|
|
647
657
|
},
|
|
658
|
+
"ImproveStartWork": {
|
|
659
|
+
"description": "The MIP solver can change parameter settings in the middle of the\nsearch in order to adopt a strategy that gives up on moving the best\nbound and instead devotes all of its effort towards finding better\nfeasible solutions. This parameter allows you to specify the work (in\nwork units) when the MIP solver switches to a solution improvement\nstrategy. For example, setting this parameter to 10 will cause the MIP\nsolver to switch strategies 10 work units after starting the\noptimization.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
660
|
+
"name": "ImproveStartWork",
|
|
661
|
+
"values": {
|
|
662
|
+
"default": 1e+100,
|
|
663
|
+
"maximum": 1e+100,
|
|
664
|
+
"minimum": 0.0,
|
|
665
|
+
"type": "double"
|
|
666
|
+
}
|
|
667
|
+
},
|
|
648
668
|
"InfProofCuts": {
|
|
649
669
|
"description": "Controls infeasibility proof cut generation. Use 0 to disable these\ncuts, 1 for moderate cut generation, or 2 for aggressive cut\ngeneration. The default -1 value chooses automatically. Overrides the\nCuts parameter.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
650
670
|
"name": "InfProofCuts",
|
|
@@ -665,6 +685,16 @@ param_details = {
|
|
|
665
685
|
"type": "int"
|
|
666
686
|
}
|
|
667
687
|
},
|
|
688
|
+
"InheritParams": {
|
|
689
|
+
"description": "Indicates whether parameters from a main environment should be\ninherited when working with Concurrent Environments or Multiobjective\nEnvironments. If set to 1, parameters are inherited from the main\nenvironment: if their value has not been set in the supporting\nenvironment, their value in the main environment is considered. If set\nto 0, parameters are not inherited: only parameters defined on the\nsupporting environment are used. The default value of -1 is equivalent\nto 0, i.e., parameters are not inherited. This parameter can be set\neither on the main environment or on the supporting environment. If it\nis set on both, its value in the supporting environment overrules the\nvalue in the main environment.\n\nWhen using the command line parameters MultiObjSettings or\nConcurrentSettings, set this parameter to 1 if you want to provide\nadditional parameters valid for all objectives or concurrent settings,\nrespectively.",
|
|
690
|
+
"name": "InheritParams",
|
|
691
|
+
"values": {
|
|
692
|
+
"default": -1,
|
|
693
|
+
"maximum": 1,
|
|
694
|
+
"minimum": -1,
|
|
695
|
+
"type": "int"
|
|
696
|
+
}
|
|
697
|
+
},
|
|
668
698
|
"InputFile": {
|
|
669
699
|
"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
700
|
"name": "InputFile",
|
|
@@ -722,12 +752,12 @@ param_details = {
|
|
|
722
752
|
}
|
|
723
753
|
},
|
|
724
754
|
"LPWarmStart": {
|
|
725
|
-
"description": "Controls whether and how Gurobi uses warm start information for an LP\noptimization.
|
|
755
|
+
"description": "Controls whether and how Gurobi uses warm start information for an LP\noptimization. A warm start can consist of any combination of basis\nstatuses, a primal start vector, or a dual start vector. It is\nspecified using the attributes VBasis and CBasis or PStart and DStart\non the original model.\n\nSetting this parameter to 2 is particularly useful for communicating\nadvanced start information while retaining the performance benefits of\npresolve. The default value of -1 is equivalent to 1 for all Method\nchoices except for PDHG, for which it is equivalent to 2.\n\nAs a general rule, setting this parameter to 0 ignores any start\ninformation and solves the model from scratch. Setting it to 1 (the\ndefault) uses the provided warm start information to solve the\noriginal, unpresolved problem, regardless of whether presolve is\nenabled. Setting it to 2 uses the start information to solve the\npresolved problem, assuming that presolve is enabled. This involves\nmapping the solution of the original problem into an equivalent (or\nsometimes nearly equivalent) crushed solution of the presolved\nproblem. If presolve is disabled, then setting 2 still prioritizes\nstart vectors, while setting 1 prioritizes basis statuses. Taken\ntogether, the LPWarmStart parameter setting, the LP algorithm\nspecified by Gurobi\u2019s Method parameter, and the available advanced\nstart information determine whether Gurobi will use basis statuses\nonly, basis statuses augmented with information from start vectors, or\na basis obtained by applying the crossover method to the provided\nprimal and dual start vectors to jump start the optimization.\n\nWhen Gurobi\u2019s Method parameter requests the barrier solver, primal and\ndual start vectors are prioritized over basis statuses (but only if\nyou provide both). These start vectors are fed to the crossover\nprocedure. This is the same crossover that is used to compute a basic\nsolution from the interior solution produced by the core barrier\nalgorithm, but in this case crossover is started from arbitrary start\nvectors. If you set the LPWarmStart parameter to 1, crossover will be\ninvoked on the original model using the provided vectors. Any provided\nbasis information will not be used in this case. If you set\nLPWarmStart to 2, crossover will be invoked on the presolved model\nusing crushed start vectors. If you set the parameter to 2 and provide\na basis but no start vectors, the basis will be used to compute the\ncorresponding primal and dual solutions on the original model. Those\nsolutions will then be crushed and used as primal and dual start\nvectors for the crossover, which will then construct a basis for the\npresolved model. Note that for all of these settings and start\ncombinations, no barrier algorithm iterations are performed.\n\nWhen the Method parameter selects PDHG, primal and dual start vectors\nare used to warm start PDHG iterations directly before proceeding to\ncrossover if it is enabled. If a warm start basis is provided, it will\nbe used to construct start vectors for the PDHG solve. If both a basis\nand vectors are given, vectors are prioritised over basis statuses. If\nyou set LPWarmStart to 1, start vectors will be used to warm-start\nPDHG on the original model. Otherwise, if presolve is enabled, start\nvectors will be crushed and used to warm-start PDHG on the presolved\nmodel.\n\nThe simplex algorithms provide more warm-starting options. With a\nparameter value of 1, simplex will start from a provided basis, if\navailable. Otherwise, it uses a provided start vector to refine the\ncrash basis it computes. Primal simplex will use PStart and dual\nsimplex will use DStart in this refinement process.\n\nWith a value of 2, simplex will use the crushed start vector on the\npresolved model (PStart for primal simplex, DStart for dual) to refine\nthe crash basis. This is true regardless of whether the start is\nderived from start vectors or a starting basis from the original\nmodel. The difference is that if you provide an advanced basis, the\nbasis will be used to compute the corresponding primal and dual\nsolutions on the original model from which the primal or dual start on\nthe presolved model will be derived.\n\nNote:\n\n Only affects linear programming (LP) models",
|
|
726
756
|
"name": "LPWarmStart",
|
|
727
757
|
"values": {
|
|
728
|
-
"default": 1,
|
|
758
|
+
"default": -1,
|
|
729
759
|
"maximum": 2,
|
|
730
|
-
"minimum":
|
|
760
|
+
"minimum": -1,
|
|
731
761
|
"type": "int"
|
|
732
762
|
}
|
|
733
763
|
},
|
|
@@ -849,6 +879,16 @@ param_details = {
|
|
|
849
879
|
"type": "double"
|
|
850
880
|
}
|
|
851
881
|
},
|
|
882
|
+
"MasterKnapsackCuts": {
|
|
883
|
+
"description": "Controls the generation of cuts derived from the master knapsack\npolytope. Use 0 to disable these cuts, 1 for moderate cut generation,\nor 2 for aggressive cut generation. The default -1 value chooses\nautomatically. Overrides the Cuts parameter.",
|
|
884
|
+
"name": "MasterKnapsackCuts",
|
|
885
|
+
"values": {
|
|
886
|
+
"default": -1,
|
|
887
|
+
"maximum": 2,
|
|
888
|
+
"minimum": -1,
|
|
889
|
+
"type": "int"
|
|
890
|
+
}
|
|
891
|
+
},
|
|
852
892
|
"MemLimit": {
|
|
853
893
|
"description": "Limits the total amount of memory (in GB, i.e., 10^9 bytes) available\nto Gurobi. If more is needed, Gurobi will fail with an OUT_OF_MEMORY\nerror.\n\nNote that it is not possible to retrieve solution information after an\nerror termination. Thus, the behavior of this parameter is different\nfrom that of other termination criteria like SoftMemLimit, TimeLimit,\nor NodeLimit, where the solver will terminate with a Status Code and\nsolution information will still be available.\n\nOne advantage of using this parameter rather than the similar\nSoftMemLimit is that MemLimit is checked after every memory\nallocation, so Gurobi will terminate at precisely the point where the\nlimit is exceeded.\n\nNote that allocated memory is tracked across all models within a\nGurobi environment. If you create multiple models in one environment,\nthese additional models will count towards overall memory consumption.\n\nMemory usage is also tracked across all threads. One consequence of\nthis is that termination may be non-deterministic for multi-threaded\nruns.",
|
|
854
894
|
"name": "MemLimit",
|
|
@@ -860,11 +900,11 @@ param_details = {
|
|
|
860
900
|
}
|
|
861
901
|
},
|
|
862
902
|
"Method": {
|
|
863
|
-
"description": "Algorithm used to solve continuous models or the initial root\nrelaxation of a MIP model. Options are:\n\n* -1=automatic,\n\n* 0=primal simplex,\n\n* 1=dual simplex,\n\n* 2=barrier,\n\n* 3=concurrent,\n\n* 4=deterministic concurrent
|
|
903
|
+
"description": "Algorithm used to solve continuous models or the initial root\nrelaxation of a MIP model. Options are:\n\n* -1=automatic,\n\n* 0=primal simplex,\n\n* 1=dual simplex,\n\n* 2=barrier,\n\n* 3=concurrent,\n\n* 4=deterministic concurrent,\n\n* 5=deterministic concurrent simplex (deprecated; see\n ConcurrentMethod), and\n\n* 6=PDHG (Primal-Dual Hybrid Gradient).\n\nAvailable settings and default behaviour depend on the model type or\nthe type of the initial root relaxation. In the current release, the\ndefault Automatic (\"Method=-1\") setting will typically choose non-\ndeterministic concurrent (\"Method=3\") for an LP, barrier (\"Method=2\")\nfor a QP or QCP, and dual (\"Method=1\") for the MIP root relaxation. If\nthe size of the MIP root relaxation is large, then it will often\nselect deterministic concurrent (\"Method=4\") or deterministic\nconcurrent simplex (\"Method=5\").\n\nConcurrent methods aren\u2019t available for QP and QCP. Only the simplex\nand barrier algorithms are available for continuous QP models. If you\nselect barrier (\"Method=2\") to solve the root of an MIQP model, then\nyou need to also select barrier for the node relaxations (i.e. set\nNodeMethod=2). Only barrier is available for continuous QCP models.\nHowever if you choose LP relaxations for solving MIQCP, you can also\nselect the simplex algorithms (\"Method=0\" or \"Method=1\").\n\nConcurrent optimizers run multiple solvers on multiple threads\nsimultaneously and choose the one that finishes first. The solvers\nthat are run concurrently can be controlled with the ConcurrentMethod\nparameter. The deterministic options (\"Method=4\" and \"Method=5\") give\nthe exact same result each time, while the non-deterministic option\n(\"Method=3\") is often faster but can produce different optimal bases\nwhen run multiple times.\n\nThe default setting is rarely significantly slower than the best\npossible setting, so you generally won\u2019t see a big gain from changing\nthis parameter. There are classes of models where one particular\nalgorithm is consistently fastest, though, so you may want to\nexperiment with different options when confronted with a particularly\ndifficult model.\n\nNote that if memory is tight on an LP model, you should consider using\nthe dual simplex method (\"Method=1\"). The concurrent optimizer, which\nis typically chosen when using the default setting, consumes a lot\nmore memory than dual simplex alone.\n\nIn multiobjective LP optimization:\n\n* The first objective is solved using LP defaults. It can be set by\n the user using the \"Method\" parameter.\n\n* Subsequent objectives are solved by default using primal simplex to\n allow for warm starting. The algorithm used here can be controlled\n using MultiObjMethod.",
|
|
864
904
|
"name": "Method",
|
|
865
905
|
"values": {
|
|
866
906
|
"default": -1,
|
|
867
|
-
"maximum":
|
|
907
|
+
"maximum": 6,
|
|
868
908
|
"minimum": -1,
|
|
869
909
|
"type": "int"
|
|
870
910
|
}
|
|
@@ -920,20 +960,60 @@ param_details = {
|
|
|
920
960
|
}
|
|
921
961
|
},
|
|
922
962
|
"MultiObjSettings": {
|
|
923
|
-
"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 solves in a multi-objective model.\n\nIn the case of \"grbtune\", the same settings are applied to all the\nmodels.\n\nTo give an example, you could create two \".prm\" files with the\nfollowing contents\u2026\n\nvb0.prm:\n\n VarBranch 0\n\nvb1.prm:\n\n VarBranch 1\n\nIssuing the command \"gurobi_cl MultiObjSettings=vb0.prm,vb1.prm\nmodel.mps\" would use different branching strategies when solving for\nthe two objectives of the multi-objective model.\n\nNote:\n\n Command-line only (\"gurobi_cl\" and \"grbtune\")\n\nNote:\n\n Only affects multi-objective models",
|
|
963
|
+
"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 solves in a multi-objective model. It is also possible to\nprovide one parameter file with several parameter settings, refer to\nPRM Format for more details.\n\nIn the case of \"grbtune\", the same settings are applied to all the\nmodels.\n\nTo give an example, you could create two \".prm\" files with the\nfollowing contents\u2026\n\nvb0.prm:\n\n VarBranch 0\n\nvb1.prm:\n\n VarBranch 1\n\nIssuing the command \"gurobi_cl MultiObjSettings=vb0.prm,vb1.prm\nmodel.mps\" would use different branching strategies when solving for\nthe two objectives of the multi-objective model.\n\nNote:\n\n Command-line only (\"gurobi_cl\" and \"grbtune\")\n\nNote:\n\n Only affects multi-objective models",
|
|
924
964
|
"name": "MultiObjSettings",
|
|
925
965
|
"values": {
|
|
926
966
|
"default": "",
|
|
927
967
|
"type": "string"
|
|
928
968
|
}
|
|
929
969
|
},
|
|
970
|
+
"NLBarCFeasTol": {
|
|
971
|
+
"description": "Important:\n\n We consider this feature a *preview* in this release. This means\n that it is fully supported and expected to work correctly, but it\n will likely undergo significant changes in subsequent Gurobi\n technical or major releases, potentially including breaking changes\n in API, behavior and packaging.\n\nFor the NL barrier algorithm, the complementarity error must be\nsmaller than NLBarCFeasTol in order for a model to be declared locally\noptimal.\n\nNote:\n\n Only affects the NL barrier algorithm",
|
|
972
|
+
"name": "NLBarCFeasTol",
|
|
973
|
+
"values": {
|
|
974
|
+
"default": 1e-08,
|
|
975
|
+
"maximum": 0.1,
|
|
976
|
+
"minimum": 1e-12,
|
|
977
|
+
"type": "double"
|
|
978
|
+
}
|
|
979
|
+
},
|
|
980
|
+
"NLBarDFeasTol": {
|
|
981
|
+
"description": "Important:\n\n We consider this feature a *preview* in this release. This means\n that it is fully supported and expected to work correctly, but it\n will likely undergo significant changes in subsequent Gurobi\n technical or major releases, potentially including breaking changes\n in API, behavior and packaging.\n\nFor the NL barrier algorithm, the dual feasibility error must be\nsmaller than NLBarDFeasTol in order for a model to be declared locally\noptimal.\n\nNote:\n\n Only affects the NL barrier algorithm",
|
|
982
|
+
"name": "NLBarDFeasTol",
|
|
983
|
+
"values": {
|
|
984
|
+
"default": 1e-06,
|
|
985
|
+
"maximum": 0.1,
|
|
986
|
+
"minimum": 1e-12,
|
|
987
|
+
"type": "double"
|
|
988
|
+
}
|
|
989
|
+
},
|
|
990
|
+
"NLBarIterLimit": {
|
|
991
|
+
"description": "Important:\n\n We consider this feature a *preview* in this release. This means\n that it is fully supported and expected to work correctly, but it\n will likely undergo significant changes in subsequent Gurobi\n technical or major releases, potentially including breaking changes\n in API, behavior and packaging.\n\nLimits the number of barrier NL iterations performed.\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 Only affects the NL barrier algorithm",
|
|
992
|
+
"name": "NLBarIterLimit",
|
|
993
|
+
"values": {
|
|
994
|
+
"default": 1000,
|
|
995
|
+
"maximum": 2000000000,
|
|
996
|
+
"minimum": 0,
|
|
997
|
+
"type": "int"
|
|
998
|
+
}
|
|
999
|
+
},
|
|
1000
|
+
"NLBarPFeasTol": {
|
|
1001
|
+
"description": "Important:\n\n We consider this feature a *preview* in this release. This means\n that it is fully supported and expected to work correctly, but it\n will likely undergo significant changes in subsequent Gurobi\n technical or major releases, potentially including breaking changes\n in API, behavior and packaging.\n\nFor the NL barrier algorithm, the primal feasibility error must be\nsmaller than NLBarPFeasTol in order for a model to be declared locally\noptimal.\n\nNote:\n\n Only affects the NL barrier algorithm",
|
|
1002
|
+
"name": "NLBarPFeasTol",
|
|
1003
|
+
"values": {
|
|
1004
|
+
"default": 1e-06,
|
|
1005
|
+
"maximum": 0.1,
|
|
1006
|
+
"minimum": 1e-12,
|
|
1007
|
+
"type": "double"
|
|
1008
|
+
}
|
|
1009
|
+
},
|
|
930
1010
|
"NLPHeur": {
|
|
931
|
-
"description": "The NLP heuristic uses a non-linear barrier solver to find feasible\nsolutions to
|
|
1011
|
+
"description": "The NLP heuristic uses a non-linear barrier solver to find feasible\nsolutions to nonconvex quadratic and nonlinear models during a global\noptimization solve. It often helps to find solutions quicker, but in\nsome cases it can consume significant runtime without producing a\nsolution. A value of 0 disables the heuristic completely, while larger\nvalues call the heuristic more and more aggressively during the\noptimization process. The default -1 value chooses automatically.\n\n Note:\n\n Only affects models with nonconvex quadratic or nonlinear\n expressions in the objective or constraints",
|
|
932
1012
|
"name": "NLPHeur",
|
|
933
1013
|
"values": {
|
|
934
|
-
"default": 1,
|
|
935
|
-
"maximum":
|
|
936
|
-
"minimum":
|
|
1014
|
+
"default": -1,
|
|
1015
|
+
"maximum": 3,
|
|
1016
|
+
"minimum": -1,
|
|
937
1017
|
"type": "int"
|
|
938
1018
|
}
|
|
939
1019
|
},
|
|
@@ -957,6 +1037,16 @@ param_details = {
|
|
|
957
1037
|
"type": "int"
|
|
958
1038
|
}
|
|
959
1039
|
},
|
|
1040
|
+
"NoRelHeurSolutions": {
|
|
1041
|
+
"description": "Limits the number of solutions found by the NoRel heuristic. This\nheuristic searches for high-quality feasible solutions. It can be\nquite useful on models where the root relaxation is particularly\nexpensive.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1042
|
+
"name": "NoRelHeurSolutions",
|
|
1043
|
+
"values": {
|
|
1044
|
+
"default": 0,
|
|
1045
|
+
"maximum": 2000000000,
|
|
1046
|
+
"minimum": 0,
|
|
1047
|
+
"type": "int"
|
|
1048
|
+
}
|
|
1049
|
+
},
|
|
960
1050
|
"NoRelHeurTime": {
|
|
961
1051
|
"description": "Limits the amount of time (in seconds) spent in the NoRel heuristic.\nThis heuristic searches for high-quality feasible solutions before\nsolving the root relaxation. It can be quite useful on models where\nthe root relaxation is particularly expensive.\n\nNote that this parameter will introduce non-determinism - different\nruns may take different paths. Use the NoRelHeurWork parameter for\ndeterministic results.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
962
1052
|
"name": "NoRelHeurTime",
|
|
@@ -1066,7 +1156,7 @@ param_details = {
|
|
|
1066
1156
|
}
|
|
1067
1157
|
},
|
|
1068
1158
|
"ObjScale": {
|
|
1069
|
-
"description": "When positive, divides the model objective by the specified value to\navoid numerical issues that may result from very large or very small\nobjective coefficients. The default value of 0 decides on the scaling\nautomatically. A value less than zero uses the maximum coefficient to\nthe specified power as the scaling
|
|
1159
|
+
"description": "When positive, divides the model objective by the specified value to\navoid numerical issues that may result from very large or very small\nobjective coefficients. The default value of 0 decides on the scaling\nautomatically. A value less than zero uses the maximum coefficient to\nthe specified power as the scaling, e.g., ObjScale=-1 would divide by\nthe largest objective coefficient, while ObjScale=-0.5 would divide by\nthe square root of that coefficient.\n\nNote that objective scaling can lead to large dual violations on the\noriginal, unscaled objective when the optimality tolerance with the\nscaled objective is barely satisfied, so it should be used sparingly.\nNote also that scaling will be more effective when all objective\ncoefficients are of similar orders of magnitude, as opposed to\nobjectives with a wide range of coefficients. In the latter case,\nconsider using the Multiple Objectives feature instead.",
|
|
1070
1160
|
"name": "ObjScale",
|
|
1071
1161
|
"values": {
|
|
1072
1162
|
"default": 0.0,
|
|
@@ -1075,6 +1165,16 @@ param_details = {
|
|
|
1075
1165
|
"type": "double"
|
|
1076
1166
|
}
|
|
1077
1167
|
},
|
|
1168
|
+
"OptimalityTarget": {
|
|
1169
|
+
"description": "Important:\n\n We consider this feature a *preview* in this release. This means\n that it is fully supported and expected to work correctly, but it\n will likely undergo significant changes in subsequent Gurobi\n technical or major releases, potentially including breaking changes\n in API, behavior and packaging.\n\nSpecifies the optimality target for nonlinear continuous problems\n(NLP), including nonconvex QP and QCP models. Available options are\nAutomatic (-1), Global Optimum (0), and Local Optimum (1). Currently,\nthe automatic choice always selects the search for a global optimum\n(0).\n\nFor Option 0, the linearized outer-approximation branch-and-bound\napproach seeks a feasible point with the best possible objective value\nand provides an optimality gap.\n\nFor Option 1, the nonlinear (NL) barrier algorithm seeks a local\noptimum, i.e., a feasible point that has the best possible objective\nvalue among the feasible points within a local neighborhood. This\nalternative typically converges faster and is able to handle larger\ninstances than a global search, but it does not provide an optimality\ngap.\n\nUpon success, the NL barrier algorithm concludes with status\nLOCALLY_OPTIMAL. If it terminates with LOCALLY_INFEASIBLE, the method\nfound a point that is an infeasible local minimizer of the constraint\nviolation.\n\nNote that the search for a local optimum can only be selected if the\nmodel has no discrete variables or SOS constraints, and does not\ninclude nondifferentiable functions, such as PWL functions, Max-,\nMin-, Abs-operators, or the 1- or Infinity-norm.\n\nThe V13 preview version of the NL barrier algorithm does not yet\nsupport all solution and quality attributes. In particular, the\noptimal values of dual variables and some quality attributes (such as\nscaled violations) are not yet available.\n\nNote:\n\n Only affects continuous nonlinear nonconvex QP, QCP, or NLP models",
|
|
1170
|
+
"name": "OptimalityTarget",
|
|
1171
|
+
"values": {
|
|
1172
|
+
"default": -1,
|
|
1173
|
+
"maximum": 1,
|
|
1174
|
+
"minimum": -1,
|
|
1175
|
+
"type": "int"
|
|
1176
|
+
}
|
|
1177
|
+
},
|
|
1078
1178
|
"OptimalityTol": {
|
|
1079
1179
|
"description": "For the simplex algorithm and crossover, reduced costs must all be\nsmaller than OptimalityTol in the improving direction in order for a\nmodel to be declared optimal.",
|
|
1080
1180
|
"name": "OptimalityTol",
|
|
@@ -1095,6 +1195,56 @@ param_details = {
|
|
|
1095
1195
|
"type": "int"
|
|
1096
1196
|
}
|
|
1097
1197
|
},
|
|
1198
|
+
"PDHGAbsTol": {
|
|
1199
|
+
"description": "The PDHG algorithm will terminate if both of the following conditions\nare satisfied:\n\n1. The relative difference between the primal and dual objective\n values is less than PDHGConvTol, and\n\n2. The primal and dual solution values meet the specified feasibility\n tolerance. This is satisfied if either:\n\n 1. the absolute residuals of all primal and dual equations are\n below PDHGAbsTol; or\n\n 2. the relative residuals of all primal and dual equations are\n below PDHGRelTol.\n\nYou can set PDHGAbsTol to loosen or tighten the second termination\ncriterion. Note though that relative tolerances typically lead to\nearlier termination than absolute tolerances. If you wish to terminate\nPDHG based solely on absolute tolerances, you should set PDHGRelTol to\nzero (0).\n\nThe first criterion is controlled by PDHGConvTol.\n\nNote:\n\n PDHG only",
|
|
1200
|
+
"name": "PDHGAbsTol",
|
|
1201
|
+
"values": {
|
|
1202
|
+
"default": 1e-06,
|
|
1203
|
+
"maximum": 0.01,
|
|
1204
|
+
"minimum": 1e-09,
|
|
1205
|
+
"type": "double"
|
|
1206
|
+
}
|
|
1207
|
+
},
|
|
1208
|
+
"PDHGConvTol": {
|
|
1209
|
+
"description": "The PDHG algorithm will terminate if both of the following conditions\nare satisfied:\n\n1. The relative difference between the primal and dual objective\n values is less than PDHGConvTol, and\n\n2. The primal and dual solution values meet the specified feasibility\n tolerance. This is satisfied if either:\n\n 1. the absolute residuals of all primal and dual equations are\n below PDHGAbsTol; or\n\n 2. the relative residuals of all primal and dual equations are\n below PDHGRelTol.\n\nYou can set PDHGConvTol to loosen or tighten the first termination\ncriterion.\n\nThe second criterion is controlled by PDHGAbsTol and PDHGRelTol.\n\nNote:\n\n PDHG only",
|
|
1210
|
+
"name": "PDHGConvTol",
|
|
1211
|
+
"values": {
|
|
1212
|
+
"default": 1e-06,
|
|
1213
|
+
"maximum": 1.0,
|
|
1214
|
+
"minimum": 0.0,
|
|
1215
|
+
"type": "double"
|
|
1216
|
+
}
|
|
1217
|
+
},
|
|
1218
|
+
"PDHGGPU": {
|
|
1219
|
+
"description": "By default, the PDHG algorithm runs on the CPU. You can set this\nparameter to 1 to have PDHG run on the GPU instead, if your Gurobi\nbuild has GPU support and your system has compatible hardware. Note\nthat you must additionally set the Method parameter to\n\"GRB_METHOD_PDHG\" (6) to enable PDHG.\n\nNote:\n\n PDHG only",
|
|
1220
|
+
"name": "PDHGGPU",
|
|
1221
|
+
"values": {
|
|
1222
|
+
"default": 0,
|
|
1223
|
+
"maximum": 1,
|
|
1224
|
+
"minimum": 0,
|
|
1225
|
+
"type": "int"
|
|
1226
|
+
}
|
|
1227
|
+
},
|
|
1228
|
+
"PDHGIterLimit": {
|
|
1229
|
+
"description": "Limits the number of PDHG iterations performed.\n\nThe PDHG algorithm will terminate if this limit is exceeded. If\ncrossover is enabled, it will start from the final PDHG iterate. If\ncrossover is disabled, optimization will return with an\nITERATION_LIMIT status.\n\nNote:\n\n PDHG only",
|
|
1230
|
+
"name": "PDHGIterLimit",
|
|
1231
|
+
"values": {
|
|
1232
|
+
"default": 1e+100,
|
|
1233
|
+
"maximum": 1e+100,
|
|
1234
|
+
"minimum": 0.0,
|
|
1235
|
+
"type": "double"
|
|
1236
|
+
}
|
|
1237
|
+
},
|
|
1238
|
+
"PDHGRelTol": {
|
|
1239
|
+
"description": "The PDHG algorithm will terminate if both of the following conditions\nare satisfied:\n\n1. The relative difference between the primal and dual objective\n values is less than PDHGConvTol, and\n\n2. The primal and dual solution values meet the specified feasibility\n tolerance. This is satisfied if either:\n\n 1. the absolute residuals of all primal and dual equations are\n below PDHGAbsTol; or\n\n 2. the relative residuals of all primal and dual equations are\n below PDHGRelTol.\n\nYou can set PDHGRelTol to loosen or tighten the second termination\ncriterion.\n\nIf you set PDHGRelTol to the special value zero (0), then only the\nabsolute feasibility tolerances are considered. Specifically, primal\nand dual solutions are considered feasible only if the residuals of\nall primal and dual equations are below PDHGAbsTol.\n\nThe first criterion is controlled by PDHGConvTol.\n\nNote:\n\n PDHG only",
|
|
1240
|
+
"name": "PDHGRelTol",
|
|
1241
|
+
"values": {
|
|
1242
|
+
"default": 1e-06,
|
|
1243
|
+
"maximum": 1e+100,
|
|
1244
|
+
"minimum": 0.0,
|
|
1245
|
+
"type": "double"
|
|
1246
|
+
}
|
|
1247
|
+
},
|
|
1098
1248
|
"PSDCuts": {
|
|
1099
1249
|
"description": "Controls PSD cut generation. Use 0 to disable these cuts, 1 for\nmoderate cut generation, or 2 for aggressive cut generation. The\ndefault -1 value chooses automatically. Overrides the Cuts parameter.\n\nNote:\n\n Only affects models with nonconvex quadratic expressions in the\n objective or constraints",
|
|
1100
1250
|
"name": "PSDCuts",
|
|
@@ -1336,7 +1486,7 @@ param_details = {
|
|
|
1336
1486
|
}
|
|
1337
1487
|
},
|
|
1338
1488
|
"RINS": {
|
|
1339
|
-
"description": "Frequency of the RINS heuristic. Default value (-1) chooses\nautomatically. A value of 0 shuts off RINS. A positive value \"n\"\napplies RINS at every \"n-th\" node of the MIP search tree.\n\nIncreasing the frequency of the RINS heuristic shifts the focus of the\nMIP search away from proving optimality, and towards finding good\nfeasible solutions. We recommend that you try MIPFocus,\nImproveStartGap, or
|
|
1489
|
+
"description": "Frequency of the RINS heuristic. Default value (-1) chooses\nautomatically. A value of 0 shuts off RINS. A positive value \"n\"\napplies RINS at every \"n-th\" node of the MIP search tree.\n\nIncreasing the frequency of the RINS heuristic shifts the focus of the\nMIP search away from proving optimality, and towards finding good\nfeasible solutions. We recommend that you try MIPFocus,\nImproveStartGap, ImproveStartTime, ImproveStartWork, or\nImproveStartNodes before experimenting with this parameter.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1340
1490
|
"name": "RINS",
|
|
1341
1491
|
"values": {
|
|
1342
1492
|
"default": -1,
|
|
@@ -1490,7 +1640,7 @@ param_details = {
|
|
|
1490
1640
|
}
|
|
1491
1641
|
},
|
|
1492
1642
|
"SolutionNumber": {
|
|
1493
|
-
"description": "When querying attribute
|
|
1643
|
+
"description": "When querying attribute PoolNX, ObjNVal, PoolNObjVal or any of the\nsolution pool quality attributes (e.g., PoolNMaxVio) to retrieve\ninformation about an alternate MIP solution, this parameter determines\nfor which alternate solution the data are retrieved. The value of this\nparameter should be less than the value of the SolCount attribute.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1494
1644
|
"name": "SolutionNumber",
|
|
1495
1645
|
"values": {
|
|
1496
1646
|
"default": 0,
|
|
@@ -1529,6 +1679,26 @@ param_details = {
|
|
|
1529
1679
|
"type": "int"
|
|
1530
1680
|
}
|
|
1531
1681
|
},
|
|
1682
|
+
"StartTimeLimit": {
|
|
1683
|
+
"description": "This parameter limits the total time (in seconds) spent on completing\na partial MIP start.\n\nNote that this parameter will introduce non-determinism - different\nruns may take different paths. Use the StartWorkLimit parameter for\ndeterministic results.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1684
|
+
"name": "StartTimeLimit",
|
|
1685
|
+
"values": {
|
|
1686
|
+
"default": 1e+100,
|
|
1687
|
+
"maximum": 1e+100,
|
|
1688
|
+
"minimum": 0.0,
|
|
1689
|
+
"type": "double"
|
|
1690
|
+
}
|
|
1691
|
+
},
|
|
1692
|
+
"StartWorkLimit": {
|
|
1693
|
+
"description": "This parameter limits the total work (in work units) spent on\ncompleting a partial MIP start.\n\nIn contrast to the StartTimeLimit, 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:\n\n Only affects mixed integer programming (MIP) models",
|
|
1694
|
+
"name": "StartWorkLimit",
|
|
1695
|
+
"values": {
|
|
1696
|
+
"default": 1e+100,
|
|
1697
|
+
"maximum": 1e+100,
|
|
1698
|
+
"minimum": 0.0,
|
|
1699
|
+
"type": "double"
|
|
1700
|
+
}
|
|
1701
|
+
},
|
|
1532
1702
|
"StrongCGCuts": {
|
|
1533
1703
|
"description": "Controls Strong Chv\u00e1tal-Gomory (Strong-CG) cut generation. Use 0 to\ndisable these cuts, 1 for moderate cut generation, or 2 for aggressive\ncut generation. The default -1 value chooses automatically. Overrides\nthe Cuts parameter.\n\nNote:\n\n Only affects mixed integer programming (MIP) models",
|
|
1534
1704
|
"name": "StrongCGCuts",
|
|
@@ -1590,12 +1760,12 @@ param_details = {
|
|
|
1590
1760
|
}
|
|
1591
1761
|
},
|
|
1592
1762
|
"Threads": {
|
|
1593
|
-
"description": "Controls the number of threads to apply to parallel algorithms\n(concurrent LP, parallel barrier, parallel MIP, etc.). The default\nvalue of 0 is an automatic setting. It will generally use as many\nthreads as there are virtual processors. The number of virtual\nprocessors may exceed the number of cores due to hyperthreading or\nother similar hardware features.\n\nWhile you will generally get the best performance by using all\navailable cores in your machine, there are a few exceptions. One is of\ncourse when you are sharing a machine with other jobs. In this case,\nyou should select a thread count that doesn\u2019t oversubscribe the\nmachine.\n\nWe have also found that certain classes of MIP models benefit from\nreducing the thread count, often all the way down to one thread.\nStarting multiple threads introduces contention for machine resources.\nFor classes of models where the first solution found by the MIP solver\nis almost always optimal, and that solution isn\u2019t found at the root,\nit is often better to allow a single thread to explore the search tree\nuncontested.\n\nAnother situation where reducing the thread count can be helpful is\nwhen memory is tight. Each thread can consume a significant amount of\nmemory.\n\nWe\u2019ve made the pragmatic choice to impose a soft limit of 32 threads\nfor the automatic setting (0). If your machine has more, and you find\nthat using more increases performance, you should feel free to
|
|
1763
|
+
"description": "Controls the number of threads to apply to parallel algorithms\n(concurrent LP, parallel barrier, parallel MIP, etc.). The default\nvalue of 0 is an automatic setting. It will generally use as many\nthreads as there are virtual processors. The number of virtual\nprocessors may exceed the number of cores due to hyperthreading or\nother similar hardware features.\n\nWhile you will generally get the best performance by using all\navailable cores in your machine, there are a few exceptions. One is of\ncourse when you are sharing a machine with other jobs. In this case,\nyou should select a thread count that doesn\u2019t oversubscribe the\nmachine.\n\nWe have also found that certain classes of MIP models benefit from\nreducing the thread count, often all the way down to one thread.\nStarting multiple threads introduces contention for machine resources.\nFor classes of models where the first solution found by the MIP solver\nis almost always optimal, and that solution isn\u2019t found at the root,\nit is often better to allow a single thread to explore the search tree\nuncontested.\n\nAnother situation where reducing the thread count can be helpful is\nwhen memory is tight. Each thread can consume a significant amount of\nmemory.\n\nWe\u2019ve made the pragmatic choice to impose a soft limit of 32 threads\nfor the automatic setting (0), because usually, Gurobi\u2019s algorithms do\nnot benefit from higher thread counts. Actually, higher thread counts\nmay even hurt performance, because this will often saturate the memory\nsystem. If your machine has more virtual processors, and you find\nthat using more threads increases performance, you should feel free to\nset the parameter to a larger value. Alternatively, you can use the\nvalue -1 to indicate that Gurobi should use all available virtual\nprocessors, even if the machine has more than 32.",
|
|
1594
1764
|
"name": "Threads",
|
|
1595
1765
|
"values": {
|
|
1596
1766
|
"default": 0,
|
|
1597
1767
|
"maximum": 1024,
|
|
1598
|
-
"minimum":
|
|
1768
|
+
"minimum": -1,
|
|
1599
1769
|
"type": "int"
|
|
1600
1770
|
}
|
|
1601
1771
|
},
|
|
@@ -1618,7 +1788,7 @@ param_details = {
|
|
|
1618
1788
|
}
|
|
1619
1789
|
},
|
|
1620
1790
|
"TuneBaseSettings": {
|
|
1621
|
-
"description": "A list of parameter files (e.g., \"base1.prm,base2.prm\") that define\nsettings that should be tried first during the tuning process, in the\norder they are given. Default parameter settings will also be tried,\nbut after the settings provided in these files. You can include an\nempty parameter file in the list if you would like default settings to\nbe tried earlier.\n\nNote:\n\n Command-line only (\"grbtune\")",
|
|
1791
|
+
"description": "A list of parameter files (e.g., \"base1.prm,base2.prm\") that define\nsettings that should be tried first during the tuning process, in the\norder they are given. Default parameter settings will also be tried,\nbut after the settings provided in these files. You can include an\nempty parameter file in the list if you would like default settings to\nbe tried earlier. It is also possible to provide one parameter file\nwith several parameter settings, refer to PRM Format for more details.\n\nNote:\n\n Command-line only (\"grbtune\")",
|
|
1622
1792
|
"name": "TuneBaseSettings",
|
|
1623
1793
|
"values": {
|
|
1624
1794
|
"default": "",
|
|
@@ -1655,6 +1825,14 @@ param_details = {
|
|
|
1655
1825
|
"type": "int"
|
|
1656
1826
|
}
|
|
1657
1827
|
},
|
|
1828
|
+
"TuneIgnoreSettings": {
|
|
1829
|
+
"description": "A list of parameter files (e.g., \"ignore1.prm,ignore2.prm\") that\ndefine settings that should be ignored during the tuning process. When\na parameter setting is ignored, the tuning algorithm will not try that\nparticular combination of parameters and values. It may still try\ncombinations of parameters that are a subset or a superset of the\nspecified values. You can include an empty parameter file in the list\nif you would like default settings to be ignored. It is also possible\nto provide one parameter file with several parameter settings, refer\nto PRM Format for more details.\n\nNote:\n\n Command-line only (\"grbtune\")",
|
|
1830
|
+
"name": "TuneIgnoreSettings",
|
|
1831
|
+
"values": {
|
|
1832
|
+
"default": "",
|
|
1833
|
+
"type": "string"
|
|
1834
|
+
}
|
|
1835
|
+
},
|
|
1658
1836
|
"TuneJobs": {
|
|
1659
1837
|
"description": "Enables distributed parallel tuning, which can significantly increase\nthe performance of the tuning tool. A value of \"n\" causes the tuning\ntool to use a static set of up to \"n\" workers in parallel. Such\nworkers are kept for the whole tuning run. Note that this parameter\ncan be combined with TuneDynamicJobs to get a static set of workers\nand a dynamic set of workers for distributed tuning. You can use the\nWorkerPool parameter to provide a distributed worker cluster.\n\nNote that distributed tuning is most effective when the worker\nmachines have similar performance. Distributed tuning doesn\u2019t attempt\nto normalize performance by server, so it can incorrectly attribute a\nboost in performance to a parameter change when the associated setting\nis tried on a worker that is significantly faster than the others.",
|
|
1660
1838
|
"name": "TuneJobs",
|
|
@@ -1724,10 +1902,10 @@ param_details = {
|
|
|
1724
1902
|
}
|
|
1725
1903
|
},
|
|
1726
1904
|
"TuneTimeLimit": {
|
|
1727
|
-
"description": "Limits total tuning runtime (in seconds). The default
|
|
1905
|
+
"description": "Limits total tuning runtime (in seconds). The default value is 86400\nseconds, i.e., 24 hours.",
|
|
1728
1906
|
"name": "TuneTimeLimit",
|
|
1729
1907
|
"values": {
|
|
1730
|
-
"default":
|
|
1908
|
+
"default": 86400.0,
|
|
1731
1909
|
"maximum": 1e+100,
|
|
1732
1910
|
"minimum": 0.0,
|
|
1733
1911
|
"type": "double"
|
gurobipy/_statusconst.py
CHANGED
|
@@ -26,20 +26,22 @@ class StatusConstClass(object):
|
|
|
26
26
|
def __setattr__(self, name, value):
|
|
27
27
|
raise AttributeError("Gurobi status constants are not modifiable")
|
|
28
28
|
|
|
29
|
-
LOADED
|
|
30
|
-
OPTIMAL
|
|
31
|
-
INFEASIBLE
|
|
32
|
-
INF_OR_UNBD
|
|
33
|
-
UNBOUNDED
|
|
34
|
-
CUTOFF
|
|
35
|
-
ITERATION_LIMIT
|
|
36
|
-
NODE_LIMIT
|
|
37
|
-
TIME_LIMIT
|
|
38
|
-
SOLUTION_LIMIT
|
|
39
|
-
INTERRUPTED
|
|
40
|
-
NUMERIC
|
|
41
|
-
SUBOPTIMAL
|
|
42
|
-
INPROGRESS
|
|
43
|
-
USER_OBJ_LIMIT
|
|
44
|
-
WORK_LIMIT
|
|
45
|
-
MEM_LIMIT
|
|
29
|
+
LOADED = 1
|
|
30
|
+
OPTIMAL = 2
|
|
31
|
+
INFEASIBLE = 3
|
|
32
|
+
INF_OR_UNBD = 4
|
|
33
|
+
UNBOUNDED = 5
|
|
34
|
+
CUTOFF = 6
|
|
35
|
+
ITERATION_LIMIT = 7
|
|
36
|
+
NODE_LIMIT = 8
|
|
37
|
+
TIME_LIMIT = 9
|
|
38
|
+
SOLUTION_LIMIT = 10
|
|
39
|
+
INTERRUPTED = 11
|
|
40
|
+
NUMERIC = 12
|
|
41
|
+
SUBOPTIMAL = 13
|
|
42
|
+
INPROGRESS = 14
|
|
43
|
+
USER_OBJ_LIMIT = 15
|
|
44
|
+
WORK_LIMIT = 16
|
|
45
|
+
MEM_LIMIT = 17
|
|
46
|
+
LOCALLY_OPTIMAL = 18
|
|
47
|
+
LOCALLY_INFEASIBLE = 19
|
|
Binary file
|
gurobipy/gurobi.lic
CHANGED
|
Binary file
|
gurobipy/nlfunc.py
CHANGED
gurobipy/nlfunc.pyi
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import overload
|
|
1
|
+
from typing import overload, Union
|
|
2
2
|
|
|
3
3
|
from gurobipy import NLExpr, MNLExpr, _NLExprLike, _MNLExprLike
|
|
4
4
|
|
|
@@ -39,6 +39,14 @@ def logistic(expr: _NLExprLike) -> NLExpr: ...
|
|
|
39
39
|
@overload
|
|
40
40
|
def logistic(expr: _MNLExprLike) -> MNLExpr: ...
|
|
41
41
|
@overload
|
|
42
|
+
def tanh(expr: _NLExprLike) -> NLExpr: ...
|
|
43
|
+
@overload
|
|
44
|
+
def tanh(expr: _MNLExprLike) -> MNLExpr: ...
|
|
45
|
+
@overload
|
|
46
|
+
def signpow(expr: _NLExprLike, exponent: Union[int, float]) -> NLExpr: ...
|
|
47
|
+
@overload
|
|
48
|
+
def signpow(expr: _MNLExprLike, exponent: Union[int, float]) -> MNLExpr: ...
|
|
49
|
+
@overload
|
|
42
50
|
def square(expr: _NLExprLike) -> NLExpr: ...
|
|
43
51
|
@overload
|
|
44
52
|
def square(expr: _MNLExprLike) -> MNLExpr: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: gurobipy
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0.0b1
|
|
4
4
|
Summary: Python interface to Gurobi
|
|
5
5
|
Home-page: https://www.gurobi.com
|
|
6
6
|
Author: Gurobi Optimization, LLC
|
|
@@ -11,19 +11,31 @@ Platform: Windows
|
|
|
11
11
|
Platform: Linux
|
|
12
12
|
Platform: macOS
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
18
|
Classifier: Operating System :: OS Independent
|
|
20
19
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
21
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.10
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
23
22
|
License-File: LICENSE.txt
|
|
24
23
|
Provides-Extra: matrixapi
|
|
25
24
|
Requires-Dist: numpy; extra == "matrixapi"
|
|
26
25
|
Requires-Dist: scipy; extra == "matrixapi"
|
|
26
|
+
Dynamic: author
|
|
27
|
+
Dynamic: classifier
|
|
28
|
+
Dynamic: description
|
|
29
|
+
Dynamic: description-content-type
|
|
30
|
+
Dynamic: home-page
|
|
31
|
+
Dynamic: keywords
|
|
32
|
+
Dynamic: license
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
Dynamic: platform
|
|
35
|
+
Dynamic: project-url
|
|
36
|
+
Dynamic: provides-extra
|
|
37
|
+
Dynamic: requires-python
|
|
38
|
+
Dynamic: summary
|
|
27
39
|
|
|
28
40
|

|
|
29
41
|

|
|
@@ -114,7 +126,7 @@ DELETE ANY COPIES OF THE PRODUCT YOU MAY HAVE. TERMS AND CONDITIONS
|
|
|
114
126
|
1. DEFINITIONS
|
|
115
127
|
|
|
116
128
|
1.1. "Product" means the limited, evaluation version of Gurobi
|
|
117
|
-
Optimizer Version
|
|
129
|
+
Optimizer Version 13.0.0 or higher in the form of object code
|
|
118
130
|
libraries, including all upgrades, new releases, modifications,
|
|
119
131
|
enhancements, adaptations, copies and translations thereof. "You" and
|
|
120
132
|
"Your" mean the individual who is installing, accessing or using the
|