Class LinearOptimizationService

LinearOptimizationService

Le service d'optimisation linéaire, utilisé pour modéliser et résoudre des programmes linéaires et linéaires mixtes en nombres entiers. L'exemple ci-dessous résout le programme linéaire suivant :

Deux variables, x et y :
0 ≤ x ≤ 10
0 ≤ y ≤ 5

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

Objectif:
Maximiser 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')}`);
}

Propriétés

PropriétéTypeDescription
StatusStatusÉtat du solveur.
VariableTypeVariableTypeType de variables créées par le solveur.

Méthodes

MéthodeType renvoyéBrève description
createEngine()LinearOptimizationEngineCrée un moteur pour résoudre des programmes linéaires (potentiellement des programmes mixtes en nombres entiers).

Documentation détaillée

createEngine()

Crée un moteur pour résoudre des programmes linéaires (potentiellement des programmes mixtes en nombres entiers).

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

// ...

Renvois

LinearOptimizationEngine : un moteur d'optimisation linéaire