GATE CSE
First time here? Checkout the FAQ!
x
+1 vote
55 views

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

asked in Theory of Computation by Loyal (3.1k points)   | 55 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.1k 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 Mar 2017
  1. rude

    5236 Points

  2. sh!va

    3054 Points

  3. Rahul Jain25

    2920 Points

  4. Kapil

    2732 Points

  5. Debashish Deka

    2602 Points

  6. 2018

    1574 Points

  7. Vignesh Sekar

    1440 Points

  8. Bikram

    1428 Points

  9. Akriti sood

    1420 Points

  10. Sanjay Sharma

    1128 Points

Monthly Topper: Rs. 500 gift card

21,551 questions
26,896 answers
61,256 comments
23,267 users