问题标签 [cp-optimizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
212 浏览

constraint-programming - 我怎样才能做出限制?

我是世界 cp 优化器的新手,这开始进行小测试。我有以下问题,我需要你的帮助。这是我的代码:

数据

......

PairElements 是元组 [Par, element] ,需要通过以下限制获得成本最低的一对:

我不知道如何创建限制


结果是:

标准杆:0 和 2。

因为这两对包含所有元素一次并且以较低的成本表示

非常感谢胡安·卡洛斯

0 投票
1 回答
167 浏览

c# - Cplex Concert Technology C# 中的内存管理

我试图通过设置 Memory Emphasis 参数和 Preprocessing 参数来提高内存使用率。

我为 matlab 和 java 找到了类似的代码,但在 c# 中没有这样做。

在 Java 中使用 CPLEX 库时的内存优化

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014726909

ILOG.CP 对象具有 SetParameter 方法,我尝试了以下表达式,但它们给出了语法错误。

cp.SetParameter (Cplex.Param.Preprocessing.Presolve, 0); cp.SetParameter(Cplex.Param.Emphasis.Memory, 1);

如何使用 C# 设置这些参数?

非常感谢您,

0 投票
1 回答
186 浏览

c# - 如何实现 If Then 表达式以最终在 ILOG CP Optimizer 的约束中使用?

问题的简要说明。我有许多对象,我们称这个对象为 X。每个 X 可以分配给多个容器 Y。每个 Y,每个 X 需要两个。每个 X 都有一个属性 L。每个 Y 都有其 L 级别的最小规范,即分配给特定 Y 的两个 X 必须等于或超过 Y 的 L 规范。

但我在第 5 行收到一个错误,说 Argument 2: Cannot convert from 'ILOG.Concert.IIntExpr' to 'ILOG.Constraint.IConstraint'

我想要完成的是,对于所有值为“i”的“死”决策变量,它们对应的 X 变量的“L”属性字段的总和必须超过 Y[i] 的“L”字段属性(这里 dies 对应于 X)

0 投票
2 回答
149 浏览

constraint-programming - 将 IloCP 与太多工作人员一起使用的问题

我建立了一个简单的约束,强制变量的值必须与模运算一致。有两个一致性级别可用:边界一致性和域一致性。在此示例中,使用 1 或 2 个工作人员解决边界一致性问题效果很好,但使用 3 个或更多工作人员时,propagate()函数会无限循环,因为它似乎无法移除域的最大值。我的计算机有 2 个物理内核,所以我的猜测是使用的工作人员多于物理内核是问题所在。我正在使用最新版本的 Cplex Optimization Studio。这是代码:

文件main.cc

文件IloModulo.h

文件IloModulo.cc

0 投票
1 回答
48 浏览

cplex - 房屋建筑优化中的工人分配

作为我论文项目的一部分,我遇到了一个房屋建筑问题。总共有 17 个任务,有些任务需要先完成。还有 5 种不同的工人类型(建造者、建筑师等),每个任务需要不同类型和数量的工人。

我是 CPLEX OPL 的完整初学者,并且使用提供的教程,我能够最大限度地减少完成 17 个任务所花费的时间。为此,我使用了dvar intervals和。endBeforeStart()但是,我花了无数个小时试图将工人添加到我的问题中,但没有成功。这些例子只包括有名字的工人;但在我的问题中,我有不同类型的任务需要的工人,每种类型都有不同数量的工人可用。

如何将工作人员添加到我的问题中并以最佳方式将他们分配给每个任务?

0 投票
1 回答
346 浏览

python - 如何在 IBM ILOG CPLEX CP Optimizer 中处理大整数?

这是这篇文章的后续内容。简而言之,我在 Python 中使用IBM ILOG CPLEX CP Optimizer来解决约束规划问题。优化目标之一是最大化整数 x_1 * x_2 * ... * x_n 的乘积。随着问题的扩大(例如n约为 300),产品显然会变得非常大,CP Optimizer 似乎无法处理这个大整数。对于不同的n值,返回的产品始终为 1.79769e+308。

整数的大小是无限的,并且在原生 Python 中没有最大值,所以我猜 CP Optimizer 处理大整数的方式不同。在 CP Optimizer 中有什么方法可以处理大整数?

一些旁注:

  • 我的程序适用于较小的数据大小(小n)。
  • 我尝试最大化 log(x_1) + log(x_2) + ... + log(x_n) 但程序不停地运行。我认为日志使事情变得复杂。
  • 对于那些感兴趣的人,我的源代码和示例数据在这里

非常感谢!

0 投票
1 回答
83 浏览

cplex - 指导我写一个容量约束

我正在尝试使用现有的资源约束项目调度问题可用的 OPL 示例添加更多约束。这里我附上 RCPSP 问题的示例文件。目前在这个示例问题中,我可以根据资源容量启动尽可能多的任务。我想对间隔变量中执行的最大任务数添加一个额外的约束,应该小于或等于 5。换句话说,我一次不能同时执行超过 5 个任务。

示例问题位于 OPL 中的示例/opl/sched_rcpsp

0 投票
2 回答
158 浏览

constraint-programming - 我的问题是关于 cplex 中的资源约束项目调度问题代码。我正在尝试对其应用抢占

我正在研究 RCPSP 并希望对其应用 Preemption。
我将每项任务的持续时间分成相等的部分。现在,在这样做之后,我无法将优先约束应用于任务的每个单独的单元持续时间。

提前致谢。

0 投票
1 回答
99 浏览

scheduling - 使用间隔进行调度时如何在 CP 中获取当前时间

我正在尝试在不同的机器上安排任务。这些机器具有动态可用资源,例如:

机器 1:最大容量 4 核。

在 T=t1 => 可用 CPU = 2 核;

在 T=t2 => 可用 CPU = 1 个核心;

每个间隔都有固定的时间(例如:1 分钟)。

所以在 CPLEX 中,我有一个 cumulFunction 来总结机器中使用的资源:

现在问题出在约束中:

我找不到获取当前时间段的方法,以便我可以将使用的资源与该特定时间段内的可用资源进行比较。

PS:available_res_function 是可用资源的 stepFunction。

非常感谢你的帮助。

0 投票
1 回答
75 浏览

constraint-programming - 如何在灵活的工作车间中编写操作的后续操作在同一台机器上完成的代码?

在模型中,我们必须为每个作业执行 3 个操作。我希望如果操作 1 在类型的机器中处理,那么操作 2 和操作 3如果它们在OR类型的机器中执行,也必须在同一类型的机器上执行。OROR