Designation: The software tools are for construction, edition and observation of Discrete Interval Type-2 Fuzzy Inference Systems. The software provides all stages of fuzzy inference and can be integrated into the application which implements fuzzy system of making decision.
  1. Decomposition of Discrete Interval Type-2 Fuzzy Inference with the unification of the processing units is executed.
  2. Input and output parameters of the units are presented in tabular form for convenient organization of programming interface.
  3. For representation of input parameters DIT2FLS the XML — format was developed.
  4. Library package has clear structure, contains universal structures of data, is expanded and full.
  5. The architecture of Library Package allows to connect it in aplications, package modules can be replaced with the users’.
  6. DIT2FLS Toolbox consists of five modules: the editor of linguistic variables, the editor of functions of accessory of linguistic variables, the editor of base of rules, a simulator, the editor of options of model.
Name Description
 LI.dll  reads / writes the input linguistic variables from / to file
 LO.dll  reads / writes the output linguistic variable from / to file
 Rules.dll  reads / writes the rule base from / to file
 Fuzzifier.dll  fuzzifier of crisp input values
 IM1.dll  computes the execution level of each rule separately
 IM2.dll  computes the activated membership functions
 IM3.dll  computes the result membership function
 EKM.dll  type-reducer (EKM algorithm)
 Defuzzifier.dll  defuzzifier of fuzzy set

Download DIT2FLS Library Package


LI.InputLV li = new LI.InputLV();                                //Create an object of LI
//Loading input linguistic variables from file in.xml
ArrayList[] LI = li.ReadFromXml(«in.xml»);
LO.OutputLV lo = new LO.OutputLV();                    //Create an object of LO
//Loading output linguistic variables from file out.xml
ArrayList[] LO = lo.ReadFromXml(«out.xml»);
Rules.DBRules rs = new Rules.DBRules();           //Create an object of Rules
Double[,] R = rs.ReadFromXml(«r.xml»);                 //Loading rile base from file r.xml
Fuzzifier.Fuzzification fuzz =
new Fuzzifier.Fuzzification();                            //Create an object of Fuzzifier
IM1.UnitIM1 im1 = new IM1.UnitIM1();                     //
Create an object of IM1
IM2.UnitIM2 im2 = new IM2.UnitIM2();                     //
Create an object of IM2
IM3.UnitIM3 im3 = new IM3.UnitIM3();                     //
Create an object of IM3
tr = new EKM.TypeReducer();//Create an object of EKM
defuzz =
      new Defuzzifier.Defuzzification();                    //
Create an object of  Defuzzifier
[] IN = { 0.35, 0.85 };                                    //Input vector of crisp values IN
//Two linguistic variables are given in DIT2FLS

      //Fuzzifier of crisp input values
      Double[,] M = fuzz.GetMatrixM(IN, LI);
      Double[, ,] Tact;
      Double[,] Ract;
im1.CalcRateRules(M, R, IN.Count(), out Tact, out Ract);
      ArrayList F = im2.CalcActMF(Ract, Tact, LO);
      Double[,] Y = im3.CalcResultMF(F);
      Double[] TR = tr.GetTypeReduceFS(Y);
      Double res = defuzz.GetValue(TR);
      Console.WriteLine(«Result:\t» + res.ToString());

(Exception ex)
      Console.WriteLine(IN[0].ToString()+«;\t» + IN[1].ToString() + «;\t» + ex.Message);

See also