使用最少的交换次数,以便每个垃圾箱包含相同颜色的球


13

有垃圾箱,第个垃圾箱包含球。球有种颜色,有球,颜色为。令。niainaiim=i=1nai

交换是从一个垃圾箱取一个球,然后与另一个垃圾箱交换一个球。我们希望交换的数量最少,以使每个垃圾箱仅包含相同颜色的球。

我对所有都知道一个简单的特殊情况。(如果所有,那么您甚至可以最多交换一次每个球来做到这一点。)ai2iai=2i

编辑:这是错误的,因为找到是NP困难的。c(D)

如果我们知道哪种颜色进入哪个容器,问题就很容易了。

考虑多图,。如果我们知道颜色去仓,然后有平行弧在 IFF斌包含颜色的球。图的每个组成部分都是欧拉。所需的最小交换次数是,其中是覆盖的弧不相交循环的数量D=(V,A)V={v1,,vn}ib(i)k(j,b(i))Ajkimc(D)c(D)A。我们可以通过“跟随”欧拉回路进行交换。(使用最小周期的弧进行交换可以将其更改为较小的最小周期和自循环)。一旦整个图形设置了自环,我们就进行了所有必要的交换。

这个问题通常有多难?

Answers:


3

至少根据本书:算法和应用:献给Esko Ukkonen六十岁生日的论文,将欧拉有向图的最大分解为边不相交的循环是NP-Hard 。

顺便说一句,这是一篇与您似乎要解决的问题有关的文章:荷兰国旗算法的渐近最优算法

对于,本文给出了一个简单的算法。n6


我错误地认为,只要在图上行走直到达到周期,然后重新开始,我们就能找到最大的分解。因此,实际上这个问题通常是NP难题。
赵超
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.