(Велике спасибі Гіладу Баркану (גלעד ברקן) за те, що він дав мені знати про цю дискусію.)
Дозвольте мені поділитися своїми думками щодо цієї проблеми з чисто теоретичної точки зору (зауважте, що я також використовую «фактор» замість «підслова»).
Я думаю, що достатньо формальним визначенням проблеми (або проблем), що розглядається тут, є наступне:
Давши слово w, знайдіть слова u_1, u_2, ..., u_k такі, що
- u_i! = u_j для кожного i, j з 1 <= i <j <= k і
- u_1 u_2 ... u_k = w
Варіант максимізації (ми хочемо, щоб багато u_i): максимізував k
Варіант мінімізації (ми хочемо короткого u_i): мінімізувати максимум {| u_i | : 1 <= i <= k}
Ці проблеми стають проблемами вирішення, додатково даючи пов'язану B, яка відповідно до того, чи говоримо ми про "багатофакторну" -варіантну або "коротку фактори" -варіантну, є нижньою межею k (ми хочемо принаймні B факторів) або верхня межа макс {| u_i | : 1 <= i <= k} (ми хочемо, щоб коефіцієнти довжини були не більше B) відповідно. Якщо говорити про твердість NP, нам потрібно поговорити про проблеми рішення.
Давайте використовуємо терміни SF для "коротких факторів" -варіант і MF для "багатьох факторів" -варіант. Зокрема, і це дійсно вирішальний момент, проблеми визначаються таким чином, що ми отримуємо слово над деяким алфавітом, який жодним чином не обмежений. Версія проблеми, коли ми апріорі знали, що ми отримуємо лише вхідні слова над, скажімо, алфавітом {a, b, c, d} - це інша проблема! NP-твердість не переходить автоматично від "необмеженого" до "фіксованого алфавіту" (останній може бути простішим).
І SF, і MF - це проблеми, що не стосуються NP. Це було показано у [1, 1b] та [2] відповідно (як уже вказував Гілад). Якщо я зрозумів (можливо, занадто) неофіційне визначення проблеми тут на початку цієї дискусії правильно, то проблема цієї дискусії - саме проблема МФ. Спочатку не згадується, що слова можуть походити з якоїсь фіксованої абетки, пізніше йдеться про те, що ми можемо вважати, що використовуються лише малі літери. Якщо це означає, що ми розглядаємо лише слова над фіксованим алфавітом {a, b, c, ..., z}, то це фактично змінило б насправді з точки зору твердості NP.
При ближчому розгляді виявляються деякі відмінності в складності СФ та ПН:
- стаття [1, 1b] показує, що SF залишається NP-завершеним, якщо ми зафіксуємо алфавіт до двійкового (точніше: отримавши слово w над літерами a і b і пов'язаним B, чи можемо ми поділити його на різні коефіцієнти довжини при найбільше Б?).
- документ [1, 1b] показує, що SF залишається NP-повним, якщо ми фіксуємо пов'язану B = 2 (точніше: отримавши слово w, чи можемо ми його розрізнити на різні коефіцієнти довжини не більше 2?).
- Папір [3] показує, що якщо і алфавіт, і зв'язаний В є фіксованими, то SF може бути розв’язаний у багаточлен.
- Папір [2] показує, що MF є NP-повним, але лише якщо алфавіт не обмежений або фіксований апріорі! Зокрема, він не дає відповіді на питання, чи проблема не є повною NP, якщо ми розглянемо лише вхідні слова над деяким фіксованим алфавітом (як це зазвичай буває у практичних налаштуваннях).
- Папір [3] показує, що MF може бути розв’язаний у поліноміальний час, якщо вхідні межі B знову будуть обмежені деякою постійною, тобто задачею введення є слово і пов'язане B з {1, 2, ..., K} , де K - деяка фіксована константа.
Деякі зауваження до цього результату: Wrt (1) та (2), інтуїтивно зрозуміло, що якщо алфавіт є двійковим, то, щоб зробити проблему SF важкою, пов'язану B також неможливо виправити. І навпаки, виправлення B = 2 означає, що розмір алфавіту повинен бути досить великим, щоб отримати складні екземпляри. Як наслідок, (3) є досить тривіальним (насправді [3] говорить трохи більше: ми можемо вирішити це за час роботи не тільки многочлена, але й | w | ^ 2 рази від коефіцієнта, який залежить лише від розміру алфавіту і зв'язаний В). (5) також не є складним: якщо наше слово довге порівняно з B, то ми можемо отримати бажану факторизацію, просто розбившись на фактори різної довжини. Якщо ні, то ми можемо жорстоко форсувати всі можливості, що є експоненціальними лише у B, що в даному випадку вважається постійним.
Таким чином, картина у нас така: SF здається складнішим, оскільки у нас є твердість навіть для фіксованих алфавітів або для фіксованого зв’язку B. Проблема MF, з іншого боку, стає вирішеною в полі часу, якщо обмежена фіксація (в з цього приводу простіше, ніж SF), тоді як відповідне запитання про розмір алфавіту відкрите. Таким чином, MF трохи менш складний, ніж SF, навіть якщо виявиться, що MF для фіксованих алфавітів також є NP-повним. Однак, якщо можна показати, що MF можна вирішити для фіксованих алфавітів у багаторазовий час, тоді MF виявляється набагато простіше, ніж SF ... тому що один випадок, для якого це важко, є дещо штучним (необмежений алфавіт!) .
Я доклав певних зусиль, щоб спробувати вирішити випадок MF з обмеженим алфавітом, але я не зміг його вирішити і з того часу перестав працювати над ним. Я не вірю, що інші дослідники дуже намагалися її вирішити (тому це не одна з цих дуже важких відкритих проблем; багато людей вже намагалися і не вдалися; я вважаю це якось здійсненним). Я можу здогадатися, що це також NP-важко для фіксованих алфавітів, але, можливо, скорочення настільки складне, що ви отримаєте щось на кшталт "MF важко для алфавітів розміром 35 або більше" або щось таке, що не було б і дуже приємно .
Щодо подальшої літератури, я знаю статтю [4], яка розглядає проблему роздвоєння слова w на різні фактори u_1, u_2, ..., u_k - всі паліндри, що також є NP-завершеним.
Я швидко переглянув папір [5], на який вказував Гілад. Здається, це враховує іншу обстановку. У цій роботі авторів цікавить комбінаторне питання про те, скільки різних підрядів або підслів може міститися в даному слові, але вони можуть перетинатися. Наприклад, aaabaab містить 20 різних підслов a, b, aa, ab, ba, bb, aaa, aab, aba, baa, aaab, aaba, абаа, baab, aaaba, aabaa, abaab, aabaab, aaabaa, aaabaab (можливо, я неправильно рахувати, але ви розумієте). Деякі з них мають лише одне явище, як baa, деякі з них кілька, як aa. У будь-якому випадку, питання полягає не в тому, як ми можемо якось розділити слово, щоб отримати багато різних факторів, оскільки це означає, що кожен окремий символ сприяє рівно одному фактору.
Що стосується практичного вирішення подібних проблем (майте на увазі, що я теоретик, тому прийміть це із зерном солі):
Наскільки мені відомо, немає жодних теоретичних нижчих меж (наприклад, твердість NP), які виключали б рішення МФ у поліноміальний час, якщо ми розглянемо лише вхідні слова через фіксований алфавіт. Однак є одне застереження: Якщо ви отримуєте алгоритм багаторазового часу, то він повинен працювати експоненціально в кількості символів фіксованого алфавіту (або експоненціальної в деякій функції цього)! Інакше це був би також поліноміальний алгоритм часу для випадку безмежних алфавітів. Отже, будучи теоретиком, я б шукав алгоритмічні завдання, які можна обчислити в експоненціальному часі лише за умови, що кількість символів і якимось чином допоможуть розробити алгоритм для MF. З іншого боку, ймовірно, що такого алгоритму не існує, і MF також є жорстким NP у випадку фіксованого алфавіту.
Якщо ви зацікавлені в практичних рішеннях, можливо, буде корисно наблизити рішення. Тож отримати факторизацію, яка гарантовано буде лише вдвічі більшою, ніж оптимальна, в гіршому випадку не буде дуже поганою.
Евристика, яка не дає переліченого коефіцієнта наближення, але добре працює в практичній обстановці, також була б цікава.
Трансформація проблемних примірників у SAT або ILP-інстанції не повинна бути надто складною, і тоді ви можете запустити SAT або ILP-Solver, щоб навіть отримати оптимальні рішення.
Моя особиста думка полягає в тому, що, хоча невідомо, чи є випадок МФ з фіксованим алфавітом NP-важким, є достатньо теоретичних висновків, які дозволяють припустити, що проблема є досить важкою, щоб було обґрунтовано шукати евристичні рішення тощо. добре працювати в практичній обстановці.
Бібліографія:
[1] Енн Кондон, Ян Манух, Кріс Тачук: Складність розподілу рядків. Дж. Дискретні алгоритми 32: 24-43 (2015)
[1b] Енн Кондон, Ян Манух, Кріс Тачук: Складність проблеми, що усвідомлює колізію, і струнко-стрункову зв'язок із дизайном Оліго для синтезу генів. КОКОН 2008: 265-275
[2] Геннінг Фернау, Флорін Манеа, Роберт Меркас, Маркус Л. Шмід: Узгодження картини зі змінними: швидкі алгоритми та нові результати твердості. STACS 2015: 302-315
[3] Маркус Л. Шмід: Обчислення безвізних і повторюваних струнних факторізацій. Теорія. Обчислення. Наук. 618: 42-51 (2016)
[4] Hideo Bannai, Travis Gagie, Shunsuke Inenaga, Juha Kärkkäinen, Dominik Kempa, Marcin Piatkowski, Shiho Sugimoto: Різноманітна паліндромна факторизація завершена NP. Int. J. Знайдено. Обчислення. Наук. 29 (2): 143-164 (2018)
[5] Авраам Флексман, Арам Веттрот Борона, Грегорі Б. Соркін: Струни з максимально багатьма чіткими наслідками та підрядками. Електр. Дж. Гребінь. 11 (1) (2004)
aab|a|b|aaце все ще 4