Above is the cover image, and below, in roughly left-to-right, top-to-bottom order, are reprints of parts of the cover. You can get a really-big version of some of the images by clicking on them.
Garry Kasparov, playing black, was forced to resign the decisive game 6, making this the first time a computer had beaten a world champion in a chess match. (Photo by Stan Honda/Getty Images.)
The Honda Asimo robot. (Photo by Shutterstock.)
Thomas Bayes (1702--1761), whose ideas about probability as a measure of belief underlie much of modern AI technology. (Image from Library of Congress.)
A view from the Berkeley campus of the Campanile (Sather Tower) and the Golden Gate Bridge. Image by Ian Parker.
The twin Mars Exploration Rovers, Spirit and Opportunity, are two of the most successful robots of all time. (Image courtesy of NASA.)
We make it a tradition to show a copy of the book on the cover of the book. Here is the original picture before the third edition cover was photoshopped in. (Photo by Peter Norvig. Model: Bella Norvig.)
Alan Turing, who described the Turing Test and did fundamental work in Artificial Intelligence and the theory of computation. (Photo from Time Life/Getty.)
Shakey with project leader Charles Rosen. (Photo from Time Life/Getty.)
But how does it happen that thinking is sometimes accompanied by action and sometimes not, sometimes by motion, and sometimes not? It looks as if almost the same thing happens as in the case of reasoning and making inferences about unchanging objects. But in that case the end is a speculative proposition ... whereas here the conclusion which results from the two premises is an action. ... I need covering; a cloak is a covering. I need a cloak. What I need, I have to make; I need a cloak. I have to make a cloak. And the conclusion, the ``I have to make a cloak,'' is an action.
(Bust from National Museum of Rome.)
type SeismicEvent ; origin R3Vector EventLocation(SeismicEvent); origin Real EventTime(SeismicEvent); random Real EventMagnitude(SeismicEvent); random Boolean EventNaturalOrigin(SeismicEvent) type Detection ; origin SeismicEvent Source(Detection); origin Station DetectedAt(Detection); random Real DetectedAmplitude(Detection); random Real DetectedAzimuth(Detection); random Real DetectedSlowness(Detection); random Real DetectedOnsetTime(Detection); type Station; guaranteed Station Station1, Station2, Station3, Station4; nonrandom R2Vector StationLocation(Station); #SeismicEvent(EventLocation = xyz, EventTime = t) ~ EventPoissonLambda(xyz); EventMagnitude(event) ~ GutenbergRichter(-1,Offset(EventLocation(event))); #Detection(Source = event, DetectedAt = station) ~ EventDetectionDistrib(EventLocation(event), StationLocation(station), EventMagnitude(event), station) // False Alarms #Detection(DetectedAt = station, DetectedOnsetTime = time) ~ FalseDetectionPoissonLambda(station) DetectedOnsetTime(det) ~ EventTime(Source(det)) + TravelTimeDistrib(EventLocation(Source(det)), StationLocation(DetectedAt(det))) DetectedSlowness(det) ~ SlownessDistrib(EventLocation(Source(det)), StationLocation(DetectedAt(det))) DetectedAzimuth(det) ~ AzimuthDistrib(EventLocation(Source(det)), StationLocation(DetectedAt(det))) DetectedAmplitude(det) ~ AmplitudeDecayDistrib(EventLocation(Source(det)), StationLocation(DetectedAt(det)), EventMagnitude(Source(det))) // observations : guaranteed Detection det1, det2, ..., det138 obs DetectedTime(det1) = .. obs DetectedSlowness(det1) = .. obs DetectedAzimuth(det1) = .. obs DetectedAmplitude(det1) = .. obs DetectedTime(det2) = .. ... obs DetectedAmplitude(det138) = ..<