Mesin yang digunakan untuk membuat model dan memecahkan program linear. Contoh di bawah ini menyelesaikan program linear berikut:
Dua variabel, x dan y:
0 ≤ x ≤ 10
0 ≤ y ≤ 5
Batasan:
0 ≤ 2 * x + 5 * y ≤ 10
0 ≤ 10 * x + 3 * y ≤ 20
Tujuan:
Maksimalkan x + y
const 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 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')}`); }
Metode
Dokumentasi mendetail
add Constraint(lowerBound, upperBound)
Menambahkan batasan linear baru dalam model. Batas atas dan bawah batasan ditentukan
pada waktu pembuatan. Koefisien untuk variabel ditentukan melalui panggilan ke Linear.
const engine = LinearOptimizationService.createEngine(); // Create a linear constraint with the bounds 0 and 10 const constraint = engine.addConstraint(0, 10); // Create a variable so we can add it to the constraint engine.addVariable('x', 0, 5); // Set the coefficient of the variable in the constraint. The constraint is now: // 0 <= 2 * x <= 5 constraint.setCoefficient('x', 2);
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
lower | Number | batas bawah batasan |
upper | Number | batas atas batasan |
Pulang pergi
Linear — batasan yang dibuat
add Constraints(lowerBounds, upperBounds, variableNames, coefficients)
Menambahkan batasan dalam batch ke model.
const engine = LinearOptimizationService.createEngine(); // Add a boolean variable 'x' (integer >= 0 and <= 1) and a real (continuous >= // 0 and <= 100) variable 'y'. engine.addVariables( ['x', 'y'], [0, 0], [1, 100], [ LinearOptimizationService.VariableType.INTEGER, LinearOptimizationService.VariableType.CONTINUOUS, ], ); // Adds two constraints: // 0 <= x + y <= 3 // 1 <= 10 * x - y <= 5 engine.addConstraints( [0.0, 1.0], [3.0, 5.0], [ ['x', 'y'], ['x', 'y'], ], [ [1, 1], [10, -1], ], );
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
lower | Number[] | batas bawah batasan |
upper | Number[] | batas atas batasan |
variable | String[][] | nama variabel yang koefisiennya ditetapkan |
coefficients | Number[][] | koefisien yang ditetapkan |
Pulang pergi
Linear — mesin pengoptimalan linear
add Variable(name, lowerBound, upperBound)
Menambahkan variabel kontinu baru ke model. Variabel direferensikan dengan namanya. Jenisnya
ditetapkan ke Variable.
const engine = LinearOptimizationService.createEngine(); const constraint = engine.addConstraint(0, 10); // Add a boolean variable (integer >= 0 and <= 1) engine.addVariable('x', 0, 1, LinearOptimizationService.VariableType.INTEGER); // Add a real (continuous) variable. Notice the lack of type specification. engine.addVariable('y', 0, 100);
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
name | String | nama unik variabel |
lower | Number | batas bawah variabel |
upper | Number | batas atas variabel |
Pulang pergi
Linear — mesin pengoptimalan linear
add Variable(name, lowerBound, upperBound, type)
Menambahkan variabel baru ke model. Variabel direferensikan dengan namanya.
const engine = LinearOptimizationService.createEngine(); const constraint = engine.addConstraint(0, 10); // Add a boolean variable (integer >= 0 and <= 1) engine.addVariable('x', 0, 1, LinearOptimizationService.VariableType.INTEGER); // Add a real (continuous) variable engine.addVariable( 'y', 0, 100, LinearOptimizationService.VariableType.CONTINUOUS, );
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
name | String | nama unik variabel |
lower | Number | batas bawah variabel |
upper | Number | batas atas variabel |
type | Variable | jenis variabel, dapat berupa salah satu dari Variable |
Pulang pergi
Linear — mesin pengoptimalan linear
add Variable(name, lowerBound, upperBound, type, objectiveCoefficient)
Menambahkan variabel baru ke model. Variabel direferensikan dengan namanya.
const engine = LinearOptimizationService.createEngine(); const constraint = engine.addConstraint(0, 10); // Add a boolean variable (integer >= 0 and <= 1) engine.addVariable( 'x', 0, 1, LinearOptimizationService.VariableType.INTEGER, 2, ); // The objective is now 2 * x. // Add a real (continuous) variable engine.addVariable( 'y', 0, 100, LinearOptimizationService.VariableType.CONTINUOUS, -5, ); // The objective is now 2 * x - 5 * y.
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
name | String | nama unik variabel |
lower | Number | batas bawah variabel |
upper | Number | batas atas variabel |
type | Variable | jenis variabel, dapat berupa salah satu dari Variable |
objective | Number | koefisien objektif variabel |
Pulang pergi
Linear — mesin pengoptimalan linear
add Variables(names, lowerBounds, upperBounds, types, objectiveCoefficients)
Menambahkan variabel dalam batch ke model. Variabel dirujuk berdasarkan namanya.
const engine = LinearOptimizationService.createEngine(); // Add a boolean variable 'x' (integer >= 0 and <= 1) and a real (continuous >=0 // and <= 100) variable 'y'. engine.addVariables( ['x', 'y'], [0, 0], [1, 100], [ LinearOptimizationService.VariableType.INTEGER, LinearOptimizationService.VariableType.CONTINUOUS, ], );
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
names | String[] | nama unik variabel |
lower | Number[] | batas bawah variabel |
upper | Number[] | batas atas variabel |
types | Variable | jenis variabel, dapat berupa salah satu dari Variable |
objective | Number[] | koefisien objektif variabel |
Pulang pergi
Linear — mesin pengoptimalan linear
set Maximization()
Menetapkan arah pengoptimalan untuk memaksimalkan fungsi tujuan linear.
const engine = LinearOptimizationService.createEngine(); // Add a real (continuous) variable. Notice the lack of type specification. engine.addVariable('y', 0, 100); // Set the coefficient of 'y' in the objective. // The objective is now 5 * y engine.setObjectiveCoefficient('y', 5); // We want to maximize. engine.setMaximization();
Pulang pergi
Linear — mesin pengoptimalan linear
set Minimization()
Menetapkan arah pengoptimalan untuk meminimalkan fungsi tujuan linear.
const engine = LinearOptimizationService.createEngine(); // Add a real (continuous) variable. Notice the lack of type specification. engine.addVariable('y', 0, 100); // Set the coefficient of 'y' in the objective. // The objective is now 5 * y engine.setObjectiveCoefficient('y', 5); // We want to minimize engine.setMinimization();
Pulang pergi
Linear — mesin pengoptimalan linear
set Objective Coefficient(variableName, coefficient)
Menetapkan koefisien variabel dalam fungsi tujuan linear.
const engine = LinearOptimizationService.createEngine(); // Add a real (continuous) variable. Notice the lack of type specification. engine.addVariable('y', 0, 100); // Set the coefficient of 'y' in the objective. // The objective is now 5 * y engine.setObjectiveCoefficient('y', 5);
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
variable | String | nama variabel yang koefisiennya ditetapkan |
coefficient | Number | koefisien variabel dalam fungsi tujuan |
Pulang pergi
Linear — mesin pengoptimalan linear
solve()
Menyelesaikan program linear saat ini dengan batas waktu default 30 detik. Menampilkan solusi yang ditemukan.
const engine = LinearOptimizationService.createEngine(); // Add variables, constraints and define the objective with addVariable(), // addConstraint(), etc engine.addVariable('x', 0, 10); // ... // Solve the linear program const solution = engine.solve(); if (!solution.isValid()) { throw `No solution ${solution.getStatus()}`; } Logger.log(`Value of x: ${solution.getVariableValue('x')}`);
Pulang pergi
Linear — solusi pengoptimalan
solve(seconds)
Menyelesaikan program linear saat ini. Menampilkan solusi yang ditemukan. dan apakah solusi tersebut optimal.
const engine = LinearOptimizationService.createEngine(); // Add variables, constraints and define the objective with addVariable(), // addConstraint(), etc engine.addVariable('x', 0, 10); // ... // Solve the linear program const solution = engine.solve(300); if (!solution.isValid()) { throw `No solution ${solution.getStatus()}`; } Logger.log(`Value of x: ${solution.getVariableValue('x')}`);
Parameter
| Nama | Jenis | Deskripsi |
|---|---|---|
seconds | Number | batas waktu untuk menyelesaikan masalah, dalam detik; batas waktu maksimum adalah 300 detik |
Pulang pergi
Linear — solusi pengoptimalan