Primera tran pizarra a una descripción Inglés de la lengua:
(a U b)*(a U e)b* U (a U b)*(b U e)a*
Traduce a:
Cualquier secuencia de a
s o b
s, seguido por una opcional a
, seguido de cualquier número de b
s .
O
Cualquier número de a
s y b
s, seguido de un opcional b
, follwed por cualquier número de a
s
Hay una gran cantidad de solapamiento aquí - al menos (a U b)*(a U e)
es exactamente igual que (a U b)*
, porque "Cualquier secuencia de a
sy b
s" necesariamente termina con a
o épsilon (como cualquier cadena puede terminar con epsilon) así que esos grupos pueden ser eliminados, dejando
(a U b)*b* U (a U b)*a*
se traduce en:
Cualquier secuencia de a
s o b
s, seguido de cualquier número de b
s .
O
Cualquier número de a
s y b
s, follwed por cualquier número de a
s
Ahora la primera sección de aquellos a los grupos más exteriores es el mismo, por lo que permite colapsar, aquellos en los uno
(a U b)*(a* U b*)
se traduce en:
Cualquier secuencia de a
s o b
s, seguido de cualquier número de a
s o por cualquier número b
s.
ahora espera un minuto "cualquier secuencia de A y B" necesariamente termina con "cualquier secuencia de a
s o cualquier secuencia de b
s", lo que significa cualquier cosa que coincide con la primera parte puede coincidir toda la expresión regular (porque la segunda parte puede tener una longitud de cero) así que ¿por qué no nos hacen
(a U b)*
TA DA. Sencillo.
Preferiría mucho las explicaciones a cualquier respuesta, o incluso sugerencias en lugar de respuestas, estoy haciendo ejercicios de preevaluación, ¡las respuestas sin explicaciones no me ayudarán mucho! ¡Gracias! – CompilersBeginner
Creo que mi respuesta aceptada es incorrecta, como se señala en los comentarios. Creo que el resultado es (a U b) * pero mi explicación no es correcta. – Piva