Does the NFA to DFA conversion always make more states?

Sdílet
Vložit
  • čas přidán 27. 03. 2020
  • Here we look at the question of whether the NFA to DFA conversion always makes more states or not. We show that sometimes the conversion can yield the same number of states, and sometimes even fewer states! The essential idea behind having more states is having "missing" transitions; the second for having the NFA already be a DFA; and the third exploiting epsilon closure.
    Patreon: / easytheory
    Facebook: / easytheory
    Twitter: / easytheory
    If you like this content, please consider subscribing to my channel: / @easytheory
    ▶ADDITIONAL QUESTIONS◀
    1. Can you do an example of (3) from the video without using epsilon transitions?
    2. How large can the DFA be in relation to the NFA, in general?
    ▶SEND ME THEORY QUESTIONS◀
    ryan.e.dougherty@icloud.com
    ▶ABOUT ME◀
    I am a professor of Computer Science, and am passionate about CS theory. I have taught over 12 courses at Arizona State University, as well as Colgate University, including several sections of undergraduate theory.
    ▶ABOUT THIS CHANNEL◀
    The theory of computation is perhaps the fundamental
    theory of computer science. It sets out to define, mathematically, what
    exactly computation is, what is feasible to solve using a computer,
    and also what is not possible to solve using a computer.
    The main objective is to define a computer mathematically, without the
    reliance on real-world computers, hardware or software, or the plethora
    of programming languages we have in use today. The notion of a Turing
    machine serves this purpose and defines what we believe is the crux of
    all computable functions.
    This channel is also about weaker forms of computation, concentrating on
    two classes: regular languages and context-free languages. These two
    models help understand what we can do with restricted
    means of computation, and offer a rich theory using which you can
    hone your mathematical skills in reasoning with simple machines and
    the languages they define.
    However, they are not simply there as a weak form of computation--the most attractive aspect of them is that problems formulated on them
    are tractable, i.e. we can build efficient algorithms to reason
    with objects such as finite automata, context-free grammars and
    pushdown automata. For example, we can model a piece of hardware (a circuit)
    as a finite-state system and solve whether the circuit satisfies a property
    (like whether it performs addition of 16-bit registers correctly).
    We can model the syntax of a programming language using a grammar, and
    build algorithms that check if a string parses according to this grammar.
    On the other hand, most problems that ask properties about Turing machines
    are undecidable.
    This CZcams channel will help you see and prove that several tasks involving Turing machines are unsolvable---i.e., no computer, no software, can solve it. For example,
    you will see that there is no software that can check whether a
    C program will halt on a particular input. To prove something is possible is, of course, challenging.
    But to show something is impossible is rare in computer
    science, and very humbling.

Komentáře • 1

  • @EasyTheory
    @EasyTheory  Před 4 lety +1

    Next video! Is Do(L) or Sq(L) regular? czcams.com/video/UCr8Zh_DTas/video.html