Earlier quoted context omitted.
I agree. I've seen some marvelous pigeon hole explanations of why you cannot write a general lossless compression algorithm that makes all files smaller. I have no idea what that explanation would look like in terms of maxes and averages, and I have to believe it would be much more difficult to understand.
That's really more about surjectivity and simple counting. Neither the pigeon hole principle not a max/average argument are really necessary. Say you're trying to find a way to compress every n+1 bit string into an n bit string. Losslessness means that you have to come up with a function d from n bit string to n+1 bit string that decompresses. The number of n+1 bit string is larger, so there must be n+1 bit strings t…
The undeserved status of the pigeon-hole principle (1991)
21–30 of 37 posts
Re: The undeserved status of the pigeon-hole principle (1991)
#22Earlier quoted context omitted.
I agree. I've seen some marvelous pigeon hole explanations of why you cannot write a general lossless compression algorithm that makes all files smaller. I have no idea what that explanation would look like in terms of maxes and averages, and I have to believe it would be much more difficult to understand.
That's really more about surjectivity and simple counting. Neither the pigeon hole principle not a max/average argument are really necessary. Say you're trying to find a way to compress every n+1 bit string into an n bit string. Losslessness means that you have to come up with a function d from n bit string to n+1 bit string that decompresses. The number of n+1 bit string is larger, so there must be n+1 bit strings t…
Re: The undeserved status of the pigeon-hole principle (1991)
#23Re: The undeserved status of the pigeon-hole principle (1991)
#24This note represents a rare misstep by Dijkstra: the pigeonhole principle actually is a special and important principle worthy of a special name of its own. For example: 1. When you formulate the pigeonhole principle in propositional logic, its resolution proofs are exponentially large. Since modern SAT solvers are basically very fancy propositional resolution provers, this gives you a nice way to find hard instances…
SAT solvers overwhelmingly don't use resolution. Modern state of the art solvers use DPLL/CDCL.
Most modern SAT solvers will still have trouble with the pigeon-hole style problems (although some have inbuilt explicit detection, or symmetry breaking, which will let them solve it efficiently).
Re: The undeserved status of the pigeon-hole principle (1991)
#25I feel this is an instance of prof.dr. Edsger W.Dijkstra just being mean. If one works more on pigeon-hole principles you end up with Ramsey Theory, which covers some amazing results.
It wouldn’t be the only one. Review his archived papers and they’re well salted with snark.
(I usually like Dijkstra's works but the quote does make a person smile.)
Re: The undeserved status of the pigeon-hole principle (1991)
#26This note represents a rare misstep by Dijkstra: the pigeonhole principle actually is a special and important principle worthy of a special name of its own. For example: 1. When you formulate the pigeonhole principle in propositional logic, its resolution proofs are exponentially large. Since modern SAT solvers are basically very fancy propositional resolution provers, this gives you a nice way to find hard instances…
Rare? He was often biased by his preferences, teaching styles, and opinions, in his notes, as opposed to pure science/logic.
Re: The undeserved status of the pigeon-hole principle (1991)
#27I (or any math noob) can easily understand the pigeon hole principle. His more detailed arguments about max, avg and a bunch of other stuff is more obtuse and harder to follow. IMO, pigeon hole principle, where applicable, wins this argument. If you're dealing with a sequence of real numbers, you might need max >= avg.
I agree. I've seen some marvelous pigeon hole explanations of why you cannot write a general lossless compression algorithm that makes all files smaller. I have no idea what that explanation would look like in terms of maxes and averages, and I have to believe it would be much more difficult to understand.
When you compress a file, you are representing a big number with a small number.
There are more big numbers than there are small numbers.
Re: The undeserved status of the pigeon-hole principle (1991)
#28Re: The undeserved status of the pigeon-hole principle (1991)
#29This note represents a rare misstep by Dijkstra: the pigeonhole principle actually is a special and important principle worthy of a special name of its own. For example: 1. When you formulate the pigeonhole principle in propositional logic, its resolution proofs are exponentially large. Since modern SAT solvers are basically very fancy propositional resolution provers, this gives you a nice way to find hard instances…
Re: The undeserved status of the pigeon-hole principle (1991)
#30Earlier quoted context omitted.
That's really more about surjectivity and simple counting. Neither the pigeon hole principle not a max/average argument are really necessary. Say you're trying to find a way to compress every n+1 bit string into an n bit string. Losslessness means that you have to come up with a function d from n bit string to n+1 bit string that decompresses. The number of n+1 bit string is larger, so there must be n+1 bit strings t…
This is still the pigeonhole principle, just inverted - If you have more holes than pigeons (and you can’t make fractional or quantum pigeons) at least one hole must have no pigeons.