CSE 322 Week 2: Nondeterminism Rocks

Last week, in the class I'm teaching, we talked about the basics of deterministic finite automata. In week two we moved on to more interesting and slightly less basic material. In particular we introduced the notion of a nondeterministic finite automata and, by the end of the week, had showed that the class of languages accepted by deterministic finite automata is exactly the same class of languages accepted by nondeterministic finite automata.

What I love about this basic material is that you take a seemingly crazy idea: machines that can follow multiple computational paths at the same time, and it turns out to be useful! But, even more amazing, at least to me, is that it doesn't give you any more "expressive" power beyond deterministic automata: anything recognizable by deterministic finite automata is also recognizable by a nondeterministic finite automata and vice versa. This kind of thinking: "imagine a computing device that works this way, yes I know the world doesn't work that way, but just imagine and see where it goes" is, to me, very cool, and almost enough to make me believe what those crazy Platonic realists talk about when they mumble about mathematics and reality.

Processes like this are also one of the reasons that I think theoretical computer science isn't as far from theoretical physics as many would have you believe. The best of theoretical physics involves thinking up seemingly crazy explanations (would you have written down asymptotic freedom? Okay, if your t'Hooft, maybe! How about quantum mechanics, would you have gotten that one?) and then following through what these crazy ideas imply. More often than not they lead to dead ends. But, in both fields, when they do lead to new ideas, they are revolutionary ideas: quantum physics, nondeterministic Turing machines, special relativity, interactive proofs, and more.

For those with nothing more to do than read my notes, this weeks are pasted below:

  • Lecture 1: Welcome and Introduction
  • Lecture 2: Formal Definition of Deterministic Finite Automata
  • Lecture 3: Regular Operations on Languages
  • Lecutre 4: Nondeterministic Finite Automata
  • Lecture 5: Converting a NFA to a DFA
  • Lecture 6: Closure Properties of Regular Operations
Categories

More like this

Now that we've gone through a very basic introduction to computational complexity, we're ready to take a high-level glimpse at some of the more interesting things that arise from it. The one that you'll hear about most often is "P vs NP", which is what I'm going to write about today. So, what are…
"The miracle of the appropriateness of the language of mathematics for the formulation of the laws of physics is a wonderful gift which we neither understand nor deserve." - E. P. Wigner Our universe, or at least our understanding of the universe, appears to allow us to see its naked underbelly…
Lately I've been giving a lot of thought to a question that I'm nearly constantly asked: "So...[long pause]...are you a physicist...[long pause]...or are you a computer scientist?" Like many theorists in quantum computing, a field perched between the two proud disciplines of physics and computer…
Today on the arXiv an new paper appeared of great significance to quantum computational complexity: arXiv:0907.4737 (vote for it on scirate here) Title: QIP = PSPACE Authors: Rahul Jain, Zhengfeng Ji, Sarvagya Upadhyay, John Watrous We prove that the complexity class QIP, which consists of all…

Why not introduce something about the quantum finite automata,quantum cellular automata and etc ?:)
and ..Your lecture slices are somewhat boring,not like the style of Sipher's book--introduction to the theory of computation,which can easily trigger our interests..:)

By Zhimin Hua (not verified) on 11 Apr 2008 #permalink

I like your comparison of Theoretical CS and Physics and it is something i would like you to also write about more. Not many folks like to give thought to at such an abstract level :)

Zhimin Hua: this is a theory course for computer science majors. I suspect that I would introduce Markov networks before I tried quantum finite automata! What are "slices" and who is "Sipher"?