【问题标题】:How to partition n numbers in k containers, so that they are balanced?如何对 k 个容器中的 n 个数字进行分区,以使它们保持平衡?
【发布时间】:2018-12-11 15:29:49
【问题描述】:

我有 n 个数字,我想将它们分布在 k 个容器中(每个容器中有 n/k 个数字),以使每两个容器之间的差异最小化。
1.“平衡分区”是这个问题的最佳映射吗?
2. 我发现所有关于 2 个容器的“平衡分区”讨论(例如 herehere)。如何为更多容器扩展解决方案?

【问题讨论】:

  • 那么到目前为止,尝试/研究了什么?分享您的发现。
  • @MrSmith42,如果我的 k 是 2 的幂,我可以使用分治法和分区问题(所以在每个阶段,我会将 n 个数字分成两个 2 组)
  • @juvian,感谢您的链接。在该链接中,有一个最小化遗漏项的目标函数。我没有任何目标函数,如何将其映射到线性规划?
  • @Shabnam 您的目标是最小化两个容器之间的差异。您的限制是每个容器中都有 n/k 个数字

标签: algorithm dynamic-programming


【解决方案1】:

您的问题确实是众所周知的Partition 问题的概括。 (有关该主题的更多信息,请参见例如 https://en.wikipedia.org/wiki/Partition_problem),因此这是一个 NP 难题。

你的问题,更准确地说是Multi-Way Number Partitioning,最近在很多文章中都有介绍,例如https://www.ijcai.org/Proceedings/09/Papers/096.pdfhttp://www.mysmu.edu/faculty/kyriakos/IJCAI11.pdf

【讨论】:

  • 感谢您的链接。我会看看他们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 2018-02-16
  • 2017-03-17
相关资源
最近更新 更多