Class LinearOptimizationService

  • The Linear Optimization Service enables the modeling and resolution of linear and mixed-integer linear programs within Apps Script.

  • It provides functionalities to define variables, constraints, and objectives for optimization problems.

  • The service utilizes a dedicated engine, created via createEngine(), to process and solve the defined linear programs.

  • Solutions can be retrieved and assessed for validity, providing values for optimized variables or indicating an infeasible solution.

  • Developers can access detailed documentation and examples for utilizing the Linear Optimization Service effectively.

LinearOptimizationService

The linear optimization service, used to model and solve linear and mixed-integer linear programs. The example below solves the following linear program:

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

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

Objective:
Maximize x + y

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

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).

Detailed documentation

createEngine()

Creates an engine to to solve linear programs (potentially mixed-integer programs).

// Creates a linear optimization engine.
constengine=LinearOptimizationService.createEngine();
engine.addVariable('x',0,10);
// ...

Return

LinearOptimizationEngine — a linear optimization engine

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.