I've got a pretty big network which is being used in GeNIe and C++ code. The problem concerns computing test strengths in some certain cases of observations. When I use Diagnostic View in GeNIe the problematic case gets solved in miliseconds with no remarkable memory consumption (relevance enabled) but when I solve exactly the same case in C++ (Windows binary) it takes about 8 seconds and 2 GB of physical memory (!!!).
I have completly no idea of what's going on. Possible causes:
- There is a bug in my C++ code
- GeNIe uses different version of SMILE library
- GeNIe's Diagnostic View is smarter then standard usage described in docs
- There is a bug in SMILE C++ library (not likely?)
Here is what I do in my C++ code:
Code: Select all
// (...) instantiating observations
diagnet.GetNetwork().EnableNoisyMAXRelevance();
diagnet.EnableDSep(true);
diagnet->UpdateFaultBeliefs();
int mostLikelyFault = findMostLikelyFault(net, diagnet); // this one finds a fault that I'd like to pursue
diagnet->SetPursuedFault(mostLikelyFault);
diagnet->ComputeTestStrengths();
I'd be thankful for any advice since I've been stuck with this for a week now.
Kind regards,
orzech