Ejemplo n.º 1
0
        CriteriaResult calculateMark(double visiting, double tasks, double labs, double knowledge, double canRead)
        {
            // определение степени принадлежности к какой-либо оценке
            var two   = toTwoMark(visiting, tasks);
            var three = toThreeMark(visiting, tasks, labs, knowledge, canRead);
            var four  = toFourMark(visiting, tasks, labs, knowledge, canRead);
            var five  = toFiveMark(visiting, tasks, labs, knowledge, canRead);

            // модификация функций принадлежности для оценок по методу минимума
            var twoFunc   = twoMark.Modify(Function.ModifyMethod.Minimum, two);
            var threeFunc = threeMark.Modify(Function.ModifyMethod.Minimum, three);
            var fourFunc  = fourMark.Modify(Function.ModifyMethod.Minimum, four);
            var fiveFunc  = fiveMark.Modify(Function.ModifyMethod.Minimum, five);

            // композиция функций оценок
            var super = Function.Superposition((Function.CombinationType)superposCombo.SelectedItem, twoFunc, threeFunc, fourFunc, fiveFunc);

            // скаляризация результата - нахождение максимума функции
            var value = super.Scalarize((Function.ScalarMethod)scalarCombo.SelectedItem);

            // возвращение оценки
            return(mark.Calculate(value));
        }
Ejemplo n.º 2
0
 public CriteriaResult(Function func, double value)
 {
     Name  = func.Name;
     Value = value;
     Func  = func;
 }