What's new in fuzzylite 6.0
May 5, 2017
- What's New:
- The FuzzyLite Libraries, namely fuzzylite and jfuzzylite, both in version 6.0, are dual licensed under the GNU General Public License version 3 and the Apache License version 2.
- By default, fuzzylite builds using C++11 instead of C++98.
- Important performance improvements.
- Refactored the following names for the operation of engines: from activation operator to implication operator, from accumulation operator to aggregation operator.
- Renamed the term Accumulated to Aggregated.
- New activation methods decouple the activation of rules from the rule block and provide different methods for activating rules (see Activation Methods).
- New class ActivationFactory provides a factory of activation methods.
- New class Benchmark to evaluate the performance and accuracy of engines.
- New class Complexity to estimate the computational complexity of an engine.
- New class RScriptExporter to export the surfaces of an engine using the ggplot2 library.
- New class Binary term for binary edges.
- New UnboundedSum S-Norm in SNormFactory.
- New classes SNormFunction and TNormFunction to create custom functions on any two values using the Function class.
- Added description strings to Engine, Variable and RuleBlock
- Privatized previously protected members of classes and subclasses of Term, Variable, Rule, Defuzzifier, [Cloning|Construction]Factory, Importer, Exporter, amongst others.
- Improved portability by replacing int for std::size_t where necessary, thereby additionally removing warnings in Windows 64bit
- Deleted Operation.cpp and inlined its methods into Operation.h
- Updated .travis.yml to use Docker, and build using g++ (versions 6, 5, 4.9, 4.8, 4.7) and clang (versions 3.8, 3.7, 3.6, and 3.5).
- Added appveyor.yml to use continuous integration in Windows under Visual Studio 2013 and 2015.
- Added some unit tests and support for future unit tests.
- Bug fixes.
- New example of hybrid engines.
- New example on obstacle avoidance for Mamdani, Takagi-Sugeno, and Hybrid engines.
- New R scripts for each example and its respective surfaces in pdf formats.
- Bug fixes:
- Fixed bug in CloningFactory::deregisterObject(). Bug: Object was deleted before removing it from the map, leaving an invalid object in the map which would cause a segmentation fault. Solution: Remove the object from the map before deleting it.
- Fixed bug causing segmentation fault when malformed term in FuzzyLite Language
- Fixed bug computing the NormalizedSum S-Norm.
- Fixed bug in RuleBlock to reset and clone the implication operator. Bug: implication operator is not copied and reset. Fix: copy and reset implication operator when cloning the RuleBlock.
- Fixed bug in Function term. Bug: given a formula = "tan(y)" and a map["y"] = 1.0, and executing Function::load(formula), then the map of variables is reset because load() calls unload() first, causing the deregistration of variable y. Solution: Removed method unload() from load(), thereby causing future load() not to reset variables.
- Fixed bug in Function when enclosing variable in double parenthesis.
New in fuzzylite 4.0 (Jan 9, 2014)
- Added new features, improvements, and plenty of refactoring.
New in fuzzylite 3.1 (Sep 2, 2013)
- Included Tsukamoto controllers and fixed bugs in qtfuzzylite
New in fuzzylite 1.03 (Mar 1, 2011)
- Fixed makefiles of libraries to remove the main.h and main.cpp files from building in order to avoid problems when building certain configurations of projects.
- Bugs fixed in FuzzyOperation and CompoundTerm that caused some memory leaks. Courtesy of arash.abghari.
New in fuzzylite 1.02 (Feb 12, 2011)
- Fixed the Triangulation Algorithm to include the first and last triangle (improved accuracy). Courtesy of rctaylor.
- Implemented the Trapezoidal Algorithm suggested by William Roeder, although its accuracy is not as good as the Triangulation algorithm.
- Created the scripts for building fuzzylite as static and dynamic library, as well as building a demo version of it. Tested on Linux Ubuntu and Mac OS X 10.5. Although the Unix version should work under Windows as well using G++.
- Added LeftShoulderTerm and RightShoulderTerm, just to provide a better understanding when configuring the FuzzyEngine.
- Changed all the #include for "#include "fuzzylite/?.h".
- Included the Trapezoidal Algorithm into the GUI.
New in fuzzylite 1.01 (Dec 20, 2010)
- The source can be built on Linux with no need to add several includes to some files. (I work on MacOSX and I did not build fuzzylite 1.0 on Linux, I just assumed it would build just fine, but some includes were missing in some files. FIXED).
- Several scripts for building fuzzylite using a simple make. These scripts are created automatically by NetBeans, however, you do not need NetBeans to build fuzzylite nor the gui.
- The scripts are available for Linux and Mac OS X.