小编Erw*_*gen的帖子

为什么在is.wholenumber中使用此容差

帮助页面?is.integer有一个关于函数的注释,它将告诉我们一个值是否为整数:

is.wholenumber <-
   function(x, tol = .Machine$double.eps^0.5)  abs(x - round(x)) < tol
Run Code Online (Sandbox Code Playgroud)

sqrt(eps)在这里用作容忍的理由是什么?还有,有充分的理由使用其他东西tol=0吗?

背景是我对这个问题的回答.一些评论者反对这一功能.

我的简单假设:这样做是为了使其在行为中接近打印(默认值为7位十进制数).例如:

> 1.000005
[1] 1.000005
> 1.0000000005
[1] 1
> is.wholenumber(1.000005)
[1] FALSE
> is.wholenumber(1.0000000005)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

但它并不完美:

> 1.00000005
[1] 1
> is.wholenumber(1.00000005)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

在下面的注释中有一个更好的论据:sqrt(eps)可能是由浮点运算引起的舍入误差的(粗略)估计.

r

7
推荐指数
1
解决办法
207
查看次数

如何使用JuMP向MIP请求第二个最佳解决方案

我有一个混合整数规划问题.我可以使用JuMP找到最佳解决方案.但我怎样才能找到第二个最佳解决方案?或者第三好等

这可能是另一个同样最优的解决方案,或者它可能是更糟糕的解决方案,或者可能是:Infeasible- 可能没有大多数解决方案.

我知道对于类似TSP的问题,我可以通过逐步删除最佳路径上的链接来找到其他解决方案(即将某些城市之间的距离设置为无限).对于调度类型问题,我可以类似地逐步设置禁止在最佳路径中使用的时隙的可用性.

但有没有一种通用的方法来做到这一点,而没有编写自己的问题特定的方法来禁止这个解决方案?

mathematical-optimization julia coin-or-cbc julia-jump mixed-integer-programming

6
推荐指数
1
解决办法
614
查看次数

散景:同步链接图中的悬停工具提示

我有两个链接的地块。悬停时,我想在两个图中都出现一个工具提示。我已经成功地使用了链接选择,但是现在我也想链接工具提示。

下面是一个例子。工具提示将出现在左图中。如果我可以在正确的图中显示相应的工具提示,那将是很好的。相应的数据点是具有相同ID的数据点。(有一个共享的3D列数据源;每个图采用不同的2D视图)。

在此处输入图片说明

附言 我将改进工具提示中的文本。

更新资料

最终得到如下结果:

在此处输入图片说明

python bokeh

5
推荐指数
2
解决办法
2448
查看次数

使用 plotly 在 3d 散点图中绘制 3d 框

我试图在 3d 散点图中绘制一个 3d 框。基本上,这是优化问题的结果(背景在这里)。给定所有点,该框是可能的最大空框。

在 plotly 文档中,我注意到一个使用 3dmesh 构建的 3d 立方体的示例。我复制了这个:

import plotly.graph_objects as go
x=[ 0.93855, 0.20203, 0.54967, 0.58658, 0.39931, 0.06736, 0.61786, 0.36016, 0.12761, 0.71581, 0.81998, 0.04528, 0.08231, 0.41814, 0.58679, 0.21181, 0.34489, 0.21812, 0.46830, 0.81898,
 0.57360, 0.18453, 0.99792, 0.37970, 0.51954, 0.84264, 0.22431, 0.31440, 0.23893, 0.28493, 0.76353, 0.45365, 0.44480, 0.94911, 0.98050, 0.28615, 0.02626, 0.85477, 0.60404, 0.47469,
 0.10588, 0.55919, 0.42194, 0.34432, 0.80530, 0.88291, 0.53627, 0.45454, 0.01345, 0.84411, 0.04520, 0.35532, 0.45255, 0.99365, 0.72259, 0.08634, 0.78806, 0.28674, 0.57993, 0.84025,
 0.22766, …
Run Code Online (Sandbox Code Playgroud)

python plotly

5
推荐指数
1
解决办法
1322
查看次数

为分配/指派问题建立线性规划

我在线性程序方面遇到了一些麻烦,我已经解决并使用 Excel,但现在我想在 R/Python 中执行它,因为我已经达到了 Excel 和求解器的限制。因此,我就这个特定主题寻求帮助。

我通过改变 lp.assign 函数尝试使用 lPsovle 包,但我无法想出解决方案。

问题如下:

假设我是商品的交付者。

我有不同的仓库,服务于不同的区域。这些地区必须满足他们的需求。另一方面,我的仓库的处理和交付能力受到限制。一个站点可以服务多个区域,但一个区域只能由一个站点服务。

我有仓库和区域之间连接的距离/成本矩阵以及该区域的需求。

该解决方案的目标应该是以尽可能最小的努力为这些区域提供服务。

假设成本/距离矩阵如下所示:

assign.costs <- matrix (c(2, 7, 7, 2, 7, 7, 3, 2, 7, 2, 8, 10, 1, 9, 8, 2,7,8,9,10), 4, 10)
Run Code Online (Sandbox Code Playgroud)

因此,这创建了我的矩阵,其中第一行/标题中包含客户/区域,第一列/行名称中包含仓库。

现在地区/客户的需求是:

assign.demand <- matrix (c(1,2,3,4,5,6,7,8,9,10), 1, 10)
Run Code Online (Sandbox Code Playgroud)

容量限制,存款可以提供的金额是:

assign.capacity <- matrix (c(15,15,15,15), 4, 1)
Run Code Online (Sandbox Code Playgroud)

所以现在我希望这个问题可以通过 lp 来解决,以生成分配,根据这些限制,哪个区域应该由哪个仓库提供服务。

结果应该是这样的:

assign.solution <- matrix (c(1,0,0,0 ,0,1,0,0, 1,0,0,0, 1,0,0,0 ,0,0,0,1), 4, 10)
Run Code Online (Sandbox Code Playgroud)

至于限制,这意味着每一列最多只能有一个。

我尝试使用 lpSolve 中的 lpsolve 和 lp.assign 函数,但我不知道如何实现我所拥有的确切类型的限制,并且我已经尝试更改 lp.assign 函数,但没有成功。如果有帮助的话,我还可以制定 lp 的方程。

谢谢大家的帮助,我现在真的很困难:D …

optimization r linear-programming operations-research

3
推荐指数
1
解决办法
703
查看次数

有条件的房间分配和调度任务——优化算法

我需要找到一种合适的方法作为基础,用于开发执行以下操作的优化算法:

假设我们有 N 个任务要做,我们有 M 个房间,每个房间都包含一些特定数量的基础设施/条件。每项任务都需要使用具有适合任务条件的房间。

例如,为了完成任务 A,我们需要使用水龙头和煤气管道,所以我们只能使用包含这些的房间。

此外,对于每项任务,我们都有一个预定义的截止日期。

我希望我已经解释得足够好。

所以,我需要开发一种算法,可以在适当的调度中为每个房间分配任务,这样我就可以在最短的总时间和不超过截止时间的情况下完成所有任务(如果超过是不可避免的,那么得到最少的最糟糕的答案)。

我可以基于哪些现有方法或算法并从中学习?我虽然关于“工作坊”,但我想知道是否有其他合适的算法可以处理这样的问题。

algorithm optimization scheduling linear-programming

3
推荐指数
1
解决办法
327
查看次数