r - 在 R 中生成大量组合

标签 r algorithm graph combinatorics large-data

<分区>

我有大约 700 个元素,想创建 20 个元素的组合。可能的组合总数为 [700 C 20] ~ 2.5e+38 个组合。这个大数据集属于图的规范。这是一个图形优化问题,所以,我什至想将约束应用于这组组合。

我正在使用 R!为此目的,由于它有丰富的包和大数据集处理能力。我正在使用“combinat”包。但问题是,当我尝试计算它时,出现以下错误:

combn(theDataSet,20,myFunction)
Error in matrix(r, nrow = len.r, ncol = count) : 
  invalid 'ncol' value (too large or NA)
In addition: Warning message:
In combn(theDataSet, 20, myFunction) : NAs introduced by coercion

对此问题的任何解决方案、替代包或算法表示赞赏。也许有任何处理结果的方法?

并且由于这是图形优化问题,因此也非常感谢与此相关的任何包或算法。

或者如果有任何其他工具可用于解决此类问题,请告诉我。

我是电子专业的,所以我不太了解图形优化的高级算法,我不得不采用组合方法。如果有更智能的方法来解决这个问题,我很想知道。

请帮忙。

编辑:

既然你们中的一些人一直在询问实际问题,我将只给出它的摘要,因为将我的实际作业问题发布到互联网上以逐行回答是不光彩的。

摘要:

大约有 700 个节点,每个节点每天都必须由机器人充电。机器人(放置在圆顶内)携带约 5000 单位能量的来源,每个节点需要不同的能量水平(所有节点的平均需求约为 250,但对于某些节点,它的范围从 120 单位到 500 单位不等的节点)。从节点到圆顶的距离和从一个节点到每个节点的距离是给定的(以矩阵形式,尺寸为 701x701)。每个机器人一天可以走多少是有限制的。设计算法并编写程序(以任何商用规范或封装形式),以高效计算所需机器人的数量和所有机器人的总行进距离。

最佳答案

您无法生成所有这些组合。这并不一定意味着您的整体问题无法解决。有几种方法:

  1. 用理论分析代替编程。也许您根本不需要运行该作业。
  2. 看你想用组合的结果做什么,你能不能利用它的特性来限制你需要的组合集,只生成有用的组合?
  3. 如果您可以在找到某些东西时停止下一阶段的处理,请尝试编写一个可以处理数据流并在命中时停止的算法。在生成组合时向其提供组合。

任何更具体的内容都取决于了解您打算如何处理组合过程的结果。

关于r - 在 R 中生成大量组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13441221/

相关文章:

java - Eclipse RCP 应用程序中的图形可视化

r - 设置 y 轴位置时向内对齐 y 轴标签 "right"

algorithm - 如何判断N个圆是否相交以及相交在哪一点?

在 ggplot2 中的条形图上舍入 % 标签

algorithm - 动态规划

python - 查找最大化一列总和同时限制另一列总和的数据帧行的子集

代表节点的 Svg 图像,在力有向图中改变节点大小

c++ - 在 C/C++ 中传递二维数组时出错

r - R 的 ccf 和 Julia 的 crosscor 中使用的方程是什么?

r - 创建具有多个 ifelse() 的列