Dichiarazione di problema informale:
Data una stringa, ad esempio , vogliamo colorare alcune lettere in rosso e alcune in blu (e alcune in nessun caso), in modo tale che leggere solo le lettere rosse da sinistra a destra produca lo stesso risultato della lettura delle sole lettere blu.
Nell'esempio possiamo colorarli in questo modo:
Pertanto, diciamo che è una ripetuta di . È anche una sottosequenza ripetuta più lunga (che è facile da controllare).A C C A B B A B
Possiamo calcolare efficientemente le sottosequenze ripetute più lunghe?
Domanda formale:
NP è difficile decidere per una stringa e qualche , se nella stringa esiste una sottosequenza ripetuta di lunghezza ?k
- In tal caso: quale problema può essere ridotto a questo problema?
- In caso contrario: che cos'è un algoritmo efficiente? (ovviamente, questo algoritmo può quindi essere utilizzato per calcolare una sottosequenza ripetuta più lunga)
Domanda bonus:
La loro sarà sempre una sottosequenza ripetuta di lunghezza se la dimensione dell'alfabeto è delimitata da una costante?
(Questo è noto per gli alfabeti binari.)
Modifica 2: la risposta negativa alla domanda bonus è già nota per alfabeti di dimensioni almeno . In effetti per alfabeti di dimensione Σ , ci sono stringhe con sottosequenze ripetute più lunghe di una lunghezza di solo O (n · Σ ^ {- 1/2}) . Le stringhe casuali sono sufficienti per dimostrarlo. Il risultato esisteva già, ma l'ho trascurato.
Modifica: Nota:
Alcune persone significano "sottostringa" quando dicono "sottosequenza". Io non. Questo non è il problema di trovare due sottostringhe.