GATE CSE
First time here? Checkout the FAQ!
x
+2 votes
74 views

Some one please explain these two theorems,I am struggling a lot here.

asked in Theory of Computation by Boss (5.9k points)   | 74 views

1 Answer

0 votes
Here these theorems are based on pigeon hole principle.

1. Here it says that strings accepted by automata is finite, than atmost n states can be there. This means at most one character can be fit in a single state.

2. Now consider what if this is accepting a string of more than n characters than according to Pigeon hole principle, there should be at least one state on which input is looping. So this may accept infinite length of strings when looping state is accepting as well.

In order to check this, we have two options one is to provide all strings till infinite length and check. Obviously not feasible.

Another approach is to provide all strings of length between n and 2n. So if anyone string is accepted we will know that looping state is accepting as well so this language will accept all those strings on which it will loop on that particular state. So it will be a set of infinite strings.
answered by Active (1.4k points)  
But string if length N itself will suffice,why there is a limit of <2N?

Why it is not 3N ?
For more than n, any multiple of n is correct. Since for checking with 2n we need minimal work, so we take 2n otherwise u can go for higher multiples as well. Reason for taking multiples of n is we need we find which state is exactly causing loop so we need to go through all at least for one more time after initial input scanning.

I mean to say why there is a check on upper side.

Why is not just not >=N only?

If it is accepting more than n ,it means that it is infinite,and we should not consider more than that.

I also asked simlar question based on this here ,http://gateoverflow.in/104084/toc-finite-automata#a104154

Please clear my confussion

Can you look into http://www.cse.msu.edu/~torng/360Book/RegLang/Decision/

I says

  • When we pump it once, we increase the length of the string by at most n so we cannot exceed 2n-1. The problem is we might not exceed n-1 yet.
  • The key is we can keep pumping it and at some point, its length must exceed n-1, and in the step it does, it cannot jump past 2n-1 since the size of the loop is at most n.

Can you explain it?

This is simular to what you mentioned above

Reason for taking multiples of n is we need we find which state is exactly causing loop so we need to go through all at least for one more time after initial input scanning.

But I am not able to get this point.Please clarify



Top Users Jul 2017
  1. Bikram

    3960 Points

  2. manu00x

    2464 Points

  3. Debashish Deka

    1848 Points

  4. joshi_nitish

    1654 Points

  5. Arjun

    1290 Points

  6. Hemant Parihar

    1184 Points

  7. Arnab Bhadra

    1100 Points

  8. Shubhanshu

    1052 Points

  9. Ahwan

    900 Points

  10. rahul sharma 5

    702 Points


24,018 questions
30,955 answers
70,326 comments
29,337 users