• cosecantphi [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Okay, I think I get it now. I see how one could really twist something like your evolution example every which way to make it look like an algorithm. Things like saying the process to crabs is prescribed by the environmental conditions selecting for crab like traits or whatever, but I can see how doing that is so overly broad as to be a useless way to analyze the situation.

    One more thing: I don’t know enough about algorithms to really say, but isn’t it possible for an algorithm to produce wildly varying results from nearly identical inputs? Like how a double pendulum is analytically unpredictable. What’s more, could the algorithmic nature of a system be entirely obscured as a result of it being composed of many associated algorithms linked input to output in a net, some of which may even be recursively linked? That looks to me like it could be a source of randomness and ambiguity in an algorithmic system that would be borderline impossible to sus out.

    • I think what you’re talking about starts to get into definitional differences between different fields, but regardless I think the answer to the underlying questions is “yes”. We can talk about a function’s “purity”, meaning that if a function is pure, it will always produce the same output for the same input and will not change the state of any other aspects of the system it exists within. This concept is different from chaotic systems like you’re discussing, where the “distance” between outputs tends to be large between inputs whose distance is small. So some computer systems have the properties you’re talking about because they’re impure. Others have them because they’re chaotic.

      A lot of functions which are both pure and chaotic are used as pseudo-random number generators, meaning they will always produce the same number for a given seed, but are exceedingly difficult to predict. But creating perfectly chaotic systems is very difficult (maybe mathematically impossible? idr) and a lot of the math used in cryptography involves attacking functions by finding ways to reverse them efficiently, as well as finding ways to prevent those attacks.

      But yes, all of the things you mentioned can be sources of complexity that can make things chaotic, but that doesn’t necessarily make them nondeterministic. A lot of chaotic systems are sensitive to things like the exact millisecond at which some function runs or other sources of userspace randomness like user input or resource usage. Meanwhile, a good chunk of nondeterministic behavior in software comes from asynchronous race conditions.