Pernyataan Masalah Informal:
Diberikan string, mis. , kami ingin mewarnai beberapa huruf merah dan beberapa huruf biru (dan beberapa tidak sama sekali), sehingga hanya membaca huruf merah dari kiri ke kanan menghasilkan hasil yang sama seperti membaca hanya huruf biru.
Dalam contoh kita bisa mewarnai mereka seperti ini:
Oleh karena itu, kita katakan adalah subsequence berulang dari . Ini juga merupakan proses berulang yang terpanjang (yang mudah untuk diperiksa).
Bisakah kita menghitung urutan berulang paling lama secara efisien?
Pertanyaan Resmi:
Apakah NP-sulit untuk memutuskan untuk string dan beberapa , apakah panjang berulang ada dalam string?
- Jika demikian: Masalah mana yang dapat direduksi menjadi masalah ini?
- Jika tidak: Apa itu algoritma yang efisien? (jelas, algoritma ini kemudian dapat digunakan untuk menghitung urutan berulang yang terpanjang)
Pertanyaan Bonus:
Akankah mereka selalu menjadi pengulangan panjang jika ukuran alfabet dibatasi oleh konstanta?
(Ini diketahui benar untuk huruf biner.)
Sunting 2: Jawaban negatif untuk Pertanyaan Bonus sudah dikenal untuk alfabet ukuran minimal . Bahkan untuk huruf berukuran , ada string dengan urutan berulang paling panjang dari panjang hanya O (n · Σ ^ {- 1/2}) O ( n · Σ - 1 / 2 ) . String acak sudah cukup untuk menunjukkan ini. Hasilnya sudah ada, tetapi saya mengabaikannya.
Edit: Catatan:
Beberapa orang berarti "substring" ketika mereka mengatakan "berikutnya". Bukan saya. Ini bukan masalah menemukan substring dua kali.