def elimination_ask(X, e, bn):
    """Compute bn's P(X|e) by variable elimination. [Fig. 14.11]
    >>> elimination_ask('Burglary', dict(JohnCalls=T, MaryCalls=T), burglary
    ...  ).show_approx()
    'False: 0.716, True: 0.284'"""
    assert X not in e, "Query variable must be distinct from evidence"
    factors = []
    for var in reversed(bn.vars):
        factors.append(make_factor(var, e, bn))
        if is_hidden(var, X, e):
            factors = sum_out(var, factors, bn)
    return pointwise_product(factors, bn).normalize()
def elimination_ask(X, e, bn):
    """Compute bn's P(X|e) by variable elimination. [Fig. 14.11]
    >>> elimination_ask('Burglary', dict(JohnCalls=T, MaryCalls=T), burglary
    ...  ).show_approx()
    'False: 0.716, True: 0.284'"""
    assert X not in e, "Query variable must be distinct from evidence"
    factors = []
    for var in reversed(bn.vars):
        factors.append(make_factor(var, e, bn))
        if is_hidden(var, X, e):
            factors = sum_out(var, factors, bn)
    return pointwise_product(factors, bn).normalize()
def elimination_ask ( X , e , bn ) : assert X not in e , "Query variable must be distinct from evidence" factors = [ ] for var in reversed ( bn . vars ) : factors . append ( make_factor ( var , e , bn ) ) if is_hidden ( var , X , e ) : factors = sum_out ( var , factors , bn ) return pointwise_product ( factors , bn ) . normalize ( )
Compute bn's P(X|e) by variable elimination. [Fig. 14.11]
    >>> elimination_ask('Burglary', dict(JohnCalls=T, MaryCalls=T), burglary
    ...  ).show_approx()
    'False: 0.716, True: 0.284
Compute bn s P ( X|e ) by variable elimination . [ Fig . 14 . 11 ] >>> elimination_ask ( Burglary dict ( JohnCalls = T MaryCalls = T ) burglary ... ) . show_approx () False : 0 . 716 True : 0 . 284