FA design examples

Advice when designing...

1) Have meaning for each state - It's the only memory an FA has.

2) First write just the part that accepts good strings.

3) Make sure your FA is legal. Double check that every state has an arrow out for each alphabet symbol and that their's a start state.

4) Try to break your solutions. Look for strings it accepts that it shouldn't. Look for strings that it rejects that it shouldn't.

Examples

Let the alphabet be {a,b}. The text descriptions are for http://ivanzuzak.info/noam/webapps/fsm_simulator/

Write a FA that accepts all the strings in {abba}

 

Write a FA that accepts all the strings in { w  {a,b}* : w has at least two a's }

 

Write a FA that accepts all the strings in { w {a,b}* : w begins and ends in the same letter }

 

Write a FA that accepts all the strings in { anbm : n odd and m even }