Se


8

Abbiamo due lingue: L1,L2. Lo sappiamoL1L2 è un linguaggio normale, quindi la mia domanda è se L2L1 è normale?

Cerco di trovare un modo per dimostrarlo ...

Ovviamente non posso supporre che L1,L2sono regolari ...
Quindi cerco un modo per dimostrarlo.

Vorrei avere qualche suggerimento!

Grazie!


Risposte:


7

No, L2L1 non è necessariamente regolare.

Permettere L1={0,1}*, che è regolare e L2={1}{0n1n|n1}, che non è. PoiL1L2 è l'insieme di tutte le stringhe che terminano con 1, che è normale, ma L2L1 è l'insieme di tutte le stringhe che iniziano con 1, inizia con un numero diverso da zero 0seguito da almeno altrettanti 1S. Questa lingua non è regolare, poiché la sua intersezione con{0m1n|m,n1} è {0m1n|1mn}, che non è regolare.


Grazie David, ma perché è il "{1}" a L2? perché ne abbiamo bisogno? Grazie!
stud1

1
@ stud1 Per assicurarlo L1L2è regolare.
David Richerby,

Ma L1L2 (senza il {1}) sono ancora tutte le parole che finiscono con 1, giusto? Quindi, cerco ancora di capire perché abbiamo bisogno di {1}, Spero vada bene lo sto chiedendo :-) Grazie!
stud1

1
@ stud1 Se si elimina {1} quindi, ad esempio, 1L1L2. Più in generale, le uniche stringhe che sarebbero dentroL1L2 sarebbero quelli che finiscono in 0mwn per mn1.
David Richerby,

1
@ stud1 Corretto.
David Richerby,

13

Ho pubblicato solo un suggerimento, quindi ho visto altre risposte complete, quindi questa è una soluzione completa (nascosta) succinta :-)

Permettere L1={1p|p è primo}, L2={1*0}; noi abbiamoL1L2={11+0} che è normale, ma L2L1={1*01p|p è primo} che non è regolare.


1
Soluzione elegante!
Anton Trunov,

2
@AntonTrunov: abbastanza elegante :-) L2={10} può essere usato per "mascherare" qualsiasi UNARIO non regolare L1, ma non appena vengono scambiati L1è di nuovo "esposto" :-)
Vor

Di che significato si tratta + a 11+?
stud1

1
@ Stud1: 1+ significa "uno o più 1S"; in altre parole è una" scorciatoia "per {1n|n1}. Così{11+0}={110,1110,11110,...}
Vor

6

Questo non è un suggerimento, ma una risposta completa. Non continuare a leggere se stai ancora cercando di risolvere.

Non ce n'è bisogno L2L1 essere regolari.

Permettere UN essere una lingua unaria (non regolare) tale che UNUNè regolare. Tali lingue possono essere trovate nel post qui . AssumereUN è sopra l'alfabeto {un'}.

Definire L1={B}UN e L2=UN{B}. Quindi ottieniL1L2={B}UN2{B}, che è regolare. Però,L2L1=UN{BB}UN, che può essere facilmente dimostrato di non essere regolare, in base a UN essere non regolari.


1

Le seguenti regole definiscono il linguaggio associato a qualsiasi espressione regolare. Regola 1 La lingua associata all'espressione regolare che è solo una singola lettera è quella sola parola di una lettera e la lingua associata ad A è solo {A}, una lingua di una sola parola. Regola 2 Se r, è un'espressione regolare associata alla lingua L, e r 2 è un'espressione regolare associata alla lingua L2,

(i) L'espressione regolare (rl) (r2) è associata alla lingua L, volte L 2. lingua (r, r2) = L1L 2 (ii) L'espressione regolare r, + r2 è associata alla lingua formata dal unione degli insiemi L1 e L2. lingua (rl + r2) = L, + L2 (iii) La lingua associata all'espressione regolare (rl) * è LI *, la chiusura di Kleene dell'insieme LI come un insieme di parole. lingua (rl *) = L1 *

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.