This page contains the errors that we know about from the first edition of Poole, Mackworth and Goebel, Computational Intelligence: A Logical Approach, Oxford University Press, 1998. Copyright © Poole, Mackworth, Goebel, and Oxford University Press, 1998. All Rights reserved.

If you find an error or something you don't understand let us know.

To see what printing a book is, look at the first left-hand-side page with printing on it. (This is the page that contains copyright information and Library of Congress Cataloging-in-Publication Data). At the bottom of this page you will find numbers: 10 9 8 7 6... The last of these numbers specifies which printing you have.

**Page 111**Exercise 3.18, "cs486" should be "cs489" and "cs340" should be "cs350".- Page 153, Figure 4.8.
Insert "D
_{X}:= ND_{X}" in the "then" part of the "if" statement.

**Page 6**, paragraph 2, "of of" should be "of".

**Page 63**Exercise 2.1 (a) should read "Give a model of the knowledge base."

**Page 77**the query cs_or_math_course(C) should be preceded by "?".**Page 80**line 9 "is absence" -> "its absence"

**Page 155**, end of second last paragraph: "and does it the number of variables" should be "and does it in time linear in the number of variables."

**Figure 5.3**(page 176). There should be an arc between datalog and definite clauses (not just an arrowhead).**Exercise 5.2**(page 196). The*c*in Fred's representation should be*x*.

**Page 220**The end-bar for the example should be at the bottom of the page.**Page 221, first paragraph**. "HOW" and "WHY" should be swapped. HOW moves from the root to the leaves, and WHY moves from the leaves to the root of the tree.**Example 6.14**(page 223). "...they can ask how*live(l1)*...". The "*live*" should be "*lit*".**Page 230, Sec 6.8**. "than is provided by the meta-level, you can't rely on the all" should be "than is provided by the meta-level, you can't rely on all the"

- none

- none

- none

**Page 348**Sec. 10.2: "$current(w_1)\geq 1.3$ means there are more than $1.3$ amps flowing" should be "$current(w_1)\geq 1.3$ means there are at least $1.3$ amps flowing"**Page 364**(Sec. 10.3) "Consider the wiring example of Figure \ref{powerl} (page \pageref{powerl}). Whether light $l_1$ is lit depends only on whether there is power in wire $w_0$ and whether light $l_1$ is ok. Other variables, such as the position of switch $s_1$, whether light $l_2$ is lit, or who the Queen of Canada is, are irrelevant. Whether light $l_1$ is lit depends only on whether there is power in wire $w_0$ and whether light $l_1$ is ok." Remove the last sentence.**Example 10.13**In the sentence crossing pages 364 and 366,*w*should be_{3}*w*. Thus to affect the light_{0}*l*, any random variable either needs to affect whether there is power in wire_{1}*w*or affect whether light_{0}*l*is ok._{1}**Page 384**"Lets initially assume..." should be "Let's initially assume..."**Page 389**Sec 10.4 "Lets continue Example ..." should be "Let's continue Example ..."**Example 10.25**(page 390). (Thanks to Bonnie Webber.) For the case where you check and report and see smoke, 10 should be subtracted from the values. Thus it should read:E(V | call and check and report and see_smoke) = -210

E(V | ¬call and check and report and see_smoke)

= -5010 * P(fire | report and see_smoke) - 10 * P(¬fire | report and see_smoke)

= -5010 * 0.964 - 10 * 0.056

= -4830

**Figure 11.7**(page 413). The error for iteration 80 should be 0.179 (not 0.178).**Example 11.16**(page 426). "...the probability of observing*n*A's in*m*independent trials..." should be "...the probability of observing a particular sequence of*n*A's in*m*independent trials...". It is, of course, a particular sequence that will be observed. This isn't the binomial distribution which is the probability of observing any sequence of*n*A's in*m*independent trials (for the binomial distribution the number in the book needs to be multiplied by the number of ways you can get*n*A's in*m*trials).**Page 426**(first paragraph after the heading). "*P(model|data)=1*" should be "*P(data|model)=1*".**Example 11.16**(page 427). (Thanks to Bonnie Webber.) This looks as though it has been run using a different database.Let decision tree

*d*_{0}be the tree with no internal nodes and predicts read with probability ½ (this is the most likely tree with no internal nodes given the data). Then:P(data |

Let decision tree*d*_{0}) = ½^{9}* ½^{9}= 0.00000149*d*_{1a}be the tree that splits on*length*, such that when*length=long*it predicts*reads*with probability 0 and when*length=short*it predicts*reads*with probability 9/11.P(data |

Let decision tree*d*_{1a}) = 1^{7}* (9/11)^{9}* (2/11)^{2}= 0.00543*d*_{1b}be the tree that splits on*thread*, such that when*thread=new*it predicts*reads*with probability 7/10 (as 7 out of the 10 examples with*thread=new*have*user_action=reads*) and when*thread=follow_up*it predicts*reads*with probability 2/8.P(data |

*d*_{1b}) = (7/10)^{7}* (3/10)^{3}* (6/8)^{6}* (2/8)^{2}= 0.0000247

- none

**Consistent**(p. 465) "can" should be "cannot". A set of beliefs is consistent if*false*cannot be derived.

- none

**Page 509**line 6, "had" should be "has"

Last updated 1 November 1999, David Poole, poole@cs.ubc.ca