- Decomposition of Discrete Interval Type-2 Fuzzy Inference with the unification of the processing units is executed.
- Input and output parameters of the units are presented in tabular form for convenient organization of programming interface.
- For representation of input parameters DIT2FLS the XML — format was developed.
- Library package has clear structure, contains universal structures of data, is expanded and full.
- The architecture of Library Package allows to connect it in aplications, package modules can be replaced with the users’.
- 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
Example
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
EKM.TypeReducer tr = new EKM.TypeReducer();//Create an object of EKM
Defuzzifier.Defuzzification defuzz =
new Defuzzifier.Defuzzification(); //Create an object of Defuzzifier
Double[] IN = { 0.35, 0.85 }; //Input vector of crisp values IN
//Two linguistic variables are given in DIT2FLS
try
{
//Fuzzifier of crisp input values
Double[,] M = fuzz.GetMatrixM(IN, LI);
//Inference
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);
//Type-Reducer
Double[] TR = tr.GetTypeReduceFS(Y);
//Defuzzifier
Double res = defuzz.GetValue(TR);
Console.WriteLine(«Result:\t» + res.ToString());
}
catch (Exception ex)
{
Console.WriteLine(IN[0].ToString()+«;\t» + IN[1].ToString() + «;\t» + ex.Message);
}