我有一个问题,我一直坚持,并且无法找到任何地方开始,所以我绝望地转向stackoverflow。
问题要求我们找出它是np-hard还是多项式,如果它的np-hard证明np-completeness,否则给出算法。
问题如下:
产品存在n个模块。有两家公司可以建立每个模块,有一些成本(c_ij,i:模块编号,j:公司编号)。如果模块a和b由不同的公司构建,它们还有额外的成本(p_ab)。模块a和b不必是连续的,同样的额外成本也适用于a和c。正如预期的那样,问题是我们要找到公司的模块分配,以便总成本最低。
任何想法?
答案 0 :(得分:1)
它可以简化为最小切割问题,可以通过任何最大流量算法找到。 那什么是网络? 模块将是我们图形的椎体,我们还添加了2个新的顶点源和接收器。 从源头我们为每个具有容量Ci1的模块添加边缘。类似地,从每个模块i,我们将边缘添加到具有容量Ci2的接收器。同样对于任何模块i和j,我们添加容量pij的边缘 (因此图形定向将有两条边(i j)和(j i))。很容易看出min cut的价值是问题的解决方案(部分切割的模块将源分配给第二家公司,其余模块分配给第一家公司)