8.6.1. Integer parameters

C API parameter

Parameter

Description

MDO_INT_PARAM_METHOD

“Method”

The optimization method.

MDO_INT_PARAM_PRESOLVE

“Presolve”

Specifies whether to enable presolving.

MDO_INT_PARAM_DUALIZATION

“Dualization”

Specifies whether to perform dualization for the model.

MDO_INT_PARAM_NUM_THREADS

“NumThreads”

The number of used threads.

MDO_INT_PARAM_ENABLE_NETWORK_FLOW

“EnableNetworkFlow”

Specifies whether to enable the network simplex method.

MDO_INT_PARAM_ENABLE_STOCHASTIC_LP

“EnableStochasticLP”

Specifies whether to enable structure detection for stochastic linear programming.

MDO_INT_PARAM_SPX_COLUMN_GENERATION

“SPX/ColumnGeneration”

Specifies whether to use column generation in the simplex method.

MDO_INT_PARAM_SPX_CRASH_START

“SPX/CrashStart”

Specifies whether to use initial basic solution generation in the simplex method.

MDO_INT_PARAM_SPX_MAX_ITERATIONS

“SPX/MaxIterations”

The maximum number of iterations in the simplex method.

MDO_INT_PARAM_SPX_PRIMAL_PRICING

“SPX/PrimalPricing”

The primal pricing strategy in the simplex method.

MDO_INT_PARAM_SPX_DUAL_PRICING

“SPX/DualPricing”

The dual pricing strategy in the simplex method.

MDO_INT_PARAM_IPM_MAX_ITERATIONS

“IPM/MaxIterations”

The maximum number of iterations in the interior point method (IPM).

MDO_INT_PARAM_MIP_MAX_NODES

“MIP/MaxNodes”

The maximum number of nodes in MIP.

MDO_INT_PARAM_MIP_ROOT_PARALLELISM

“MIP/RootParallelism”

The Root Parallelism in MIP.

MDO_INT_PARAM_MIP_AUTO_CONFIGURATION

“MIP/AutoConfiguration”

Specifies whether to enable configuration automatically for MIP.

MDO_INT_PARAM_MIP_MAX_STALLING_NODES

“MIP/MaxStallingNodes”

The maximum number of nodes allowed for processed after the last incumbent solution is found.

MDO_INT_PARAM_MIP_MAX_SOLS

“MIP/MaxSols”

The maximum number of solution in MIP.

MDO_INT_PARAM_MIP_DETECT_DISCONNECTED_COMPONENTS

“MIP/DetectDisconnectedComponents”

Whether to enable disconnected component strategy in MIP

MDO_INT_PARAM_MIP_SOLUTION_POOL_SIZE

“MIP/SolutionPoolSize”

The capacity of solution pool size.

MDO_INT_PARAM_MIP_ALLOW_DUAL_PRESOLVE

“MIP/AllowDualPresolve”

Whether allow dual presolve.

In addition, the parameters of C++、Java、Python API are in the namespace of MDO_INT_PARAM

8.6.1.1. “Method”

An integer parameter that specifies the algorithm used in the optimizer.

  • Group: Common

  • Default value: -1

Note

If the value -1 is specified, the simplex or concurrent optimization method can be used based on the number of threads allowed.

  • If only 1 thread is allowed, the primal simplex or dual simplex method is used.

  • If at least 2 threads are allowed, the concurrent optimization method is used to use both the simplex and IPM methods for independent solving.

Value

Description

-2

The multi-thread simplex method is used.

-1

The solver determines the method (concurrent optimization).

0

The primal simplex method is used.

1

The dual simplex method is used.

2

The IPM is used.

Examples

C

Mdo_setIntParam(model, "Method", -1);

C++

model.setIntParam("Method", -1);

Python

model.set_int_param("Method", -1)

8.6.1.2. “NumThreads”

An integer parameter that specifies the maximum number of threads used for optimization solving.

  • Group: Common

  • Default value: 0

Value

Description

0

All cores of physical CPUs.

>=1

The maximum number of threads allowed.

Examples

C

Mdo_setIntParam(model, "NumThreads", 0);

C++

model.setIntParam("NumThreads", 0);

Python

model.set_int_param("NumThreads", 0)

8.6.1.3. “Presolve”

