Неформальна постановка проблеми:
Враховуючи рядок, наприклад , ми хочемо пофарбувати деякі букви в червоний колір, а деякі - в синій (а деякі зовсім не такі), щоб читати лише червоні ліворуч зліва направо - такий же результат, як і читання лише синіх літер.
У прикладі ми можемо їх пофарбувати так:
Отже, ми кажемо, що є повторною сукупністю . Це також найдовша повторювана послідовність (що легко перевірити).A C C A B B A B
Чи можемо ми обчислити найбільш довго повторювані підряди ефективно?
Формальне запитання:
Чи важко визначити NP для рядка і , чи існує в рядку повторне підряд довжини ?k
- Якщо так: яку проблему можна звести до цієї проблеми?
- Якщо ні: що таке ефективний алгоритм? (очевидно, що цей алгоритм може бути використаний для обчислення найбільш тривалої послідовності)
Питання про бонус:
Чи завжди їх буде повторне підряд довжиною якщо розмір алфавіту обмежений постійною?
(Відомо, що це стосується двійкових алфавітів.)
Редагувати 2: Від'ємна відповідь на питання про бонус вже відома алфавітам розміром не менше . Насправді для алфавітів розміром Σ існують рядки з найдовшими повторюваними послідовностями довжиною просто O (n · Σ ^ {- 1/2}) . Випадкових рядків достатньо, щоб це показати. Результат вже існував, але я його не помітив.
Редагувати: Примітка:
Деякі люди мають на увазі «підрядку», коли кажуть «підряд». Я не. Це не проблема пошуку підрядків двічі.