Łańcuch ma podsekwencje, ale zwykle nie wszystkie są odrębne. Jaka jest złożoność znalezienia maksymalnej częstotliwości dowolnego podsekwencji?
Na przykład ciąg „podsekwencja” zawiera 7 kopii podsekwencji „sue” i jest to maksimum.
Przykładowy kod brute-force na stronie http://ideone.com/UIp3t
Czy istnieją powiązane twierdzenia strukturalne? Oba okazują się fałszywe :
- najdłuższa z podsekwencji o maksymalnej częstotliwości jest unikalna
- maksymalna częstotliwość dowolnej podsekwencji jest jednomodalna w
Ewentualnie powiązane linki:
- Zliczanie # odrębnych podciągów http://11011110.livejournal.com/254164.html
- Powiązany problem konkursowy dla wielu źródeł http://www.spoj.pl/problems/CSUBSEQS/
- Powiązany dokument http://dx.doi.org/10.1016/j.tcs.2008.08.035
Edytuj 10 dni później: dzięki za obejrzenie! Zastanawiałem się, czy może to stanowić miły problem w rozwiązaniu programistycznym w czasie wielomianowym. Chyba nie, ale mam nadzieję, że pomyślę o tym później.
ds.algorithms
string-search
daveagp
źródło
źródło
Odpowiedzi:
z wyszukiwania, oto artykuł z niektórymi badaniami i ustaleniami dotyczącymi badań na poziomie absolwentów, ale (zastrzeżenie) bez referencji. ma pewne heurystyki, szacunki, wyniki empiryczne i komentarze na temat problemu oraz kilka pomysłów na udowodnienie jego (przybliżenia) złożoności itp.
Identyfikacja najczęstszych następstw
CSE 549 Computational Biology Project Raport końcowy
Mikhail Bautin 2006
(chociaż istnieją pewne standardowe problemy dotyczące podsekwencji, które są nieco podobne i badane, np. w pracy Elzinga i in., czy jest możliwe, że ten konkretny problem podsekwencji nie był zbytnio badany?)
źródło
Nie odpowiedź, tylko lemat.
Przede wszystkim można się zastanawiać, co jest najczęstszym podciągiem ciągów takich jak 12..t12..t12..t .. Po krótkim zastanowieniu zdajemy sobie sprawę, że musi mieć również postać 12..t12..t12 .., po prostu oczywiście krótszą. Jeśli oryginalny ciąg ma długość nt, a podsekwencja tej specjalnej formy ma długość k, liczba jego wystąpień wynosi dokładnie . Oznacza to, że najczęściej występująca podsekwencja kończy się również na (tj. musi być podzielne przez ). Ale gdzie to bierze maksimum i ile to kosztuje ??? Dość kłopotliwe, ale nie mogłem tego pojąć ...(n+k−⌈k/t⌉k)=(n+k−⌈k/t⌉n−⌈k/t⌉) t k t
źródło