Regular Languages Closed Under Subsequences

preview_player
Показать описание
(Easy Theory is in 60 FPS now!) Here we look at the problem of showing that regular languages are closed under subsequences (i.e., a substring but doesn't have to be contiguous). The idea is to "eliminate" transitions in the initial DFA by introducing epsilon transitions for every existing transition. We also give a concrete example of this.

#easytheory #nfa #dfa #gate #gateconcept #theoryofcomputing #turingmachine #nfatoregex #cfg #pda #undecidable #ricestheorem

Contribute:

Live Streaming (Sundays 2PM GMT, 2 hours):
(Youtube also)

Social Media:

Merch:

Ultimate Supporters: (none)
Diamond Supporters: (none)
Platinum Supporters: (none)
Gold Supporters: Anonymous (x1), Micah Wood, Ben Pritchard
Silver Supporters: Timmy Gy
Supporters: Yash Singhal

▶ADDITIONAL QUESTIONS◀
1. What about "supersequences"? (i.e., all strings that include some string w in L as a subsequence)
2. What about substrings?

▶SEND ME THEORY QUESTIONS◀

▶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 Youtube 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.
Рекомендации по теме
Комментарии
Автор

The addition of epsilon transitions to every existing transition could lead to the acceptance of strings that are not actually subsequences.
Epsilon transitions allow the automaton to "jump" around within the input string. This might disrupt the sequential order required to identify a subsequence. If the original DFA was designed to enforce a specific order of characters, the epsilon transitions could undermine that.

mr.doubleplus
Автор

It turns out that my intuition was correct 😁 and once again a wonderful video!

vimalathithand
Автор

Very nice, my intuition would have been that there's no closure for that. I'll give that as an exercise to my students in addition to closure under substrings and prefixes.

Flovus
Автор

So the end resulting DFA that accepts subsequences would it be a single final state, comprised of all of the original DFA states, which on all inputs transitions to itself? In this case : ({q0, q1, q2, })(a, b) -> ({q0, q1, q2, }) ?

samjudelson
Автор

can any one explain is subsequence is regular as it still accepts bbb which is not a subsequence

charank-yszv