Зіставлення шаблону з не турбує: кілька моделей


9

Двосторінковий документ SODA Kalai дає простий та ефективний алгоритм для узгодження шаблону з небайдужими (макіяжними символами, які відповідають одному символу). По суті, це так просто, як згортання.

Але що станеться, якщо ми шукаємо декілька шаблонів, не цікавлячись? Чи можемо ми все-таки якось вирішити це, наприклад, на основі методів FFT?

Відповіді:


5

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

Нагадаємо, що задані набори S1,S2,…,Sн і Т1,Т2,…,Тн над Всесвітом [м], якби ми могли вирішити, чи є Si і Тj такий як Si∪Тj=[м] вчасно О(н2-εполі⁡(м)), тоді SETH виходить з ладу, тобто у нас є алгоритм CNF-SAT з часом роботи О∗(2(1-ε/2)н).

Дано набори S1,S2,…,Sн і Т1,Т2,…,Тн, ми кодуємо вищевказану проблему як узгодження декількох шаблонів, не дбаючи про двійковий алфавіт, наступним чином:

  • Текст є
    1[Т1]10м+21[Т2]10м+2…0м+21[Тн]1,
    де [Тi] є природним кодуванням Тi як двійковий рядок.
  • Ми маємо н візерунки форми 1⟨Si⟩1, де ⟨Si⟩ - це рядок у=у1у2…ум такий як уj=1 якщо j∉Si і уj=∗ якщо j∈Si (тут ∗ символ небайдужих).

Тепер зрозуміло, що закономірність 1⟨Si⟩1 може відповідати тексту при появі 1[Тj]1і лише коли Si∪Тj=[м]. Загальна довжина шаблонів і довжина тексту - обидваО(нм), наприклад, таким чином, майже лінійний алгоритм однопрохідного режиму для декількох шаблонів міг би значно покращитись у порівнянні з найбільш відомими алгоритмами CNF-SAT ...

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

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