Najbliższy ciąg — Closest string
W teoretycznej informatyki The najbliżej ciąg jest NP-trudne obliczeniowa problemu, który próbuje znaleźć geometrycznym środku zbioru ciągów wejściowych.
Aby zrozumieć słowo „środek”, konieczne jest zdefiniowanie odległości między dwoma strunami. Zazwyczaj ten problem jest badany z myślą o odległości Hamminga .
Formalna definicja
Bardziej formalnie, biorąc pod uwagę brak długość- m struny s 1 , s 2 , ..., y n , gdzie znajduje się łańcuch ma problemu dla nowego wzdłużnych m String s takie, że d ( s , y i ) ≤ k dla wszystkich I , gdzie d oznacza odległość Hamminga , a gdzie k jest jak najmniejsze. Problem decyzyjny wersja najbliższego problemu ciąg, który jest NP-zupełny , a nie bierze k jak innym wejściem i pytania, czy istnieje ciąg ciągu odległość Hamminga k wszystkich ciągów wejściowych.
Najbliższy problem strun może być postrzegany jako szczególny przypadek ogólnego problemu 1-centrowego, w którym odległości między elementami są mierzone za pomocą odległości Hamminga.
Motywacja
W bioinformatyce najbliższym problemem strun jest intensywnie badany aspekt problemu znajdowania sygnałów w DNA .
Uproszczenia i redukcje danych
Wystąpienia najbliższego ciągu mogą zawierać informacje, które nie są istotne dla problemu. W pewnym sensie zwykłe wejście najbliższego ciągu znaków zawiera informacje, które nie przyczyniają się do zaostrzenia problemu. Na przykład, niektóre łańcuchy zawierają postać A , ale nie zawiera w postaci Z , zastępując wszystkie a s o z y dałoby zasadniczo równoważnym przypadek, to jest: z roztworu zmodyfikowany przykład, oryginalny roztwór można przywrócić i wzajemnie.
Normalizacja wejścia
Gdy wszystkie ciągi wejściowe o tej samej długości są zapisywane jeden na drugim, tworzą macierz. Niektóre typy wierszy mają zasadniczo takie same konsekwencje dla rozwiązania. Na przykład zastąpienie kolumny wpisami ( a , a , b ) inną kolumną ( x , x , y ) może prowadzić do innego ciągu rozwiązania, ale nie może wpływać na rozwiązywalność, ponieważ obie kolumny wyrażają tę samą strukturę, mianowicie. pierwsze dwa wpisy są równe, ale różnią się od trzeciego.
Instancja wejściowe mogą być znormalizowane , zastępując, w każdej kolumnie, postać, która występuje najczęściej w , postać, która ma drugą najczęściej z B , i tak dalej. Biorąc pod uwagę rozwiązanie znormalizowanego wystąpienia, oryginalne wystąpienie można znaleźć, ponownie mapując znaki rozwiązania na jego oryginalną wersję w każdej kolumnie.
Kolejność kolumn nie przyczynia się do twardości problemu. Oznacza to, że jeśli permutujemy wszystkie ciągi wejściowe zgodnie z pewną permutacją π i otrzymamy ciąg rozwiązania s dla tej zmodyfikowanej instancji, to π -1 ( s ) będzie rozwiązaniem dla oryginalnej instancji.
Przykład
Dana instancja z trzema ciągami wejściowymi uvwx , xuwv i xvwu . Można to zapisać jako macierz w ten sposób:
| ty | v | w | x |
| x | ty | w | v |
| x | v | w | ty |
Pierwsza kolumna zawiera wartości ( u , x , x ). Ponieważ x jest najczęściej pojawiającym się znakiem, zastępujemy go a , a u , drugi najczęściej występujący znak, zastępujemy b , uzyskując nową pierwszą kolumnę ( b , a , a ). Druga kolumna zawiera wartości ( v , u , v ). Jeśli chodzi o pierwszą kolumnę, v zastępuje się a, a u zastępuje się b , otrzymując nową drugą kolumnę ( a , b , a ). Wykonanie tego samego ze wszystkimi kolumnami daje znormalizowaną instancję
| b | a | a | a |
| a | b | a | b |
| a | a | a | C |
Redukcja danych uzyskana z normalizacji
Normalizacja danych wejściowych zmniejsza rozmiar alfabetu co najwyżej do liczby ciągów wejściowych. Może to być przydatne w przypadku algorytmów, których czas działania zależy od rozmiaru alfabetu.
Przybliżalność
Li i in. wyewoluował schemat aproksymacji w czasie wielomianowym, który jest praktycznie bezużyteczny ze względu na duże ukryte stałe.
Zdolność do poruszania się przy stałym parametrze
Najbliższy ciąg można rozwiązać w , gdzie k jest liczbą ciągów wejściowych, L jest długością wszystkich ciągów, a d jest pożądaną maksymalną odległością od ciągu rozwiązania do dowolnego ciągu wejściowego.
Relacje z innymi problemami
Najbliższy ciąg jest szczególnym przypadkiem bardziej ogólnego problemu z najbliższym podłańcuchem , który jest ściśle trudniejszy. Podczas gdy najbliższy ciąg okazuje się być czytelnym dla stałych parametrów na wiele sposobów, najbliższy podłańcuch jest W[1]-trudny w odniesieniu do tych parametrów.
Bibliografia
- ^ B Lanctot J. Kevin; Li, Ming; Ma, Bin; Wang, Shaojiu; Zhang, Louxin (2003), "Wyróżniające problemy z doborem ciągów", Informacje i obliczenia , 185 (1): 41-55, doi : 10.1016/S0890-5401(03)00057-9 , MR 1994748
- ^ Bin Ma; Xiaming Słońce (2008). „Bardziej wydajne algorytmy dla problemów z najbliższymi ciągami i podciągami” (PDF) . Badania w komputerowej biologii molekularnej . 12 Ann. wewn. Konf. w sprawie badań w komputerowej biologii molekularnej (RECOMB). LNCS . 4955 . Skoczek. s. 396–409. doi : 10.1007/978-3-540-78839-3_33 . Numer ISBN 978-3-540-78838-6.
- ^ M. Li, B. Ma i L. Wang. (2002), „O problemach z najbliższym ciągiem i podciągiem”. (PDF) , Journal of the ACM , 49 (2): 157–171, arXiv : cs/0002012 , doi : 10.1145/506147.506150CS1 maint: używa parametru autorów ( link )
- ^ Jens Gramm, Rolf Niedermeier i Peter Rossmanith (2003), "Algorytmy o stałych parametrach dla najbliższego ciągu i problemy pokrewne", Algorithmica , 37 : 25-42, CiteSeerX 10.1.1.61.736 , doi : 10.1007/s00453-003- 1028-3CS1 maint: używa parametru autorów ( link )