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


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м+20м+21[Тн]1,
    де [Тi] є природним кодуванням Тi як двійковий рядок.
  • Ми маємо н візерунки форми 1Si1, де Si - це рядок у=у1у2ум такий як уj=1 якщо jSi і уj= якщо jSi (тут символ небайдужих).

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

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

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