Can you check on this: https://dl.dropbox.com/u/25439537/finite%20automata.png
This is a checked homework, so don’t worry. I just want to clarify whether my answer is correct or not, because it is marked by my teacher as incorrect.
My answer is ((a+b)(a+b))*a
The first (a+b) signifies the upper arrows. The second (a+b) signifies the lower arrows. The last ‘a’ tells us that it should always end in ‘a’.
I just want to record evidences from a lot of experts so that I can give it to my teacher.
I believe your answer is correct.
Let’s consider the whole process as two parts: (1) start with
start, and go back tostart; and (2) go fromstarttoendand accept. Obviously, the (1) part is a loop.For (1), starting with
start, either acceptbora. Forb, it’sb(a+b)to go back. Fora, it’sa(a+b)to go back. So (1) isb(a+b) + a(a+b)which is(a+b)(a+b).For (2), it’s
a‘.So, the final result is
(loop in (1))* (2)i.e.( (a+b)(a+b) )* a.Follow the description above, you can also come up with a proof of the equivalence between the two. Proof part (a) every sequence accepted by the automata is in the set
((a+b)(a+b))*a; part (b) every sequence in the set((a+b)(a+b))*ais accepted by the automata.