gpt4 book ai didi

java - 如何使用 clp-java 的示例

转载 作者:太空宇宙 更新时间:2023-11-04 11:26:08 26 4
gpt4 key购买 nike

我想在我的 Android 应用程序中构建一个新的线性编程模型,使用 cpl-java .

我的函数是E+T+U+URam,我想最小化这个函数,但我不知道如何使用这个库以及如何添加我的约束,我的限制:

E<0 and T<0 and U<0.25 and URam<0.25

这是我的代码

com.quantego.clp.CLP model = new CLP();

CLPVariable energy = model.addVariable().free();
CLPVariable executionTime = model.addVariable().free();
CLPVariable cpuUsage = model.addVariable().free();
CLPVariable ramUsage = model.addVariable().free();

CLPExpression expression = model.createExpression().add(energy).add(executionTime).add(cpuUsage)
.add(ramUsage);

System.out.println("expression : " + expression.toString());
TreeMap<CLPVariable, Double> energyMap = new TreeMap<>();
energyMap.put(energy, 5.1);

TreeMap<CLPVariable, Double> exeTimeMap = new TreeMap<>();
exeTimeMap.put(executionTime, 5.0);

TreeMap<CLPVariable, Double> cpuusageMap = new TreeMap<>();
cpuusageMap.put(cpuUsage, 0.2);

TreeMap<CLPVariable, Double> ramusageMap = new TreeMap<>();
ramusageMap.put(ramUsage, 0.9);

model.addConstraint(energyMap, CLPConstraint.TYPE.LEQ, 0);
model.addConstraint(exeTimeMap, CLPConstraint.TYPE.LEQ, 0);
model.addConstraint(cpuusageMap, CLPConstraint.TYPE.LEQ, 0.25);
model.addConstraint(ramusageMap, CLPConstraint.TYPE.LEQ, 0.25);

最佳答案

根据您的描述,我推断您希望在变量范围内最小化决策变量 E、T、U、URam 的总和。由于没有任何约束来链接这些决策变量,因此最佳解决方案是将所有变量设置为其下限。

从变量的名称来看,我猜想下限实际上是零而不是负无穷大。将所有变量设置为零将使 E+T+U+URam 最小化,这将产生零的目标值。如果您希望负无穷大作为下界,则当前所述的优化问题将是无界的。

clp-java 中的广泛表述看起来像这样:

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

这能解决您的问题吗?

关于java - 如何使用 clp-java 的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44346925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com