Class LinearOptimizationSolution

  • ALinearOptimizationSolution represents the solution of a linear program.

  • The solution provides methods to get the objective value, the value of specific variables, the status of the solution, and to check its validity.

  • An example demonstrates how to define variables, constraints, and an objective function, solve the linear program, and then retrieve the solution details using the provided methods.

LinearOptimizationSolution

The solution of a linear program. The example below solves the following linear program:

Two variables,x andy:
0 ≤ x ≤ 10
0 ≤ y ≤ 5

Constraints:
0 ≤ 2 * x + 5 * y ≤ 10
0 ≤ 10 * x + 3 * y ≤ 20

Objective:
Maximizex + y

constengine=LinearOptimizationService.createEngine();// Add variables, constraints and define the objective with addVariable(),// addConstraint(), etc. Add two variables, 0 <= x <= 10 and 0 <= y <= 5engine.addVariable('x',0,10);engine.addVariable('y',0,5);// Create the constraint: 0 <= 2 * x + 5 * y <= 10letconstraint=engine.addConstraint(0,10);constraint.setCoefficient('x',2);constraint.setCoefficient('y',5);// Create the constraint: 0 <= 10 * x + 3 * y <= 20constraint=engine.addConstraint(0,20);constraint.setCoefficient('x',10);constraint.setCoefficient('y',3);// Set the objective to be x + yengine.setObjectiveCoefficient('x',1);engine.setObjectiveCoefficient('y',1);// Engine should maximize the objectiveengine.setMaximization();// Solve the linear programconstsolution=engine.solve();if(!solution.isValid()){Logger.log(`No solution${solution.getStatus()}`);}else{Logger.log(`Objective  value:${solution.getObjectiveValue()}`);Logger.log(`Value of x:${solution.getVariableValue('x')}`);Logger.log(`Value of y:${solution.getVariableValue('y')}`);}

Methods

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

Detailed documentation

getObjectiveValue()

Gets the value of the objective function in the current solution.

constengine=LinearOptimizationService.createEngine();// Add variables, constraints and define the objective with addVariable(),// addConstraint(), etcengine.addVariable('x',0,10);// ...// Solve the linear programconstsolution=engine.solve();Logger.log(`ObjectiveValue:${solution.getObjectiveValue()}`);

Return

Number — the value of the objective function


getStatus()

Gets the status of the solution. Before solving a problem, the status will beNOT_SOLVED.

constengine=LinearOptimizationService.createEngine();// Add variables, constraints and define the objective with addVariable(),// addConstraint(), etcengine.addVariable('x',0,10);// ...// Solve the linear programconstsolution=engine.solve();conststatus=solution.getStatus();if(status!==LinearOptimizationService.Status.FEASIBLE&&status!==LinearOptimizationService.Status.OPTIMAL){throw`No solution${status}`;}Logger.log(`Status:${status}`);

Return

Status — the status of the solver


getVariableValue(variableName)

Gets the value of a variable in the solution created by the last call toLinearOptimizationEngine.solve().

constengine=LinearOptimizationService.createEngine();// Add variables, constraints and define the objective with addVariable(),// addConstraint(), etcengine.addVariable('x',0,10);// ...// Solve the linear programconstsolution=engine.solve();Logger.log(`Value of x:${solution.getVariableValue('x')}`);

Parameters

NameTypeDescription
variableNameStringname of the variable

Return

Number — the value of the variable in the solution


isValid()

Determines whether the solution is either feasible or optimal.

constengine=LinearOptimizationService.createEngine();// Add variables, constraints and define the objective with addVariable(),// addConstraint(), etcengine.addVariable('x',0,10);// ...// Solve the linear programconstsolution=engine.solve();if(!solution.isValid()){throw`No solution${solution.getStatus()}`;}

Return

Booleantrue if the solution is valid (Status.FEASIBLE orStatus.OPTIMAL);false if not

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

Last updated 2025-12-11 UTC.