An algorithm is:
A finite set of unambiguous instructions that, given some set of initial conditions, can be performed in a prescribed sequence to achieve a certain goal and that has a recognizable set of end conditions.
For the sake of argument, let’s be real generous with the terms “unambiguous”, “sequence”, “goal”, and “recognizable” and say everything is an algorithm if you squint hard enough. It’s still not the end-all-be-all of takes that it’s treated as.
When you create an abstraction, you remove context from a group of things in order to focus on their shared behavior(s). By removing that context, you’re also removing the ability to describe and focus on non-shared behavior(s).So picking and choosing which behavior to focus on is not an arbitrary or objective decision.
If you want to look at everything as an algorithm, you’re losing a ton of context and detail about how the world works. This is a useful tool for us to handle complexity and help our minds tackle giant problems. But people don’t treat it as a tool to focus attention. They treat it as a secret key to unlocking the world’s essence, which is just not valid for most things.
For the sake of argument, let’s be real generous with the terms “unambiguous”, “sequence”, “goal”, and “recognizable” and say everything is an algorithm if you squint hard enough.
when you soften these words, what you’re left with is a heuristic - a method that occasionally does what you expect but that’s underspecified. it’s a decision procedure where the steps aren’t totally clear or that sometimes arrives at unexpected results because it fails to capture the underlying model of reality at play.
Thanks for the help, but I think I’m still having some trouble understanding what that all means exactly. Could you elaborate on an example where thinking of something as an algorithm results in a clearly and demonstrably worse understanding of it?
Algorithmic thinking is often bad at examining aspects of evolution. Like the fact that crabs, turtles, and trees are all convergent forms that have each evolved multiple times through different paths. What is the unambiguous instruction set to evolve a crab? What initial conditions do you need for it to work? Can we really call the “instruction set” to evolve crabs “prescribed”? Prescribed by whom? Like, there’s a really common mental pattern with evolutionary thinking where we want to sort variations into meaningful and not-meaningful buckets, where this particular aspect of this variation was advantageous, whereas this one is just a fluke. Stuff like that. That’s much closer to algorithmic thinking than the reality where it is a truly random process and the only thing that makes it create coherent results is relative environmental stability over a really long period of time.
I would also guess that algorithmic thinking would fail to catch many aspects of ecological systems, but have thought less about that. It’s not that these subjects can’t gaining anything by looking at them through an algorithmic lens. Some really simple mathematical models of population growth are scarily accurate, actually. But insisting on only seeing them algorithmically will not bring you closer to the essence of these systems either.
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.