Lexical analysis in compilers (i.e., breaking the input into logical units such as keywords, identifiers)
Text processing, web search
State machines, communication protocols, security, cryptography, analytics, etc.
EXAMPLE OF AN AUTOMATON: ON/OFF SWITCH
Simple finite automaton - models a switch
Two states [circles]: on and off
o Only one input [labels in edges]: Press -Represents the external influence on the system [state transition] -Press button has an effect dependent of the state
Initial state represented by an arrow with label Start
There can exist one or more final (acceptance) states, represented by double circles
FINITE AUTOMATON
System that in each moment is in one of a finite number of states
States memorize the relevant part of the history of the system
Being finite, it needs to forget what is not relevant
It can be implemented with finite resources. For example, we could implement it in hardware as a circuit. Or as a simple form of program that can make decisions looking only at a limited amount of data or the position in the code itself.
EXAMPLE OF AN AUTOMATON: RECOGNIZER
If the input is the string "then" the automaton goes from the initial to the final state
Accumulates the history of the input
The goal is to recognize the string "then"
STRUCTURAL REPRESENTATIONS
There are two important notations that are not automaton-like, but play an important role in the study of automata and their applications: Regular expressions and Grammars
"What can a computer do at all?": This study is called decidability and the problems that can be solved by a computer are called decidable. (E.g., determine whether a player has a winning strategy in a game of Magic: The Gathering)
AUTOMATA AND COMPLEXITY
"What can a computer do efficiently?" This study is called intractability and the problems that can be solved by a computer using no more time than some slowly growing function of the size of the input are called tractable. (E.g., graph coloring: How many colors do you need to color a graph such that no two adjacent vertices are of the same color?)
AUTOMATA AND COMPLEXITY
Automata are essential for the study of the limits of computation.