Використовуйте мінімальну кількість свопів, щоб кожен контейнер містив кульки одного кольору


13

Є бункерів, то я й бін містить я кулі. Кулі мають п квіти, є а я кулі кольору я . Нехай m = n i = 1 a i .niainaiim=i=1nai

Своп - це взяти кулю з однієї бункера і поміняти кульку з іншої. Ми хочемо мінімальної кількості свопів, щоб кожен контейнер містив тільки кульки одного кольору.

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

Редагувати : Це неправильно, оскільки пошук є NP-важким.c(D)

Якщо ми знаємо, який колір йде в який контейнер, проблема проста.

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

Наскільки важка ця проблема взагалі?

Відповіді:


3

Максимальне розкладання ейлерового спрямованого графа на крайові непересічні цикли є NP-Hard, принаймні відповідно до цієї книги: Алгоритми та програми: Нариси, присвячені Еско Укконену з нагоди його 60-річчя від дня народження .

btw, ось стаття, що стосується проблеми, яку ви, схоже, намагаєтеся вирішити: асимптотично оптимальний алгоритм алгоритму національного прапора Голландії .

n6


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