void OnLearningFinished(ILearningTask learningTask)
{
Dispatcher.Invoke(delegate
{
if (Model.BayesianNetwork != learningTask.BayesianNetwork)
{
return;
}
// If this learning finished for the network we're currently
// looking at.
xLearningInspector.SetIsLearning(false);
SetBayesianNetwork(learningTask.BayesianNetwork, "");
xGraphInspector.SetInferenceResults(null, 1, null);
xGraphInspector.SetInferenceResults(null, 2, null);
if (Model.BayesianNetwork.VariablesOrdered.All(rv => rv.Distributions.EnumerateDistributions().Any()))
{
Scenario scenario = new Scenario("1", new FObservation(), learningTask.BayesianNetwork);
scenario.InferenceUpdated += OnScenarioInferenceUpdated;
scenario.InferenceFinished += OnScenarioInferenceFinished;
Model.Scenarios.Add(scenario);
}
WriteMessage("learning completed");
});
}