That makes sense. I'm saying "My program can't deal wuth an infinite loop but fortunately I can write a program that does everything I want from it and cannot possibly, in the strictest sense possible, enter an infinite loop.
'Easier said than done' caveats of course apply.
There are also blocking problems called deadlocks where program A has resource X and needs resource Y to give it up, but program B has locked up resource Y and can't release it until it has resource X. Until recently this has been the usual cause of programs hanging indefinitely, rather than an infinite loop per se. Over the past decade or so there has been a lot of effort spent on making various software services non-blocking, and this has drastically changed the limits of what is possible. Facebook, Twitter, even Elliquiy would not be possible (at least on our current hardware) without this little revolution.
Again, there's a tradeoff, particularly in terms of how certain you can be about the 'state' of things at an exact moment. But this is almost pedantic - do you care if you got your friend's message at 12:01:42.935 PM versus 12:01:42.906 PM? I know some people are REALLY impatient, but still...
In E's case, because the implementation for the current software is somewhat poor, this shows up in the form of e.g. telling you you have an unread message for longer than it ought to, as a more blatant example that has the same cause. It's still a bug, however, in the sense that it is certainly possible to do better.
I'm actually not. I'm awesome at any number of things, maths isn't one of them. I know how much change to expect from a shop, like, I'm not saying I have bad enough maths for it to intefere with my life. But I'm pretty OK with knowing there are some mathematical actions that I just can't do. I'll live.
We all have a finite amount of resources to devote to problems that face us. There's nothing to be ashamed of regarding stating "Alright, I'll let the rest of the world handle that. My contribution will be this, instead." I realize I'm a nerd, but problems like the twin prime conjecture don't keep me up at night. Have plenty of other issues to solve. : )
Gotcha. So we're artificially halting the problem after, say ten minutes and sayign "Welp, thats long enough" and thus not actually coming to a full and, you know, rigorous conclusion on whether the problem would eventually be solved or not.
Ah see here we're running in to a problem that I actually run in to a lot. It's easy for you to say (or at least it seems easy for you to say) "well, thats more of an AI discussion and is off topic". My issue is that I'm in uncharted lands here and don't know where the map lines are. I don't have enough knowledge of the categories and sub-divisions of the subject area to necessarily know when I've gone off topic and am exploring some peripherally relevant tangent and when it's core stuff, intrinsic to the topic at hand.
Not that I'm ridiculing or otherwise ignoring your suggestion. Simply saying that as I'm running with a map, its easy to go up an intersting looking side ally without realising what I've done.
Well I mean, presenting a perceptron network as a threshold test suffices for its role in this topic. Quite literally, every single neuron in your brain takes a number of inputs (from a thousand to a hundred thousand, as a human), and if the 'weight' provided by these inputs crosses a certain point, then that neuron fires.
But that's all it can do. That one neuron can't say "Well, if it gets too
high, I won't fire." Instead, what needs to be done, is have another neuron with a separate set of weights from the same input, where it fires if it goes below a certain threshold, but does not fire above.
So you add a third neuron that takes its input from the previous two, making it a second layer. It fires when both of the first layer neurons fire. Now you have your XOR. : )
Beyond this, though, neural networks are a huge segment of AI, and AI is itself a huge segment of computer science. Can certainly go into it, but the vast majority of its scope is going to be outside of this thread.