- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在我的 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/
让我们有以下假设场景……一个 5x5 的网格,比如说 3 个数字。 我们想定义对位置的约束。在 CLP 中,我们通常用整数定义约束,所以这是一种方法: ... Fig1X #\= 2, Fig1Y
我正在尝试使用 SWI Prolog CLP(FD) 解决调度问题。在尝试解决更大的问题时,我正在应用更高级的标记策略,在这里,更好地了解程序在什么时候失败和回溯将是有益的。因此,我喜欢记录哪些变量绑
我正在使用 clp(fd) 编写 Prolog 程序并且我很难实现我想要的约束之一。 输出是一个整数列表(长度取决于程序另一部分的输入),其中有某些相互排斥的预定义数字对,每对中的一个数字必须在输出中
我正在 Prolog 中编写任务调度程序/计划程序,为此我打算使用 CLPFD library (在 SWIPL 上)。我想知道使用有限域来解决调度问题有多么强大,以及如果我使用它会对 CPU 负载产
在有些instances中,可以对递归谓词进行CLP(FD)处理,其好处是谓词可以双向转换。这种方法的局限性是什么?例如,以下computation CLP(FD)-fied是否可以: Fn: n-t
在上个学期的 Prolog 类(class)中,我在引入 CLP 时落后了一点。现在我正在努力 catch ,并尝试参加教授提供给所有学生的过去考试。 特别是,有这个问题: What is the d
我做了两个实现来解决 Shikaku 难题。一个使用顶部、左侧、宽度和高度 (TLWH) 作为每个矩形的参数,另一个使用顶部、左侧、底部、右侧 (TLBR)。 出于某种原因,使用 TLBR 的速度要快
我正在尝试设置 Coin-CLP按照网站上的说明还支持 CPLEX(我已经安装并在我的机器上顺利运行)。 不幸的是,当我尝试在安装时运行配置步骤时,在我想要包含 CPLEX 的版本中看起来像这样: .
我是 Prolog 编程的新手,我写了一个代码来解决 4 x 4 幻方,但是当我运行程序时,程序没有给出任何输出;它只是继续执行(忙),最终我不得不退出 SWI-Prolog。请指导我解决这个问题。
我正在 Julia 中开发一个包,它使用 Clp 和 JuMP 来解决 Simplex 问题,这里是代码示例: model = JuMP.Model(Clp.Optimizer) @variable(
我正在尝试在 prolog CLP 中编写 map 着色程序。这是到目前为止的代码。请任何人帮助我。这里有什么问题。我想在这里替换maplist函数。任何帮助表示赞赏。 :- use_module(l
这个问题已经有答案了: Using a constrained variable with `length/2` (4 个回答) 已关闭 6 年前。 为什么以下退出时显示 ERROR: Out of
我想使用clp-java解决这个问题 Maximize 2 * x + 5 where x com.github.quantego clp-java 1.16.11 他们更
我有以下 CLP(FD) 查询: ?- use_module(library(clpfd)). ?- [I,N,M,J] ins -2147483648..2147483647, I - 3*N #=
有什么地方可以找到 clpfd 实现中的差异集合吗? 最佳答案 有一种支持一种语言的列表 形式或另一种约束逻辑编程。这个 有时表示为 CLP(*): 参见“基于逻辑编程的约束逻辑”部分: https:
我使用 CLIPS 开发了一个专家系统,并且希望能够在命令行上运行它。这可能吗? 我的最终目标是让 Java 程序在 CMD 中执行 .clp,并将输出和输入传递到命令行和 gui。 我可以在clip
我正在将代码从 Oracle JDK 导入到 OpenJDK (Java 8)。剩下的唯一需要解决的问题是如何改变 Java Clip (java.sound.sampled.Clip) 的音量?即使
我想在我的 Android 应用程序中构建一个新的线性编程模型,使用 cpl-java . 我的函数是E+T+U+URam,我想最小化这个函数,但我不知道如何使用这个库以及如何添加我的约束,我的限制:
我正在尝试在我的 iPhone 应用程序中加载 .clp 文件。为此,我使用下面的代码 NSString *filePath = [[NSBundle mainBundle]
我必须以包含 9 个向量(每个长度为 9)的向量格式解决数独谜题。由于向量是 Prolog 中的链表,我认为如果我首先将拼图转换为 2D 数组格式,搜索速度会更快。 示例拼图: puzzle(P) :
我是一名优秀的程序员,十分优秀!