![]() |
Site Archive (Complete) | |||
|
ABOUT US |
CONTACT |
ADVERTISE |
SUBSCRIBE |
SOURCE CODE |
CURRENT PRINT ISSUE |
NEWSLETTERS
|
RESOURCES
|
BLOGS
|
PODCASTS
|
CAREERS
|
||||
November 08, 2002
AI Expert NewsletterDennis Merritt
AI Expert Newsletter is all about artificial intelligence in practice. Features include case studies, technology tutorials, product reviews and AI news—plus classic articles from the original AI Expert magazine! Keep up with the latest in logic programming, expert systems, neural networks, genetic algorithms, and fuzzy logic.
From the Editor: Welcome to the premier issue! Welcome to Dr. Dobb's AI Expert Newsletter. Before you can begin to talk about Artificial Intelligence (AI), you have to deal with the name itself. The phrase Artificial Intelligence often leads to impassioned philosophical debates, like those raging right now on the Dr. Dobb's AI Forum. It can also inspire some great science fiction. (The Hyperion Trilogy by Dan Simmons is my favorite, based on Tom Ray's fascinating Tierra project—but that's for a later newsletter.)
Philosophical debates on machine vs. human intelligence can be fascinating, but for this newsletter what we need is a working definition of AI that more pragmatically encompasses the wide variety of fascinating software and hardware products and projects that are usually labeled AI. So we'll define artificial intelligence in terms of computer nature rather than human nature:
Artificial Intelligence (AI) is the art and science of making computers do interesting things that are not in their nature.
What is a computer's nature? Well, at a minimum a computer has memory that's good for storing data and a CPU that processes sequences of instructions. So if you have a problem that requires the automation of data storage, the automation of procedures, or both (data processing, for instance), then you have a problem that is in a computer's nature to solve (or to be used to solve). Other types of problems are not in a computer's nature.
Consider Mycin, one of the earliest AI programs, written by E. Shortliffe in 1976. The developers were faced with the problem of trying to automate medical diagnostic knowledge that doctors were taught or acquired over years of experience. It was widely agreed that this knowledge was best expressed in the form of rules. For example,
If the infection is primary-bacteremia, and the site of the culture is one of the sterile sites, and the suspected portal of entry is the gastrointestinal tract, then there is suggestive but not conclusive evidence that what you're looking at is bacteriodes.
That certainly doesn't look like C++. It doesn't even look like Cobol. These rules were neither data or procedures, and trying to shoehorn them into either representation was unworkable for any decent-sized body of knowledge. So what could they do?
The answer lies in the words of some long-forgotten hardware engineer:
"Software is a kludge for getting around design flaws in the hardware."
What the Mycin developers really needed was a new kind of computer: One that processed rules. So they created a virtual machine, whose nature was ideal for processing knowledge expressed as diagnostic rules. They called it an "inference engine."
People in the AI field have been doing the same thing ever since—creating virtual machines that are programmed in non-conventional ways, and using those machines to perform previously untenable programming tasks.
Which leads to a problem that confronts us in this AI newsletter. Because AI developers typically create a new virtual machine every time they tackle a new kind of problem, there isn't a common language, like Java or C++, that is used for AI applications. Nor are there standards like SQL for database access, or HTML for Web browsers.
Nor are these virtual machines similar. The classic VMs deal with a wide variety of rule languages and reasoning algorithms, while newer ones deal with such diverse subjects as semantic networks, neural networks, ontological knowledge bases, genetic algorithms, artificial life, robot brains, cellular automata and, of course, games.
And then, given a specific area of AI, anyone writing about it faces a choice: Do you write about how to build the tool, or about applications of the tool? The former is solid programmer stuff; the latter requires some knowledge of the specific tool, which is often a commercial product.
So I'm asking for your input. There is a wealth of fascinating subject matter that this newsletter can cover, and I'd like to know what your interests and experiences are. Send me e-mail. Tell me what you're currently doing with AI and what you'd like to see covered in the AI Expert Newsletter. I want the newsletter to meet your interests.
News Brains in Bahrain Chess Championship: It's a Tie! Brains in Bahrain was the latest man-machine chess showdown of champions, pitting Vladimir Kramik (a human) against Deep Fritz (a software program). Kramik won the early matches in what was called a triumph of anti-computer strategy. Deep Fritz won the later matches in what was called a triumph of anti-human strategy.
Chess playing has often been considered an ultimate test of machine intelligence because it is too complex to be mastered using straightforward search algorithms. That is, the search space of all possible moves is too great to be explored by a machine.
Early researchers worked on encoding the essence of grandmaster reasoning to improve program performance. They learned, for example, that grandmasters had greater "pattern vocabularies" than weaker players. They didn't reason faster than weaker players, just more efficiently, because they were working in larger chunks of knowledge.
But with the speed of today's machines, the value of the brute-force search in chess had become more important. So, ironically, in this classic test of machine intelligence, computers are playing on a par with the best humans more by exploiting the natural strengths of computers, and less by the application of human-like intelligence. But however they do what they do, today's top chess programs are masterpieces of software engineering.
I must emphasize that Deep Fritz is not the famous Deep Blue, which was dismantled after defeating Kasparov in the last man-machine chess championship. Deep Blue was an amazing mix of specialized parallel processing hardware and software capable of searching 200 million moves per second. Deep Fritz is a souped-up commercial product from ChessBase running on stock hardware capable of only 3 million moves per second. They claim it's smarter, though.
As for humans, with their feeble CPUs, they still provide stiff competition for millions-of-moves-per-second machines. It all appears to revolve around superior recognition and processing of patterns. And when you take a heavily pattern-oriented game like Go—well, computers aren't even close yet. Dr. Jessica Risken of Stanford University has done a study of a mechanical duck built in 1738 that created the same interest and excitement back then as current experiments have in the area of artificial life. The parallels between the 1738 attempt to use mechanized models to understand real life and the present-day efforts are fascinating.
Among other things, the duck was realistic in that it ate and pooped. But if you looked inside, it sort of cheated. Food went in, and time passed, and poop came out, but the input food was still there, and the poop had been pre-loaded. So the duck didn't really digest, it pseudo-gested.
That is not dissimilar from the chess programs that look like they understand the patterns on the board, but instead are processing millions of individual moves.
Also like the chess programs, the duck was an amazing bit of engineering—and probably a lot of fun to build.
Articles AI Expert Magazine, this newsletter's namesake and inspiration, was one of the premier magazines covering AI in the early 1990s. Considering the quality of the magazine, it probably comes as no surprise that we can still learn from many of the articles published a decade or more ago. To that end, every month we'll be publishing an article or two from AI Expert on Dr. Dobb's Journal's AI Expert Web site. If you recall a favorite AI Expert article you'd like to see, let us know.
For instance, this month's selection is "Computer Chess: The Drosophila of AI," by L. Stephen Coles ( AI Expert, April 1994). This in-depth article covers the history of chess playing machines from a 1770 mechanical automaton (like the duck!) to Deep Blue, and explains why chess is the fruit fly of AI research.
Links The American Association of Artificial Intelligence AAAI) is a non-profit scientific organization devoted to supporting AI research and development. The organization has conferences and journals and an excellent Web site that introduces AI research and topics.
John McCarthy of Stanford University has one of the great minds of AI and is one of AI's founders. See his views on what AI is at his What is AI Web site. He's got some ideas in there on computer chess as well.
Carnegie Mellon AI Repository has a large collection of AI software, resources, and links, although some are out of date. Included in the resources is a directory of major AI resources.
The MIT Media Lab's Web site list describes a large number of fascinating research projects.
Raymond Kurzweil's AI site has numerous papers, books, and discussions of the deepest issues with intelligent machines.
Dr. Dobb's Journal's AI Topics Web site has a number of interesting links to sites, papers, books, and FAQs, as well as a lively discussion forum.
PCAI magazine has a wealth of information about AI technologies and products on its Web site. The alpha-beta search algorithm is the core technology for two-player games. It finds the best move for each player by examining a tree of possible future moves. The link is to some excellent course materials at McGill University.
The International Computer Games Association (ICGA) Web site has a tremendous amount of information on computer chess and other games. In particular, check out the excellent article Anatomy of a Chess Program with its in-depth description of the design of chess programs.
The Enpassant Chess Club has a long list of free chess programs and related tools, with short descriptions of each. Some are available with source code.
Chessopolis has a longer list of free chess programs as well as a directory and reviews of commercial chess programs.
Beowulf is a full open source chess program with the admirable goals of 1) being a competitive program, and 2) having clearly commented and written code ideal for learning about and tinkering with a chess program. 2002
NOVEMBER 8-10
NOVEMBER 10-14
NOVEMBER 11-14
NOVEMBER 12-15
NOVEMBER 15-17
NOVEMBER 18-22
NOVEMBER 18-20
NOVEMBER 24-26
DECEMBER 3-6
DECEMBER 3-4
DECEMBER 9-13
DECEMBER 9-14
DECEMBER 15-22, 2002
DECEMBER 16-17
DECEMBER 18-19
DECEMBER 18-21 2003
JANUARY 3-6
JANUARY 12-15
FEBRUARY 12-14
FEBRUARY 12-14
MARCH 1-4
MARCH 9-12
MARCH 24-26
APRIL 23-26
APRIL 23-25
MAY 20-24
JUNE 2-5
JUNE 20-22
JUNE 22-25
JUNE 23-26
JUNE 24-27
JULY 14-18
AUGUST 9-15
AUGUST 12-14
AUGUST 28-30
SEPTEMBER 26-30
OCTOBER 13-17 Until next month,
Dennis Merritt
|
|
|||||||||||||||||||
|
|