Suppose I search for an algorithm that has made good predictions in the past, and use that algorithm to make predictions in the future.
If I understand the problem correctly, then it is not that deep. Consider the specific example of weather (e.g. temperature) prediction. Let C(n) be the set of circuits that correctly predict the weather for the last n days. It is obvious that the smallest circuit in C(1) is a constant, which predicts nothing, and which also doesn’t fall into C(2). Likewise, for every n there are many circuits that simply compress the weather data of those n days, and return garbage for every other day. But there is also a circuit c_opt, which performs the correct weather simulation and generates the right answers, so it belongs to C(n) for every n. The question is, for what n does the shortest element of C(n) equal c_opt?
Obviously, I don’t know the answer. But the noisy nature of real world and it’s complex initial conditions suggest that c_opt should be a very large circuit and thus require a very large n to remove all the shorter ones. On the other hand, if you relaxed the condition, and only searched for a good approximation, c_apx, then the correct circuit may be shorter.
I think this is fine though. We aren’t doing raw program searches, we’re doing searches in program spaces that are known (by experience) to produce quite general solutions.
By the way, I’m a bit uncomfortable with the amount of circuit anthropomorphization in your post. What is up with that?
But the other elements in C(n) aren’t necessarily daemons either, right?; Certainly “encoding n days of weather data” isn’t daemonic at all; some versions of c_apx might be upstream daemons, but that’s not necessarily concerning. I don’t understand how this argument tells us anything about whether the smallest circuit is guaranteed to be (downstream) daemon-free.
If I understand the problem correctly, then it is not that deep. Consider the specific example of weather (e.g. temperature) prediction. Let C(n) be the set of circuits that correctly predict the weather for the last n days. It is obvious that the smallest circuit in C(1) is a constant, which predicts nothing, and which also doesn’t fall into C(2). Likewise, for every n there are many circuits that simply compress the weather data of those n days, and return garbage for every other day. But there is also a circuit c_opt, which performs the correct weather simulation and generates the right answers, so it belongs to C(n) for every n. The question is, for what n does the shortest element of C(n) equal c_opt?
Obviously, I don’t know the answer. But the noisy nature of real world and it’s complex initial conditions suggest that c_opt should be a very large circuit and thus require a very large n to remove all the shorter ones. On the other hand, if you relaxed the condition, and only searched for a good approximation, c_apx, then the correct circuit may be shorter.
I think this is fine though. We aren’t doing raw program searches, we’re doing searches in program spaces that are known (by experience) to produce quite general solutions.
By the way, I’m a bit uncomfortable with the amount of circuit anthropomorphization in your post. What is up with that?
Why is this the question?
Which claims / assumptions / conjectures are you uncomfortable with?
Because c_opt is the safe circuit you want, and because your question was about the smallest circuits.
Not claims or assumptions, just weird words, like “motivated” or “evil”. I don’t think these are useful ways to think of the problem.
But the other elements in C(n) aren’t necessarily daemons either, right?; Certainly “encoding n days of weather data” isn’t daemonic at all; some versions of c_apx might be upstream daemons, but that’s not necessarily concerning. I don’t understand how this argument tells us anything about whether the smallest circuit is guaranteed to be (downstream) daemon-free.