A perfect predictor of the next bit of an incoming data stream is sometimes possible.
Caching programs are the most used form of a predictor. They try to predict what we are going to search/read next and they speculatively store an old reading result. When they are wrong, they squander the valued time, when they are right – a piece of time has been spared.
A caching program is a prototype of an oracle device. Its business is to know the data before it arrives and to know it better than pure chance would permit. This predictor is allowed to store data and do calculations with it. As long as it’s faster on average than nature at providing answers, the predictor/cache algorithm works fine.
Imagine, that you are able to cache sports results! They are just a series of whole numbers, not much different from internet data packets, only smaller. If you can do this, you could make some serious money.
Imagine, that you have a good stock market caching algorithm, then there’s even more money to be had!
Weather forecasting is also just data caching. Before the snow covers you, or the rain makes you wet, or the cold makes you miserable – the info which one will bug you tomorrow, should be in the cache. If the right one is always there, the weather predicting is one hundred percent accurate. The engine of the weather caching program is complicated and computation hungry. If we are not happy with this fact, we should cache and save some more when the engine is running. As you may know, we do that a lot and branch predicting by the processor is an example of how. Level one cache is another. We do all that better with every new generation of hardware and software.
The prediction algorithm for electricity flow, goes by the name of Maxwell’s laws.
We can effectively cache the paths of planets from the days of Kepler and Newton. Some algorithm improvements have been made by Lagrange and even Einstein, especially but not solely for Mercury.
A medical doctor sometimes uses a cache of only 1 bit which stores whether I’ll die or not and if stored right, the good doctor will guess.
Okay, is there something we could not cache? No there isn’t. The question is only how well. Sometimes not that well, for example which radioactive atom will pop first. When you can’t you can’t.
But generally if you develop a really good caching (predicting) software, you have developed a superintelligence, no more, no less.
Even before it can rightfully be called superintelligence, it already stores some of its future code in its cache. It is able to predict what a competent programmer would type.