# Bayes net inference

#### 0rthodontist

I don't understand this simple algorithm from Russel & Norvig for computing a distribution of X given certain observed values e:

Code:
function Enumeration-Ask(X, e, bn) returns a distribution over X
inputs: X, the query variable
e, observed values for variables E
bn, a Bayes net with variables {X} u E u Y /* Y = hidden variables */

Q(X) <- a distribution over X, initially empty
for each value xi of X do
extend e with value xi for X
Q(xi) <- Enumerate-All(Vars[bn], e)
return Normalize(Q(X))

function Enumerate-All(vars, e) returns a real number
if Empty?(vars) then return 1.0
Y <- First(vars)
if Y has value y in e
then return P(y | parents(Y)) * Enumerate-All(Rest(vars), e)
else return the sum over y of P(y | parents(Y)) * Enumerate-All(Rest(vars), ey)
where ey is e extended with Y = y
I am having trouble understanding exactly what Enumerate-All does. Specifically I do not understand how P(y | parents(Y)) is computed. We don't know the values that the parents of Y take, do we?

Related Programming and Computer Science News on Phys.org

"Bayes net inference"

### Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving