A deterministic algorithm, if run twice with the same inputs, follows the same steps and produces the same outputs each time. A non-deterministic algorithm will not necessarily follow the same steps, and may not even generate the same result.
It has been part of the folklore since Dijkstra’s “A Discipline of Programming” that well-written non-deterministic programs may be even easier to understand and prove correct than their deterministic counterparts.
It has been part of the folklore since Dijkstra’s “A Discipline of Programming” that well-written non-deterministic programs may be even easier to understand and prove correct than their deterministic counterparts.
theory that some actions are undetermined: the philosophical theory that human beings have free will and their actions are not always and completely determined by previous events.
But that is pretty much beside the point, because
You have provided no reasons why I should think that what you meant is true.
We are not talking about increasing confidence in a system by testing it. Certainly Eliezer is not talking about ‘test-cases’. We are talking about proofs of correctness.
indeterminism [...] theory that some actions are undetermined: the philosophical theory that human beings have free will and their actions are not always and completely determined by previous events.
Uh, no way! Indeterminism is best not defined in terms of humans.
I’m not sure what your point is here. Are you saying that ‘indeterminism’, in the sense of your substituted definition, is what you really meant when you wrote:
What indeterminism actually does is makes test-cases into an unreliable form of evidence.
The intended idea was pretty simple: in a deterministic system if you test it, and it works you know it will work under the same circumstances in the future—whereas in a system that lacks determinism, if you test it, and it works, that doesn’t mean it will work in the future.
A deterministic algorithm, if run twice with the same inputs, follows the same steps and produces the same outputs each time. A non-deterministic algorithm will not necessarily follow the same steps, and may not even generate the same result.
It has been part of the folklore since Dijkstra’s “A Discipline of Programming” that well-written non-deterministic programs may be even easier to understand and prove correct than their deterministic counterparts.
Again, with the power of randomness.
What indeterminism actually does is makes test-cases into an unreliable form of evidence.
I don’t think you said what you mean.
But that is pretty much beside the point, because
You have provided no reasons why I should think that what you meant is true.
We are not talking about increasing confidence in a system by testing it. Certainly Eliezer is not talking about ‘test-cases’. We are talking about proofs of correctness.
Uh, no way! Indeterminism is best not defined in terms of humans.
I’m not sure what your point is here. Are you saying that ‘indeterminism’, in the sense of your substituted definition, is what you really meant when you wrote:
?
If so, what do you propose we do about it?
The intended idea was pretty simple: in a deterministic system if you test it, and it works you know it will work under the same circumstances in the future—whereas in a system that lacks determinism, if you test it, and it works, that doesn’t mean it will work in the future.