Lecture 14: Automata

Date

Introduction

For introduction to FSA's, view the relevant section in this PDF:

Briefly summarizing:


Finite Automata

Problems

Formal Language Theory

So what is a language?

Note that you repeat and reuse letters.

So in summary:


Finite State Machines

Now how can we define some "computer" to solve these problems (or not)?:

A finite automaton is a simple type of mathematical machine for determining whether a string is contained within some language.

Summarizing thus far:

Designing Automata

We introduce the notion of a "language of an automaton":

A language of an automaton is the set of all accepted strings of that automaton

Note: remember that we operate over strings when tracing through automata. The language is a set of all possible strings that would be accepted.

Formally, we define such as:

If DD is an automaton that processes characters from the alphabet Σ\Sigma, then L(D)\mathscr{L}(\boldsymbol{D}) is formally defined as

L(D)={wΣD accepts w}\mathscr{L}(\boldsymbol{D})=\left\{\boldsymbol{w} \in \boldsymbol{\Sigma}^{*} \mid \boldsymbol{D} \text { accepts } \boldsymbol{w}\right\}

Ok but like how do you methodologically design an automaton?

Best explained through example:

Say you have this language in which you need to define some automaton for:

This is saying to design an FSA which only accepts strings from Σ\Sigma^* which contain a number of b's that is congruent to 2 mod 3. We design the FSA as follows:

Overall, it looks like this:

View the last minutes of lecture for a visual explanation.

Determinism

Consider a case where you have this automaton:

Notice that there are transitions that don't include 1s or 0s transitions in certain directions. This is a problem in regards to what we know so far. What would you do if you started with a 1?

More so, consider this automaton:

Notice that on the q_1 state, there would be two options for 0.

These two particular automata fall under the category of "Nondeterministic Automata". We will discuss these later on. In this particular lesson and the next few, we only deal with Deterministic Finite Automata which don't have these problems. More specifically, we define a DFA as having the following characteristics: