Class LinearOptimizationService

LinearOptimizationService

Es el servicio de optimización lineal que se usa para modelar y resolver programas lineales y de números enteros mixtos. En el siguiente ejemplo, se resuelve el siguiente programa lineal:

Dos variables, x y y:
0 ≤ x ≤ 10
0 ≤ y ≤ 5

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

Objetivo:
Maximizar x + y

const engine = 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
let constraint = 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
const 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')}`);
}

Propiedades

PropiedadTipoDescripción
StatusStatusEstado del solucionador.
VariableTypeVariableTypeTipo de variables creadas por el solucionador.

Métodos

MétodoTipo de datos que se devuelveDescripción breve
createEngine()LinearOptimizationEngineCrea un motor para resolver programas lineales (potencialmente programas de números enteros mixtos).

Documentación detallada

createEngine()

Crea un motor para resolver programas lineales (potencialmente programas de números enteros mixtos).

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

// ...

Volver

LinearOptimizationEngine: Un motor de optimización lineal