Exemple #1
0
        public Healthiness(ActivationBinaryTree tree)
        {
            if (tree is null)
            {
                ActivationSparsity = 0;
                FulfillmentRation  = 0;
                ViolationRation    = 0;
                ConflictRation     = 0;
                return;
            }

            ConformanceEvaluator evaluator = new();
            var violations  = evaluator.GetViolation(tree).Count;
            var fulfilments = evaluator.GetFulfillment(tree).Count;
            var conflicts   = evaluator.GetConflict(tree).Count;
            var na          = violations + fulfilments + conflicts;
            var n           = tree.Leaves
                              .SelectMany(x => x.Subtrace)
                              .Distinct(new EventEqualityComparer())
                              .Count();


            ActivationSparsity = 1 - na / (double)n;
            FulfillmentRation  = fulfilments / (double)na;
            ViolationRation    = violations / (double)na;
            ConflictRation     = conflicts / (double)na;
        }
Exemple #2
0
        public Healthiness(ActivationBinaryTree tree, int violations, int fulfillments, int conflicts)
        {
            if (tree is null)
            {
                ActivationSparsity = 0;
                FulfillmentRation  = 0;
                ViolationRation    = 0;
                ConflictRation     = 0;
                return;
            }

            var na = violations + fulfillments + conflicts;
            var n  = tree.Leaves
                     .SelectMany(x => x.Subtrace)
                     .Distinct(new EventEqualityComparer())
                     .Count();


            ActivationSparsity = 1 - na / n;
            FulfillmentRation  = fulfillments / (double)na;
            ViolationRation    = violations / (double)na;
            ConflictRation     = conflicts / (double)na;
        }