Optimization Service

  • The linear optimization service is used to model and solve linear and mixed-integer linear programs.

  • Key classes for this service include LinearOptimizationConstraint, LinearOptimizationEngine, LinearOptimizationService, and LinearOptimizationSolution.

  • The LinearOptimizationEngine is used to build the linear program model by adding constraints and variables, and setting the optimization direction.

  • The LinearOptimizationSolution provides methods to retrieve the objective value, the status of the solution, and the values of the variables.

  • The Status property indicates the result of the solve operation, such as OPTIMAL, FEASIBLE, or INFEASIBLE.

Optimization

The linear optimization service, used to model and solve linear and mixed-integer linear programs.

Classes

NameBrief description
LinearOptimizationConstraint Object storing a linear constraint of the form lowerBound ≤ Sum(a(i) x(i)) ≤ upperBound where lowerBound and upperBound are constants, a(i) are constant coefficients and x(i) are variables (unknowns).
LinearOptimizationEngine The engine used to model and solve a linear program.
LinearOptimizationService The linear optimization service, used to model and solve linear and mixed-integer linear programs.
LinearOptimizationSolution The solution of a linear program.
Status Status of the solution.
VariableType Type of variables created by the engine.

LinearOptimizationConstraint

Methods

MethodReturn typeBrief description
setCoefficient(variableName, coefficient) LinearOptimizationConstraint Sets the coefficient of a variable in the constraint.

LinearOptimizationEngine

Methods

MethodReturn typeBrief description
addConstraint(lowerBound, upperBound) LinearOptimizationConstraint Adds a new linear constraint in the model.
addConstraints(lowerBounds, upperBounds, variableNames, coefficients) LinearOptimizationEngine Adds constraints in batch to the model.
addVariable(name, lowerBound, upperBound) LinearOptimizationEngine Adds a new continuous variable to the model.
addVariable(name, lowerBound, upperBound, type) LinearOptimizationEngine Adds a new variable to the model.
addVariable(name, lowerBound, upperBound, type, objectiveCoefficient) LinearOptimizationEngine Adds a new variable to the model.
addVariables(names, lowerBounds, upperBounds, types, objectiveCoefficients) LinearOptimizationEngine Adds variables in batch to the model.
setMaximization() LinearOptimizationEngine Sets the optimization direction to maximizing the linear objective function.
setMinimization() LinearOptimizationEngine Sets the optimization direction to minimizing the linear objective function.
setObjectiveCoefficient(variableName, coefficient) LinearOptimizationEngine Sets the coefficient of a variable in the linear objective function.
solve() LinearOptimizationSolution Solves the current linear program with the default deadline of 30 seconds.
solve(seconds) LinearOptimizationSolution Solves the current linear program.

LinearOptimizationService

Properties

PropertyTypeDescription
StatusStatus Status of the solver.
VariableTypeVariableType Type of variables created by the solver.

Methods

MethodReturn typeBrief description
createEngine() LinearOptimizationEngine Creates an engine to to solve linear programs (potentially mixed-integer programs).

LinearOptimizationSolution

Methods

MethodReturn typeBrief description
getObjectiveValue() NumberGets the value of the objective function in the current solution.
getStatus() Status Gets the status of the solution.
getVariableValue(variableName) NumberGets the value of a variable in the solution created by the last call to LinearOptimizationEngine.solve() .
isValid() BooleanDetermines whether the solution is either feasible or optimal.

Status

Properties

PropertyTypeDescription
OPTIMALEnumStatus when an optimal solution has been found.
FEASIBLEEnumStatus when a feasible (not necessarily optimal) solution has been found.
INFEASIBLEEnumStatus when the current model is unfeasible (has no solution).
UNBOUNDEDEnumStatus when the current model is unbound.
ABNORMALEnumStatus when it failed to find a solution for unexpected reasons.
MODEL_INVALIDEnumStatus when the model is invalid.
NOT_SOLVEDEnumStatus when LinearOptimizationEngine.solve() has not been called yet.

VariableType

Properties

PropertyTypeDescription
INTEGEREnumType of variable that can only take integer values.
CONTINUOUSEnumType of variable that can take any real value.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2024年12月02日 UTC.