I have to draw FSAs that accept the following languages over {0,1} and {a, b}
- (0 | 1)*
- a* | b*
Now for 1, the language is just any word that consists of 1s and 0s but it also contains the empty word. So, {e, 0, 1, 001, 000, 010, etc}
For 2, the language is words that are all as or all bs but it also contains the empty string. So, {e, a, b, aaaaaa, bbbbbb, ect}
Now my question has to do with what to do when constructing the an FSA for these languages.
Does q0 have to be my accept state since the FSA has to accept the empty word, or can I include the empty word in a transition arrow? Basically, I am just confused about how to get an FSA to accept the empty word while also accepting these other words.
Additionally, for 2, the easiest solution seems to be an FSA with multiple accept states. Is this allowed?
Normally, when we say "FSA", we mean a deterministic FSA, where each transition from one state to another is on exactly one symbol from the input. nondeterministic FSAs sometimes relax these restrictions and allow transitions on empty input. But you should also have seen a proof that such transitions add no power the the NFA, because an NFA with $\epsilon$-transitions can be easily converted to an equivalent one without $\epsilon$-transitions.
Supposing that your FSAs must adhere to this restriction, then yes, since both FSAs must accept the empty string $\epsilon$, each one must have a start state that is an accepting state.
Multiple accepting states are allowed. That is why the definition of an FSA says that there is a set of accepting states, not just a single accepting state.