किसी लीनियर प्रोग्राम को मॉडल और हल करने के लिए इस्तेमाल किया जाने वाला इंजन. नीचे दिए गए उदाहरण में, इस लीनियर प्रोग्राम को हल किया गया है:
दो वैरिएबल, 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.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 | ब्यौरा |
---|---|---|
lowerBound | Number | कंस्ट्रेंट की निचली सीमा |
upperBound | Number | कंस्ट्रेंट की ऊपरी सीमा |
रिटर्न
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 | ब्यौरा |
---|---|---|
lowerBounds | Number[] | पाबंदियों की निचली सीमाएं |
upperBounds | Number[] | कंस्ट्रेंट की ऊपरी सीमाएं |
variableNames | String[][] | उन वैरिएबल के नाम जिनके लिए गुणांक सेट किए जा रहे हैं |
coefficients | Number[][] | गुणांक सेट किए जा रहे हैं |
रिटर्न
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 | ब्यौरा |
---|---|---|
name | String | वैरिएबल का यूनीक नाम |
lowerBound | Number | वैरिएबल की निचली सीमा |
upperBound | Number | वैरिएबल की ऊपरी सीमा |
रिटर्न
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 | ब्यौरा |
---|---|---|
name | String | वैरिएबल का यूनीक नाम |
lowerBound | Number | वैरिएबल की निचली सीमा |
upperBound | Number | वैरिएबल की ऊपरी सीमा |
type | VariableType | वैरिएबल का टाइप, 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 | ब्यौरा |
---|---|---|
name | String | वैरिएबल का यूनीक नाम |
lowerBound | Number | वैरिएबल की निचली सीमा |
upperBound | Number | वैरिएबल की ऊपरी सीमा |
type | VariableType | वैरिएबल का टाइप, VariableType में से एक हो सकता है |
objectiveCoefficient | Number | वैरिएबल का मकसद गुणांक |
रिटर्न
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 | ब्यौरा |
---|---|---|
names | String[] | वैरिएबल के यूनीक नाम |
lowerBounds | Number[] | वैरिएबल की निचली सीमाएं |
upperBounds | Number[] | वैरिएबल की ऊपरी सीमाएं |
types | VariableType[] | वैरिएबल के टाइप, VariableType में से एक हो सकते हैं |
objectiveCoefficients | Number[] | वैरिएबल के मकसद गुणांक |
रिटर्न
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 | ब्यौरा |
---|---|---|
variableName | String | उस वैरिएबल का नाम जिसके लिए गुणांक सेट किया जा रहा है |
coefficient | Number | मकसद फ़ंक्शन में वैरिएबल का गुणांक |
रिटर्न
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 | ब्यौरा |
---|---|---|
seconds | Number | समस्या को हल करने की समयसीमा सेकंड में; ज़्यादा से ज़्यादा 300 सेकंड |
रिटर्न
LinearOptimizationSolution
— ऑप्टिमाइज़ेशन का समाधान