public void CalculateProbabilities() { const string networkPath = @"Analysis/network.json"; var model = new Model(); Func <bool> hazard = () => (model.Barrier.Angle != 0) && (model.Train.Position <= Model.CrossingPosition && model.Train.Position + model.Train.Speed > Model.CrossingPosition); var faults = new[] { model.CrossingController.Motor.BarrierMotorStuck, model.CrossingController.Sensor.BarrierSensorFailure, model.TrainController.Brakes.BrakesFailure, model.TrainController.Odometer.OdometerPositionOffset, model.TrainController.Odometer.OdometerSpeedOffset }; var bayesianCreator = new BayesianNetworkCreator(model, 230); var network = bayesianCreator.FromJson(networkPath, hazard, null, faults); var calculator = new BayesianNetworkProbabilityDistributionCalculator(network, 0.000000000001); var result = calculator.CalculateConditionalProbabilityDistribution(new[] { "H" }, new[] { "OdometerSpeedOffset" }); Console.Out.WriteLine(string.Join("\n", result)); }
public void CalculateBayesianNetworkProbabilities() { const string filePath = "network.json"; var model = new SimpleBayesianExampleModel(); Func <bool> hazard = () => model.Component.Hazard; var bayesianNetworkCreator = new BayesianNetworkCreator(model, 10); var network = bayesianNetworkCreator.FromJson(filePath, hazard); var calculator = new BayesianNetworkProbabilityDistributionCalculator(network, 0.0000000001); var result = calculator.CalculateConditionalProbabilityDistribution(new[] { "FS" }, new[] { "FV", "FL" }); Console.Out.WriteLine(string.Join("\n", result)); }