Google Apps Script API
    Preparing search index...

    The engine used to model and solve a linear program. 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

    var engine = LinearOptimizationService.createEngine();
    
    // Add variables, constraints and define the objective with 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
    var constraint = engine.addConstraint(0, 10);
    constraint.setCoefficient('x', 2);
    constraint.setCoefficient('y', 5);
    
    // Create the constraint: 0 <= 10 * x + 3 * y <= 20
    var 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
    var solution = 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'));
    }
    
    interface LinearOptimizationEngine {
        addConstraint(
            lowerBound: number,
            upperBound: number,
        ): LinearOptimizationConstraint;
        addConstraints(
            lowerBounds: number[],
            upperBounds: number[],
            variableNames: string[][],
            coefficients: number[][],
        ): LinearOptimizationEngine;
        addVariable(
            name: string,
            lowerBound: number,
            upperBound: number,
        ): LinearOptimizationEngine;
        addVariable(
            name: string,
            lowerBound: number,
            upperBound: number,
            type: VariableType,
        ): LinearOptimizationEngine;
        addVariable(
            name: string,
            lowerBound: number,
            upperBound: number,
            type: VariableType,
            objectiveCoefficient: number,
        ): LinearOptimizationEngine;
        addVariables(
            names: string[],
            lowerBounds: number[],
            upperBounds: number[],
            types: VariableType[],
            objectiveCoefficients: number[],
        ): LinearOptimizationEngine;
        setMaximization(): LinearOptimizationEngine;
        setMinimization(): LinearOptimizationEngine;
        setObjectiveCoefficient(
            variableName: string,
            coefficient: number,
        ): LinearOptimizationEngine;
        solve(): LinearOptimizationSolution;
        solve(seconds: number): LinearOptimizationSolution;
    }
    Index

    Methods