Пример #1
0
        public SingleValueCriticalObstacles(KAOSModel model, Goal root) : base(model, root)
        {
            _propagator = new BDDBasedPropagator(model);
            _propagator.PreBuildObstructionSet(root);

            rsr = root.RDS;
        }
Пример #2
0
 public void ModelChanged()
 {
     foreach (var root in _roots)
     {
         _propagator.PreBuildObstructionSet(root);
     }
 }
Пример #3
0
        public void Setup()
        {
            var options = new RandomModelOptions {
                NbGoals        = NbGoals,
                NbObstructions = NbObstructions,
                NbObstacles    = NbObstacles
            };

            var generator = new RandomModelGenerator(options);

            model = generator.Generate();
            root  = model.RootGoals().Single();

            p3 = new BDDBasedPropagator(model);
            p3.PreBuildObstructionSet(root);
        }
Пример #4
0
        void Initialize()
        {
            RootSatisfactionRates = new Dictionary <string, DoubleSatisfactionRate>();
            TimeSpan monitoringDelay = TimeSpan.FromMinutes(1);

            // Create the new obstacle monitors
            foreach (var obstacle in _model_running.LeafObstacles()
                     .Where(x => x.CustomData.ContainsKey("monitored") &&
                            x.CustomData["monitored"].Equals("true")))
            {
                IStateInformationStorage storage = new FiniteStateInformationStorage(100);
                var monitor = new ObstacleMonitor(obstacle, _model_running, storage, monitoringDelay);
                obstacleMonitors.Add(obstacle.Identifier, monitor);
            }

            // Initialize the propagator
            _propagator = new BDDBasedPropagator(_model_running);
            foreach (var root in _roots)
            {
                _propagator.PreBuildObstructionSet(root);
                RootSatisfactionRates.Add(root.Identifier, null);
            }
        }