English 中文(简体)
Good resources to learn about models of computation?
原标题:

Out of curiosity, I am trying to identify what model of computation a system I work with is functionally equivalent to, and prove the equivalence. The longer I spend on this problem the more I suspect the system isn t Turing-equivalent. My understanding of Turing Machines and recursively enumerable languages is good but I don t know much about automata with lesser capabilities (e.g. pushdown automata), so I am not sure how to proceed.

First, can anyone recommend a good resource for learning about different models of computation? I m interested in grammars, languages and automata, and how to prove equivalence and difference between all of them. Ideally the resource would break down all the elements of each model in great detail and compare them.

Second, is there a general approach or framework that should be used when trying to fit a system onto any of these computational models?

最佳回答

I d recommend a good textbook on computer science (In my Uni course, I m studying from Sipser s Introduction to the Theory of Computation, which is very good in my opinion. You might also find a free textbook which teaches the same, but I don t have any experience with one so I can t recommend).

The other approach would probably be just to read up on Wikipedia. You can actually get a lot of mileage out of the Wikipedia articles, if you know what you re looking for and in what order. Also, if anything is unclear, you can usually Google it and find more resources about that particular subject.

Of course, this will not be as good as a real textbook, but it s a good place to get started right now, and it s free.

As a starting point, I d recommend reading about the following topics (in the order listed):

  1. Deterministic Finite Automaton
  2. Nondeterministic Finite Automaton, and their equivalence to DFAs.
  3. Regular Languages, and their equivalence to DFAs.
  4. Pushdown Automata
  5. Context-free Grammars, and their equivalence to Pushdown Automata.
  6. Chomsky Hierarchy
  7. Turing Machines

That should provide a very brief introduction to most of the computational models people talk about. 2: I d recommend a good textbook on computer science (In my Uni course, I m studying from Sipser s Introduction to the Theory of Computation, which is very good in my opinion). The other approach would probably be just to read up on Wikipedia. You can actually get a lot of mileage out of the Wikipedia articles, if you know what you re looking for and in what order. Also, if anything is unclear, you can usually Google it and find more resources about that particular subject. As a starting place, I d recommend reading about the following topics (in the order listed): 1. 1: http://www.amazon.com/Introduction-Theory-Computation-Second-Michael/dp/0534950973/ref=sr_1_1?ie=UTF8&s=books&qid=1263282346&sr=8-1

问题回答

The video lectures from the following link gives good introduction to theory of computation. This is one of the best resources on this topic.

Video Lectures on Theory of Computation by Prof. Shai Simonson

An older text that may be hard to find is Hopcroft and Ullman s "Introduction to Automata Theory, Languages, and Computation". There are a number of editions --- I have heard that 79 is the best, in as much as it pulls the fewest punches in introducing complex stuff. It a legitimate, albeit small textbook, and it introduces the whole field, not just what you re looking for. I suggest this on the likely vain hope that maybe one of those "trickier" proofs other sources leave out may be your key.

As a gentler starting point, there are a few handy "benchmark" languages.

  • If your model can recognize the language of all strings where there are the same number of As and Bs in a string, then it is at least more powerful than FSM.
  • If it can t, then it may be equivalent to FSM.
  • Similarly, if your model can recognize the language of all strings where the are the same number of As, Bs, and Cs in a string, then it is more powerful than a CFG, or PDA.

These "benchmark languages" are really just functions in disguise --- the first is basically asking if 2 unary numbers are equal, the second is asking if 3 unary numbers are equal. They are nice and simple, and are well-known to be above or below the capabilities of particular models. I don t know simple ones for the more complex machines, so you may be on your own.

Note that for the model "LBA", linearly bounded automata, I believe that there is no known natural language that is computable with a TM, but NOT an LBA. This statement is drawn from hazy memories, so don t take it as a formal proof. :)

Note (lastly) that the "benchmark" languages ARE NOT ESTABLISHING EQUALITY. That is to say, if your model cannot compare 2 unary numbers, that does not mean it is necessarily equivalent to a FSM, it could be even weaker. The languages would only establish what it is greater than in power, or less than in power.

On a completely (completely) different track, Sipser s book does do proofs of equivalence between regexes and FSM, as well as between PDAs and CFGs. I m not sure how helpful that will be, as you are quite vague on what sort of model of computation you re considering, but if you re dead-set on equivalence, those may be good starting points.





相关问题
What are the differences between NP, NP-Complete and NP-Hard?

What are the differences between NP, NP-Complete and NP-Hard? I am aware of many resources all over the web. I d like to read your explanations, and the reason is they might be different from what s ...

Implementation Detail for Graph Analysis Algorithms

Let s say I have a graph with "heavy" nodes, that is each node is an object that is already carrying a lot of data. I want to do a graph transformation that requires me to calculate a special ...

Worst case running time (Big O)

I have this question, and I don t know how to solve it, because I don t understand it. :( The question is: Programs A and B are analyzed and are found to have worst case running times no ...

RSA cryptosystem

Hi i am trying to set up an RSA cryptosystem i have all the values except d selected prime numbers: p=1889, q=2003, n=3783667, phi=3779776, e= 61 i got stuck finding d could anyone help me to figure ...

BNF Grammar Derivation

I want to apply rules of BNF Grammar to produce derivation for : a_Num

热门标签