![]() |
VOOZH | about |
Automata theory, also known as the Theory of Computation, is a field within computer science and mathematics that focuses on studying abstract machines to understand the capabilities and limitations of computation by analyzing mathematical models of how machines can perform calculations.
A symbol (often also called a character) is the smallest building block, which can be any alphabet, letter, or picture.
A finite, non-empty set of symbols used to construct strings and languages. For example, Σ = {a, b}.
A string is a finite sequence of symbols from some alphabet. A string is generally denoted as w and the length of a string is denoted as |w|. Empty string is the string with zero occurrence of symbols, represented as ε.
Number of Strings (of length 2)
that can be generated over the alphabet {a, b}:
- -
a a
a b
b a
b b
Length of String |w| = 2
Number of Strings = 4
Conclusion:
For alphabet {a, b} with length n, number of
strings can be generated = 2n.
Automata theory is used in modeling computational problems hence enhancing the understanding and design of systems such as compilers, interpreters among others.
1. L+: It is a Positive Closure that represents a set of all strings except Null or ε-strings.
2. L*: It is "Kleene Closure", that represents the occurrence of certain alphabets for given language alphabets from zero to the infinite number of times. In which ε-string is also included.
From the above two statements, it can be concluded that: L* = εL+
Example:
(a) Regular expression for language accepting all combination of g's over Σ={g}:
R = g*
R={ε,g,gg,ggg,gggg,ggggg,...}
(b) Regular Expression for language accepting all combination of g's over Σ={g} :
R = g+
R={g,gg,ggg,gggg,ggggg,gggggg,...}
Kleene Star is also called a "Kleene Operator" or "Kleene Closure". Engineers and IT professionals make use of Kleene Star to achieve all set of strings which is to be included from a given set of characters or symbols. It is one kind of Unary operator. In Kleene Star methodology all individual elements of a given string must be present but additional elements or combinations of these alphabets can be included to any extent.
Example:
Input String: "GFG".
Σ* = { ε,"GFG","GGFG","GGFG","GFGGGGGGGG","GGGGGGGGFFFFFFFFFGGGGGGGG",...}
(Kleene Star is an infinite set but if we provide any grammar rules then it can work as a finite set.
Please note that we can include ε string also in given Kleene star representation.)
Examples of Languages:
Finite Language:
L1 = { set of string of 2 }
L1 = { xy, yx, xx, yy }
Infinite Language:
L1 = { set of all strings starts with 'b' }
L1 = { babb, baa, ba, bbb, baab, ....... }
Languages are classified based on the computational model or grammar generating them:
The field of computation theory can be broadly divided into three major areas:
Automata theory studies abstract computational models and their applications. It forms the basis for understanding how machines process inputs and produce outputs. Key components include:
This area examines the syntax and structure of languages used in computation.
Computability theory addresses the question: What problems can a computer solve? It studies concepts like:
Complexity theory focuses on the efficiency of algorithms by analyzing the time and space resources they require. It categorizes problems into classes such as: