Algorithm 这个问题是NP难的吗?

Algorithm 这个问题是NP难的吗?,algorithm,optimization,dynamic-programming,traveling-salesman,Algorithm,Optimization,Dynamic Programming,Traveling Salesman,我正试图为这个问题提出一个合理的算法: 假设你有一堆球。每个球至少有一种颜色,但也可以是多色的。每个球上都有一个数字。还有一堆盒子,每个盒子只有一种颜色。目标是最大化盒子中球上数字的总和,唯一的规则是: 为了把球放进盒子里,它 至少要有盒子的颜色 在上面 每个球只能放一个球 盒子 例如,可以将蓝色和绿色的球放入蓝色框或绿色框中,但不能放入红色框中 我提出了一些优化,在运行时间方面有很大帮助。例如,可以按点值的降序对球进行排序。然后,当你从最高数字到最低数字时,如果球只有一种颜色,并且没有其他

我正试图为这个问题提出一个合理的算法:

假设你有一堆球。每个球至少有一种颜色,但也可以是多色的。每个球上都有一个数字。还有一堆盒子,每个盒子只有一种颜色。目标是最大化盒子中球上数字的总和,唯一的规则是:

  • 为了把球放进盒子里,它 至少要有盒子的颜色 在上面
  • 每个球只能放一个球 盒子
例如,可以将蓝色和绿色的球放入蓝色框或绿色框中,但不能放入红色框中

我提出了一些优化,在运行时间方面有很大帮助。例如,可以按点值的降序对球进行排序。然后,当你从最高数字到最低数字时,如果球只有一种颜色,并且没有其他更高点的球包含该颜色,你可以将其放入该框中(从而从其余组合中删除该框和该球)

我只是好奇,对于这类问题,是否有某种动态算法,或者它只是一个伪装的旅行推销员问题。如果我知道最多有X种颜色会有帮助吗?非常感谢您的帮助。谢谢


编辑-以下是一个简单的示例:

球:

  • 1个红球-5分
  • 1个蓝球-3分
  • 1个绿色/红色球-2分
  • 1个绿色/蓝色球-4分
  • 1个红色/蓝色球-1分
方框:

  • 1红色
  • 1蓝色
  • 1绿色
最佳解决方案:

  • 红色盒子里的红色球
  • 蓝色盒子里的蓝色球
  • 绿色/绿色盒子中的蓝色球

    总价值:12分(5+3+4)


    • 这是一种特殊情况。构造一个图,其左顶点对应于球,右顶点对应于框,边连接一个球和一个权重为V的框,其中V是球上的数字(如果球可以放置在框中),否则为0。添加额外的长方体或球连接到另一侧,边的权重为零,直到每一侧的顶点数相同为止。您要查找的赋值由结果图中最大(总)权重匹配中非零权重的边集确定


      赋值算法可以在O(n^3)时间内求解,其中n是球或盒子数量的最大值,使用。(顺便说一句,我应该声明我只提到匈牙利算法,因为这是我碰巧熟悉的理论结果,它大概回答了标题中的问题,即原始问题是否为NP难问题。我不知道这是否是实践中使用的最佳算法。)

      你尝试过贪婪alg吗? 按点/值排序,并尽可能放入框中。
      如果我遗漏了任何例外情况,我希望看到它们。

      因为所有的球都有一个盒子要放进去,所以所有的组织都有相同的分值,对吗?或者我遗漏了什么?你能详细说明一下“最大化盒子里所有数字的总和”的目标吗。是否要最大化单个长方体?你总是使用所有可用的球吗?你到底想优化什么?特定框中的值之和?所有盒子上的值之和?@TaslemGuy:哦,对不起,你不能保证每个球都能放进盒子里。例如,您可能有一个红色的球和一个蓝色的球,但只有一个蓝色的盒子。您可能希望添加一个备注,说明您只能在盒子中放置一个球。另一个链接:哇,这看起来很有希望!我需要花一些时间来消化这个问题,并尝试实现它,但非常感谢!让我试着更进一步。。。假设第一个目标是最大化放置在箱子里的球的数量,然后平局破坏者将是最大的总和。这在多项式时间内仍然是可解的吗?负边权重不应影响解决最大权重匹配问题的算法。即使他们这样做了,您也可以通过向每个边权重添加足够大的常量,轻松地将具有负边权重的最大权重匹配问题的实例转换为具有非负权重和相同最佳匹配的实例。(续)谢谢里德,在我发表评论后,我也意识到了消极的边缘权重,所以我删除了它并重新表述了我的问题(在你的评论上方)。假设你有一个红球/绿球值10分,一个红球值5分。你有一个绿色的盒子和一个红色的盒子。使用贪婪算法,首先将红色/绿色球放入红色框中,然后无法将红色球放置在任何位置:(是的,但我相信你错了。当使用贪婪的alg时,你可以将红/绿球放入绿框,当有更多选项时,你如何选择处理它取决于你。贪婪只是希望你在放置5分球之前放置10分球。如果你必须考虑你将来的移动,这是一个错误。)贪婪算法之所以高效,是因为它们与变革一样,能够完全忽略未来,做出任何可能在这一轮中获得最高回报的选择。