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); }
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 }; }
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 }; }
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); } }