Розв’язування суперструнних рівно


18

Що відомо про точну складність найкоротшої проблеми суперструнних? Чи можна її розв’язати швидше, ніж O(2n) ? Чи існують відомі алгоритми, які вирішують найкоротші суперструни без зменшення до TSP?

UPD: пригнічує поліноміальні фактори.O()

Найкоротша проблема суперстрінгів - це проблема, відповідь якої - найкоротша рядок, яка містить кожну рядок із заданого набору рядків. Питання полягає в розширенні оптимізації відомої проблеми NP-hard Shortest Superstring (Garey and Johnson, p.228).


5
Що таке "суперструнна проблема"?
Jeffε

Я мав на увазі найкоротшу проблему з суперструнними, я її виправив. Дякую!
Олексій Головнєв

10
Гаразд, яка «найкоротша проблема суперструнних»? Я можу подумати про декілька проблем, які заслуговують на це ім'я, та ще декілька, які слід назвати "найкоротшою проблемою наслідків ", але, мабуть, їх немає на практиці. Дайте нам будь-який контекст, будь ласка!
Jeffε

1
Яка проблема у вас? Наприклад, якщо ви шукаєте найкоротшу супер-рядок у фрагментації генома, оскільки фрагментація генома створює обмежені графіки ширини дерева, ви можете мати швидкий алгоритм, але якщо ви просто зацікавлені швидше, ніж доступні алгоритми, ваша відповідь - ні, ви можете мати швидший алгоритм в TSP (через просте скорочення), також існує алгоритм в локально обмежених графіках ширини дерева. O(2n)
Саїд

1
@AlexGolovnev, Так, ви праві, це ATSP, але для обмеженої ширини я думаю, що це добре, щоб побачити cs.bme.hu/~dmarx/papers/marx-warsaw-fpt2 або якщо ви хочете знати більше про них, добре також дивіться алгоритмічні мета теорема
Саїд

Відповіді:


5

Якщо припустити, що струни мають поліном довжини в , то так, принаймні 2 n - Ω ( nчасове рішення. Причиною є добре відоме скорочення від найкоротшої загальної задачі суперструбних до ATSP з цілими вагами з величиною поліномів, яку ви, в свою чергу, можете вирішити шляхом поліноміальної інтерполяції, якщо зможете порахувати гамільтонові цикли у спрямованому мультиграфі. Остання задача має2n-Ω(2nΩ(n/logn)часове рішення. Björklund 20122nΩ(n/logn)

Зменшення від ATSP з вагами для кожної пари вершин u , v до підрахунку гамільтонівського циклу відбувається наступним чином:wuvu,v

Для , де w сума - це верхня межа всіх сум n ваг в екземплярі ATSP, побудуйте один графік G r, де ви заміните кожну вагу w u v на r w u v дуги на u до v .r=1,2,,wsumwsumnGrwuvrwuvuv

Вирішуючи підрахунок гамильтонов цикл для кожного , можна з допомогою поліноміальної інтерполяції побудувати многочлен Х ш суми л = 0 л г л з в л дорівнює числу TSP турів в первісному графіку ваги л . Отже місцезнаходження найменше л таке , що л ненульова вирішує проблему.Grl=0wsumalrlalllal


Дуже дякую! Я не знав цього зв’язку з підрахунком циклу Гамільтонів.
Олексій Головнєв

@AlexGolovnev: Але зменшення більш-менш те саме, що, наприклад, у результатах Кон, Готліб, Кон, які ви цитували у власній відповіді? Це просте вбудовування семірування мінімумів на цілі числа. У будь-якому випадку, дякую, що ти дав мені зрозуміти, що наступна версія мого документа повинна це чітко зазначити.
Андреас Бьорклунд

8

Я вивчив проблему і знайшов деякі результати. Найкоротші загальні суперструнні (SCS) можуть бути вирішені за час лише з поліноміальним простором ( Кон, Готліб, Кон ; Карп ; Бакс, Франклін ).2н

Найвідоміший наближення - (Палух).21130

Найвідоме наближення стиснення - (Палух).34

Якщо SCS можна наблизити до коефіцієнта над двійковим алфавітом, то він може бути наближений коефіцієнтом α над будь-яким алфавітом ( Василевська-Вільямс ).αα

SCS не можна наблизити із співвідношенням, кращим за якщо P = NP ( Карпінський, Шмід ).1.0029

Максимальне стиснення не можна наблизити зі співвідношенням, кращим за якщо P = NP ( Карпінський, Шмід ).1.0048

Буду вдячний за будь-які доповнення та пропозиції.


5

Ось найкоротша проблема суперструнних: вам надається рядків s 1 , , s n над деяким алфавітом Σ, і ви хочете знайти найкоротший рядок над Σ, який містить кожне s i як послідовність послідовних символів, тобто підрядку.ns1,,snΣΣsi

Коли ми говоримо про точні алгоритми задачі, то знаходження довжини найкоротшого суперрядка еквівалентно знаходженню максимального стиснення C, що є сумою всіх послідовних перекриттів рядків у підсумковій суперрядці, тобто C = i | s i | - L .LCC=i|si|L

Наскільки мені відомо, найшвидший точний алгоритм для найкоротших суперструнних запускається в ( 2 n ), де n - кількість рядків. Це простий алгоритм динамічного програмування, подібний до алгоритму динамічного програмування для найдовшого шляху (та інших проблем):O2nn

Для кожної підмножини рядків і рядка v в S ми обчислюємо максимальне стиснення над усіма надрядками над S, де v - перша рядок, що з’являється у надструнній, зберігаючи це як C (( v , S )). Ми робимо це, спочатку обробляючи всі підмножини лише одним елементом, а потім нарощуючи значення C (( v , S )) для підмножини S на k рядках з тих, що мають на k - 1 рядках. Конкретно:SvSSvv,Sv,SSkk1

Для кожного рядка ми дивимось всі підмножини S на k - 1 рядки, які не включають u, і встановлюємо значення для ( u , uS ) максимальним за рядками v в S суми максимальної перекриття u з v з C (( v , S )).uSk1uu,uSvSuvv,S

Кінцевий час виконання не більше O ( ), де l - максимальна довжина рядка.n22n+n2ll

Є кращі алгоритми, якщо ви припускаєте, що малий або парне перекриття мале, розмір алфавіту невеликий і т. Д., Але мені невідомий жоден алгоритм, який швидше 2 n .l2n


5
ОП знає алгоритм , він попросив швидшого рішення. O(2n)
Саїд

2
як я вже сказав, я не вірю, що швидше рішення відоме.
virgi

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