Hi all,
for those historians out there wondering about early EC and "the first
guy to do GP", here's a fascinating email I just had. I hope you enjoy
it.
Peter.
Dear Mr. Bentley
I was very interested to read your article in the New
Scientist. The following may interest/amuse you.
In 1958 I built "LEO II/4" (which was the first computer Ford
Motor Company had in Britain). It was as big as a house. Over 7000
valves, Average add time some 320 microseconds. I had unlimited access
to play on it as I wished (in my own time) - which must have been
unusual in those days.
I had read a book by Professor Grey Walter, a neurology researcher
at Bristol, (I think that is who it was - it is a long time ago now)
about homoeostasis. He had randomly wired a group of telephone exchange
uniselectors (contacts and motors) and mechanically linked pairs of the
moving arms. Then he applied power. After chuntering for a bit the
system worked itself into the state where it was "happy to sit" because
there was no power being routed to any motor.
I was obsessed by my toy and wondered how I could programme it
so that it kept running until a quiescent state had been reached. I
thought of what in those days were "eleven-plus" (exams for grammar
school entry) tests and questions like The "First four members of a
series are a, b, c, d. What is the fifth? And how I would do them.
Namely, do calculations based on 4 until the fourth member's value is
achieved. The the same algorithm on 3,2,1 and if they give the right
result, apply it to 5.
So I wrote a program to invent little programs by randomly
picking up instructions to change the current number in the
"accumulator" by
ADD 1, or 2 or 3
ADD 1 x the number, or 2 x, or 3 x
ADD the number squared or 2 x
AS ABOVE, but SUBTRACT.
Random numbers (for selecting one action out of 16) were
generated by picking out 4 bits from the middle of successive squarings
of a 39 bit number.
The only bias in the selection of the next instruction was to
take into account whether an augmenting or a decreasing one was
currently needed.
In other words, given the value of
a * x ^ 2 + b * x + c for x = 4, 3 , 2, 1
find the value of a, b, c and the value of the expression for x
= 5
It worked!. The average time to find and answer was some nine
seconds. If the algorithm reached 23 instructions it was aborted and a
new one started. This was because the successful program was output by
punching the machine code onto a single Hollerith card, which could
only represent 22 instructions.
The same type of cards were used to feed the programme - hand
punched in machine code binary - into the computer.
I was pleased with the resuilt, but having done it, it all
seemed rather trivial. I now realise that had I known where to publish
it might have been of interest. Though it may be that there was no
relevant literature in those days.
I subsequently, on the next main frame I was building, tried
assemblling algorithms from Boolian sub-routines to create the logic of
a single-bit adder. But did not have time to complete it / lost
interest because it was a lot of work to show that it could inevitably
be done (!)
I hope you have found this amusing.
Regards
Steve Farrow