Regolarità della metà esatta delle parole da una lingua normale


8

Sia un linguaggio regolare. La lingua regolare?L
L2={y:x,z  s.t.|x|=|z| and xyzL}

So che è molto simile alla domanda qui , ma il trucco è che non è una semplice sottostringa di una parola in una lingua normale, ma piuttosto un "centro esatto" - dobbiamo contare il prefisso e la lunghezza del suffisso.

Pertanto, presumo che non sia regolare, ma non sono riuscito a trovare un modo per dimostrarlo. Inoltre non riuscivo a pensare ad alcun modo per modificare l'NFA di per accettare .LL2


"medio esatto" sembra suggerire? A proposito, anche quello sarà regolare! |x|=|y|=|z|
Hendrik Jan

Hai provato le cose dalla nostra domanda di riferimento ?
Raffaello

Risposte:


6

Suggerimento: Consideriamo alcuni DFA per . Per ogni , sia l'insieme di stati tale che vi sia una parola di lunghezza che conduca il DFA dallo stato iniziale a . Sia l'insieme degli stati tale che vi sia una parola di lunghezza che conduca il DFA da ad uno stato accettante. Infine, per ogni due stati , sia l'insieme di parole (regolare) che conduce il DFA da a . abbiamo Ln0AnsnsBntnts,tRs,tst

L2=n0sAntBnRs,t.
Dal momento che ci sono solo molte possibilità finite per , l'unione è in realtà finita e così regolare.s,t

3

Sia sia un DFA . Senza perdita di generalità, assumere . Costruiamo un ε-NFA per nel modo seguente:D=(Q,Σ,δ,q0,F)LqS,qFQN=(Q{qS,qF},Σ,Δ,qS,{qF})L2

Trova ogni percorso in da a qualsiasi . Per ciascuno di questi percorsi costruisci i percorsi per (ovvero costruisci tutte le "parti intermedie" del percorso). Questo può essere fatto in modo efficace. Costruisci combinando tutti questi percorsi, insieme a:Dq0fFpk:q0=qk,0αk,1qk,1αk,2αk,iqk,iαk,i+1αk,nkqk,nkpk(i):qk,iαk,i+1qk,i+1αk,i+2αk,nkiqk,nki0ink2Δ

  • (qS,ε,qk,i) per tutti come soprai
  • (qk,nki,ε,qF) per tutti come soprai

L(N) è regolare per costruzione.

Schizzo di prova che : Lascia . Per costruzione sappiamo che deve corrispondere almeno sui percorsi sopra. Ciascuno di questo percorso appartiene a un percorso in , che contiene un prefisso e un suffisso aggiuntivi di lunghezza . Scegli come parola descritta da questo prefisso e quella descritta dal suffisso. Troviamo che , con . Con un ragionamento simile che troviamo per ogni un percorso in . Permettetemi essere la lunghezza edL(N)=L2wL(N)wpk(i)DixyxwyL|x|=|y|=iwL2Nixyappartenente a . per alcune forme .wpk(i)kw

Quindi .L(N)=L2


Dato che ci sono infiniti percorsi, l'osservazione "Questo può essere fatto efficacemente" sembra aver bisogno di qualche spiegazione. Nota che non è strettamente necessario usare quella proprietà, vedi la risposta di Yuval, che (per me) è una versione "non efficace" dello stesso argomento.
Hendrik Jan

Hai ragione. Non è necessario considerare i loop due volte. Il prossimo punto critico sembra essere che c'è qualche appartenente a , poiché combinando i percorsi potrebbero emergere nuovi percorsi. Vedete, non ho esaminato a fondo la mia prova, ma credo che tutti questi problemi potrebbero essere risolti. pk(i)w
ipsec,
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.