I recently finished my masters project which involved controlling traffic lights using fuzzy logic and wireless sensor networks. I used qtFuzzylite to create a mini application that gets an output variable (PD – Priority Degree) from two inputs (TQ-Traffic Quantity and WT – Waiting time). I then imported it into my java application which was where i created my system’s interface.
My question is, how does qtFuzzylite extract rules? This is because, when I created the variables, qtFuzzylite automatically generated a set of rules (9 rules to be specific) based on my linguistic terms (Low, Medium, High) for each input variable. I was asked this question during my defense and i was unable to explain it. I would really appreciate a response from you. Thanks.
The rules automatically generated in QtFuzzyLite utilise the Operation::increment() method. It finds all the possible combinations of rules based on your linguistic variables. Given a vector x=<0,0,0> and upper limits u=<3,3,3>, the algorithm basically increments the vector x by the unit. The index in the vector refers to the proposition index in the antecedent, and the value refers to the index of the term in the linguistic variable.