Gayri Problem Sorunu:
Bir dize verildiğinde, örneğin , bazı harfleri kırmızı, bazı harfleri mavi (ve bazılarını değil) renklendirmek istiyoruz, öyle ki sadece soldan sağa doğru kırmızı harfleri okumak aynı sonucu verir. sadece mavi harfler.
Örnekte onları şu şekilde renklendirebiliriz:
Bu nedenle, A C C A B B A B'nin tekrarlanan bir alt dizisi olduğunu söylüyoruz . Aynı zamanda en uzun tekrarlanan alt dizilerden biridir (kontrol edilmesi kolaydır).
Tekrarlanan en uzun alt ekleri verimli bir şekilde hesaplayabilir miyiz?
Resmi Soru:
Bir dize ve bazıları için karar vermek NP-zor mu uzunluğu bir tekrarlanan altdizi olsun, dize var?
- Eğer öyleyse: Hangi problem bu soruna indirgenebilir?
- Değilse: Verimli bir algoritma nedir? (Açıkçası, bu algoritma daha sonra tekrarlanan en uzun bir sırayı hesaplamak için kullanılabilir)
Bonus soru:
Alfabenin büyüklüğü sabit tarafından sınırlandırılmışsa , her zaman uzunluğunun tekrarlanan bir alt dizisi olacak mı?
(Bu ikili alfabe için doğru olduğu bilinmektedir.)
Düzenleme 2: Bonus Soru'a verilen olumsuz cevap, en az büyüklüğünde alfabe için zaten bilinir . Boyutu alfabe için Aslında Σ , sadece bir uzunluğu en uzun tekrarlı dizilerinden olan diziler bulunmaktadır O ( n, · Σ - 1 / 2 ) . Rasgele dizeler bunu göstermek için yeterlidir. Sonuç zaten vardı, ama göz ardı ettim.
Düzenleme: Not:
Bazı insanlar "sıra" derken "alt dize" anlamına gelir. Yapmıyorum. Bu, iki kez alt dizgiler bulmakta sorun değil.