如何使用clp java的示例
我想在我的android应用程序中构建一个新的线性规划模型,使用 我的函数是E+T+U+URam,我想最小化这个函数,但我不知道如何使用这个库以及如何添加我的约束, 我的限制:如何使用clp java的示例,java,android,optimization,linear-programming,Java,Android,Optimization,Linear Programming,我想在我的android应用程序中构建一个新的线性规划模型,使用 我的函数是E+T+U+URam,我想最小化这个函数,但我不知道如何使用这个库以及如何添加我的约束, 我的限制: E<0 and T<0 and U<0.25 and URam<0.25 E根据您的描述,我推断您希望最小化决策变量的总和,E,T,U,URam,受变量边界的约束。由于没有约束将这些决策变量联系起来,因此最佳解决方案是将所有变量设置为其下限 从变量的名称来看,我猜下界实际上是零,而不是负无穷大。
E<0 and T<0 and U<0.25 and URam<0.25
E根据您的描述,我推断您希望最小化决策变量的总和,E,T,U,URam,受变量边界的约束。由于没有约束将这些决策变量联系起来,因此最佳解决方案是将所有变量设置为其下限
从变量的名称来看,我猜下界实际上是零,而不是负无穷大。将所有变量设置为零将使E+T+U+URam最小化,这将产生零的目标值。如果你想要负无穷大作为下界,优化问题,因为它是目前声明将是无界的
中的广泛公式如下所示:
CLP model = new CLP().verbose(1);
CLPVariable energy = model.addVariable();
CLPVariable executionTime = model.addVariable();
CLPVariable cpuUsage = model.addVariable();
CLPVariable ramUsage = model.addVariable();
model.createExpression().add(energy,executionTime,cpuUsage,ramUsage).asObjective();
model.createExpression().add(energy).leq(0);
model.createExpression().add(executionTime).leq(0);
model.createExpression().add(cpuUsage).leq(0.25);
model.createExpression().add(ramUsage).leq(0.25);
model.minimize();
这是否解决了您的问题?根据您的描述,我推断您希望最小化决策变量的总和,即E、T、U、URam,并受变量边界的约束。由于没有约束将这些决策变量联系起来,因此最佳解决方案是将所有变量设置为其下限
从变量的名称来看,我猜下界实际上是零,而不是负无穷大。将所有变量设置为零将使E+T+U+URam最小化,这将产生零的目标值。如果你想要负无穷大作为下界,优化问题,因为它是目前声明将是无界的
中的广泛公式如下所示:
CLP model = new CLP().verbose(1);
CLPVariable energy = model.addVariable();
CLPVariable executionTime = model.addVariable();
CLPVariable cpuUsage = model.addVariable();
CLPVariable ramUsage = model.addVariable();
model.createExpression().add(energy,executionTime,cpuUsage,ramUsage).asObjective();
model.createExpression().add(energy).leq(0);
model.createExpression().add(executionTime).leq(0);
model.createExpression().add(cpuUsage).leq(0.25);
model.createExpression().add(ramUsage).leq(0.25);
model.minimize();
这能解决你的问题吗