You are on page 1of 7

Reviewer Automata

-Automata Theory is an exciting, theoretical branch of computer science. It


established its roots during the 20th Century, as mathematicians began developing -
both theoretically and literally - machines which imitated certain features of man,
completing calculations more quickly and reliably

-The word automaton itself, closely related to the word "automation", denotes
automatic processes carrying out the production of specific processes. Simply stated,
automata theory deals with the logic of computation with respect to simple machines,
referred to as automata.

- Through automata, computer scientists are able to understand how machines


compute functions and solve problems and more importantly, what it means for a
function to be defined as computable or for a question to be described as decidable .

Automatons are abstract models of machines that perform computations on an


input by moving through a series of states or configurations. At each state of the
computation, a transition function determines the next configuration on the basis of a
finite portion of the present configuration.

- The major objective of automata theory is to develop methods by which computer


scientists can describe and analyze the dynamic behavior of discrete systems, in
which signals are sampled periodically.

Inputs: sequences of symbols selected from a finite set I of input signals.

Outputs: sequences of symbols selected from a finite set Z.

States: finite set Q, whose definition depends on the type of automaton.

4 types/ famlies of automaton

 Finite-state machine
 Pushdown automata
 Linear-bounded automata
 Turing machine

FINITE STATE MACHINES

 Finite-state machines are ideal computation models for a small amount of


memory, and do not maintain memory.
 This mathematical model of a machine can only reach a finite number of states
and transitions between these states.
 Its main application is in mathematical problem analysis. Finite-machines are also
used for purposes aside from general computations, such as to recognize regular
languages.
A finite-state machine is formally defined as a 5-tuple (Q, I, Z, ∂, W) such that:

 Q = finite set of states


 I = finite set of input symbols
 Z = finite set of output symbols
 ∂ = mapping of I x Q into Q called the state transition function, i.e. I x Q → Q
 W = mapping W of I x Q onto Z, called the output function
 A = set of accept states where F is a subset of Q

When considering finite-state machines, it is important to keep in mind that the


mechanical process inside the automata that leads to the calculation of outputs and
change of states is not emphasized or delved into detail; it is instead considered a
"black box", as illustrated below:

Having finite, constant amounts of memory, the internal states of an FSM


carry no further structure. They can easily be represented using state diagrams, as
seen below:
Applications of finite-state machines are found in a variety of subjects. They can
operate on languages with a finite number of words (standard case), an infinite
number of words (Rabin automata, Bïrche automata), various types of trees, and in
hardware circuits, where the input, the state and the output are bit vectors of a fixed
size.

FINITE STATE VS. TURING MACHINES

The simplest automata used for computation is a finite automaton. It can


compute only very primitive functions; therefore, it is not an adequate computation
model. In addition, a finite-state machine's inability to generalize computations
hinders its power.

Example:

