Provare che la lingua che consiste in tutte le stringhe in una lingua ha la stessa lunghezza di una stringa in un'altra lingua è normale


8

Quindi mi gratto la testa per questo problema da un paio di giorni. Dato un po 'di linguaUN e B che è normale, mostra che la lingua L che consiste di tutte le stringhe in UN la cui lunghezza è uguale a una stringa in B è una lingua normale.

In forma di equazione:

L={XUN|yB st |X|=|y|}

Il mio pensiero iniziale era di provare a trovare un po 'di DFA per entrambe le lingue UN e B e mappare i due stati tra loro e, auspicabilmente, ottenere un rapporto 1: 1 in questo modo posso generare un nuovo DFA che dimostri che Lè regolare. Ma poi me ne sono reso contoUN e B non devono essere sullo stesso set di simboli.

Penso che il modo corretto di risolverlo sia usare le proprietà di chiusura del linguaggio normale, ma non sono sicuro di come iniziare / usare le proprietà per "lunghezze" delle stringhe invece delle stringhe stesse.

Potrebbe qualcuno indicarmi la giusta direzione?

Risposte:


4

Ricorda (o trova) la prova per

L1,L2REsolL1L2REsol.

Vedi come modificare la prova per la tua impostazione?

Riassumendo l'uguaglianza della cosa delle lunghezze, escogita una costruzione per un automa

Ll={wΣ*|XL.|X|=|w|}

per scontato, arbitrario LREsol al di sopra di Σ.

Vedi la connessione?

Ora notalo L=UNBl.


3

Suggerimenti: supponiamo che tu conosca tutte le diverse lunghezze di parole inB, len(B)={1,2,3,...}. Per il momento, supponiamo che sia finito.

Puoi usare questa conoscenza per costruire un DFA per UN?
(suggerimento: intersezione o costruzione "cross-product")

Fa l'alfabeto di B importa anche?

Successivamente, potrebbe essere l'insieme di lunghezze len(B)è infinito. Quindi guarda questa domanda che dovrebbe risolvere anche quella questione.


2

Il modo di proprietà di chiusura, quindi nessun automi (esplicito). Le lingue regolari sono chiuse sotto morfismi, morfismi inversi e intersezione (con lingue regolari).

Permettere ΣUN e ΣB essere gli alfabeti di UN e B. PermetterehX:ΣX*{1}* sia il morfismo che mappa ogni lettera un'ΣX per 1. PoihB(B){1}* codifica la lunghezza impostata di B, e hUN-1(hB(B)) è costituito da (tutte) stringhe della stessa lunghezza delle stringhe in B, ma sopra l'alfabeto di UN. Infine, lo osserviamoL=UNhUN-1(hB(B)).

Ora per il bonus . Funziona anche senza contesto UN e B. Abbiamo bisogno tuttavia di una proprietà aggiuntiva: ifB è quindi privo di contesto hB(B)è regolare (!) poiché tutte le lingue "unarie" (= alfabeto a lettera singola) sono regolari, una conseguenza del teorema di Parikh . Così anchehUN-1(hB(B)) è regolare e L è privo di contesto.

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.