Saturday, May 12, 2012

Expert Systems


Google's driverless car uses artificial intelligence a Prius equipped with a variety of sensors to follow a route programmed into the GPS navigation system. It nimbly accelerated in the entrance lane and merged into fast-moving traffic on Highway 101, the freeway through Silicon Valley. During a half-hour drive beginning on Google’s campus 35 miles south of San Francisco . It drove at the speed limit, which it knew because the limit for every road is included in its database, and left the freeway several exits later. A device atop the car produced a detailed map of the environment.

The car then drove in city traffic through Mountain View, stopping for lights and stop signs, as well as making announcements like “approaching a crosswalk” (to warn the human at the wheel) or “turn ahead” in a pleasant female voice. This same pleasant voice would, engineers said, alert the driver if a master control system detected anything amiss with the various sensors.

I would bet that the type of programming used is what is known as an expert system. An expert system is software made up of a set of rules that analyze information  supplied by the user of the system about a specific class of problems, as well as provide analysis of the problem(s), and, depending upon their design, recommend a course of user action in order to implement corrections. In a car driving program, the information fed to the expert system would be the rules of the road, actions that a driver would take depending on the situation and sensory input such as location of cars around it, speed limit, various traffic signals and so forth.
Originally, the idea behind expert systems was to provide help  usually provided by an expert in a particular field, such as software troubleshooting or diagnosing an illness in a medical patient. Three features of expert systems are rules of thumb, fuzzy logic and a data base of solutions. When an expert in a field, such a physician, goes about solving a problem, such a determining what ails a patient, he or she usually has several rule-of-thumb that he or she uses. Depending upon the answers to key questions about the problem, the expert knows what the solution is by applying a rule of thumb. For example, suppose a patient complains about frequent severe headaches. After asking questions about the headaches and other accompanying symptoms and perhaps performing some tests, the doctor may determine that the person is suffering from migraines and prescribe pills. In expert systems, these rules of thumb are coded into the software.
Fuzzy logic is logic based on approximations rather than formal logic. It takes into account such vague statements as "almost," "nearly," and so forth, and manipulates them to come up with an approximate answer. For example, if a patient asks how much pain he or she is in and replies "not so much," this is considered less pain than "it hurts terribly." Certain conclusion may be drawn by which answer is given.
Expert systems also usually have large data bases which can be readily accessed using the rules of thumb and fuzzy logic. Essentially, driving requires “rules of thumb” and “fuzzy logic” sometimes.
Anyone who has gone to a software web site and used their self troubleshooting system has probably used an expert system. Computer games also use expert systems.
In my novel, The Isaac Project, the heart of the artificial intelligence being developed is an expert system.

No comments: