各ビンに同じ色のボールが含まれるように、最小数のスワップを使用します


13

ビンがあり、i番目のビンにi個のボールが含まれています。ボールを持っているn個の色があるの色のボールを私は。ましょう、M = Σ N iは= 1のInanam=i=1nai

スワップとは、あるビンからボールを​​取り、別のビンからボールと交換することです。各ビンに同じ色のボールのみが含まれるように、最小数のスワップが必要です。

私は簡単な特殊なケースを知っている2すべてのための私を。(すべてのiについてa i = 2の場合各ボールを最大で1回交換することでもできます。)ai2iai=2i

編集見つけることはNP困難なので、これは間違っています。c(D)

どの色がどのビンに行くかがわかれば、問題は簡単です。

複数の有向グラフV = { v 1v n }を考えます。色iがビンb i に行くことがわかっている場合、ビンjが色iのk個のボールを含む場合、Aにはk個の平行な弧j b i がありますD=(V,A)V={v1,,vn}ib(i)k(j,b(i))Ajki。グラフの各コンポーネントはオイラーです。必要なスワップの最小数は。ここで、c D Aをカバーするアーク独立サイクルの数です。オイラー回路を「フォロー」することで交換できます。(最小サイクルのアークを使用したスワップは、それをより小さな最小サイクルと自己ループに変更できます)。グラフ全体が自己ループのセットになったら、必要なすべてのスワップを作成しました。mc(D)c(DA

一般にこの問題はどれほど難しいですか?

回答:


3

オイラーの有向グラフのエッジ素因数分解サイクルへの最大分解は、少なくともこの本によると、NP-ハードです:アルゴリズムとアプリケーション:60歳の誕生日にEsko Ukkonenに捧げられたエッセイ

ところで、ここにあなたが解決しようとしていると思われる問題に関連する記事があります:オランダ国旗アルゴリズムの漸近的に最適なアルゴリズム

以下のため、紙は、単純なアルゴリズムを提供します。n6


グラフがサイクルに達するまで歩くだけで最大の分解を見つけることができると誤って仮定し、再び開始します。したがって、実際、この問題は一般にNP困難です。
チャオシュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.