Пример #1
0
        /// <summary>
        /// Adds a <see cref="Condition"/> to the <see cref="FuzzyRule"/> to be built.
        /// </summary>
        /// <param name="condition">
        /// The condition.
        /// </param>
        /// <returns>
        /// The <see cref="FuzzyRuleBuilder"/>.
        /// </returns>
        public FuzzyRuleBuilder Or(ConditionBuilder condition)
        {
            Validate.NotNull(condition, nameof(condition));

            condition.Connective = LogicOperators.Or();
            this.conditions.Add(condition.Build());

            return(this);
        }
Пример #2
0
        /// <summary>
        /// Adds a <see cref="Condition"/> to the <see cref="FuzzyRule"/> to be built.
        /// </summary>
        /// <param name="proposition">
        /// The proposition.
        /// </param>
        /// <returns>
        /// A <see cref="FuzzyRuleBuilder"/>.
        /// </returns>
        public FuzzyRuleBuilder And(Proposition proposition)
        {
            Validate.NotNull(proposition, nameof(proposition));

            var condition = ConditionBuilder.If(proposition);

            condition.Connective = LogicOperators.And();
            this.conditions.Add(condition.Build());

            return(this);
        }
Пример #3
0
        /// <summary>
        /// The create.
        /// </summary>
        /// <param name="proposition">
        /// The proposition.
        /// </param>
        /// <returns>
        /// The <see cref="ConditionBuilder"/>.
        /// </returns>
        public static ConditionBuilder If(Proposition proposition)
        {
            Utility.Validate.NotNull(proposition, nameof(proposition));

            var conditionBuilder = new ConditionBuilder {
                Connective = LogicOperators.If()
            };

            conditionBuilder.Premises.Add(new Premise(
                                              LogicOperators.If(),
                                              proposition.Variable,
                                              proposition.Evaluator,
                                              proposition.State));

            return(conditionBuilder);
        }