Переміщення двох рядків утворюється шляхом перекреслення символів у новий рядок, зберігаючи символи кожної рядки в порядку. Наприклад, MISSISSIPPI
є перетасування MISIPP
та SSISI
. Дозвольте мені назвати квадрат рядка, якщо це перетасування двох однакових рядків. Наприклад, ABCABDCD
є квадрат, тому що це перетасовка ABCD
і ABCD
, але рядок ABCDDCBA
не є квадратом.
Чи є швидкий алгоритм для визначення того, чи є рядок квадратним, чи це NP-жорстко? Очевидний динамічний підхід до програмування, здається, не працює.
Навіть такі особливі випадки здаються важкими: (1) рядки, в яких кожен символ з’являється не більше чотирьох шести разів, і (2) рядки з лише двома різними символами. Як зауважує Пер Австрін нижче, особливий випадок, коли кожен символ трапляється не більше чотирьох разів, можна зменшити до 2SAT.
Оновлення: Ця проблема має ще одну рецептуру, яка може полегшити доказ твердості.
Розглянемо графік G, вершинами якого є цілі числа від 1 до n; ідентифікуйте кожен край з реальним інтервалом між його кінцевими точками. Ми говоримо, що два ребра G вкладені, якщо один інтервал належним чином містить інший. Наприклад, ребра (1,5) та (2,3) вкладені, але (1,3) та (5,6) - ні, а (1,5) та (2,8) - ні. Збіг у G не вкладений, якщо не вкладено жодної пари ребер. Чи є швидкий алгоритм, щоб визначити, чи G має вкладене ідеальне узгодження, чи це проблема NP-жорстка?
Розміщення рядка еквівалентно знаходженню вкладеного ідеального узгодження у розрізненому об'єднанні кліків (з ребрами між рівними символами). Зокрема, розгортання бінарного рядка еквівалентно знаходженню вкладеного ідеального узгодження у розрізненому об'єднанні двох кліків. Але я навіть не знаю, чи ця проблема є складною для загальних графіків чи легкою для будь-яких цікавих класів графіків.
Існує простий алгоритм поліноміальний час , щоб знайти ідеальний непро- перетину паросполучення.
Оновлення (24 червня 2013 р.): Проблема вирішена! Зараз існує два незалежних докази того, що ідентифікація квадратних рядків не є повною NP.
У листопаді 2012 року Сем Бус та Майкл Солтис оголосили про зменшення з 3-х розділів , що свідчить про те, що проблема є складною навіть для рядків над 9-символьним алфавітом. Див. "Розміщення площі - це важке значення ", Журнал комп'ютерних системних наук 2014.
У червні 2013 року Ромео Різзі та Стефан Віалет опублікували скорочення від найдовшої поширеної проблеми з подальшими наслідками . Див. " Про розпізнавання слів, що є квадратами для продукту перетасування ", Зб. 8-й Міжнародний симпозіум з інформатики в Росії , Springer LNCS 7913, с. 235–245.
Існує також більш просте доказ , що знаходження невложенних зроблене паросполучення є NP-важкою, з - за Шуай Чен Лі і Мін Лі в 2009 році приведені в розділі « Про двох відкритих завданнях 2-інтервальних моделей », теоретична інформатика 410 (24-25 ): 2410–2423, 2009.