Variante problema post corrispondenza


12

Questo è probabilmente piuttosto semplice, ma considera il problema standard di corrispondenza post:

Dato e β 1 , ... , β N , trovare una sequenza di indici i 1 , ... , i k tale che alfa i 1α i K = β i 1β i K . Questo è, ovviamente, indecidibile.α1,,αNβ1,,βNi1,,iKαi1αiK=βi1βiK

Ora, lo chiamo una "variante", ma non è proprio - essenzialmente butta via la "corrispondenza". Comunque, considera la seguente variante:

Dato e β 1 , ... , β N , trovano due sequenze di indici i 1 , ... , i K , j 1 , ... , j K tali che α i 1α i K = β j 1ß j K . Cosa si può dire di questa variante? Se questo è banale, le mie scuse!α1,,αNβ1,,βNi1,,iK,j1,,jKαi1αiK=βj1βjK


Senza fare una domanda nuova di zecca, sto modificando la condizione che e K ' non siano necessariamente uguali. Nel caso in cui siano uguali, il problema dovrebbe probabilmente essere indecidibile, tuttavia una riduzione non è ovvia (per me). KK
alpoge,

Risposte:


17

Questa nuova versione - dove - è decidibile.K=K

Mostriamo che la lingua è un CFL. Quindi la decidibilità segue dalla decidibilità del vuoto di un CFL.L:=k1(Ak  Bk)

Ci occuperemo di un PDA ad accettare . Sull'ingresso x , PDA cercherà di costruire due fattorizzazioni di x , uno che utilizza parole di A , e l'altro utilizzando parole di B . Utilizzerà un contatore in pila per garantire che queste due fattorizzazioni abbiano la stessa lunghezza. Concettualmente farò riferimento alla fattorizzazione A di x per quanto riguarda la seduta sopra x e la fattorizzazione B come seduta sulla parte inferiore di x . Quindi lo stack conterrà n contatori se il valore assoluto della differenza del numero di parole corrispondenti in alto, meno il numero di parole in basso, èLxxABAxxBxn . Abbiamo bisogno di un altro stato del PDA per registrare ciò che il segno appropriato corrisponde a n (che ci dice se lafattorizzazione A è più lunga dellafattorizzazione B o viceversa).nnAB

Mentre scansioniamo le lettere di , indoviniamo indeterminatamente una parola t di A e una parola u di B a cui inizia questa lettera. Una volta abbiamo indovinare, ci siamo impegnati a abbinare il resto della t e u contro x ; se in qualsiasi momento la nostra partita fallisce, ci fermiamo in questa scelta non deterministica. Così anche noi manteniamo, nello stato del nostro PDA, il suffisso di t e u che resti a partita.xtAuBtuxtu

Come abbiamo scansione ulteriori lettere, continuiamo corrispondenza fino abbiamo raggiunto il fine o alla fine di u (o entrambi). Quando raggiungiamo la fine di una parola, aggiorniamo lo stack in modo appropriato, quindi indoviniamo una nuova parola in modo che corrisponda nella parte superiore o inferiore (o entrambe).tu

Accettiamo se i suffissi rimanenti da abbinare sono entrambi vuoti in alto e in basso e la pila non contiene contatori.

Siamo in grado di costruire questo PDA in modo efficace, in modo da poter effettivamente decidere se accetta qualcosa o meno (ad esempio, convertendo efficacemente in una grammatica e quindi utilizzando il solito metodo per vedere se G genera qualcosa).G

k2O(l2)lAB

ABAB


2
benvenuti a cstheory!
Suresh Venkat,

1
Eccezionale! Ora abbiamo solo bisogno di Eric Bach ...
Huck Bennett,

Bello! È perfetto.
alpoge

13

αi1αiK=βj1βjKK=K

Aαi1αiKBβj1βjKABA,B


Agh - anzi! Mi dispiace, hai assolutamente ragione.
alpoge,

K=K

2
T1T2T1+T2+M

K=K
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.