▲ | ball_of_lint 7 months ago | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This strategy or something like it legitimately wins the challenge. The challenge (based on expected value) is not to find some compression scheme that will compress 100% or even 50% of files to less than their original size. Instead it's to find any (set of) compression schemes that will compress more than 1/50 = 2% of arbitrary random files to less than their original size. You can construct such a program essentially as they described by asking for a large file size and then searching for a valid decompression program within that file. With standard tools you can make some valid decompression program quite short, which will allow you a reasonable probability that it will appear within a large randomly-generated file. The cost that you pay for using a compression scheme like this is that where the compression scheme works you'll win some bytes, but in the more common case where it doesn't you'll lose some, even for the simple `cat $1 > original` default decompressor. Now, a clever contest creator might arbitrarily choose files that win against such decompressors that they can think of, but Mike appears to have not have done so. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | LegionMammal978 7 months ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The problem is what you do outside the file: even if it contains a working decompressor, you have to actually run that decompressor, which most likely requires specifying the byte offset and doing some other work to extract it. And then the decompressor needs to shorten the file even past the length of that byte offset and extractor, which can't be done with reasonable probability. There are some formats which search for a valid header anywhere in the file, but then they'd get tripped up by all the mostly-valid headers that don't actually yield a decompressed file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | hinkley 7 months ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No. You sound as if you’re familiar with the culture but it’s clear that you’re not. The problem with comp.compression was always that its Eternal September is new people showing up every week claiming they’ve found a universal compression algorithm that compresses everything - the perpetual motion machine of information theory. Having gotten tired of explaining to people who think they’re fighting “dogma” not the laws of the universe, people start trying to find other ways to make them put up or shut up, so they could have some peace and quiet. Like sending them a file full of RNG output and wait for them to realize this was their teachable moment. Winning the challenge - without engaging in out of band bullshit (compressor + output should be the giveaway) doesn’t prove you have found a universal compression algorithm. It only proves the RNG is flawed. Which would be very interesting but not break Shannon. The problem is compressor + file means “no out of band data” to a reasonable person and we have already established we are dealing with unreasonable people. Not > My main motivation was to "out-trick the tricker". I thought the chances of me making any money were very remote. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | GuB-42 7 months ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
For a truly random file, your 1/50 compression scheme that will make it smaller than the original will only make it smaller by 5 or 6 bits, maybe more if you are lucky, but it is an exponential, so realistically, you won't be able to save more than a byte or two, and you can't write that decompressor in two bytes. The only way to win is to reverse the random number generator used to create the contest file, or to exploit some bias if there is one. But if the file is generated properly, most likely with some CSPRNG, good luck going that route. The contest creator has to use a random file, any attempt to be clever will actually decrease entropy and may result in the contestant winning. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|