**Dealing with the increases in the number of variables
**
Even in the simple example above it is tricky to work out all the
probabilities and the revised probabilities once evidence is entered. Imagine a larger net
with many dependencies and nodes that can take on more than two values. Doing
the propagation in such cases is generally very difficult. In fact, there are no
universally efficient algorithms for doing these computations (the problem is
NP-hard). This observation, until relatively recently, meant that BBNs could
not be used to solve realistic problems. However, in the 1980s researchers
discovered propagation algorithms that were effective for large classes of BBNs. With
the introduction of software tools that implement these algorithms (as well as
providing a graphical interface to draw the graphs and fill in the probability
tables) it is now possible to use BBNs to solve complex problems without doing
any of the Bayesian calculations by hand. This is the reason why the
popularity of BBNs has mushroomed in recent years. They have already proven useful in
practical applications including medical diagnosis, diagnosis of mechanical
failures, and adaptive human interfaces for computer software.