An integer parameter that specifies the presolver level.

  • Group: Common

  • Default value: -1

Value

Description

-1

The solver determines the level.

0

Disables all presolve methods.

1

Enables a moderate presolve method.

2

Enables a strong presolve method.

Note

For the value 0, MindOpt will delete empty and redundant rows and columns to avoid numeric issues.

Examples

C

Mdo_setIntParam(model, "Presolve", 0);

C++

model.setIntParam("Presolve", 0);

Python

model.set_int_param("Presolve", 0)

8.6.1.4. “Dualization”

An integer parameter that specifies whether to perform dualization for the model.

  • Group: Common

  • Default value: -1

Value

Description

-1

The solver determines whether to perform dualization.

0

Disables model dualization.

1

Enables model dualization.

Examples

C

Mdo_setIntParam(model, "Dualization", -1);

C++

model.setIntParam("Dualization", -1);

Python

model.set_int_param("Dualization", -1)

8.6.1.5. “SPX/MaxIterations”

An integer parameter that specifies the maximum number of iterations in the simplex method.

  • Group: simplex method

  • Default value: 2147483647

  • Value range: [0, 2147483647]

Examples

C

Mdo_setIntParam(model, "SPX/MaxIterations", 2147483647);

C++

model.setIntParam("SPX/MaxIterations", 2147483647);

Python

model.set_int_param("SPX/MaxIterations", 2147483647)

8.6.1.6. “SPX/ColumnGeneration”

An integer parameter that specifies whether to use column generation in the simplex method.

  • Group: simplex method

  • Default value: -1

Value

Description

-1

The solver determines whether to use column generation.

0

Disables column generation.

1

Enables column generation.

Examples

C

Mdo_setIntParam(model, "SPX/ColumnGeneration", -1);

C++

model.setIntParam("SPX/ColumnGeneration", -1);

Python

model.set_int_param("SPX/ColumnGeneration", -1)

8.6.1.7. “SPX/CrashStart”

An integer parameter that specifies whether to use initial basic solution generation in the simplex method.

  • Group: simplex method

  • Default value: -1

Value

Description

-1

The solver determines whether to use initial basic solution generation.

0

Uses the fundamental initial basic solution generation.

1

Uses the advanced initial basic solution generation.

Examples

C

Mdo_setIntParam(model, "SPX/CrashStart", -1);

C++

model.setIntParam("SPX/CrashStart", -1);

Python

model.set_int_param("SPX/CrashStart", -1)

8.6.1.8. “SPX/PrimalPricing”

An integer parameter that specifies the primal pricing strategy in the simplex method.

  • Group: simplex method

  • Default value: -1

Value

Description

-1

The solver determines the strategy.

0

The steepest-edge pricing strategy is used.

1

The approximate steepest-edge pricing strategy is used.

2

The partial pricing strategy is used.

Examples

C

Mdo_setIntParam(model, "SPX/PrimalPricing", -1);

C++

model.setIntParam("SPX/PrimalPricing", -1);

Python

model.set_int_param("SPX/PrimalPricing", -1)

8.6.1.9. “SPX/DualPricing”

An integer parameter that specifies the dual pricing strategy in the simplex method.

  • Group: simplex method

  • Default value: -1

Value

Description

-1

The solver determines the strategy.

0

The steepest-edge pricing strategy is used.

1

The approximate steepest-edge pricing strategy is used.

Examples

C

Mdo_setIntParam(model, "SPX/DualPricing", -1);

C++

model.setIntParam("SPX/DualPricing", -1);

Python

model.set_int_param("SPX/DualPricing", -1)

8.6.1.10. “IPM/MaxIterations”

An integer parameter that specifies the maximum number of iterations in the IPM.

  • Group: interior point method

  • Default value: 400

  • Value range: [0, 2147483647]

Examples

C

Mdo_setIntParam(model, "IPM/MaxIterations", 400);

C++

model.setIntParam("IPM/MaxIterations", 400);

Python

model.set_int_param("IPM/MaxIterations", 400)

8.6.1.11. “EnableNetworkFlow”

An integer parameter that specifies whether to enable the network simplex method.

  • Group: common

  • Default value: 0

Value

Description

0

Disables the network simplex method.

1

Enables the network simplex method.

Examples

C

Mdo_setIntParam(model, "EnableNetworkFlow", 0);

