Class LinearOptimizationEngine

LinearOptimizationEngine

किसी लीनियर प्रोग्राम को मॉडल और हल करने के लिए इस्तेमाल किया जाने वाला इंजन. नीचे दिए गए उदाहरण में, इस लीनियर प्रोग्राम को हल किया गया है:

दो वैरिएबल, x और y:
0 ≤ x ≤ 10
0 ≤ y ≤ 5

पाबंदियां:
0 ≤ 2 * x + 5 * y ≤ 10
0 ≤ 10 * x + 3 * y ≤ 20

मकसद:
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'));
}

तरीके

तरीकारिटर्न टाइपसंक्षिप्त विवरण
addConstraint(lowerBound, upperBound)LinearOptimizationConstraintमॉडल में एक नया लीनियर कंस्ट्रेंट जोड़ता है.
addConstraints(lowerBounds, upperBounds, variableNames, coefficients)LinearOptimizationEngineमॉडल में बैच में पाबंदियां जोड़ता है.
addVariable(name, lowerBound, upperBound)LinearOptimizationEngineमॉडल में नया कंटिन्यूअस वैरिएबल जोड़ता है.
addVariable(name, lowerBound, upperBound, type)LinearOptimizationEngineमॉडल में नया वैरिएबल जोड़ता है.
addVariable(name, lowerBound, upperBound, type, objectiveCoefficient)LinearOptimizationEngineमॉडल में नया वैरिएबल जोड़ता है.
addVariables(names, lowerBounds, upperBounds, types, objectiveCoefficients)LinearOptimizationEngineमॉडल में बैच में वैरिएबल जोड़ता है.
setMaximization()LinearOptimizationEngineलीनियर मकसद के फ़ंक्शन को ज़्यादा से ज़्यादा बढ़ाने के लिए, ऑप्टिमाइज़ेशन की दिशा सेट करता है.
setMinimization()LinearOptimizationEngineलीनियर मकसद के फ़ंक्शन को छोटा करने के लिए ऑप्टिमाइज़ेशन की दिशा सेट करता है.
setObjectiveCoefficient(variableName, coefficient)LinearOptimizationEngineलीनियर मकसद फ़ंक्शन में, किसी वैरिएबल का गुणांक सेट करता है.
solve()LinearOptimizationSolutionमौजूदा लीनियर प्रोग्राम को 30 सेकंड की डिफ़ॉल्ट समयसीमा के साथ हल करता है.
solve(seconds)LinearOptimizationSolutionमौजूदा लीनियर प्रोग्राम को हल करता है.

ज़्यादा जानकारी के साथ दस्तावेज़

addConstraint(lowerBound, upperBound)

मॉडल में एक नया लीनियर कंस्ट्रेंट जोड़ता है. कंस्ट्रेंट की ऊपरी और निचली सीमा, तय करते समय तय की जाती है. वैरिएबल के गुणांक LinearOptimizationConstraint.setCoefficient(variableName, coefficient) पर किए जाने वाले कॉल के ज़रिए तय किए जाते हैं.

var engine = LinearOptimizationService.createEngine();

// Create a linear constraint with the bounds 0 and 10
var 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);

पैरामीटर

नामTypeब्यौरा
lowerBoundNumberकंस्ट्रेंट की निचली सीमा
upperBoundNumberकंस्ट्रेंट की ऊपरी सीमा

रिटर्न

LinearOptimizationConstraint — बनाया गया कंस्ट्रेंट


addConstraints(lowerBounds, upperBounds, variableNames, coefficients)

मॉडल में बैच में पाबंदियां जोड़ता है.

var 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]]);

पैरामीटर

नामTypeब्यौरा
lowerBoundsNumber[]पाबंदियों की निचली सीमाएं
upperBoundsNumber[]कंस्ट्रेंट की ऊपरी सीमाएं
variableNamesString[][]उन वैरिएबल के नाम जिनके लिए गुणांक सेट किए जा रहे हैं
coefficientsNumber[][]गुणांक सेट किए जा रहे हैं

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


addVariable(name, lowerBound, upperBound)

मॉडल में नया कंटिन्यूअस वैरिएबल जोड़ता है. वैरिएबल का संदर्भ उसके नाम से दिया जाता है. टाइप, VariableType.CONTINUOUS पर सेट है.

var engine = LinearOptimizationService.createEngine();
var 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);

पैरामीटर

नामTypeब्यौरा
nameStringवैरिएबल का यूनीक नाम
lowerBoundNumberवैरिएबल की निचली सीमा
upperBoundNumberवैरिएबल की ऊपरी सीमा

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


