I see where you're coming from. The list of words you suggest are 'quite loaded with intentionality and purposefulness and DESIGN' are the linguistic conveniences of an anthropocentric view. This is how we interpret the world, and we tend to see everything in terms of those abstractions, they are suited to our thought processes, the way we manipulate symbolic meaning.
'Instructions' describes the data that configure a general-purpose machine or processor to produce a particular output.
'Carrying out' describes the activity of that processor.
'Solving a problem' describes an anthropocentric interpretation of the processor activity, imputing a reason or a goal to explain it. This interpretation is our imposition: 'the amoeba solves the problem of obtaining energy by engulfing and digesting food particles' doesn't mean there is intentionality, purposefulness or design on the part of the amoeba.
The usual 'requirement' to terminate expresses the point that the activity coded by the algorithm usually does not continue indefinitely - at some point it completes and a different algorithm may be run. Termination is usually triggered by an event or events that are direct consequences of the activity in progress. 'Eat until sated', 'dig out burrow until entire body fits inside'. It is viewed as a 'requirement' because non-termination in these cases is generally damaging, i.e. a 'runaway' process.
As you say, they are not words associated with evolution; we have learned that although evolution looks as if it has purposes and goals, it doesn't; our intuition is misleading. But if we remove the anthropocentric semantics (as I have attempted above) we can see that there is a reasonable interpretation that does not involve purpose, intent, or design.
This is why I don't think 'algorithm' necessarily has the anthropcentric nuances that you feel it inevitably has. Also, I don't know of another word that so clearly encapsulates what we are trying to describe here.
Exactly.
I think
Westprog said it the best.
Planetary motion and gravity and so forth in the Cosmos can be DESCRIBED by calculus formulas and we can calculate the positions so as to be able to send a ship to rendezvous with where a body would be in the future.
Does that mean that the planets are following a PRESCRIBED path?
Do the planets perform calculus calculations to figure out how and when they have to move to where they are PRESCRIBED to be?
The ALGORITHMS that DESCRIBE the cosmos can be used in a computer program to calculate where things are going to be in the future and where they were in the past.
Does that mean that the cosmos is performing an algorithm?
Neural Net Algorithms are used to simulate (mimic) the actions of Actual neural nets built using Opamps and circuitry.
That does not mean that physical Neural Nets function algorithmically.
Genetic Algorithms Simulate (memic) the actions of Evolution on genes to simulate a genetic population just as with Neural Nets we can use computers to simulate a Neuronal Network even though we have not actually BUILT a real one using opamps.
The results of how the SIMULATED population behaves according to certain inputs are interesting.
But that does not mean that the BEHAVIOR is algorithmic.
The behavior of a genetic population or neuronal net simulated in a computer algorithm is no more algorithmic than is the behavior of a planet simulated in a computer algorithm.
If you know what
Electronic Filters built out of OPAMPs and capacitors and resistors are, then you would know that there is nothing algorithmic about them. At least I hope you can see that… I have noticed that some are maintaining that an old TV set is an algorithm.
There are no algorithms involved in how analog
Electronic Filters work.
However, we can
describe their behavior using MATHEMATICAL formulas.
So now we are able to simulate a
A Bessel Filter and
Chebyshev Filter and second order and fourth order filters and so on and so forth using an ALGORITHM in a computer.
As a result we are now able to DIGITIZE analog electronic signals and make them into data. We then algorithmically apply the mathematical formulas SIMULATING the particular filter we need on the discrete digital data.
The resultant data is then converted back to actual physical signals.
The output signals are
as if the input signals have been passed through an actual physical electronic filter.
This is called a
Digital Filter.
So we have succeeded in FILTERING the input to create an output using an ALGORITHM.
However.... if anyone claims that analog
Electronic Filters built from physical electronic components and silicon are following an algorithm then they are
laughably WRONG.
We are SIMULATING the physical environment using algorithms.
Because of Analog to Digital conversion we can DIGITIZE the real world into DISCRETE data. We can then manipulate the data using algorithms that simulate an action that would have been done on the analog signals.
Because of Digital to analog converters we can convert digital data back to analog signals (e.g. sound waves or light or motor movements)
So the whole system
appears as if the real process acted upon the input to produce output.
But the process itself is no more algorithmic than an apple falling to the ground or a light reflecting off a mirror or refracting in a prism.
Have a look at these two pictures
One was produced by the algorithm below….. the other was produced by a man who laughed all the way to the bank (
Piet Mondrian).
Do you think when Mondrian created his “art” he was following a PRESCRIBED path of action….. oh wait….maybe this is a bad example
Here is the algorithm
Code:
MainProgram:
GoSub Instructions
while true
call RBicaso(0,0,800,600)
repeat
readmouse mx,my,mb
getkey k
if mb==2 || k == kc_Esc
waitnokey
fn = PromptBMP()
if fn != "" then WriteBMP fn
k = 0
endif
until k || mb==1
waitnokey 1000
wend
end
//===========================================================
sub RBicaso(x,y,w,h)
if w <= 50 || h <= 50 then return
n=RGB(random(256),random(256),random(256))
RectangleWH x+1,y+1,w-1,h-1,0,n
n=random(3000)
if within(n,1000,1999)
midx = w/3+random(w/2)
line x+midx,y,x+midx,596,4,0
w = midx \ call RBicaso(x,y,w,h)
x += midx \ w -= midx \ call RBicaso(x,y,w,h)
elseif within(n,2000,3000)
midy = h/3+random(h/2)
line x,y+midy,796,y+midy,4,0
h = midy \ call RBicaso(x,y,w,h)
y += midy \ h -= midy \ call RBicaso(x,y,w,h)
endif
Return
//===========================================================
Instructions:
data I_M;"RBicaso.bas"
data I_M;"This program will present you with a set of randomly"
data I_M;"generated art.",""
data I_M;"Press left-mouse button or any keyboard key to proceed"
data I_M;"from painting to another. If you keep the button pressed"
data I_M;"the paintings will advance like a slide show every second.",""
data I_M;"If you like a painting you can click the right mouse"
data I_M;"button on it or press Esc key to save it to a file (bmp).",""
data I_M;"The pictures are generated randomly and it might take"
data I_M;"a few iterations before you get a worth while picture.",""
data I_M;" Have Fun!"
n=MsgBox(I_M)
waitnokey
Return