snippage from a brilliant article!
Alan Grimes
alangrimes@starpower.net
Sat, 23 Dec 2000 21:42:07 -0500
Pattern Discovery
We are getting pretty good now at designing computer systems that given
the clues, can solve the riddle. The clues
may be a bunch of symptoms that a hospital patient has, or the
dimensions of a set of boxes to be loaded onto a lorry.
What we haven't really made any progress with at all is designing a
computer that can first spot the clues amidst all the
irrelevant facts they are hidden in before it has solved the riddle, and
then use the clues to solve the riddle. Sometimes
even spotting the clues before it even knows there is a riddle. It's a
uniquely human talent at the moment, that lies
behind all new theories of science, as well as the moment of sudden,
complete understanding that inspires a poet to
capture a thousand summer afternoons in six lines of text.
This ability is based in being able to imagine the relationships of
cause and effect between the parts of what one is
seeing being arranged in many different possible ways, and then test
each arrangement to see if holds up. As we do
this we can start to get a feel for how the pieces can fit together very
quickly - sometimes only a few hours skillful
playing can make the subtle world hidden in whatever one is studying
become apparent. A creative software engineer
can take a software problem, chunk it into four or five subsystems, then
chunk it again into 4 or 5 different subsystems
(which must obviously be connected differently). Then he or she can
compare the different approaches and spot the
underlying similarities between the approaches, however these are
disguised by details of each approach. These are
then the real problem - the hard issues that the designer must address
to do a good job. And with the problem
understood, getting a sensible answer usually isn't too difficult. A
musical composer or someone doing logistics for a
major trade fair can do exactly the same thing. In mathematics, the
technique is called inductive reasoning. In the
textbooks it is usually shown as a complement or equal to deductive
reasoning - step by step stuff. But all
mathematicians know better. In fact they do exactly the same thing as a
DJ finding the perfect mix for the moment.
The only way to do anything like this with conventional computers is
called exhaustive search. We just program the
computer to try every possibility, including the vastly overwhelming
number of ridiculous ones, and test them. All the
experience of chess program designers is that human players do not do
this. They find themselves pitting exhaustive
searches against something else. The recent ability of computers to
function at Grandmaster level in chess doesn't
mean that exhaustive search is now as good as Grandmasters - merely that
it is as good as chess.
This trick of holding all the elements of a problem in mind at once and
considering each possibility while bearing in
mind that as the elements change, the relationships between them also
change is very suggestive of a mathematical
idea called modal logics. In modal logics, the value of an expression
(or even parts of the expression) can change the
relationships indicated by the operators within the expression. Instead
of saying,
A + B = C
we can say
A ? B = C
and make the rule that if C is odd the ? becomes a +, but if C is even
it must become a -. The odd thing is, we can
actually build computers that can cope with this sort of thing. They are
analogue machines rather than digital ones.
Analogue machines were commonly used for graphics rendering until about
20 years ago, and are not theoretical
notions at all. Analogue machines don't even have to be electronic.
Minimum area problems that would make a
Connection Machine cough can be solved by soap films in an instant. The
analogue machines that can do modal logics
must have a feedback connection in them. The electronics that hold the
value of ? must be connected to the electronics
that hold the representation of C forwards to fix the value of C and
backwards to be fixed by C. The purpose of the
circuit is to find a balance or true possibility, not a halt or answer.
The machines have to be analogue because the effect of ? and C on each
other must be felt instantly. If the computer
was conscious, there would be no period of time in which a process of
applying the change could take place. So there
would be no sequence of actions that an analogue machine could specify
to a digital one to tell it how to do the trick. Of
course, the digital computer could be programmed to simulate the physics
of what the analogue machine was made of,
and do it that way, but it would take a long time. All those atoms to
model...
We are here faced with a trick that humans can do, that seems miraculous
without feedback being involved in how we
do it, but makes much more sense if we assume it is used.
--
If a "bug" in one program causes another to fail, the OS is at fault.
http://users.erols.com/alangrimes/ <my website.
####### Begin Eschelon Block #######
unabomber anthrax plutonium militia delta force ruby ridge atf batf waco
oklahoma city assault rifle sog sof m-16 clinton marx crack m-60 c5 c7
mlk panthers FBI chemical weapons twa 800 roswell terrorist freedom