Imagine a Modern CPUEvery bit in a machine can only be in two states (0 or


Therefore, there are a finite number of possible states. In short A cpu can interact with
a finite number of interactions coming from the peripherals.As a result, one can
conclude that a CPU can be modeled as a finite-state machine.

Now, consider a computer. Although every bit in a machine can only be in two
different states (0 or 1), there are an infinite number of interactions within the
computer as a whole. In short a machine cant model all the finite number of
interractions unless it is higher or powerful computer r automata.

Alan Turing

 World-renowned computer scientist


 conceived the first "infinite" (or unbounded) model of computation: the Turing
machine, in 1936, to solve the Entscheindungs problem.

Turing machine

 Can be thought of as a finite automaton or control unit equipped with an infinite


storage (memory)
 Is a mathematical model of computation that defines an abstract machine, which
manipulates symbols on a strip of tape according to a table of rules..
 Its "memory" consists of an infinite number of one-dimensional array of cells.
 An abstract model of modern-day computer execution and storage, developed in
order to provide a precise mathematical definition of an algorithm or mechanical
procedure.

A Turing machine is formally defined by the set [Q, Σ, Γ, δ, q0, B, F] where

 Q = finite set of states, of which one state q0 is the initial state


 Σ = a subset of Γ not including B, is the set of input symbols
 Γ = finite set of allowable tape symbols
 δ = the next move function, a mapping function from Q x Γ to Q x Γ
x {L,R}, where L and R denote the directions left and right
respectively
 q0 = in set Q as the start state
 B = a symbol of Γ, as the blank
 F ⊆ Q the set of final states

Therefore, the major difference between a Turing machine and two-way finite
automata (FSM) lies in the fact that the Turing machine is capable of changing
symbols on its tape and simulating computer execution and storage.

THEORY OF COMPUTATION

1930s

• Alan Turing studies Turing machines


• Decidability
• Halting problem

1940-1950s

• “Finite automata” machines studied


• Noam Chomsky proposes the “Chomsky Hierarchy” for formal languages

1969
 Cook introduces “intractable” problems or “NP-Hard” problems

1970

 Modern computer science: compilers, computational & complexity theory


evolve

FINITE-STATE MACHINE (FSM)

 A mathematical model of computation


 An abstract machine that can be in exactly one of a finite number of states at
any given time.
 Can change from one state to another in response to some inputs; the change
from one state to another is called a transition.
 Defined by a list of its states, its initial state, and the inputs that trigger each
transition

Two types of Finite-state machines

 Deterministic finite-state machines

- is a finite-state machine that accepts or rejects a given string of symbols, by


running through a state sequence uniquely determined by the string.

- is defined as an abstract mathematical concept, but is often implemented in


hardware and software for solving various specific problems.
A deterministic finite automaton M is a 5-tuple consisting of {Q, Sigma (∑ ) , delta
(δ ), �0 , F}

Q = a finite set of states


∑ = a finite set of input symbols called the alphabet
δ = a transition
�0 = an initial or start state
F = a set of final states

For example:

Design a FA with ∑ = {0, 1} accepts those string which starts with 1 and ends
with 0.

Q = { �0 , �1 , �2 }
∑ = {0,1}
�0 = �0
F = �2 ,

0 1
�0 - �1
�1 �2 �1

In state �1 , if we read 1, we will be in state �1 , but if we read 0 at state �1 we will


reach to state �2 which is the final state. In state �2 , if we read either 0 or 1, we will
go to �2 state or �1 state respectively. Note that if the input ends with 0, it will be in
the final state.

 Non-deterministic finite-state machines

- NFA stands for non-deterministic finite automata. It is easy to construct an NFA


than DFA for a given regular language.

- The finite automata are called NFA when there exist many paths for specific input
from the current state to the next state.

-Every NFA is not DFA, but each NFA can be translated into DFA.
-NFA is defined in the same way as DFA but with the following two exceptions, it
contains multiple next states, and it contains ε transition.

UNDECIDABLE PROBLEMS

 A problem is undecidable if there is no Turing machine which will always halt in


finite amount of time to give answer as ‘yes’ or ‘no’.
 An undecidable problem has no algorithm to determine the answer for a given
input.

Ambiguity of context-free languages - there is no Turing machine which will always


halt in finite amount of time and give answer whether language is ambiguous or not.

Equivalence of two context-free languages - there is no Turing machine which will


always halt in finite amount of time and give answer whether two context free
languages are equal or not.

Everything or completeness of CFG: Given a CFG and input alphabet, whether


CFG will generate all possible strings of input alphabet (∑*)is undecidable.

Regularity of CFL, CSL, REC and REC: Given a CFL, CSL, REC or REC,
determining whether this language is regular is undecidable.

SYMBOL -A symbol is a character, glyph, mark. It is an abstract entity that has no


meaning by itself. Letters from various alphabets, digits and special characters are the
most commonly used symbols.

ALPHABET - An alphabet is often denoted by sigma (∑), yet can be giveany name.

B = {0, 1} says B is an alphabet of two symbols, 0 and 1.


C = {a, b, c} says C is an alphabet of three symbols, a, b and c.

- Sometimes space and comma are in an alphabet while other times they are
meta symbols used for descriptions.

STRINGS (also called Words) - string is a finite sequence of symbols from an


alphabet.
- A null string is a string with no symbols, usually denoted by epsilon (ε). The
null string has length zero

Example:
01110 and 111 are strings from the alphabet B above.
aaabccc and b are strings from the alphabet C above.
LENGTH OF STRING - Vertical bars around a string indicate the length of a string
expressed as a natural number.

Example :
|00100| = 5, |aab| = 3, | epsilon | = 0
FORMAL LANGUAGE (ALSO CALLED A LANGUAGE) -A set of
strings from an alphabet. The set may be empty, finite or infinite.

There are many ways to define a language. There are many classifications for
languages. Because a language is a set of strings, the words language and set are
often used interchangeably in talking about formal languages.

 L(M) is the notation for a language defined by a machine M. The machine M


accepts a certain set of strings, thus a language.

 L(G) is the notation for a language defined by a grammar G. The grammar G


recognizes a certain set of strings, thus a language.

 M(L) is the notation for a machine that accepts a language. The language L is a
certain set of strings.

 G(L) is the notation for a grammar that recognizes a language. The language L is
a certain set of strings.

Prepared by:

Arjay C. De Guzman

You might also like