Open HarryLynas opened 10 years ago
It's a limitation of Bayes-Scala, the intersection of two connected clusters cannot contain more than one variable. The work around is to combine sprinkler and grasswet factors into a single cluster, simply take a product of both factors. Then you would have two clusters only with rain var in a sepset.
Eventually, feel free to change LoopyBP implementation yourself to support sepsets with multiple factors.
Okay, thank you for the fast reply.
Proposes solutions: 1) Fix it in the cluster graph inference - support multivariable sepsets. 2) Support discrete networks in the factor graph inference.
Just mentioning that we are also hitting this one...
I was having an issue with the common benchmarking Bayesian network "B" and so decided to test this with a much smaller network, commonly used when learning what a Bayesian network is (Grass Wet).
The code I am using to represent this network is shown below:
However when adding the edges the following error is obtained:
"requirement failed: Sepset must contain single variable only"
Which can be found within this code:
Essentially as far as I am aware this algorithm is saying the network is invalid when actually as a Bayesian network this should be fine.
I am wondering if there is some sort of mistake I am making or if Bayes-Scala does not yet support this?