Computer Science

Finite Automata

Finite Automata are abstract machines used to model and analyze the behavior of systems with a finite number of states. They are widely used in computer science for tasks such as lexical analysis, pattern matching, and parsing. Finite Automata operate by transitioning between states based on input symbols, making them valuable tools for understanding and solving computational problems.

Written by Perlego with AI-assistance

6 Key excerpts on "Finite Automata"

  • Agent-Based Computational Economics
    eBook - ePub

    Agent-Based Computational Economics

    How the idea originated and where it is going

    • Shu-Heng Chen(Author)
    • 2017(Publication Date)
    • Routledge
      (Publisher)
    T ,
    associates with every (s, a) ∈ S × A a state s’ ∈ S . Therefore, the transition table T shows how the input s may change the state of the automaton from s to a state s’ = T (s, a), also usually denoted just as sa.
    If we allow ourselves to consider successive actions of inputs from A on states s then in effect we extend the input set to
    A*
    , which is the set of all finite strings formed by concatenating input symbols from A . For example, if A = a, b, c , then
    where is the empty string, i.e. the string of no letters.
    To see what we can do with such a machine, we designate a certain state in S to be the initial state , and a subset Ξ which is the final state . The machine then works by being presented with an input string of symbols, say
    that it reads one by one starting at the left-most symbol. Beginning at the initial state, s0 , the symbols determine a sequence of states,
    The sequence ends when the last input symbol has been read. Furthermore, if the ending state is
    we say that the automaton recognizes (or accepts ) the string w . The behavior of M (or the language of M ) is defined as the set of strings in
    A*
    that can be recognized by M . The famous Kleene’s theorem in computation theory shows that every language that can be defined by a regular expression can be accepted by some finite state automata.
    In 1959, Michael Oser Rabin and Dana Scott provided a more general definition of an automaton by introducing the following notion of nondeterminism for language-recognizing Finite Automata:
    where P(A ) is the set of all subsets of A . With Equation (12.62), T(s, a) may contain more than one element of A ; therefore, the ultimate path through the machine is not determined by the input symbol alone. Human choice becomes a factor in selecting the transition path; the machine does not make all its own determinations. That is why we say this machine is nondeterministic. A string is accepted by the machine if at least one sequence of choices leads to a path that ends at a final state. It is important to know that nondeterminism does not increase the power of a finite state automaton (FSA). In fact, an equal power
  • The Modeling Process in Geography
    eBook - ePub

    The Modeling Process in Geography

    From Determinism to Complexity

    • Yves Guermond(Author)
    • 2013(Publication Date)
    • Wiley-ISTE
      (Publisher)
    12.3. The concept of the finite state automaton
    A finite state automaton is a mathematical object, and we will first present it intuitively to better understand its formalization after that. We must imagine a device which has at least an input channel, an output channel, connected to a box containing a self-powered mechanism. An input channel receives one by one (sequentially), coded information with symbols that constitute the input alphabet. Likewise the output channel produces symbols written in the output alphabet. In short, the box contains the means of internal representation, a memory capable of containing a symbol called the state of the automaton traced in the alphabet of states. The three alphabets, input, output and state contain only a finite number of symbols. The value of an input or an output can be logical (binary), quantitative (integer, real), qualitative or purely symbolic (encryption according to a discrete alphabet like before). It can also constitute a vector of elementary inputs (or outputs) when there are several input or output channels. Once again we give these more or less complex values entering or exiting the automaton the name symbols, without specifying their nature.
    The internal mechanism breaks down into two functions. The first function is the capacity to read the symbol at each input (which we call the vector or more simply the input) and to modify the state of the automaton contingent on the input and the previous state. This is the transition function . The second function enables a symbol to be present outside in the output channel, calculated in contingence with the input and the state of the automaton. This is the output function .
    The input, output and state symbols can, in the most general cases belong to different alphabets. However, in a simplified version, used in particular with cellular automata, the same alphabet is used for the three and the output mechanism is reduced to its simplest form and consists only of producing the state of the automaton on output. Therefore the mechanism is reduced to a single transition function.
  • Theory of Computation Simplified
    eBook - ePub

    Theory of Computation Simplified

    Simulate Real-world Computing Machines and Problems with Strong Principles of Computation (English Edition)

    • Dr. Varsha H. Patil, Dr. Vaishali S. Pawar, Dr. Swati A. Bhavsar, Dr. Aboli H. Patil(Authors)
    • 2022(Publication Date)
    • BPB Publications
      (Publisher)
    HAPTER 1

    Finite Automata

    T his chapter introduces formal languages and its finite representation. Basics of computing machines are also illustrated here, and it discusses the design of state transition automata. In this chapter, we will learn the construction of finite automaton and deterministic Finite Automata to accept or reject a particular set of input or strings. A finite automaton with the output for designing Moore and Mealy machine is also illustrated.

    Structure

    In this chapter, we will discuss the following topics:
    • Introduction to Formal language
    • Finite representation of language
    • A Step-by-Step Method for Constructing Automata
    • Finite State Machine (FSM)
    • Language accepted by Finite Automata
    • Deterministic Finite Automata
    • Finite Automata with output
    • Minimization of Automata

    Objectives

    The objective behind learning Finite Automata is to learn formal language and its relation with Finite Automata. In this chapter, we will understand how to Design a finite automaton for a given problem, handle all end conditions and reject states in automaton, design Finite Automata with the output such as Moore and Mealy machine approximation algorithms, apprehend randomized algorithms, and the use of parallel algorithms, and perform inter-conversion of Moore and Mealy machines.

    1.1 Introduction to Formal language

    A language is a subset of all possible strings formed by a given set of symbols. In general, a natural language is the one that has evolved over time for the purpose of human communication. Examples include English, German, Hindi, and so on. Such languages continue to evolve without regard for formal grammatical rules. Natural languages rarely conform to simple or obvious grammatical rules. In contrast to natural languages, formal languages are defined by pre-established rules and hence rigorously conform to the rules, viz mathematical languages such as algebra and prepositional logic. It is because of this adherence to rules that the construction of efficient computerized translators for programming languages is possible, whereas it is the lack of adherence to established rules that makes it difficult to construct a translator for a natural language.
  • Encyclopedia of Computer Science and Technology
    eBook - ePub

    Encyclopedia of Computer Science and Technology

    Volume 2 - AN/FSQ-7 Computer to Bivalent Programming by Implicit Enumeration

    • Jack Belzer(Author)
    • 2020(Publication Date)
    • CRC Press
      (Publisher)
    AUTOMATA THEORY
    Much of mathematics studies functions, rules ƒ : XY for assigning to each element x of the set X an element f(x) of the set Y. In computer science, we seek to realize functions by computations, which are sequences of data manipulations under the control of a program. Programs are run by machines. In specifying a machine we have to specify the syntax, or legitimate forms, for the data structures that may occur as input to the machine, as descriptions of the internal state of the machine, and as output from the machine. A program must be so presented as input structure that it will be incorporated into the internal state structure in a fashion that will cause the machine to process data in such a way as to realize some given function. The semantics of the machine direct how it will change state, read input and provide output at each stage, and thus determines how the program will be interpreted.
    Automata theory is the mathematical study of questions of realization, decomposition, simulation, complexity, and computation abstracted from the above considerations. In this article we shall sample some portions of this theory, starting with the notion of a Turing machine [1 , 2 ], a formalization of the digital computer which preceded the computer itself by almost a decade : The machine consists of a control box in which may be placed a finite program; an indefinitely extendable tape, divided lengthwise into squares (i.e., depending on our choice of mathematical fiction, we may consider the tape as comprising an infinite string of squares of which all but finitely many are blank; or as a finite tape, to the ends of which arbitrarily many new squares may be added as required); and a device for scanning, or printing on, one square of the tape at a time, and for moving the tape, all under the command of the control box. We start the machine with a finite string (i.e., sequence) of symbols from some alphabet X (we denote by X* the set of all such strings) on the tape, and with a program in the control box. The symbol scanned, and the instruction now being executed, determine what new symbol shall be printed on the square, how the tape shall be moved, and what instruction is to be executed next. If and when the machine stops, the result of our computation, a new string from X*
  • Automata and Computability
    eBook - ePub

    Automata and Computability

    A Programmer's Perspective

    denial of service attacks. Such malicious users simply bombard these front-end finite-state machines with meaningless requests, thus effectively choking them. This can prevent their services from becoming available to well-intentioned users.
    The finite-state machines that one encounters in life are often variations of the basic type studied in this book; they include: (1) Mealy machines that consume inputs and produce outputs at each transition; (2) communicating finite-state machines that exchange messages; (3) Unified Modeling Language diagrams used in software engineering; (4) semantic rules to specify program behaviors; and (5) Büchi automata that model infinitary behaviors.1 Deterministic Finite Automata (DFA) studied in this chapter and non-deterministic Finite Automata2 studied in later chapters capture the essence of these practical machine types.
    4.2    Elements of a DFA
    Figure 4.1 describes our first example of a DFA that is assumed to have an alphabet {0}. This figure presents a directed graph with two types of nodes, one with a single circle and another with a double circle. These nodes are called states, with the double circled states called final states, with the others being non-final states. States are connected via labeled edges to other states. These arrows are state transitions or “jumps” the DFA can make. There is always one state (called the initial state) that has an arrow coming “from the air” poking at it; such an arrow is trying to say “start here!” In our example, it is the state named IF. Initial states can also be final states, as is the case here.
    We will adhere to certain naming conventions for states (with only some rare exceptions). We will name all initial-only states with names that begin with an “I” or an “i .” We will name all final-only states with names that begin with an “F” or an “f
  • Theory of Computation
    • George Tourlakis(Author)
    • 2014(Publication Date)
    • Wiley
      (Publisher)
    L = M, then we have
    the configuration
    where the optional label could be L, or M , L = M (as above), or nothing.
    where the optional label could be L, or M , L = M (as above), or nothing.
    We depict the partition of states into accepting and rejecting by using two concentric circles for each accepting state as below.
    The special start state is denoted by drawing an arrow, that comes from nowhere, pointing to the state. To summarize and firm up:
    3.1.1.1 Definition. (FA as Flow Diagrams) A finite automaton, for short, FA, over the input alphabet Σ is a finite directed graph of circular nodes—the states — and interconnecting edges—the transitions — the latter labeled by members of Σ. We impose a restriction to the automaton’s structure: For every state L and every a ∈ Σ, there will be precisely one edge, labeled a, leaving L and pointing to some state M (possibly, L = M ).
    We say the automaton is fully specified (corresponding to the italics in the part “For every state L and every a A, there will be … “) and deterministic (corresponding to the italics in the part “there will beprecisely one edge, …”).
    This graph depiction of a FA is called its flow diagram and is akin to a programming “flow chart”.
    3.1.1.2 Remark. (1) Thus, full specification makes the transition function total — that is, for any state-input pair 〈L , a 〉 as argument, it will yield some state as output. On the other hand, determinism ensures that the transition function is indeed a function (single-valued).
    (2) Each “legal” input symbol is a member of the alphabet Σ, and vice versa. In the preamble of this chapter we referred to such legal symbols as “digits” in the interest of preserving the inheritance from the URM of Section 2.1.1, the latter being a number-theoretic programming language. But what is a “digit”? In binary notation it is one of 0 or 1. In decimal notation we have the digits 0, 1, … , 9. In hexadecimal notation112 we add the “digits” a , b , c , d, e , f
Index pages curate the most relevant extracts from our library of academic textbooks. They’ve been created using an in-house natural language model (NLM), each adding context and meaning to key research topics.