Use o número mínimo de trocas para que cada compartimento contenha bolas da mesma cor

13

Existem caixotes, o i th bin conter um i bolas. As bolas tem n cores, há um i bolas de cor i . Deixe m = Σ n i = 1 um i .nEuumaEunumaEuEum=Eu=1numaEu

Uma troca é pegar uma bola de uma caixa e trocar com uma bola de outra caixa. Queremos um número mínimo de trocas, de modo que cada compartimento contenha apenas bolas da mesma cor.

Conheço casos especiais fáceis para todos os i . (Se um i = 2 para todo i , então você pode até mesmo fazê-lo, trocando cada bola no máximo uma vez.)umaEu2EuumaEu=2Eu

Edit : Isso está errado, porque encontrar é NP-difícil.c(D)

Se soubermos qual cor vai para qual compartimento, o problema é fácil.

Considere um multi-dígrafo , V = { v 1 , , v n } . Se sabemos que a cor i vai para o bin b ( i ) , então existem k arcos paralelos ( j , b ( i ) ) em A iff bin j contém k bolas da cor iD=(V,A)V={v1,,vn}ib(i)k(j,b(i))Ajki. Cada componente do gráfico é euleriano. O número mínimo de permutas necessários é , onde c ( D ) é o número de ciclos disjuntos de arco que abrange um . Podemos trocar "seguindo" um circuito euleriano. (uma troca usando um arco de um ciclo mínimo pode alterá-lo para um ciclo mínimo menor e um loop automático). Depois que todo o gráfico é definido como auto-loops, fizemos todos os swaps necessários.mc(D)c(D)UMA

Quão difícil é esse problema em geral?

Chao Xu
fonte

Respostas:

3

A decomposição máxima de um gráfico direcionado euleriano em ciclos disjuntos de arestas é NP-Hard, pelo menos de acordo com este livro: Algoritmos e aplicações: ensaios dedicados a Esko Ukkonen por ocasião de seu aniversário de 60 anos .

btw, aqui está um artigo relevante para o problema que você parece estar tentando resolver: algoritmo assintoticamente ideal para o algoritmo de bandeira nacional holandesa .

Para , o artigo fornece um algoritmo simples.n6

Aryabhata
fonte
Eu assumi incorretamente que podemos encontrar uma decomposição máxima apenas andando no gráfico até que ele atinja um ciclo e inicie novamente. Então, de fato, esse problema é difícil de NP em geral.
precisa