addVariable(name, lowerBound, upperBound, type)

मॉडल में नया वैरिएबल जोड़ता है. वैरिएबल का संदर्भ उसके नाम से दिया जाता है.

var engine = LinearOptimizationService.createEngine();
var 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);

पैरामीटर

नामTypeब्यौरा
nameStringवैरिएबल का यूनीक नाम
lowerBoundNumberवैरिएबल की निचली सीमा
upperBoundNumberवैरिएबल की ऊपरी सीमा
typeVariableTypeवैरिएबल का टाइप, VariableType में से एक हो सकता है

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


addVariable(name, lowerBound, upperBound, type, objectiveCoefficient)

मॉडल में नया वैरिएबल जोड़ता है. वैरिएबल का संदर्भ उसके नाम से दिया जाता है.

var engine = LinearOptimizationService.createEngine();
var 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.

पैरामीटर

नामTypeब्यौरा
nameStringवैरिएबल का यूनीक नाम
lowerBoundNumberवैरिएबल की निचली सीमा
upperBoundNumberवैरिएबल की ऊपरी सीमा
typeVariableTypeवैरिएबल का टाइप, VariableType में से एक हो सकता है
objectiveCoefficientNumberवैरिएबल का मकसद गुणांक

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


addVariables(names, lowerBounds, upperBounds, types, objectiveCoefficients)

मॉडल में बैच में वैरिएबल जोड़ता है. वैरिएबल का संदर्भ उनके नाम से दिया जाता है.

var 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]);

पैरामीटर

नामTypeब्यौरा
namesString[]वैरिएबल के यूनीक नाम
lowerBoundsNumber[]वैरिएबल की निचली सीमाएं
upperBoundsNumber[]वैरिएबल की ऊपरी सीमाएं
typesVariableType[]वैरिएबल के टाइप, VariableType में से एक हो सकते हैं
objectiveCoefficientsNumber[]वैरिएबल के मकसद गुणांक

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


setMaximization()

लीनियर मकसद के फ़ंक्शन को ज़्यादा से ज़्यादा बढ़ाने के लिए, ऑप्टिमाइज़ेशन की दिशा सेट करता है.

var 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();

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


setMinimization()

लीनियर मकसद के फ़ंक्शन को छोटा करने के लिए ऑप्टिमाइज़ेशन की दिशा सेट करता है.

var 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();

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


setObjectiveCoefficient(variableName, coefficient)

लीनियर मकसद फ़ंक्शन में, किसी वैरिएबल का गुणांक सेट करता है.

var 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);

पैरामीटर

नामTypeब्यौरा
variableNameStringउस वैरिएबल का नाम जिसके लिए गुणांक सेट किया जा रहा है
coefficientNumberमकसद फ़ंक्शन में वैरिएबल का गुणांक

रिटर्न

LinearOptimizationEngine — एक लीनियर ऑप्टिमाइज़ेशन इंजन


solve()

मौजूदा लीनियर प्रोग्राम को 30 सेकंड की डिफ़ॉल्ट समयसीमा के साथ हल करता है. मिला समाधान दिखाता है.

var engine = LinearOptimizationService.createEngine();

// Add variables, constraints and define the objective with addVariable(), addConstraint(), etc
engine.addVariable('x', 0, 10);

// ...

// Solve the linear program
var solution = engine.solve();
if (!solution.isValid()) {
  throw 'No solution ' + solution.getStatus();
}
Logger.log('Value of x: ' + solution.getVariableValue('x'));

रिटर्न

LinearOptimizationSolution — ऑप्टिमाइज़ेशन का समाधान


solve(seconds)

मौजूदा लीनियर प्रोग्राम को हल करता है. मिला समाधान दिखाता है. और अगर यह सबसे बेहतर समाधान हो, तो दिखाता है.

var engine = LinearOptimizationService.createEngine();

// Add variables, constraints and define the objective with addVariable(), addConstraint(), etc
engine.addVariable('x', 0, 10);

// ...

// Solve the linear program
var solution = engine.solve(300);
if (!solution.isValid()) {
  throw 'No solution ' + solution.getStatus();
}
Logger.log('Value of x: ' + solution.getVariableValue('x'));

पैरामीटर

नामTypeब्यौरा
secondsNumberसमस्या को हल करने की समयसीमा सेकंड में; ज़्यादा से ज़्यादा 300 सेकंड

रिटर्न

LinearOptimizationSolution — ऑप्टिमाइज़ेशन का समाधान