Alex Rivera | Logout

Understanding recognizers and deciders in Theory of Computation

Asked 2011-03-14T04:18:03.523
10

I am having some trouble grasping what it means for a machine to recognize and decide a language. I think I'm close to the definitions but not right.

When one says that a Turing Machine T recognizes language L where

L = { <A> | A is a DFA }

where DFA = deterministic finite automaton

my understanding is that it means that it is possible to build a Turing Machine that given any kind of input (strings, cars, persons, whatever!) will be able to tell you whether that thing you gave it as input is a DFA or not. With this I mean, will always accept a DFA and will always reject a non-DFA input.

That is, if that input is a member of L. Other example would be saying that guy X is a recognizer of his father, as whatever is the thing you put in front of him, he will be able to tell you if what is in front of him is his father or not. Is this correct? Which part is not correct?

On the other hand, a decider over a language seems to be a Turing Machine that never loops, that is, it will always halt in either an accept or reject state for any input. Isn't this going to be similar, or the same, as what I explained above about recognizers?

Thanks

Edit
Report

1 Answer

3

The simple Answer as I thinks is:

Decider always halts, accept or reject

But

Recognizer do not always halt, Machine can accept, reject or loop. By loop means machine does not halts.

For recognizer sometime we use deciders to decide, if machine is in looping then decider will reject according to our description.

answered 2012-12-19T09:31:59.993

Your Answer