ortools LinearExpr线性表达式方法示例实战源码分析
一、版本
9.5版本之上
二、详细用法
LinearExpr是一个接口,用于表示线性表达式(sum (ai * xi) + b)。它提供了一些方法来解析和构建线性表达式。下面对LinearExpr中的方法进行总结:
1.返回表达式中的项数(不包括常数项)
numElements()方法:
示例:
LinearExpr expr = ...;
int numElements = expr.numElements();
2. 返回第i个变量的索引
getVariableIndex(int index)方法:
示例:
LinearExpr expr = ...;
int variableIndex = expr.getVariableIndex(0);
3. 返回第i个系数
getCoefficient(int index)方法:
示例:
LinearExpr expr = ...;
long coefficient = expr.getCoefficient(0);
4. 返回表达式的常数部分。
getOffset()方法:
示例:
LinearExpr expr = ...;
long offset = expr.getOffset();
5. 返回一个LinearExprBuilder实例,用于构建线性表达式。
newBuilder()方法:
示例:
LinearExprBuilder builder = LinearExpr.newBuilder();
6. 创建一个常数项的线性表达式。
constant(long value)方法:
示例:
LinearExpr expr = LinearExpr.constant(10);
7. 创建一个单项的线性表达式。
term(LinearArgument expr, long coeff)方法:
示例:
LinearExpr expr = LinearExpr.term(variable, 2);
8. 创建一个仿射表达式(包含线性项和常数项)的线性表达式。
affine(LinearArgument expr, long coeff, long offset)方法:
示例:
LinearExpr expr = LinearExpr.affine(variable, 2, 10);
9. 创建一个求和表达式的线性表达式。
sum(LinearArgument[] exprs)方法:
示例:
LinearExpr expr = LinearExpr.sum(new LinearArgument[]{
expr1, expr2});