C++

model.setIntParam("EnableNetworkFlow", 0);

Python

model.set_int_param("EnableNetworkFlow", 0)

8.6.1.12. “EnableStochasticLP”

An integer parameter that specifies whether to enable structure detection for stochastic linear programming.

  • Group: common

  • Default value: 0

Value

Description

0

Disables detection.

1

Enables detection.

Examples

C

Mdo_setIntParam(model, "EnableStochasticLP", 0);

C++

model.setIntParam("EnableStochasticLP", 0);

Python

model.set_int_param("EnableStochasticLP", 0)

8.6.1.13. “MIP/MaxNodes”

An integer parameter that specifies the maximum number of nodes in the MILP.

  • Group: mip method

  • Default value: 400

  • Value range: [0, 2147483647]

Examples

C

Mdo_setIntParam(model, "MIP/MaxNodes", 2147483647);

C++

model.setIntParam("MIP/MaxNodes", 2147483647);

Python

model.set_int_param("MIP/MaxNodes", 2147483647)

8.6.1.14. “MIP/RootParallelism”

An integer parameter used to set the maximum number of concurrent threads allowed by the root node when solve MILP problems. Root node parallelism is to solve multiple root node copies at the same time with different parameters; therefore, the larger the number of threads, the greater the memory required.

  • Group: mip method

  • Default value: 8

  • Value range: [1, 256]

Examples

C

Mdo_setIntParam(model, "MIP/RootParallelism", 3);

C++

model.setIntParam("MIP/RootParallelism", 3);

Python

model.set_int_param("MIP/RootParallelism", 3)

8.6.1.15. “MIP/AutoConfiguration”

An integer parameter used to specify whether to enable configuration automatically for MIP.

  • Group: mip method

  • Default value: 1

  • Value range: {0, 1}

Examples

C

Mdo_setIntParam(model, "MIP/AutoConfiguration", 1);

C++

model.setIntParam("MIP/AutoConfiguration", 1);

Python

model.set_int_param("MIP/AutoConfiguration", 1)

8.6.1.16. “MIP/MaxStallingNodes”

An integer parameter used to set the maximum number of nodes allowed for processed after the last incumbent solution is found.

  • Group: mip method

  • Default value: 2147483647

  • Value range: [0, 2147483647]

Examples

C

Mdo_setIntParam(model, "MIP/MaxStallingNodes", 2147483647);

C++

model.setIntParam("MIP/MaxStallingNodes", 2147483647);

Python

model.set_int_param("MIP/MaxStallingNodes", 2147483647)

8.6.1.17. “MIP/MaxSols”

An integer parameter used to specify the maximum number of solution in MIP.

  • Group: mip method

  • Default value: 8

  • Value range: [1, 256]

Examples

C

Mdo_setIntParam(model, "MIP/MaxSols", 256);

C++

model.setIntParam("MIP/MaxSols", 256);

Python

model.set_int_param("MIP/MaxSols", 256)

8.6.1.18. “MIP/DetectDisconnectedComponents”

An integer parameter used to specify whether to enable disconnected component strategy in MIP.

  • Group: mip method

  • Default value: 1

  • Value range: [0, 1]

Examples

C

Mdo_setIntParam(model, "MIP/DetectDisconnectedComponents", 1);

C++

model.setIntParam("MIP/DetectDisconnectedComponents", 1);

Python

model.set_int_param("MIP/DetectDisconnectedComponents", 1)

8.6.1.19. “MIP/SolutionPoolSize”

An integer parameter used to specify the capacity of solution pool size.

  • Group: mip method

  • Default value: 0

  • Value range: [0, 65536]

Examples

C

Mdo_setIntParam(model, "MIP/SolutionPoolSize", 65536);

C++

model.setIntParam("MIP/SolutionPoolSize", 65536);

Python

model.set_int_param("MIP/SolutionPoolSize", 65536)

8.6.1.20. “MIP/AllowDualPresolve”

An integer parameter used to specify whether allow dual presolve.

  • Group: mip method

  • Default value: 1

  • Value range: {0, 1}

Examples

C

Mdo_setIntParam(model, "MIP/AllowDualPresolve", 1);

C++

model.setIntParam("MIP/AllowDualPresolve", 1);

Python

model.set_int_param("MIP/AllowDualPresolve", 1)