Abstract
Many researchers have used fuzzy set theory and fuzzy logic in a variety of applications related to computer science and engineering, given the capability of fuzzy inference systems to deal with uncertainty, represent vague concepts, and connect human language to numerical data. In this work we propose Simpful, a general-purpose and user-friendly Python library designed to facilitate the definition, analysis, and interpretation of fuzzy inference systems. Simpful provides a lightweight Application Programming Interface that allows to intuitively define fuzzy sets and fuzzy rules, and to perform fuzzy inference. Worthy of note, in Simpful the fuzzy rules are specified by means of strings of text written in natural language. We provide here some practical examples to show that Simpful represents a valuable addition to the open-source software that supports fuzzy reasoning.
Article PDF
Avoid common mistakes on your manuscript.
References
L.A. Zadeh, Fuzzy sets, Inf. Control. 8 (1965), 338–353.
L.A. Zadeh, Computing with words, IEEE Trans. Fuzzy Syst. 4 (1996), 103–111.
J. Yen, R. Langari, Fuzzy Logic: Intelligence, Control, and Information, vol. 1, Prentice Hall, Upper Saddle River, 1999.
G.J. Klir, B. Yuan, Fuzzy Sets and Fuzzy Logic: Theory and Applications, Prentice Hall, Upper Saddle River, 1995.
E. Hüllermeier, From knowledge-based to data-driven fuzzy modeling, Informatik-Spektrum. 38 (2015), 500–509.
A. Mardani, A. Jusoh, E.K. Zavadskas, Fuzzy multiple criteria decision-making techniques and applications–two decades review from 1994 to 2014, Expert Syst. Appl. 42 (2015), 4126–4148.
L.A. Zadeh, Outline of a new approach to the analysis of complex systems and decision processes, IEEE Trans. Syst. Man Cybern. 3 (1973), 28–44.
R. Babuška, H.B. Verbruggen, An overview of fuzzy modeling for control, Control Eng. Pract. 4 (1996), 1593–1606.
L.Y. Cai, H.K. Kwan, Fuzzy classifications using fuzzy inference networks, IEEE Trans. Syst. Man Cybern. Part B. 28 (1998), 334–347.
Y.-H.O. Chang, B.M. Ayyub, Fuzzy regression methods–a comparative assessment, Fuzzy Sets Syst. 119 (2001), 187–203.
E.H. Ruspini, Numerical methods for fuzzy clustering, Inf. Sci. 2 (1970), 319–350.
J. Alcalá-Fdez, J.M. Alonso, A survey of fuzzy systems software: taxonomy, current research trends, and prospects, IEEE Trans. Fuzzy Syst. 24 (2015), 40–56.
R.R. Yager, L.A. Zadeh, An Introduction to Fuzzy Logic Applications in Intelligent Systems, vol. 165, Springer Science & Business Media, New York, NY, USA, 2012.
J. Rada-Vilela, The FuzzyLite Libraries for Fuzzy Logic Control, 2018. https://www.fuzzylite.com/
S. Guillaume, B. Charnomordic, Learning interpretable fuzzy inference systems with FisPro, Inf. Sci. 181 (2011), 4409–4427.
C. Wagner, Juzzy-a java based toolkit for type-2 fuzzy logic, in 2013 IEEE Symposium on Advances in Type-2 Fuzzy Logic Systems (T2FUZZ), IEEE, Singapore, 2013, pp. 45–52.
J.M. Soto-Hidalgo, J.M. Alonso, G. Acampora, J. Alcalá-Fdez, JFML: a java library to design fuzzy logic systems according to the IEEE std 1855-2016, IEEE Access. 6 (2018), 54952–54964.
C. Wagner, S. Miller, J.M. Garibaldi, A fuzzy toolbox for the R programming language, in 2011 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2011), IEEE, Taipei, Taiwan, 2011, pp. 1185–1192.
R. Babuška, Fuzzy Toolbox for MATLAB: Reference Guide, Version 3.0, Technical Report, Delft University of Technology, Department of Electrical Engineering, Control Laboratory, Delft, Netherlands, 1994.
MathWorks, Fuzzy Logic Toolbox - r2020a, 2020. https://www.mathworks.com/products/fuzzy-logic.html
Pyfuzzy-python Fuzzy Package, 2014. http://pyfuzzy.sourceforge.net/
E. Avelar, O. Castillo, J. Soria, Fuzzy logic controller with fuzzylab python library and the robot operating system for autonomous robot navigation: a practical approach, in: O. Castillo, P. Melin, J. Kacprzyk (Eds.), Intuitionistic and Type-2 Fuzzy Logic Enhancements in Neural and Optimization Algorithms: Theory and Applications, Springer, Cham, Switzerland, 2020, pp. 355–369.
SciKit-Fuzzy, 2019. https://pythonhosted.org/scikit-fuzzy/
J. Alcalá-Fdez, J.M. Alonso, C. Castiello, C. Mencar, J.M. Soto-Hidalgo, Py4JFML: a Python wrapper for using the IEEE Std 1855-2016 through JFML, in 2019 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE), IEEE, New Orleans, LA, USA, 2019, pp. 1–6.
M.S. Nobile, G. Votta, R. Palorini, S. Spolaor, H. De Vitto, P. Cazzaniga, et al., Fuzzy modeling and global optimization to predict novel therapeutic targets in cancer cells, Bioinformatics. 36 (2019), 2181–2188.
S. Spolaor, M.S. Nobile, G. Mauri, P. Cazzaniga, D. Besozzi, Coupling mechanistic approaches and fuzzy logic to model and simulate complex systems, IEEE Trans. Fuzzy Syst. 28 (2020), 1748–1759.
A. Gegov, Fuzzy Networks for Complex Systems, Springer, Berlin, Heidelberg, Germany, 2010.
H. Kawamura, Fuzzy network for decision support systems, Fuzzy Sets Syst. 58 (1993), 59–72.
P.-T. Chang, E.S. Lee, Fuzzy decision networks and deconvolution, Comput. Math. Appl. 37 (1999), 53–63.
A.M. Yaakob, A. Serguieva, A. Gegov, FN-TOPSIS: fuzzy networks for ranking traded equities, IEEE Trans. Fuzzy Syst. 25 (2017), 315–332.
O. Castillo, P. Melin, J.R. Castro, Computational intelligence software for interval type-2 fuzzy logic, Comput. Appl. Eng. Educ. 21 (2013), 737–747.
International Electrotechnical Commission (IEC), Technical report, publisher IEC, IEC 61131-7, Programmable Controllers Part 7 - Fuzzy Control Programming, 2000.
E. Jones, T. Oliphant, P. Peterson, et al., Scipy: Open Source Scientific Tools for Python, 2001. https://www.scipy.org/
M. Castañón-Puga, J.R. Castro, M. Flores-Parra, Jt2fis: Java type-2 fuzzy inference system-an object-oriented class library for building java intelligent applications, in International Conference on Enterprise Information Systems, Angers, France, SCITEPRESS, 2013, vol. 2, pp. 524–529.
IEEE-SA Standards Board, IEEE Standard for Fuzzy Markup Language, IEEE Std 1855–2016, 2016.
G. Acampora, Fuzzy markup language: a XML based language for enabling full interoperability in fuzzy systems design, in: G. Acampora, V. Loia, C.S. Lee, M.H. Wang (Eds.), On the Power of Fuzzy Markup Language, Springer, Berlin, Heidelberg, Germany, 2013, pp. 17–31.
Py4J - a Bridge between Python and Java, 2018. https://www.py4j.org/
T.E. Oliphant, Python for scientific computing, Comput. Sci. Eng. 9 (2007), 10–20.
T.E. Oliphant, A Guide to NumPy, vol. 1, Massachusetts Institute of Technology, Cambridge, MA, USA, 2006.
E.H. Mamdani, S. Assilian, An experiment in linguistic synthesis with a fuzzy logic controller, Int. J. Man-Mach. Stud. 7 (1975), 1–13.
T. Takagi, M. Sugeno, Fuzzy identification of systems and its applications to modeling and control, IEEE Trans. Syst. Man Cybern. 15 (1985), 116–132.
M.B. Elowitz, S. Leibler, A synthetic oscillatory network of transcriptional regulators, Nature. 403 (2000), 335.
C. Fuchs, S. Spolaor, M.S. Nobile, U. Kaymak, pyFUME: a Python package for fuzzy model estimation, in 2020 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE), IEEE, Glasgow, UK, 2020, pp. 1–8.
C. Fuchs, A. Wilbik, U. Kaymak, Towards more specific estimation of membership functions for data-driven fuzzy inference systems, in 2018 IEEE International Conference on Fuzzy Systems (FUZZIEEE), IEEE, Rio de Janeiro, Brazil, 2018, pp. 1–8.
M. Setnes, R. Babuska, U. Kaymak, H.R. van Nauta Lemke, Similarity measures in fuzzy rule base simplification, IEEE Trans. Syst. Man Cybern. Part B. 28 (1998), 376–386.
U. Kaymak, R. Babuska, Compatible cluster merging for fuzzy modelling, in Proceedings of 1995 IEEE International Conference on Fuzzy Systems, IEEE, Yokohama, Japan, 1995, vol. 2, pp. 897–904.
C. Fuchs, S. Spolaor, M.S. Nobile, U. Kaymak, A graph theory approach to fuzzy rule base simplification, in: M.J. Lesot et al. (Eds.), International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems, Springer, Cham, Switzerland, 2020, pp. 387–401.
M.S. Nobile, P. Cazzaniga, D. Besozzi, R. Colombo, G. Mauri, G. Pasi, Fuzzy self-tuning PSO: a settings-free algorithm for global optimization, Swarm Evol. Comput. 39 (2018), 70–85.
F. Valdez, P. Melin, O. Castillo, A survey on nature-inspired optimization algorithms with fuzzy logic for dynamic parameter adaptation, Expert Syst. Appl. 41 (2014), 6459–6466.
Y. Tsukamoto, An approach to fuzzy reasoning method, in: M.M. Gupta, R.K. Ragade, R.R. Yager (Eds.), Advances in Fuzzy Set Theory and Applications, North-Holland Publishing Company, Amsterdam, Netherlands, 1979.
P. Angelov, R. Yager, Simplified fuzzy rule-based systems using non-parametric antecedents and relative data density, in 2011 IEEE Workshop on Evolving and Adaptive Intelligent Systems (EAIS), IEEE, Paris, France, 2011, pp. 62–69.
X. He, Weighted fuzzy logic and its applications, in Proceedings COMPSAC 88: the Twelfth Annual International Computer Software & Applications Conference, IEEE Computer Society, Chicago, IL, USA, 1988, pp. 485–486.
N.N. Karnik, J.M. Mendel, Q. Liang, Type-2 fuzzy logic systems, IEEE Trans. Fuzzy Syst. 7 (1999), 643–658.
J. van den Berg, U. Kaymak, W.-M. van den Bergh, Probabilistic reasoning in fuzzy rule-based systems, in: P. Grzegorzewski, O. Hryniewicz, M.Á. Gil (Eds.), Soft Methods in Probability, Statistics and Data Analysis, Springer, Heidelberg, Germany, 2002, pp. 189–196.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
This is an open access article distributed under the CC BY-NC 4.0 license (https://doi.org/creativecommons.org/licenses/by-nc/4.0/).
About this article
Cite this article
Spolaor, S., Fuchs, C., Cazzaniga, P. et al. Simpful: A User-Friendly Python Library for Fuzzy Logic. Int J Comput Intell Syst 13, 1687–1698 (2020). https://doi.org/10.2991/ijcis.d.201012.002
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.2991/ijcis.d.201012.002