>Try to model their thought patterns better. Maven doesn't.
That's right. Maven doesn't and Maven won't.
I have been in this business a long time, and through the years one constant
has emerged: trying to model computer processes on the thought processes of
humans is a bad design decision. Chess, checkers, bridge, backgammon, scrabble,
and poker all have this in common: designs based upon human practices were
brittle, incomplete, and hard to improve. A change to a computer-oriented brute
force approach immediately made rapid progress possible.
This is not evidence of disrespect for the talents of human masters. It is
just looking at what humans do well and hat computers do well, and ryng to make
the best of the situation.
You should not expect that what works for humans will work for computers, nor
vice versa. Humans have incredible "hardware" for pattern matching, and
incredible procedural capabilities based upon mapping problems onto
language-processing wetware. Computers have no comparable capability. However, computers have
tremendous speed, and the ability to encode a computational model and execute
it precisely as specified.
The mapping of the problem domain into software leads naturally to ideas like
exhaustive move generation, static evaluation, and simulation. Failing to
exploit the natural advantages of computers in such processing would be a poor
Instead, let's map missing conceptual issues into the software framework. For
example, if you say that Cappelletto has the ability to win extra games
against weaker humans by exploiting his understanding of their weaknesses, and that
Maven does not have that capability, I would not start by trying to code the
tricks that Brian uses. These are his own, and peculiar to him. Instead, I
should search for things that Maven can do. For example, I might create an
opponent model that is able to alter the simulation of the oppoent's turn so as to
exhibit the expected weaknesses of the opponent. Now, Brian may be able to wing
"IXTER" past an unwary patzer, confident that he will confuse either IXTLE or
OXTER with this phony, and perhaps Maven cannot. But Maven will do its own
thing: opening lines for 8-letter bingos, avoiding TWS, etc. Brian can do these
things in theory, but in practice Maven would do them with greater consistency.
It is a question of playing to the strengths of computers. Keep things
testable. Keep things fast. Keep things clean. Use an engineering oriented approach.
Measure things. Test them. Question the status quo. It's software, after all.
[Non-text portions of this message have been removed]