Week 11

Well, answering my last question, we looked at how to prove a DFSA this week. It was a lot more straightforward than I thought. Everything was pretty much definition based, for which I am glad. Then things started getting a bit weirder. We began looking at NFSA's and how every regular expression has an FSA. And then how every NFSA can be rewritten as a DFSA. I could follow the pictures Prof. Heap drew, but I had a hard time trying to picture how to apply it to concrete examples. And then finally we learned the cartesian product so that we can build DFSAs for accepting strings with two different properties. Working through the last example at the end of Wednesday's lecture helped reinforce how it worked. I went home and filled in what we started in class. Building a machine that was a union of two different machines was surprisingly a lot easier than I had imagined.


On Friday, we looked at how to take an FSA to get a regular expression. It took me a little bit of time to spot everything I needed to restore when RIPping out a state, so I tried out a couple more of FSA -> regex problems when I got home. The resulting regular expression always seem to be really long and ugly, especially when the machine you start with has a lot of states. Can it be simplified?

The last problem set was also due this week. It gave us some more practice with equivalent languages. I think I'm still having a bit of trouble with the proof, especially going from a language described by words to a language denoted by a regular expression. I need more practice (as always) >_<

0 comments: