⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fuzzyvariable.cs

📁 在.net环境下用C#开发的模糊控制函数库
💻 CS
字号:
/*
 * 
 * fuzzynet: Fuzzy Logic Library for Microsoft .NET
 * Copyright (C) 2008 Dmitry Kaluzhny  (kaluzhny_dmitrie@mail.ru)
 * 
 * */

using System;
using System.Collections.Generic;


namespace AI.Fuzzy.Library
{
    /// <summary>
    /// Linguistic variable
    /// </summary>
    public class FuzzyVariable
    {
        string _name = string.Empty;
        double _min = 0.0, _max = 10.0;
        List<FuzzyTerm> _terms = new List<FuzzyTerm>();

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="name">Name of the variable</param>
        public FuzzyVariable(string name)
        {
            if (RuleParser.IsValidName(name))
            {
                throw new ArgumentException("Invalid variable name.");
            }

            _name = name;
        }

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="name">Name of the variable</param>
        /// <param name="min">Minimum value</param>
        /// <param name="max">Maximum value</param>
        public FuzzyVariable(string name, double min, double max) : this (name)
        {
            if (min > max)
            {
                throw new ArgumentException("Maximum value must be greater than minimum one.");
            }

            _min = min;
            _max = max;
        }

        /// <summary>
        /// Variable name
        /// </summary>
        public string Name
        {
            get { return _name; }
            set
            {
                if (RuleParser.IsValidName(value))
                {
                    throw new ArgumentException("Invalid variable name.");
                }

                _name = value;
            }
        }

        /// <summary>
        /// Membership functions
        /// </summary>
        public List<FuzzyTerm> Terms
        {
            get { return _terms; }
        }

        /// <summary>
        /// Get membership function (term) by name
        /// </summary>
        /// <param name="name">Term name</param>
        /// <returns></returns>
        public FuzzyTerm GetTermByName(string name)
        {
            foreach (FuzzyTerm term in _terms)
            {
                if (term.Name == name)
                {
                    return term;
                }
            }

            throw new KeyNotFoundException();
        }

        /// <summary>
        /// Maximum value of the variable
        /// </summary>
        public double Max
        {
            get { return _max; }
            set { _max = value; }
        }

        /// <summary>
        /// Minimum value of the variable
        /// </summary>
        public double Min
        {
            get { return _min; }
            set { _min = value; }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -