## Multi-Valued Variables

We have presented an algorithm that allows for multi-valued
variables, where the splitting operation creates the same number of
confactors as there are values in the domain of the variable being split.
There is an alternate method for using multi-valued
variables. This is to extend the notion of a context to allow for
membership in a set of values. That is, a context could be a
conjunction of terms of the form *X in S* where *S* is a set of
values. The original version of equality of the form *X=v* is the same
as *X in {v}*. Splitting can be done more efficiently as there is
only one residual confactor for each split. Effectively we treat a multiset of
confactors as a unit.

There are examples where this representation can be much more
efficient, but it makes the algorithm much more complicated to
explain. There are also examples where the binary splitting is less
efficient as it needs more splits to get the same result.

David Poole
and Nevin Lianwen
Zhang,Exploiting Contextual
Independence In Probabilistic Inference, Journal of
Artificial Intelligence Research, 18, 2003, 263-313.