Используйте минимальное количество свопов, чтобы каждая корзина содержала шарики одного цвета


13

Есть бункеров, то я й бин содержит я шары. Шары имеют п цветы, есть а я шары цвета я . Пусть m = n i = 1 a i .NяaяNaяямзнак равноΣязнак равно1Naя

Обмен - это взять мяч из одной корзины и поменять мяч из другой корзины. Мы хотим минимальное количество перестановок, чтобы каждый бин содержал только шары одинакового цвета.

Я знаю легкие особые случаи для всех i . (Если a i = 2 для всех i , то вы даже можете сделать это, поменяв местами каждый шар не более одного раза.)aя2яaязнак равно2i

Изменить : Это неправильно, потому что найти NP-трудно.c(D)

Если мы знаем, какой цвет подходит к какой корзине, проблема проста.

Рассмотрим мультиграф с , V = { v 1 , , v n } . Если мы знаем, что цвет i переходит в корзину b ( i ) , то в A есть k параллельных дуг ( j , b ( i ) ), если в корзине j содержится k шаров цвета i.D=(V,A)V={v1,,vn}ib(i)k(j,b(i))Ajki, Каждый компонент графа эйлеров. Минимальное количество требуемых свопов является , где C ( D ) является числом циклов дуги непересекающихся , которое охватывает A . Мы можем поменяться, "следуя" по эйлеровой схеме. (обмен, использующий дугу минимального цикла, может изменить его на меньший минимальный цикл и сам цикл). После того, как весь граф настроен на собственные циклы, мы сделали все необходимые перестановки.mc(D)c(D)A

Насколько сложна эта проблема в целом?

Ответы:


3

Максимальное разложение эйлерова ориентированного графа на непересекающиеся ребра циклов - NP-Hard, по крайней мере, согласно этой книге: Алгоритмы и приложения: очерки, посвященные Эско Укконену по случаю его 60-летия .

Кстати, вот статья, которая имеет отношение к проблеме, которую вы, похоже, пытаетесь решить: Асимптотически оптимальный алгоритм для алгоритма голландского национального флага .

n6


Я неправильно предположил, что мы можем найти максимальное разложение, просто пройдясь по графику, пока он не достигнет цикла, и начнем снова. Так что на самом деле эта проблема является NP-трудной в целом.
Чао Сюй
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.