Come spesso accade per le riduzioni di NP, ha senso cercare problemi simili . In particolare, è difficile codificare condizioni globali tali che "hanno visto alcuni nodi" in PCP (con polinomialmente molti riquadri) che controindicano i problemi dei grafici, i problemi di impacchettamento ci richiederebbero di codificare numeri unari in PCP (creando istanze esponenzialmente grandi), e presto. Pertanto, ci si può aspettare che un problema di stringa con solo restrizioni locali funzioni meglio.
Considera la versione decisionale del problema di supersequenza comune più breve :
Dato due stringhe con | a | = n e | b | = m e k ∈ N , decidi se esiste una stringa c ∈ Σ + con | c | ≤ k tale che un e b sono sottosequenze di c .a,b∈Σ+|a|=n|b|=mk∈Nc∈Σ+|c|≤kabc
L'idea è quella di lasciare supersequences PCP compilazione di e B da sinistra a destra, la codifica in sovrapposizioni delle piastrelle in quale posizione ci troviamo in un e b , rispettivamente. Userà una tessera per simbolo in c , quindi k corrisponde al limite del BPCP: se possiamo risolvere questo PCP con tessere ≤ k , puoi leggere la supersequenza comune di uguale lunghezza e viceversa.ababck≤k
La costruzione delle piastrelle è un po 'noiosa, ma abbastanza chiara. Nota che non creeremo tessere che non inoltrano o b ; tali non possono mai far parte di una supersequenza comune più breve , quindi sono superflui. Possono essere facilmente aggiunti senza rompere le proprietà della riduzione.ab
I numeri nelle sovrapposizioni sono codificati in binario, ma usando simboli al di fuori di e riempiendoli con un log di lunghezza comune max ( m , n ) . Pertanto assicuriamo che le tessere vengano utilizzate come suggerito dalla grafica (tetris), ovvero i caratteri e le sovrapposizioni di codifica dell'indice non si mescolano (PCP non lo impedisce di per sé). Abbiamo bisogno:Σlogmax(m,n)
- Piastrelle di inizio: può iniziare con un 1 , b 1 o entrambi se sono uguali.ca1b1
- Tessere intermedie: può procedere con il simbolo successivo in a , in b o entrambi se sono uguali.cab
- Tessere che terminano : termina con l'ultimo simbolo di a (se è già stato visto l'ultimo di b ), simile per b , o con l'ultimo simbolo di entrambi.cabb
Questi sono gli schemi delle piastrelle. Nota che le tessere intermedie devono essere istanziate per tutte le coppie . Come accennato in precedenza, creare le piastrelle senza * solo se i rispettivi personaggi in un e b partita.( i , j ) ∈ [ n ] × [ m ]*un'B
[ fonte ]
I sono simbolici per "non importa"; nelle tessere effettive, l'altro simbolo dovrà essere copiato lì. Si noti che il numero di tessere è in Θ ( m n ) e ogni tessera ha lunghezza 4 log max ( m , n ) + 1 , quindi l'istanza BPCP costruita (sopra l'alfabeto Σ ∪ { 0 , 1 }*Θ ( m n )4 logmax ( m , n ) + 1Σ∪{0,1}più simboli di separazione) ha dimensione polinomiale. Inoltre, la costruzione di ogni piastrella è chiaramente possibile in tempi polinomiali. Pertanto, la riduzione proposta è effettivamente una trasformazione polinomiale valida che riduce al BPCP il problema di supersequenza comune più breve completo di NP.