Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects
This Website contains additional material to the research paper on "Fuzzy Systems Software" (FSS):
J. Alcalá-Fdez, José M. Alonso, A Survey of Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects. IEEE Transactions on Fuzzy Systems 24:1 (2016) 40-56, doi: 10.1109/TFUZZ.2015.2426212.
The web is organized according to the following summary:
- Survey Paper
- Introduction to FSS
- FSS Taxonomy
- Some Fuzzy Systems Software
- Several considerations for further research in FSS
- Recent Papers on Fuzzy Systems Software (2009-Present)
- Related Websites
- Related Review Papers
- Future Events
J. Alcalá-Fdez, José M. Alonso, A Survey of Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects. IEEE Transactions on Fuzzy Systems 24:1 (2016) 40-56, doi: 10.1109/TFUZZ.2015.2426212.
Abstract: Fuzzy systems have been used widely thanks to their ability to successfully solve a wide range of problems in different application fields. However, their replication and application requires a high level of knowledge and experience. Furthermore, few researchers publish the software and/or source code associated with their proposals, which is a major obstacle to scientific progress in other disciplines and in industry. In recent years, most fuzzy system software has been developed in order to facilitate the use of fuzzy systems. Some software is commercially distributed but most software is available as free and open source software, reducing such obstacles and providing many advantages: quicker detection of errors, innovative applications, faster adoption of fuzzy systems, etc. In this paper, we present an overview of freely available and open source fuzzy systems software in order to provide a well-established framework that helps researchers to find existing proposals easily and to develop well founded future work. To accomplish this, we propose a twolevel taxonomy and we describe the main contributions related to each field. Moreover, we provide a snapshot of the status of the publications in this field according to the ISI Web of Knowledge. Finally, some considerations regarding recent trends and potential research directions are presented.
Table of Contents:
- General Purpose Fuzzy Systems Software
- Fuzzy Systems Software for Specific Application Purposes
- Languages for Fuzzy Systems
- Review of General Purpose Fuzzy Systems Software
- General Purpose Fuzzy Systems Source Code
- General Purpose Fuzzy Systems Libraries
- General Purpose Fuzzy Systems Toolboxes
- General Purpose Fuzzy Systems Suites
- Review of Fuzzy Systems Software for Specific Application Purposes
- Fuzzy Systems Software for Solving Specific Problems of Control
- Fuzzy Systems Software for Solving Specific Problems of Decision-Making
- Fuzzy Systems Software for Solving Specific Problems of Image Processing
- Fuzzy Systems Software for Solving Specific Problems of Biomedicine
- Fuzzy Systems Software for Solving Specific Problems of Information Retrieval
- Fuzzy Systems Software for Solving Specific Problems of System Dynamics
- Fuzzy Systems Software for Solving Specific Problems of Prognosis and Time Series Prediction
- Fuzzy Systems Software for Solving Specific Problems of Risk Analysis
- Fuzzy Systems Software to Support Software Engineering
- Fuzzy Systems Software for Educational Purposes
- Review of Languages for Fuzzy Systems Software
- Fuzzy Systems Software Bibliographical Study
- Fuzzy Systems Software Visibility at the ISI Web of Knowledge
- Current Research Trends in Fuzzy Systems Software
- Some of the Most Outstanding Works in the Field of Fuzzy Systems Software
- Critical Considerations and Potential Prospects
Introduction to FSS
Fuzzy systems are one of the most important areas for the application of the Fuzzy Set Theory. Fuzzy systems have been successfully applied to solve different kinds of problems in various application domains. Table 1 presents a short analysis of the specialized literature on Fuzzy Systems. It is based on the next query ("Advanced Search", 2009-2017) at the ISI Web of Science:
TS=("fuzzy rule" OR "fuzzy system" OR "fuzzy control")
|WEB OF SCIENCE CATEGORIES||NUMBER OF PUBLICATIONS|
|ENGINEERING ELECTRICAL ELECTRONIC||4758|
|COMPUTER SCIENCE ARTIFICIAL INTELLIGENCE||4381|
|AUTOMATION CONTROL SYSTEMS||3005|
|COMPUTER SCIENCE THEORY METHODS||1622|
|COMPUTER SCIENCE INFORMATION SYSTEMS||1168|
|COMPUTER SCIENCE INTERDISCIPLINARY APPLICATIONS||1064|
|MATERIALS SCIENCE MULTIDISCIPLINARY||670|
|OPERATIONS RESEARCH MANAGEMENT SCIENCE||583|
|COMPUTER SCIENCE CYBERNETICS||354|
|COMPUTER SCIENCE HARDWARE ARCHITECTURE||306|
|MATHEMATICS INTERDISCIPLINARY APPLICATIONS||255|
|COMPUTER SCIENCE SOFTWARE ENGINEERING||228|
|TRANSPORTATION SCIENCE TECHNOLOGY||178|
Table 1. Fuzzy systems applications by subject areas (2009 - 2017)
In the last few years, many software tools have been developed for fuzzy systems. Although a lot of them are commercially distributed, any software are available as open source software. For instance, in the field of evolutionary computation KEEL (Knowledge Extraction based on Evolutionary Learning) provides nice examples of frameworks for both evolutionary and multi-objective optimization. JavaNNS (Java version of Stuttgart Neural Network Simulator) is probably the best free suite for neural networks. Regarding fuzzy modeling, Xfuzzy (a development environment for fuzzy-inference-based systems), FisPro (Fuzzy Inference System Professional), and GUAJE (Generating Understandable and Accurate fuzzy models in a Java Environment) represent very useful tools. Regarding neuro-fuzzy algorithms we can point out to NEFCLASS (Neuro-Fuzzy Classification). Finally, FrIDA (Free Intelligent Data Analysis Toolbox) and KNIME (Konstanz Information Miner) are examples of user-friendly open-source software which offer several individual tools for data processing, analysis and exploration/visualization.
Notice that such open tools have recently reached a high level of development. As a result, they are ready to play an important role for industry and academia research. Government agencies and public organizations often consider adopting open source software for reasons of transparency, cost and greater efficiency in communication and delivering services.
We have proposed a two-level taxonomy with the aim of providing a well-established framework that allows us to jointly analyze the different proposals in this research field:
- Level 1: Purpose.
This level is based on the purpose of the software, i.e., the aim for which it was developed:
- General Purpose FSS: FSS aimed at designing and analyzing fuzzy systems (fuzzy rule systems, fuzzy multicriteria decision-making systems, etc.) for different problems in relation to all research areas addressed by the fuzzy community (clustering, classification, regression, and so on).
- Specific Applications: Fuzzy systems have been successfully applied to a wide variety of practical problems. As a result, FSS has been devoted over the years to the design of fuzzy systems for a specific part of the development cycle or for a specific problem in different research areas, among others: Control, Decision-making, Software Engineering, Image Processing, Telecommunication Networks, Medicine, etc.
- Fuzzy Languages: It includes contributions in which new languages for fuzzy systems are proposed. Such languages provide researchers with a way of working that makes it easier to exchange fuzzy systems between FSS and improves the reusability of the developed fuzzy systems.
- Level 2: Type of software.
Researchers proposing FSS have produced a large number of different types of software. Thus, finding out the right names has become a difficult task because the terminology commonly used in the literature is somewhat misleading. Even worse, researchers have sometimes used different terms or/and definitions to refer to the same type of software. To clear up this confusion and to make future research easier, we have studied the terminology used in the literature and we have proposed a second level of the taxonomy with four terms which attempt to capture the essence of the different types of software appearing in the literature. These types are:
- Code: Contributions in which single fuzzy system algorithms written in a programming language are shared, for instance a clever implementation of a certain class of algorithms.
- Library: Contributions in which sets of functions with a related functionality (encapsulated code) are presented, written in terms of a language, and with a well-defined Application Programming Interface (API) that facilitates its integration with different software.
- Toolbox: Contributions which propose FSS that allows us to perform useful tasks with fuzzy systems. This FSS can use one or more libraries and it can be executed as a stand-alone program through command line, graphical user interface (GUI), or even web interface.
- Suite: Contributions in which larger frameworks are presented that allow us to use (among other features) a collection of toolboxes and/or libraries of related functionality, considering a common user interface and some ability to smoothly exchange data with each other.
Some Fuzzy Systems Software
In the following we maintain information related to some of the most popular Fuzzy Systems Software developed by the scientific community. We make emphasis on free software because of its important role in the scientific research community:
- General Purpose FSS
- FSS for Specific Application Purpose
- Solving Specific Problems of Control
- Solving Specific Problems of Decision-Making
- Solving Specific Problems of Image Processing
- Solving Specific Problems of Biomedicine
- Solving Specific Problems of Information Retrieval
- Solving Specific Problems of System Dynamics
- Solving Specific Problems of Prognosis and Time Series Prediction
- Solving Specific Problems of Risk Analysis
- Giving Support to Software Engineering
- Languages for FSS
General Purpose FSS
|fuzzyTECH||Suite||C++, C, Jav|
Table 2. General Purpose Fuzzy Systems Software (listed by Type of Software)
In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:
|Computational Intelligence research group: This group provides with source codes of several methods for classification|
|fl-core: The package contains code for basic functions in Fuzzy Logic for Octave.
P. Molino, G. Pio, M. Mencar, Fast Fuzzy Inference in Octave. International Journal of Computational Intelligence Systems 6:2 (2013) 307-317. Doi:10.1080/18756891.2013.769765
|Lin2012: An easy-to-implement fuzzy expert package with applications using existing Java classes.|
|NNandFS research group: This group provides with source codes of several methods with Neural Networks and Fuzzy Systems|
|BPJ: A software engineering framework for switched fuzzy systems.|
|DANA-FLSA: Sensitivity analysis in fuzzy systems: Integration of SimLab and DANA.|
|DotFuzzy: This is an open source stand-alone class library for fuzzy logic builted in C#.|
|FINK-FLTO: Fuzzy Logic Toolkit for Octave. A mostly MATLAB-compatible fuzzy logic toolkit for Octave. It offers among other functions: evaluation, plotting, clustering, etc.|
|FlouLib: A library that contains Simulink S-Functions to implement fuzzy systems.|
|FLP: uzzy Logic Programming: A C++ Fuzzy Logic Programming Library.|
|FRBS for R: Fuzzy Rule-based Systems for Classification and Regression Tasks. This R package implements functionality and various algorithms to build and use fuzzy rule-based systems.|
|FugeR: FUzzy GEnetic. This R package implements an evolutionary machine learning algorithm to construct prediction models based on fuzzy logic.|
|FUNZY: An implementation of a Fuzzy Logic reasoning engine in Java.|
|FuzzyEngine: This fuzzy rule-based system is designed to perform fuzzy evaluations in Java programs|
|Fuzzylite: A Fuzzy Logic Control Library. This is a cross-platform, free and open-source fuzzy logic control library with versions programmed in C++ and Java.|
|FWS: Fuzzy Web Service included with CASSANDRA.|
|JFCM: JFCM is a Java library that implements Fuzzy Cognitive Maps|
|JFML: JFML is the first library in the world which implements the new standard IEEE Std 1855TM-2016 published and sponsored by the Standards Committee of the IEEE Computational Intelligence Society
J.M. Soto-Hidalgo, Jose M. Alonso, G. Acampora, J. Alcala-Fdez., JFML: A Java Library to Design Fuzzy Logic Systems According to the IEEE Std 1855-2016. IEEE Access 6 (2018) 54952-54964. DOI:10.1109/ACCESS.2018.2872777
|Juzzy toolkit : A Java based toolkit for type-1, interval type-2 and general type-2 fuzzy logic and fuzzy logic systems.
C. Wagner, Juzzy – A Java based Toolkit for Type-2 Fuzzy Logic. In IEEE Symposium Series on Computational Intelligence, Singapore, pp. 45–52, 2013.
|Lab4Drools: A bridge between the Drools rule engine and the JEFIS fuzzy capabilities
N. Wulff, D. Sottara, Fuzzy reasoning with a Rete-OO rule engine. In International Symposium on Rule Interchange and Applications, pp. 337–344, 2009.
|lfl: Various algorithms related to linguistic fuzzy logic in R
M. Burda. Linguistic Fuzzy Logic in R. IEEE International Conference On Fuzzy Systems (FuzzIEEE 2015), Istanbul(Turkey), 1-8, 2015.
|libFSQCA: A library of routines related to QCA and fuzzy-set analysis.|
|mbFuzzIT: A package of Java classes for Fuzzy inference|
|MODELICA-ANFIS: Object-oriented approach applied to ANFIS modeling and control of a distillation column.|
|Octave Fuzzy-Logic-Toolkit: A MATLAB-compatible fuzzy logic toolkit for Octave.|
|pyfuzzy: Python fuzzy package to work with fuzzy sets and process them with operations of fuzzy logic.|
|SAFD: An R Package for Statistical Analysis of Fuzzy Data.|
|Sets: Generalized and customizable sets available for R through the sets package.
Meyer, D.; Hornik, K, Generalized and customizable sets in R. Journal of Statistical Software 31:2 (2009) 1-27.
|Shark: An open-source C++ machine learning library
C. Igel, V. Heidrich-Meisner, T. Glasmachers, Shark. Journal of Machine Learning Research 9 (2008) 993–996.
|SyFSeL (Synthetic Fuzzy Set Library): SyFSeL automatically generates synthetic fuzzy sets with specified characteristics and fuzzy set type. It generates as many sets as desired, with adjustable parameters to enable users to emulate real data.
J. McCulloch, SyFSeL: Generating Synthetic Fuzzy Sets Made Simple. IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2018), Rio de Janeiro (Brazil), 2018.
|CI-LQD: A software tool for modeling and decision making with Low Quality Data.|
DataEngine: This is a software tool for intelligent data analysis which unites statistical methods with neural networks and fuzzy technologies.
E-Fuzz: Developer toolkit for designing embedded fuzzy systems.
|fclust: Algorithms for fuzzy clustering, cluster validity indices and plots for cluster validity and visualizing fuzzy clustering results.|
|FID: Fuzzy decision tree/forest. A program which generates a fuzzy logic-based decision tree, from fuzzy or symbolic data. The tree can then be used to classify data, with unknown classification, using several different methods of inference.
N. Abu-halaweh, R. Harrison, Practical fuzzy decision trees. In IEEE Symposium on Computational Intelligence and Data Mining, 2009, pp. 211–216.
|FingramsGenerator: Fuzzy Ingerence-grams Generator. Stand-alone software tool able to generate and visualize fingrams.
D. Pancho, J.M. Alonso, J. Alcalá-Fdez, A new fingram-based software tool for visual representation and analysis of fuzzy association rules. In IEEE International Conference on Fuzzy Systems, 2013, pp. 1–7.
|FIS: Matlab Software Tool For Neuro-Fuzzy Identification And Data Analysis.|
|FISDeT: FISDeT is a python tool realized to support the design of Fuzzy Inference Systems, being able also to import (and modify) existing knowledge bases expressed in the standard FCL format.
G. Castellano, C. Castiello, A. M. Fanelli, The FISDeT software: Application to beer style classification. IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2017), Naples, 2017, pp. 1-6.
|FisPro: Fuzzy Inference System Design and Optimization. An open source portable software for designing and handling fuzzy inference systems
S. Guillaume, B. Charnomordic, Learning interpretable fuzzy inference systems with FisPro. Information Sciences, 181:20 (2011) 4409–4427.
|FRI-SFMI: Fuzzy Rule Interpolation Matlab Toolbox - Sparse Fuzzy Model Identification Matlab ToolBox|
|FrIDA: Free Intelligent Data Analysis Toolbox .
C. Borgelt, G. Gonzalez-Rodriguez, FrIDA — A Free Intelligent Data Analysis Toolbox. In IEEE International Conference on Fuzzy Systems, pp. 1-5, 2007.
FUAT: A fuzzy clustering analysis tool.
|Fuzzme: Fuzzy Models of Multiple-Criteria Evaluation. A tool for creating fuzzy models of multiple-criteria evaluation and decision making.
P. Holecek, J. Talasova, Designing fuzzy models of multiple-criteria evaluation in FuzzME software. In International Conference on Mathematical Methods in Economics, 2010, pp. 250–256.
FuzzyCalculusCORE: Software package and API in MATLAB for working with fuzzy algebras.
fuzzycreator: toolkit for automatic generation and analysis of fuzzy sets from data. It facilitates the creation of both conventional and non-conventional (non-normal and non-convex) type-1, interval type-2 and general type-2 (zSlices-based) fuzzy sets from data.
J. McCulloch, fuzzycreator: A Python-Based Toolkit for Automatically Generating and Analysing Data-Driven Fuzzy Sets. IEEE International Conference on Fuzzy Systems (FUZZ-IEEE), 9-12 July 2017, Naples, Italy.
FuzzyProlog: A new approach using soft constraints propagation.
FUZZYSTUDIO: An on-line tool for modelling and simulating fuzzy systems. The tool aims to facilitate the fuzzy systems building process focusing on the learning of fuzzy systems by undergraduate students.
FuzzyToolkitUoN: R Toolkit for working with Type 1 Fuzzy Logic, produced by the University of Nottingham IMA Group.
|GUAJE: Generating Understandable and Accurate fuzzy models in a Java Environment.
J.M. Alonso, L. Magdalena, Generating understandable and accurate fuzzy rule-based systems in a java environment. In International Workshop on Fuzzy Logic and Applications. Lecture Notes in Artificial Intelligence 6857 (Ed. A. Fanelli, W. Pedrycz, and A. Petrosino, Springer), pp. 212–219, 2011.
IT2FLS: Computational intelligence software for interval type-2 fuzzy logic.
O. Castillo,P. Melin,J.R. Castro, Computational IntelligenceSoftware for Interval Type-2Fuzzy Logic. Computer Applications in Engineering Education 21:4 (2013) 737–747.
IT2-FLS: Matlab/Simulink Toolbox for Interval Type-2 Fuzzy Logic Systems
A. Taskin, and T. Kumbasar. An open source Matlab/Simulink Toolbox for Interval Type-2 Fuzzy Logic Systems. IEEE Symposium Series on Computational Intelligence (SSCI 2015), Cape Town (South Africa), 2015.
JuzzyOnline: An Online Toolkit for the Design, Implementation, Execution and Sharing of Type-1 and Type-2 Fuzzy Logic Systems. JuzzyOnline is completely Browser-based (no installation is required)
Kappalab: Kappalab, which stands for laboratory for capacities, is an S4 tool box for capacity (or non-additive measure, fuzzy measure) and integral manipulation on a finite setting
KIRQ: Contradictions in fsQCA.
Matlab-FLT: Fuzzy Logic Toolbox for analyzing, designing, and simulating systems based on fuzzy logic.
|MaxAgr: A new software for aggregating opinions of experts
I. Vrana, J. Vanícek, P. Kovár, J. Brozek, S. Aly, A group agreement-based approach for decision making in environmental issues. Environmental Modelling and Software 36 (2012) 99–110.
|NIP: A tool to handle imperfect information in Data Sets. This tool allows to include various types of imperfection to datasets of known formats of literature and/or custom formats defined by the user.
J. Cadenas, M. Garrido, R. Martinez, NIP - an imperfection processor to data mining datasets. International Journal of Computational Intelligence Systems 6:1 (2013) 3–17.
|RFUZZY: A fuzzy logic programming tool that represents truth values using real numbers from the unit interval.
S. Munoz-Hernandez, V. Pablos-Ceruelo, H. Strass, RFuzzy: Syntax, semantics and implementation details of a simple and expressive fuzzy tool over Prolog. Information Sciences 181:10 (2011) 1951–1970.
|RKEEL: A package that takes the advantages of KEEL and R, allowing to use KEEL algorithms in simple R code.
J. Moyano, L. Sanchez, RKEEL: Using KEEL in R code. 2016 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2016), Vancouver (Canada), pp. 257-264, 2016. Doi: 10.1109/FUZZ-IEEE.2016.7737695
|Rfuzzy-toolbox: Type-1 functions - Interval Type-2 and Non-Stationary specific functions.
C. Wagner, S. Miller, J. Garibaldi, A fuzzy toolbox for the R programming language. In IEEE International Conference on Fuzzy Systems (2011) 1185–1192.
SAMT: A new method for semi-automatic fuzzy training and its application in environmental modeling.
Type2-FL: Free Fuzzy Logic Software for Matlab for implementing and designing type-1 and type-2 FLSs.
UNFUZZY: A tool for the design, simulation and analysis of Fuzzy Logic Systems
VisualFCM: A software tool for the development, simulation and analysis of FCM.
VisualFLOPER: A Practical Management of Fuzzy Truth-Degrees Using FLOPER.
|XFuzzy: A development toolbox for fuzzy-inference-based systems, which is composed of several options that cover the different stages of the fuzzy system design process.
I. Baturone, F. Moreno-velo, S. Sanchez-solano, A. Barriga, P. Brox, A. Gersnoviez, M. Brox, Using Xfuzzy environment for the whole design of fuzzy systems. In IEEE International Conference on Fuzzy Systems, London (UK), pp. 1–6, 2007.
XTRIG: Fuzzy qualitative trigonometry.
|FLINSTONES: Fuzzy LINguisTic DeciSion TOols eNhacemEnt Suite. A software tool to solve linguistic decision making problems.
F.J. Estrella, M. Espinilla, F. Herrera, and L. Martinez, FLINTSTONES: A fuzzy linguistic decision tools enhancement suite based on 2-tuple linguistic and extensions. Information Sciences 280 (2014) 152–170.
|Fuzzy Logic Tools: A C++ framework for storage, analysis and design of fully general multiple-input multiple-output Takagi-Sugeno fuzzy control systems, without constraints in the order of either the inputs or the output vectors.
A.J. Barragan, J.M. Andujar, Fuzzy Logic Tools. Reference Manual v1.0. Universidad de huelva. ISBN 978-84-15147-32-9.
fuzzyTECH: Web server that comprises a complete repository for fuzzy logic applications.
|Knowledge Extraction based on Evolutionary Learning (KEEL): KEEL is an open source (GPLv3) Java software tool to assess evolutionary algorithms for Data Mining problems including regression, classification, clustering, pattern mining and so on.
J. Alcalá-Fdez, L. Sánchez, S. García, M.J. del Jesus, S. Ventura, J.M. Garrell, J. Otero, C. Romero, J. Bacardit, V.M. Rivas, J.C. Fernández, F. Herrera, KEEL: A Software Tool to Assess Evolutionary Algorithms to Data Mining Problems. Soft Computing 13:3 (2009) 307-318.
|KNIME: Konstanz Information Miner: KNIME is a modular, open platform for data integration, processing, analysis, and exploration.
M.R. Berthold, N. Cebron, F. Dill, T.R. Gabriel, T. Kötter, T. Meinl, P. Ohl, C. Sieb, K. Thiel, B. Wiswedel, KNIME: The Konstanz Information Miner. In Studies in Classification, Data Analysis, and Knowledge Organization (GfKL 2007). Springer, 2007.
WEKA: Practical Machine Learning Tools and Techniques for Data Mining.
FSS for Specific Application Purposes
|DefuzzificationBlock||Code||assembly||Specific Problems of Control|
|FFLL||Library||C++||Specific Problems of Control|
|jFuzzyLogic||Library||Java||Specific Problems of Control|
|jFuzzyQt||Library||C++||Specific Problems of Control|
|ASAFES2||Toolbox||C++, ANASA||Specific Problems of Control|
|TP-Tool||Toolbox||Matlab||Specific Problems of Control|
|WARPSTAR2||Toolbox||Dymola, Matla||Specific Problems of Control|
|Yang2013||Toolbox||VB.NET, Elipse||Specific Problems of Control|
|Zeng2009||Toolbox||Matlab||Specific Problems of Control|
|CIAPS||Suite||Matlab||Specific Problems of Control|
|MEANDER||Suite||Java||Specific Problems of Control|
|Angulo2012||Toolbox||Matlab||Specific Problems of Decision-Making|
|FCM-uUTI-DSS||Toolbox||Matlab||Specific Problems of Decision-Making|
|FMCGDSS-DECIDER||Toolbox||Java||Specific Problems of Decision-Making|
|GeoNetWeaver||Toolbox||C++, VB||Specific Problems of Decision-Making|
|MCDM Analyst||Toolbox||COM||Specific Problems of Decision-Making|
|GeoFIS DSS||Suite||C++, Java, R||Specific Problems of Decision-Making|
|Gestur||Library||C# (.NET)||Specific Problems of Image Processing|
|FuzzyUPWELL||Toolbox||Matlab||Specific Problems of Image Processing|
|Mandelias2013||Toolbox||Specific Problems of Image Processing|
|InterIMAGE||Suite||Specific Problems of Image Processing|
|JFCS||Suite||Java||Specific Problems of Image Processing|
|FEBRL||Toolbox||Python||Specific Problems of Biomedicine|
|FSPS||Toolbox||LabVIEW||Specific Problems of Biomedicine|
|Mclust||Toolbox||C++||Specific Problems of Biomedicine|
|Pinti2010||Toolbox||Matlab||Specific Problems of Biomedicine|
|PaleoSearch||Toolbox||Java||Specific Problems of Information Retrieval|
|Seto2009||Toolbox||Java||Specific Problems of Information Retrieval|
|SIRE2IN||Toolbox||Java||Specific Problems of Information Retrieval|
|Karavezyris2002||Toolbox||Specific Problems of System Dynamics|
|Ng2009||Toolbox||Matlab||Specific Problems of System Dynamics|
|Kim1997||Toolbox||Specific Problems of Prognosis and Time Series Prediction|
|SuretyQualification||Toolbox||VB, FuzzyTECH||Specific Problems of Prognosis and Time Series Prediction|
|Zein-Sabatto2013||Toolbox||Specific Problems of Prognosis and Time Series Prediction|
|KKAnalysis||Toolbox||Matlab||Specific Problems of Risk Analysis|
|PoolEvidence and LinguisticBelief||Toolbox||Java||Specific Problems of Risk Analysis|
|RCSUEX||Toolbox||Specific Problems of Risk Analysis|
|RiskCriticalityAnalyzer and FuzzyReliabilityAnal||Toolbox||C++||Specific Problems of Risk Analysis|
|FADAlib||Library||C++||Giving Support to Software Engineering|
|CMMI-ASS||Toolbox||Java||Giving Support to Software Engineering|
|MRES||Toolbox||Java||Giving Support to Software Engineering|
|SEffEst||Toolbox||Giving Support to Software Engineering|
|InrecoLAN FuzzyMath||Library||Java, VB||Educational|
|FEUP||Toolbox||C, Delphi, Laza||Educational|
Table 3. Fuzzy Systems Software with Specific Purpose (listed by Application Domain)
FSS for Specific Application Purposes - Solving Specific Problems of Control
In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:
|DefuzzificationBlock: Hardware and software implementations along with the comparison of defuzzification methods supported by Texas Instrument's Code Composer Studio|
|FFLL: Free Fuzzy Logic Library is an open source fuzzy logic class library and API that is optimized for speed critical applications, such as video games. FFLL is able to load files that adhere to the IEC 61131-7 standard.
S. Rabin, AI Game Programming Wisdom. Charles River Media, 2002.
|jFuzzyLogic: jFuzzyLogic is an open source Java which allows us to design and to develop Fuzzy Logic Controllers following the standard for Fuzzy Control Language (IEC 61131-7).
P. Cingolani, J. Alcalá-Fdez, jFuzzyLogic: a java library to design fuzzy logic controllers according to the standard for fuzzy control programming. International Journal of Computational Intelligence Systems 6:1 (2013) 61–75.
jFuzzyQt: C++ Fuzzy Logic Library which is a clone of jFuzzyLogic.
|ASAFES2: A neurofuzzy function approximator, which combines Takagi-Sugeno fuzzy reasoning method with stochastic reinforcement learning.|
TP-Tool: A free matlab toolbox for polytop or TS fuzzy modeling and control design via LMIs and PDC framework
|WARPSTAR2: Dynamic powertrain simulation tool for the modelling of electric vehicles.|
|Yang2013: A graphical tool aimed at controlling and monitoring temperature and relative humidity in the context of fine agriculture.|
|Zeng2009: Expert system which combines ANFIS with genetic algorithms for designing in situ toughened Si3N4.|
|CIAPS: Open source package based on artificial neural networks and fuzzy logic simulations for the assessment of electrical power systems.|
|MEANDER: Evaluates the performance of agent-based systems.|
FSS for Specific Application Purposes - Solving Specific Problems of Decision-Making
In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:
|Angulo2012: Matlab toolbox for measuring water quality episodes from the behavior of variables measured at water control networks.|
|FCM-uUTI-DSS: Matlab toolbox for dealing with uncomplicated urinary tract infection treatment management based on fuzzy cognitive maps.|
|FMCGDSS-DECIDER: A toolbox for linguistic multi-criteria group decision-making applied to fabric hand-based textile material evaluation.|
GeoNetWeaver: Decision support tool which allows to design knowledge based systems with a fuzzy logic inference mechanism
|MCDM Analyst: A toolbox for handling spatial multicriteria decision analysis.|
|GeoFIS DSS: Open source suite aimed at providing GIS with new functionalities such as fuzzy modelling and reasoning with georeferenced data in Agronomy.|
FSS for Specific Application Purposes - Solving Specific Problems of Image Processing
|Gestur: Open source library for software developers wishing to incorporate static and dynamic hand gesture recognition into their applications.|
|FuzzyUPWELL: Matlab toolbox devoted to the fully automatic and unsupervised precise segmentation (based on fuzzy clustering) of upwelling images.|
|Mandelias2013: Toolbox for automatic image segmentation combining fuzzy cognitive maps and wavelet transform. It is applied to lumen border extraction and strut detection in intravascular optical coherence tomography.|
|InterIMAGE: A knowledge-based framework for the automatic interpretation of remote sensing GIS images.|
JFCS: A Color Modeling Java Software based on Fuzzy Color Spaces
FSS for Specific Application Purposes - Solving Specific Problems of Biomedicine
Febrl: Freely Extensible Biomedical Record Linkage includes a comprehensive graphical user interface based on PyGTK for facilitating the record linkage for users that have no experience in the Python programming language.
|FSPS - A spike sorting software: A tool fast and robust online classification of single neuron activity.
A. Oliynyk, C. Bonifazzi, F. Montani, L. Fadiga, Automatic online spike sorting with singular value decomposition and fuzzy C-mean clustering. BMC neuroscience, 13:96 (2012) 1–19.
|Mclust: A toolbox aimed at performing fuzzy clustering with the information from metabolites.|
|Pinti2010: Matlab toolbox for the multiple correspondence analysis of morphometric skull datasets.|
FSS for Specific Application Purposes - Solving Specific Problems of Information Retrieval
|PaleoSearch: Toolbox which deals with paleo-journal articles by content word or ontology-supported browse categories.|
|Seto2009: A system with a GUI query builder which generates XQuery statements that support for both strict and fuzzy qualifiers.|
|SIRE2IN: A recommender system for research resources that is supported by fuzzy linguistic modeling.|
FSS for Specific Application Purposes - Solving Specific Problems of System Dynamics
|Karavezyris2002: Application of system dynamics and fuzzy logic to forecasting of municipal solid waste.|
|Ng2009: System dynamics simulation and optimization with fuzzy logic.|
FSS for Specific Application Purposes - Solving Specific Problems of Prognosis and Time Series Prediction
|Kim1997: Forecasting time series with genetic fuzzy predictor ensemble.|
|SuretyQualification: Toolbox which allows interaction between the user and an optimized fuzzy expert system for estimating contractor default in the context of surety bonding.|
|Zein-Sabatto2013: Statistical approach to online prognostics of turbine engine components.|
FSS for Specific Application Purposes - Solving Specific Problems of Risk Analysis
|KKAnalysis: Matlab toolbox able to perform the unsupervised classification of volcanic tremor data.|
|PoolEvidence and LinguisticBelief: Toolboxes which are aimed at evaluating terrorist acts.|
|RCSUEX: Certainty Representation of the Exploratory Success. A toolbox in charge of making easier the evaluation of petroleum exploration prospects.|
|RiskCriticalityAnalyzer and FuzzyReliabilityAnalyzer: Toolboxes which provide a comprehensive framework for the risk evaluation of the construction industry.|
FSS for Specific Application Purposes - Giving Support to Software Engineering
|FADAlib: This library implements the Fuzzy Array Dataflow Analysis (FADA) method.
M. Belaoucha, D. Barthou, A. Eliche, S. Touati, FADAlib: an open source C++ library for fuzzy array dataflow analysis. In Procedia Computer Science, International Conference on Computational Science (ICCS), 2010, pp. 2075–2084.
|CMMI-ASS: Toolbox to help self-assessment software companies to accomplish the appraisal process.|
|MRES: A toolbox for selecting resources in software project management.|
|SEffEst: A toolbox which combines fuzzy logic and neural networks for effort estimation in software projects.|
FSS for Specific Application Purposes - Educational
|COALA: Computer Assisted Environment for Learning Algorithms: A set of Eclipse plug-ins which constitute a computer assisted environment to facilitate the learning of algorithms in courses of Computer Science and Engineering.
F. Jurado, A. Molina, M. Redondo, M. Ortega, A. Giemza, L. Bollen, H. Hoppe, Learning to program with COALA, a distributed computer assisted environment. Journal of Universal Computer Science, 15:7 (2009) 1472–1485.
|InrecoLAN FuzzyMath: Fuzzy logic add-in for OpenOffice.org Calc. InrecoLAN FuzzyMath allows to perform ordinary arithmetic operations and use ordinary mathematical and financial functions with fuzzy numbers|
|Peach : Peach is a pure-python library, based on SciPy and NumPy to implement algorithms for computational intelligence and machine learning. The aim of this library is primarily educational. Nonetheless, care was taken to make the methods implemented also very efficient.|
|CAVUS: A web-based system to aid in the evaluation of learning management systems.|
|EDUrobot: A toolbox which facilitates the understanding of mobile robotics.|
|eRiskGame: A support teaching tool in software engineering courses.|
|FEUP: A toolbox aimed at teaching fuzzy control.|
|FIRS-trainer: A toolbox which focuses on courses related to fuzzy information retrieval systems.|
|FuzzyCOPE: FuzzyCOPE is a free toolbox for teaching, research and intelligent system development.
M. Watts, B. Woodford, N. Kasabov, FuzzyCOPE - A Software Environment for Building Intelligent Systems - the Past, the Present and the Future. In the ICONIP/ANZIIS/ANNES’99 Workshop Future directions for intelligent systems and information sciences, Dunedin (New Zealand), pp. 188-192, 1999.
|FuzzyRAMSET: Matlab toolbox applied to software engineering courses in order to give students a practical experience.|
|MNTOOL: A a visual and friendly Matlab environment to help students in experimenting with multi-net neural systems.|
|RTlab: Real-time laboratory environment combines dSPACE DS1103 DSP and Matlab/Simulink/RTW with the aim of helping students to model and control induction motor drives.|
|VirtualLab: A toolbox aimed at teaching fuzzy control.|
|KEEL Software as a Educational Tool:: This suite provides with an educational module well suited to be used in Data Mining, Machine Learning and Knowledge Discovery in Databases courses.
J. Derrac, J. Luengo, J. Alcalá-Fdez, A. Fernandez, S. García, Using KEEL Software as a Educational Tool: A Case of Study Teaching Data Mining. Second International Conference on EUropean Transnational Education (ICEUTE 2011), Salamanca (Spain), pp. 55-60, 2011.
|Lau2009: Fuzzy domain ontology extraction suite for adaptive e-Learning.|
|OmegaT: A free and open source multiplatform Computer Assisted Translation tool with fuzzy matching, etc.
F. Colleoni, S. Calegari, D. Ciucci, M. Dominoni, OCEAN project. A prototype of AIWBES based on fuzzy ontology. In International Conference on Intelligent Systems Design and Applications, Pisa(Italy), pp. 944-949, 2009.
Languages for FSS
|IEEE P1855™/D2.0||Control, Modelling|
Table 2. Languages for Fuzzy Systems (listed by lexicographical ordering)
In the following we provide some additional information for some of the languages included in the table above:
Fuzzy Control Language (FCL): FCL is defined in part 7 of this norm IEC 61131, offering common understanding of the basic means with which to integrate fuzzy control applications in control systemsand providing a common language with which to exchange portable fuzzy control programs among different platforms. Unfortunately, this standard is not freely available and must be purchased (see www.iec.ch). However, the Draft 1.0 version from 1997 is available and we have not noticed any significant differences between the draft and the final version.
|FLOPER: An extension of the XPath query language in the fuzzy logic programming environment for research.|
|Fuzzy Markup Language (FML): A computer language exploiting the benefits offered by XML-based tools in order to define fuzzy logic controllers.
G. Acampora, V. Loia, C.-S. Lee, M.-H. Wang, On the power of Fuzzy Markup Language. In Studies in Fuzziness and Soft Computing. Heidelberg, Berlin: Springer, 2013.
|FQUERY: An approach to data mining in databases.|
|f-SPARQL: A flexible extension of the SPARQL query language which was designed to express queries over RDF datasets.|
FuzzyClips: A fuzzy expert system designed to be used with Tcl.
|FuzzyProlog: A Simple General Implementation Using CLP(TeX).|
|FuzzyXPath: A fuzzy extension of XPath language which provides the degree of similarity between two XML trees.|
|FuzzyXQuery: A fuzzy-set-based extension to XQuery language which allows preferences on XML documents to be expressed and retrieves documents discriminated by satisfaction degree.|
|IEEE P1855™/D2.0: Approved Draft Standard for Fuzzy Markup Language
IEEE Approved Draft Standard for Fuzzy Markup Language. In IEEE P1855/D2.0, September 2015 (2016) 1-88
|QXMLSum: A query-oriented XML summarization system.|
|SQLf: A language to handle gradual predicates formalized in the framework of fuzzy set theory.|
|XFSML: An XML-based language for modeling fuzzy systems that was implemented in Xfuzzy.|
Recent Papers on Fuzzy Software Systems (2009-Present)
Several considerations for further research in FSS
We focus our attention on four aspects which should guide further research directions in FSS: Interoperability, Novelty, Usability and Relevance.
- Interoperability: We can find different FSS in the literature for many problems. However, we can rarely operate on those systems with other software because each FSS usually stores the developed fuzzy systems in its own format. Because of this, researchers cannot take advantage of the different proposals that we find in the literature. Some researchers have included some options in their proposals to export and import the developed fuzzy systems to other formats, and other researchers are currently working to develop standard languages which will allow us to exchange fuzzy systems across different platforms.
- Novelty: The development of novel FSS requires a previous analysis based on the functionality criteria of the existing software in the literature to enable researchers to identify the software needs that the current software cannot provide. This analysis should include a set of basic characteristics (such as programming language, interoperability, and so on) and a set of specific characteristics related to the application domain and the type of software proposed (such as data support, etc.) that allow us to detect the major differences between software and to categorize the proposal as an alternative to the existing software when other requirements are needed.
- Usability: The true potential of the available software is not realized because the source files are not always openly shared. The open source model makes it easier for other researchers to develop and adapt available software to their problems and provides many advantages.
- Relevance: When researchers present a new proposal they should guarantee that users can download their software and that it will be maintained, if they want their work to remain relevant. Many researchers use public hosting to share their proposals in order to avoid problems with servers and to provide better maintenance. On the other hand, there is FSS available on the Internet which does not have an associated publication, which complicates the question of broadcasting. Moreover, FSS proposals should be published with the correct title and meaningful keywords in order to maximize their visibility in public search engines
Moreover, the software related to submitted papers must be hosted at the authors' website or at a public hosting, being accessible worldwide.
In the following we maintain a list (by lexicographical ordering) with some of the most popular websites for fuzzy logic:
|Task Force on Fuzzy Systems Software (TF-FSS): This is a Task Force of the Fuzzy Systems Technical Committee (FSTC) which belongs to the Computational Intelligence Society (CIS) of the Institute of Electrical and Electronic Engineers, Inc. (IEEE)|
Related Review Papers
In the following we maintain a list with new related papers reviewing particular software types or important application domains:
- J. Alcalá-Fdez and J.M. Alonso. "A Survey of Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects". IEEE Transactions on Fuzzy Systems 24:1 (2016) 40-56, DOI:10.1109/TFUZZ.2015.2426212.
- D.D. Nauck. "GNU fuzzy". IEEE International Conference on Fuzzy Systems (London, 2007) pp. 1019–1024
- S. Sonnenburg, M.L. Braun, Ch.S. Ong, S. Bengio, L. Bottou, G. Holmes, Y. LeCun, K.-R. Müller, F. Pereira, C.E. Rasmussen, G. Rätsch, B. Schölkopf, A. Smola, P. Vincent, J. Weston and R. Williamson. "The need for open source software in machine learning". Journal of Machine Learning Research 8 (2007) 2443–2466
- L.O. Hall and R.J. Hathaway. "Software review - Fuzzy Systems Toolbox - Fuzzy Logic Toolbox". IEEE Transactions on Fuzzy Systems 4:1 (1996) 82–85
- Special Session - Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2019-ssc/)
Organizers: Jose M. Alonso, Jesús Alcalá-Fdez, Jose Manuel Soto-Hidalgo
This session has been accepted at the FUZZ-IEEE 2019 conference which will be held in New Orleans, Louisiana, USA at June 23-26, 2019.
- Special Session - Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2018-ssc/)
Organizers: Jesús Alcalá-Fdez, Jose M. Alonso, Jose Manuel Soto-Hidalgo
This session was held at the FUZZ-IEEE 2018 conference which will be held as part of the 2018 IEEE WCCI in Rio de Janeiro, Brazil at July 8-13, 2018.
- Special Session - Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2017-ssc/)
- Tutorial - Software for Soft Computing (http://www.fuzzieee2017.org/tutorials.html)
Speakers: Jose M. Alonso, Jesús Alcalá-Fdez, Autilia Vitiello, and Giovanni Acampora
This tutorial was given as part of the FUZZ-IEEE 2017 conference which was held in Naples, Italy, at July 9-12, 2017.
- Lecture - Fuzzy Systems Software (July 20, 2017)
Speaker: Jose M. Alonso
This lecture was given as part of the III European Summer School on Fuzzy Logic and Applications (SFLA 2017), which was held in Santiago de Compostela, Spain, at July 17-21, 2017.
- Special Session – Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2016-ssc/)
- Special Issue on Computational Intelligence Software (Special Issue webpage: http://sci2s.ugr.es/ieeecimcisw2016/)
- J. Alcalá-Fdez, J.M. Alonso and O. Cordón. Special Issue on Computational Intelligence Software. IEEE Computational Intelligence magazine 11:2 (2016) 13-14. Doi: 10.1109/MCI.2016.2532264.
- J.M. Soto-Hidalgo, P.M. Martinez-Jimenez, J. Chamorro-Martinez, D. Sanchez. JFCS: A Color Modeling Java Software Based on Fuzzy Color Spaces. IEEE Computational Intelligence magazine 11:2 (2016) 16-28. Doi: 10.1109/MCI.2016.2532265
- D. Apostolou, K. Zachos, N. Maiden, N. Agell, G. Sanchez-Hernandez, M. Taramigkou, K. Star, M. Wippoo. Facilitating Creativity in Collaborative Work with Computational Intelligence Software. IEEE Computational Intelligence magazine 11:2 (2016) 29-40. Doi: 10.1109/MCI.2016.2532266
- A.R. Masegosa, A.M. Martinez, H. Borchani. Probabilistic Graphical Models on Multi-Core CPUs Using Java 8. IEEE Computational Intelligence magazine 11:2 (2016) 41-54. Doi: 10.1109/MCI.2016.2532267
- Special Session – Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2015-ssc/)
- Special Session – Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2014-ssc/)
- Special Issue on Software Tools for Soft Computing
Guest Editors: J. Alcalá-Fdez, Jose M. Alonso
This special issue was published at the International Journal of Computational Intelligence Systems (IJCIS), volume 6, issue 1, 2013 - Editorial: Atlantis Press.
- Special Session – Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2013-ssc/)
- Special Session – Software for Soft Computing (Session webpage: http://sci2s.ugr.es/fuzzieee2012-ssc/)
- Special Session – Software for Soft Computing (Special Session 15)
Organizers: Detlef Nauck
This session was organized as part of the FUZZ-IEEE 2007 conference in London, UK at July 23-26, 2007.