示例#1
0
        public static void RunTest()
        {
            ModelObservationCreator cc           = new ModelObservationCreator();
            List <Observation>      a            = cc.ReadObsModelFiles("111.txt", "111_obs.txt");
            Observation             bObservation = a[0];

            List <Gate> allComponents = bObservation.TheModel.Components;

            // 11 , 22 , 33
            // 44 , 22 , 55

            Conflict c1 = new Conflict(new List <Gate>()
            {
                allComponents[0], allComponents[2], allComponents[3]
            });
            Conflict c2 = new Conflict(new List <Gate>()
            {
                allComponents[1], allComponents[2], allComponents[4]
            });

            ConflictSet cs = new ConflictSet();

            cs.Conflicts = new List <Conflict>()
            {
                c1, c2
            };

            MicC_Diagnosis minCDiagnosis = C_MinCAlgorithm.FindMinC(cs);

            foreach (Gate g in minCDiagnosis.TheDiagnosis)
            {
                Console.WriteLine("Gate = " + g.Id);
            }
            Console.WriteLine("C_MinC Unit test 2. minc = " + minCDiagnosis.cardinality);
        }
示例#2
0
        public static void RunTest()
        {
            ModelObservationCreator cc           = new ModelObservationCreator();
            List <Observation>      a            = cc.ReadObsModelFiles("111.txt", "111_obs.txt");
            Observation             bObservation = a[0];

            List <Gate> allComponents = bObservation.TheModel.Components;

            // 11 , 22 , 33
            // 44 , 22 , 55

            Conflict c1 = new Conflict(new List <Gate>()
            {
                allComponents[0], allComponents[2], allComponents[3]
            });
            Conflict c2 = new Conflict(new List <Gate>()
            {
                allComponents[1], allComponents[2], allComponents[4]
            });

            ConflictSet cs = new ConflictSet();

            cs.Conflicts = new List <Conflict>()
            {
                c1, c2
            };

            DiagnosisSet OUTPUT = HittingSetFinder.FindHittingSets(bObservation, cs);
        }
        public void Initialize()
        {
            ModelObservationCreator modelObservationCreator = new ModelObservationCreator();

            _observations       = modelObservationCreator.ReadObsModelFiles(TestingEnvironment.SystemFile, TestingEnvironment.ObservationFile);
            _initialConflictSet = new ConflictSet();
            Conflict conflict = new Conflict(_observations[TestingEnvironment.ObservationIndex].TheModel.Components);

            _initialConflictSet.Conflicts = new List <Conflict>()
            {
                conflict
            };
        }
示例#4
0
        public void Initialize()
        {
            ModelObservationCreator modelObservationCreator = new ModelObservationCreator();

            _observations       = modelObservationCreator.ReadObsModelFiles("777.txt", "777_iscas85.txt");
            _initialConflictSet = new ConflictSet();
            Conflict conflict = new Conflict(_observations[0].TheModel.Components);

            _initialConflictSet.Conflicts = new List <Conflict>()
            {
                conflict
            };
        }
示例#5
0
        private static void RunAllTest(string fileModel, string fileObs)
        {
            fileModel = "SystemFiles/" + fileModel;
            fileObs   = "SystemFiles/" + fileObs;

            ModelObservationCreator cc = new ModelObservationCreator();
            List <Observation>      allObservetions = cc.ReadObsModelFiles(fileModel, fileObs);

            int index = 1;

            foreach (Observation observation in allObservetions)
            {
                if (index > 50)
                {
                    break;
                }
                Debug.WriteLine("****************************************************************** Obs number = " + index + "   CAL CONFLICATES");
                //Get Conflict Set
                LtmsAlgorithm       ltmsAlgorithm = new LtmsAlgorithm(observation.TheModel, observation);
                List <List <Gate> > gatelList     = ltmsAlgorithm.findConflicts();
                ConflictSet         conflictSet   = ltmsAlgorithm.ConvertGateListToConflict(gatelList);

                Debug.WriteLine("****************************************************************** Obs number = " + index + "   Number Of Conflicts=" + conflictSet.Conflicts.Count);
                index++;


                ConstraintSystemSolver.Reset();

                Stopwatch    sw            = Stopwatch.StartNew();
                HSOneThread  s1            = new HSOneThread();
                DiagnosisSet diagnosisSet1 = s1.FindHittingSets(observation, conflictSet);
                sw.Stop();
                HittingSetStatistics statistics = new HittingSetStatistics(observation.TheModel.Id, observation.Id, conflictSet.Conflicts.Count, sw.Elapsed.TotalMilliseconds, "HSOneThread", diagnosisSet1.Count);
                _hittingSetStatisticses.Add(statistics);

                ConstraintSystemSolver.Reset();

                sw = Stopwatch.StartNew();
                HSMultiTasks s2            = new HSMultiTasks();
                DiagnosisSet diagnosisSet2 = s2.FindHittingSets(observation, conflictSet);
                sw.Stop();
                statistics = new HittingSetStatistics(observation.TheModel.Id, observation.Id, conflictSet.Conflicts.Count, sw.Elapsed.TotalMilliseconds, "HSMultiTasks", diagnosisSet2.Count);
                _hittingSetStatisticses.Add(statistics);

                ConstraintSystemSolver.Reset();



                sw = Stopwatch.StartNew();
                HSMultiThreads s3            = new HSMultiThreads();
                DiagnosisSet   diagnosisSet3 = s3.FindHittingSets(observation, conflictSet);
                sw.Stop();
                statistics = new HittingSetStatistics(observation.TheModel.Id, observation.Id, conflictSet.Conflicts.Count, sw.Elapsed.TotalMilliseconds, "HSMultiThreads", diagnosisSet3.Count);
                _hittingSetStatisticses.Add(statistics);

                ConstraintSystemSolver.Reset();
            }

            Debug.WriteLine("ModelID, ObservationID, NumberOfConflicts, AlgorithmName, NumberOfDiagnoses, RunTime");

            foreach (HittingSetStatistics stat in _hittingSetStatisticses)
            {
                string prints = "";
                prints += stat.ModelID + " ,";
                prints += stat.ObservationID + " ,";
                prints += stat.NumberOfConflicts + " ,";
                prints += stat.AlgorithmName + " ,";
                prints += stat.NumberOfDiagnoses + " ,";
                prints += stat.RunTime;

                Debug.WriteLine(prints);
            }
        }