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

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

asked in Theory of Computation by Loyal (3.1k points)   | 62 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.3k 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 Apr 2017
  1. akash.dinkar12

    3782 Points

  2. Divya Bharti

    2696 Points

  3. Deepthi_ts

    2270 Points

  4. rude

    2142 Points

  5. Tesla!

    1888 Points

  6. Sanjay Sharma

    1692 Points

  7. Debashish Deka

    1668 Points

  8. Shubham Sharma 2

    1610 Points

  9. Prashant.

    1580 Points

  10. Arjun

    1570 Points

Monthly Topper: Rs. 500 gift card

22,135 questions
28,125 answers
63,467 comments
24,261 users