问题标签 [operations-research]
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.
constraints - 放大的容量限制
我正在构建一个模型,该模型需要我考虑各种船只的容量,但我不确定如何在 ampl 中声明这一点。
目前,我有:
其中 I 是路线的集合,T 是船只的行程集合。x[a,i] 是指示变量,当船只 a 行驶路线 i 时,它 =1,people[a,t] 是船只 a 在行程 t 上的人数。
对于这个约束,ampl 总是抛出以下错误:
我怎样才能解决这个问题?
algorithm - 加权箱包装/背包优化
我正在努力对我正在处理的问题进行分类,这意味着我无法弄清楚是否有任何已建立的启发式解决方案。你认为这是什么类型的问题,你会建议我如何解决它?
我有一系列桶 A、B、C、D。每个桶都可以包含一定数量的项目。桶的总大小与人口的大小相匹配。总体中的每个项目都有 A、B、C、D 的分数。
我想将项目分类到桶中,以使匹配桶的总分最大化;即桶A中所有项目的A分数,桶B中所有项目的B分数等等。因此,即使项目的 A 分数较高,理想情况下也有可能在桶 B 中,因为可能有很多项目具有高 A 分数,而很少有高 B 分数的项目。
optimization - 强化学习与运筹学
我想知道什么时候会决定使用强化学习来解决以前通过数学优化方法解决的问题——想想旅行推销员问题或工作调度或出租车共享问题。
由于强化学习旨在最小化/最大化某个成本/奖励函数,就像运筹学试图优化某个成本函数的结果一样,我认为可以由两方之一解决的问题可能会得到解决由对方。然而,真的是这样吗?两者之间有权衡吗?关于上述问题,我还没有真正看到太多关于 RL 的研究,但我可能弄错了。
如果有人有任何见解,他们将不胜感激!
or-tools - 谷歌 OR-Tools 根据站点安排单个工人和团体的访问
使用Google OR-Tools结合资源调度解决车辆路径问题的最佳方法是什么?
情况是一些站点需要 1 名工人,而另一些则需要许多工人。例如,一次现场访问需要 1 名具有 A 技能的现场技术人员。而其他一些需要:2 名现场技术人员,一名具有 A 技能,另一个具有 B 技能。第三个站点需要 1 名具有 B 技能的现场技术人员。
我不想将工人分配到组;因为在某些情况下会浪费时间。
该案例非常通用,假设可以处理任何复杂性的所有案例。但是,目前的站点数量是数十万个站点,当前的工人在数百或数千个,技能数量在10个以上。
r - 如何在 r simmer 中定义排队模型的起始状态?
这是标准的银行柜台问题来说明我的问题:
考虑一个客户随机到达的简单银行。顾客将在两个柜台之一接受服务,每个柜台的服务时间都是随机的。此外,假设等待的顾客形成一个单一的 FIFO 队列。
这是并发症:
假设我们有兴趣从某一天的中午开始建模这个系统,而不是在一天的开始。中午时分,两个柜台都被占满了,已经排起了4个顾客。
有没有办法在 R simmer 中建立这个起始状态?
这是我已经拥有的代码:
python - 谷歌运筹学工具中的目标函数“公平”系数
我正在尝试使用 Google 的 OR-Tools 包来制定最大化问题。优化的基础是 Fantasy MLB Auction 草案。
该问题涉及以下约束:
1) 薪金上限 $260
2) 总共 23 名玩家
2a) 至少 1 名:捕手、一垒手、二垒手、三垒手、游击手
2b) 至少 2 名:先发投手、后援投手、实用型球员(任何击球手)
2c) 至少 3 名:外野手、投手(任何投手)
2d) 正好 6:替补球员(任何投手或任何击球手)
My Fantasy MLB 联赛由 6 个击球类别和 6 个投球类别组成。理想情况下,我希望在尊重上述限制的同时最大化每个统计类别的阵容。我的方法与这个NBA Optimizer非常相似。
与 NBA Optimizer 示例类似,我为即将到来的赛季的 12 个统计类别中的每一个组织了球员预测/值。
然后我将所有这些统计数据传递到 Google 的 OR-Tools 包中:
solver.Maximize 函数是一个包含所有玩家位置类型及其相关指标的巨大块。
我现在主要担心的是我错误地制定了这个目标函数(也许是基于问题的约束)。我的直觉告诉我,我应该在求解器中提供系数或权重。最大化每个部分的目标函数以“平衡”该函数,从而使 12 个统计类别中的每一个都单独最大化。
我很高兴进一步澄清我的方法,但如果对我将如何制定目标函数提供任何反馈,我将不胜感激。
modeling - Ortools 在求解时设置约束
我正在使用来自 ortools https://developers.google.com/optimization/cp/cp_solver的 CP-SAT 求解器
我正在使用回调对象执行求解器
解决方案 agg 应该过滤掉所有分配错误的解决方案,我无法将它们建模为线性不等式。
我所知道的是,生成的解决方案可以更快地收敛,并且可以减少验证者的“命中”。如果我可以在回调中随时添加约束。
我尝试在回调中执行此操作,添加一个约束以寻找比最小体积更小的解决方案。
这不会给出错误,但验证者拒绝解决方案的次数仍然相同。
求解时是否可以形成约束?如果不在 Ortools 中,那么还有其他提供的求解器吗?
r - 无法在 R 中拟合马尔可夫模型
我正在使用 R 为我的分配做马尔可夫过程。我已经设计了我的矩阵,但问题是我不能将我的矩阵放入马尔可夫对象中。错误是说..
有效对象(.Object)中的错误:
无效类“markovchain”对象:1:错误!行总和不等于一个检查位置:2
无效类“markovchain”对象:2:错误!行总和不等于一个检查位置:4
无效类“markovchain”对象:3:错误!行总和不等于一个检查位置:6
另外:警告信息:
在 if (check == FALSE) { :
条件长度 > 1 并且只使用第一个元素
这是我的代码
python - 具有大量点和一个约束的路由问题
我目前正在解决一个路由问题,我必须为工人创建每日时间表来修复一些安装。有 200,000 个装置,一个工人每次只能工作 8 小时。目标是每天制定最佳路线;因此优化了他每天必须访问的不同点之间的距离,但每个安装的优先级也受到限制。事实上,每个安装都有一个介于 0 和 1 之间的优先级,更高优先级的点应该被赋予更高的权重。
我只是在寻找一些建议,因为我尝试实施一些解决方案(https://developers.google.com/optimization/routing/tsp),但由于我有很多观点,这会导致计算时间过长。
谢谢你。
此致,
查尔斯
integer-programming - 整数规划:是否可以定义不兼容约束?
我正在使用jsLPSolver来解决整数规划问题。
我无法调整模型以包含不兼容约束。我有以下模型:
和可行的结果
但是,它存在一个约束,p3
并且p4
不能在解决方案中在一起,因为它们是不兼容的。
是否可以定义一个不兼容约束来定义它p3
并且p4
是不兼容的变量?
编辑
我正在考虑使用如下约束p3 + p4 = 0
:
但看看在这种情况下解决方案会发生什么:
如https://runkit.com/tetrimesquita/incompatible-contraint所示,这是正确但不可行的。