The *adaptation * algorithm processes the cases individually. It assumes

that the conditional distributions (one for each parent configuration)

follow the Dirichlet distribution. When a new case arrives, it

computes the updated distribution. However, if the new case is

incomplete, the updated distribution is in general a mixture of

Dirichlet distributions. In order to avoid exponential growth of the

number of terms of the distribution, the updated distribution is

replaced by a single Dirichlet distribution that has the same means

and average variance (of the Dirichlet parameters) as the correct

updated distribution.

The *EM * algorithm, on the other hand, considers all cases before it

updates the CPTs. This is repeated until the CPTs converges to a

stable maximum (stability is determined by a sufficiently small change

of the log-likelihood between two iterations).

If all cases are complete, there is usually no difference between the

methods -- with one exception: the adaptation algorithm needs to have

a valid starting distribution (this means that experience counts must

be positive), whereas the EM algorithm is happy to start with

experience counts equal to zero.

The adaptation algorithm is primarily intended to continuously update

the CPT parameters when a system is already online (for example, it is

useful if the parameters can change over time).

The EM algorithm will generally give the best results, but it is also

more costly to run (since it processes all cases, and often does that

several times). It is therefore not suitable if you want online

updating of CPT parameters.