About Maven


Brian Sheppard talks about Maven

My first Maven dates from 1983. I had a summer job as an intern at a technology company, but my boss was ill the entire summer. They literally told me to keep busy until he came back, which was expected to occur "next week." Idle hands make devil's work, you know.
Maven's first version was better than anything that had been published in the computer literature, but it was nothing special. Figure 1200 rating or so. It didn't have the full OSPD (Official Scrabble Player's Dictionary)
In 1986 I wrote a version that had the full OSPD. (Or as close as I could come using manual text entry. In truth, the dictionary wasn't fully accurate until 4 years later.) I invented a method of prioritizing moves that superseded the methods employed by human masters. That version was probably a little better than human champions.
In the years after 1986, Maven got various upgrades to its move evaluation logic. One of the first improvements was the Perfect level, but computers of that era weren't fast enough to execute the process in real time. So, while the Perfect level was implemented early, it didn't appear in actual games until 1996. In 1990, Maven got an endgame player, which handled positions where the bag was empty (so Maven could calculate which tiles the opponent has, and plan accordingly). Even though this improved Maven by over 10 points per game, Maven still was only a little better than human champions. Humans learned how to evaluate moves by watching what Maven does, so they improved a lot between 1986 and 1995.
1996 was the first year that Maven was able to play the Perfect level at over-the-board time controls. This marked the advent of genuinely superhuman play by a computer program. By 1998, Maven had very good methods of controlling CPU utilization so that it could play at interactive speeds. For this product, the Perfect level learned how to share the CPU with a user interface. This is the first commercial product that has a Perfect level.
The Perfect level plays very, very well. It is hard to know exactly how well because there is nothing to compare it to. I have some statistical evidence that suggests that its errors total under 1 point per game. Maybe it isn't perfect, but it's pretty close. It beats human champions about 60% of the time. Maven's Champion level is probably stronger than human champions, but the edge isn't particularly large; maybe a few percent.
One of the challenges of programming Maven was to produce realistic play at the weak levels. Maven has a common-word dictionary that it employs at levels below Champion, and move generation strategies that result in low average scores without resorting to frequent exchanges. Such methods keep Maven's play entertaining down to the lowest levels.
Maven can play Scrabble in 4 languages at present, or 5 if you consider the dialect of English used in the United Kingdom to be a different language. :-) While Maven is likely to need occasional upgrades, extensions, and bug fixes, most of the work now and in the future is in three areas. First, I would like to simplify Maven's development model. As you can imagine, a code base that has undergone 3 platform changes, 3 language changes, 5 compiler upgrades, and 3 complete rewrites over a 20-year time frame will need a certain amount of cleanup. Second, I want to create features that make expert thought processes accessible to aspiring human users (like Hint, Shuffle, and Definitions from this product). Third, I will often use Maven to explore or test various theories about the game.
The entire code base is surprisingly small; maybe 10,000 lines of code if I trim it down to essentials.