FuzzLib is a Java based library that offers a piece-wise linear implementation of Fuzzy Sets. This alllows to easily create any shape of membership function - without the mathematical description - which makes the solution flexible.
The libraray allows the user to create fuzzy sets - class FuzzySet. Defining triangular, trapezoidal and Gaussian membership functions is simplified by providing specialized methds.
Obviously, the main functionality offers performing a wide range of different operations. They are generalized into norms (T-Norms and T-Conorms "S-Norms"). Several T-Norms and S-Norms are available.
Therefore, the library offers to perform union, intersection, negation of fuzzy sets - as the most basic operations -, as well as, processing with an implication (several are available) which allows to perform fuzzy inference.
Considering more advanced options, the library contains functionality of drawing the resuts of analysis in given graphical context (Java's Graphics object). Therefore, presenting graphics in a screen or a file is simplified.
The library also supports defining a whole rule-based fuzzy systems, which makes it an advanced tool.
Fuzzlib was created for the purposes of scientiffic research and from the beginning it is considered as an open project. Therefore, we encourage users for download and using the library. Nevertheless, please be aware that the project is in constant development. The present version still has some minor naming issues. It is fully functional, however, the methods must be analysed and naming rethought. We will make our best to do it in the near future.
The propper documentation of the library is also planned. For now the only "how-to" resource is the commented examples in package available for download.
The package available for download contains a simple console program demonstrating the procedures of defining new fuzy sets using different methods, performing opertions (processing two sets with T or S-norm) and the configuration and usage of a whole rule-based fuzzy system.
Simple Fuzzy SQL in regular SQL database
This package allows to use a regular SQL database management system (DBMS) in order to perform fuzzy queries and store fuzzy information. Documentation and examples of this module will be available soon.
FuzzLib in scientiffic research
The librarary was used in several scientiffic projects to provide the fuzzy processing of imprecise information. To mention only the most important ones up-to date, two projects were involved with handwritten signature anaysis (see published article) and the third one considered computer user recognition based on its behaviour during the operating system usage (see published article).
The following animation shows the result of fuzzy analysis performed for the purposes of one project (not published yet, therefore there is no link to the article). The details are not relevant, however, the movie in each frame presents several fuzzy sets and operations on them.
The black-square nodes represent the raw-input data, which is further smoothed and normalised (thick gray lines) - each chart is represented by one FuzzySet object. Further processing cuts off the values of membership below 0.7 (green line). In the end the green fuzzy set is intersected with the triangular one. The final set is red.
In case of that particular research the bandwidths of the green and the red sets are compared (shown at the top in form of thick, pink lines)