Есть бункеров, то я й бин содержит я шары. Шары имеют п цветы, есть а я шары цвета я . Пусть m = ∑ n i = 1 a i .
Обмен - это взять мяч из одной корзины и поменять мяч из другой корзины. Мы хотим минимальное количество перестановок, чтобы каждый бин содержал только шары одинакового цвета.
Я знаю легкие особые случаи для всех i . (Если a i = 2 для всех i , то вы даже можете сделать это, поменяв местами каждый шар не более одного раза.)
Изменить : Это неправильно, потому что найти NP-трудно.
Если мы знаем, какой цвет подходит к какой корзине, проблема проста.
Рассмотрим мультиграф с , V = { v 1 , … , v n } . Если мы знаем, что цвет i переходит в корзину b ( i ) , то в A есть k параллельных дуг ( j , b ( i ) ), если в корзине j содержится k шаров цвета i., Каждый компонент графа эйлеров. Минимальное количество требуемых свопов является , где C ( D ) является числом циклов дуги непересекающихся , которое охватывает A . Мы можем поменяться, "следуя" по эйлеровой схеме. (обмен, использующий дугу минимального цикла, может изменить его на меньший минимальный цикл и сам цикл). После того, как весь граф настроен на собственные циклы, мы сделали все необходимые перестановки.
Насколько сложна эта проблема в целом?