I work on autonomous driving robots. Teams I have been on in the past won extremely competitive autonomous vehicle competitions. Our robots crashed all the time. ALL THE TIME!
There is nothing deterministic about how autonomous systems work. In fact our algorithms were by definition random number generators! We randomly generated "hypotheses" and then had heuristic tests that figured out which was the most likely trail and then chose it. It worked well, 99% of the time. But that 1% was a killer.
Mind you, since we were winning we were doing better than the other solutions which tried to be more deterministic and use maps or things like that. We were basically stateless which reduces some of the feedback associated with getting messed up in some of your estimations.
The problem is all at the low level, not the high level.
Give a robot a perfect map and it is easy to find a way around safely. The problem comes determining what the hell the camera is seeing (lasers are a lot easier, but not as flexible and more expensive). That is why the bulk of the effort is focused on computer vision not path finding, path finding algorithms are simple.
Sure actuating the pedals is fairly trivial, but to call autonomous systems "deterministic" is scary to someone who knows how fickle they are. I'm a huge advocate of self-driving cars, but we are not there yet, and when we get there we need to do a pile of peer review on the code (which better be open source). You never know what race conditions will blow it all up.
That's essentially the definition of deterministic. If your machine is powerful enough, you can even do it before the real one completes its operations. Anything deterministic is predictable in this manner.
That you can't predict it, or that you don't have a computer powerful enough to predict it has nothing to do with something not being deterministic, nor predictable. Even a massive, PRNG-influenced neural network is deterministic.
------------
On an aside for people who are thinking of quoting the halting problem at me:
The halting problem requires that the detector returns an answer, and it must be true or false and accurate, or the proof through paradox fails. Therefore, it cannot simulate the operation of what it's detecting, because there could be an infinite loop which would cause it to run without end. You also cannot merely abort it after a while, as that would be either a 3rd return state ("unknown") or an inaccurate response.
But in the field, even if it is stationary the pictures are never the same from frame to frame and everything relies on a lot a randomness, and random noise.
Simulators are almost a waste of time because the real challenge is handling that noise, NOT dealing with the information extracted after the noise. Once you have a clear view of the world, everything it is easy, it is getting the eyes to actually understand anything that is hard.
If you're suggesting that we know what a computer will do on every single given input, we don't. That's in a class of unsolvable problems, as it requires the halting problem to be solved.
[Added the following section after being down-voted]
A "shock", in the deterministic computer world, could be an incorrect classification resulting in an incorrect action. The results are similar to when a human is shocked and doesn't act correctly.
Is the scenario I've painted limited to neural nets? No, any trained classifier, even any program at all may have "minor" slips like this. (When dealing with an analogue world, there's a ridiculously large number of situations that may exist). But you know what? Humans don't perform perfectly; and a computer that's been shown to perform the correct final* response 100% of the experimental time, and 99.9997% of the real time is competent at the activity, and trustworthy.
Disclaimer: I love machine learning, I love neural networks, and I see great usefulness for them in this world; however, I also believe that the perfect combination of variables could yield unusual results. Is it unlikely? Incredibly. Possible? yes.
* Consider a situation where a child is playing with a ball. The computer may not recognize that anomaly on the side of the road as the child and the ball, or even as something to be avoided. If the computer recognizes the anomaly as something that needs more information; then tells the car to slow down until it can acquire that information, then recognizes it as something that needs to be avoided and does so, successfully, safely, and with sufficient space for the conceivable outcomes that may have resulted with this child; then, while the computer couldn't discern the object at first, it did in the end and adapted to the situation appropriately. The "final response" was correct.
[edit: rather than simply down-vote me, please tell me where I'm wrong so I can learn.]
I could go for "fully computerised traffic would be significantly safer than human traffic", but absolutes about the former being unfailing are just silly.
And of course, there will be the Android app the pedestrian can use as a last resort to avoid beng run over that stops any cars heading for the phone. :-)
Unless they're using a random number generator seeded with outside data, all computer operation can be called deterministic and 100% predictable. Because it's 100% repeatable given identical preconditions. People? Not so / not currently doable.
If the wrong operation for a situation were performed, it'd be due to a higher-level decision going wrong, not the command. Meanwhile, people can "hit the brakes" (high-level command) and instead slam the accelerator (command not carried out). And fully believe they hit the brakes, and that the car accelerated uncontrollably.