Por que expressões regulares são definidas com operações de união, concatenação e estrela?


11

Uma expressão regular é definida recursivamente como

  1. a para algunsaΣ é uma expressão regular,
  2. ε é uma expressão regular,
  3. é uma expressão regular,
  4. (R1R2) ondeR1 eR2 são expressões regulares é uma expressão regular,
  5. (R1R2) ondeR1 eR2 são expressões regulares é uma expressão regular,
  6. (R1) ondeR1 é uma expressão regular é uma expressão regular.

Esta definição é retirada da página 64 de

Sipser, Michael. Introdução à Teoria da Computação, 3ª edição. Cengage Learning, 2012.

Agora, tenho as seguintes perguntas.

  • Por que a definição não contém as operações intersection, complementou reverse?
  • Se mudarmos o quarto item para R1R2 , não temos uma definição equivalente, ou seja, para cada idioma regular, há uma expressão regular modificado e vice-versa?
  • Sei que essa definição é completa e bem definida, mas por que é preferível a outras definições equivalentes, bem definidas e completas?

2
Por favor, restrinja-se a uma pergunta por postagem.
Raphael

Respostas:


16

1) Se também permitirmos a interseção e o complemento, as expressões resultantes às vezes são chamadas de expressões regulares estendidas; como os idiomas regulares são fechados em operações booleanas, nada é ganho por eles. É apenas açúcar sintático. Uma conclusão semelhante vale para a operação reversa. Parte da razão pela qual, em primeira instância, todas as outras operações não são mencionadas é o objetivo de manter a definição o mais simples possível, para que as provas (indutivas) não precisem ser tratadas em muitos casos. Outra causa pode ser que, se permitirmos certas operações, mas outras não, em alguns casos resultam classes de linguagem muito distintas (subregulares), por exemplo, se considerarmos a expressão regular estendida sem o operador estrela, obteremos uma subclasse apropriada das regulares , os chamados idiomas sem estrelas ou aperiódicos, consulte a Wikipedia: idioma sem estrelas .

2) Se mantivermos os itens 1. - 6. mas apenas alterar o item 4. ao usar a interseção em vez da união, obtemos uma subclasse apropriada dos idiomas regulares. Por exemplo, não podemos mais descrever o idioma pois isso envolveria a união de { a } e { b }L={a,b}{a}{b} (veja a prova abaixo). Se permitirmos a complementação, as coisas mudam à medida que temos a união de volta pelas leis de DeMorgan.

3) Isso foi parcialmente respondido por mim em 1), mas o que você quer dizer quando diz que essa definição é preferida? Sei definições onde 2. for omitido (como temos por 6. que ), ou 3. for omitido (como temos = L ( ¯ X * )), ou ambos são omitidos ; portanto, essa não é a definição mínima possível (ela também nos fornece algum açúcar sintático, pois temos símbolos extras para descrever { ε } e ).L()={ε}=L(X¯{ε}

EDIT : Meu primeiro comentário mencionado em 2) estava errado, os idiomas no fechamento indutivo em , e não são necessariamente subconjuntos de x para alguns x X , por exemplo, considere L ( a b ) = { a b } . No entanto, temos que L = { a , b } não poderia ser descrito por essa expressão. Eu darei uma prova, ou seja, eu prova que se L = L ( R )xxXL(ab)={ab}L={a,b}L=L(R) para alguma expressão com o quarto item modificado, então se (e, portanto, a bX={a,b}ab ) A prova vai por indução da expressão R . Para o caso base que detém vacuously, agora supor que detém para L ( R 1 ) , L ( R 2 ) . Se L = L ( R 1

{a,b}LabL.
RL(R1),L(R2) e { um , b } L , em seguida, { um , b } L ( R i ) , i = 1 , 2 , portanto, por hipótese de indução que têm um b L ( R 1 ) L ( R 2 ) . E seL=L(R1R2)=L(R1)L(R2){a,b}L{a,b}L(Ri),i=1,2abL(R1)L(R2) , em seguida, como um = um £ = £ um devemos ter uma L ( R 1 ) e £ L ( R 2 ) ou vice-versa. Suponha o primeiro caso. Se b L ({a,b}L(R1R2)=L(R1)L(R2)a=aε=εaaL(R1)εL(R2) , em seguida, um b L ( R 1 ) por hipótese de indução, por conseguinte, um b = um b £ L ( R 1 ) L ( R 2 ) . Agora, suponha que b L ( R 2 ) , então temos um b L ( R 2 ) L ( R 2 ) pela definição debL(R1)abL(R1)ab=abεL(R1)L(R2)bL(R2)abL(R2)L(R2) . Finalmente, se a , b L ( R 1 ) , então a L ( R 1 ) n e b L ( R 2 ) m para alguns n , m > 0 . Se n = m = 1 , encontramos a b L ( RL(R1)L(R2)a,bL(R1)aL(R1)nbL(R2)mn,m>0n=m=1 pela hipótese de indução, suponha n > 1 , mas isso dá umaabL(R1)n>1aL(R1), similar either m=1 or m>1 gives bL(R1) and the induction hypothesis gives abL(R1)L(R1).

a=uwu=aw=a. This follows as 1=|a|=|uw|=|u|+|w|, hence |u|=0 and |w|=1 or |u|=1 and |w|=0. In the first case we have u=ε and hence a=w.


2
{a,b} is not in the set of "subregular" languages, but {a,b} is because {a,b}=(ab).
rici

Yes, sometimes it is a little bit tricky to see what could be expressed and what not as with a clever combination of star and others you can get quite far.
StefanH

10

The technical report that introduced regular languages, regular expressions, and finite automata asks your question on page 70:

The question may occur to the reader, why did we select the particular three operations EF, EF, and EF?

(Soon afterwards, it was noted that E is a more convenient operator than EF and equivalent in power. So these days, we use E instead.)

The answer occupies several pages. First, it is remarked that the answer must be sought in whether the resulting languages form an interesting class and how they compare with languages described by other means. On page 72, it is remarked that negation and conjunction are redundant: they do not add any expressive power. On page 80 and further, it is proved that the regular languages are exactly the languages recognized by finite state machines.

In other words: Stefan's answer can safely be considered conclusive, as it was already given in the report that first introduced these concepts.


Thanks for the link. I always explain to my students that the operations are natural abstractions from choice (like if-then-else) sequence (instructions following one another) and iteration (like while-do). But apparently that is not mentioned by Kleene?
Hendrik Jan

I'm just a guy who looked up Kleene's article and was surprised that everything in my answer was already in there. I don't know anything else. So I suppose the answer is to read the article and perhaps look for anything that Kleene wrote on this before.
reinierpost

4

A partir dessa seleção de operadores (união, concatenação e estrela), é possível construir um NFA com um tamanho linear ao tamanho da expressão. Por outro lado, se você adicionar interseção e complementação, o tamanho do autômato equivalente pode explodir de maneira não elementar, o que geralmente não é desejável.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.