NFIDENT A program for neuro-fuzzy function approximation Copyright (C) 1997-2005 Detlef Nauck This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA or go to http://www.gnu.org/licenses/gpl.html. NFIDENT implements the NEFPROX approach and to some extent the ANFIS model to approximate functions by fuzzy systems. There is no documentation, yet. The NEFPROX algorithm is documented in http://fuzzy.cs.uni-magdeburg.de/~nauck/nauck.pdf Detlef Nauck. Data Analysis with Neuro-Fuzzy Methods. Habilitation Thesis, University of Magdeburg, 2000. For other (older) papers on NEFPROX please refer to our web site at http://fuzzy.cs.uni-magdeburg.de and download one of our papers. E.g.: @InProceedings{nauck97c, author = {Nauck, Detlef and Kruse, Rudolf}, title = {Function Approximation with NEFPROX}, pages = "316--323", booktitle = "Proc.\ 4th GI--Workshop on Fuzzy--Neuro Systems", year = {1997}, publisher = "infix", address = "Soest" } URL: ftp://fuzzy.cs.uni-magdeburg.de/pub/papers/fns97.ps.gz For ANFIS please refer to J.-S. Roger Jang's publications. E.g: @ARTICLE{jang93, AUTHOR = {Jang, J.-S. Roger}, JOURNAL = {IEEE Trans.\ Systems, Man \& Cybernetics}, PAGES = {665--685}, TITLE = {{ANFIS}: Adaptive-Network-Based Fuzzy Inference Systems}, VOLUME = {23}, YEAR = {1993} } His complete implementation of ANFIS can be obtained from ftp.cs.cmu.edu in /user/ai/areas/fuzzy/systems/anfis. NFIDENT currently just implements backpropagation for ANFIS. How to use NFIDENT: 1) Under Unix: Compile with make (you probably must edit the Makefile) Under Windows: NFIDENT runs as console (MS-DOS) application. You can compile, for example, with Microsoft Visual C++. Create a new Win32 console project and import all .c and .h files. See also NOTES under 6). 2) Usage: Learning: nfident -l Testing : nfident -t [] Create gnuplot file from network: nfident -g [] Run "nefprox -l mg.ini" to observe how NFIDENT learns the Mackey-Glass function. Observe the resulting fuzzy sets with "gnuplot mg.gnu" and the performance with "gnuplot mgplotres.gnu". The latter one only works if you use the filenames as set in the mg.ini file. Otherwise edit mgplotres.gnu to suit your setup. Gnuplot can be obtained from http://www.gnuplot.info/ Type just "nfident" to obtain a note on how to invoke NFIDENT. You can stop the program during learning with CTRL-C without using your results. An executable is only provided for Window systems - nfident.exe is a WIN32 console application and runs in a command window. 3) Study mg.ini and mg*.dat to understand how to use NFIDENT and how to influence the learning process. 4) Don't build your hopes on updates. This one took five years ;-) 5) The previous version was 0.91 beta and had one bug fixed concerning computation of center of gravity defuzzification. (thanks to Harald Zainzinger for pointing out this bug) The current version is 0.95 beta and now uses the performance measure and rule learning algorithm described in http://fuzzy.cs.uni-magdeburg.de/~nauck/nauck.pdf pages 58 and 60. (thanks to Thomas Bauer for letting me know that the available version 0.91 beta had a wrong mamdani.c file that was still using the old algorithm from 1997). 6) NOTE - Trapezoidal fuzzy sets are not actually implemented in NFIDENT. - in fuzzy.c the function isnan is used. For Unix systems that has to be isnan and for Visual C++ it has be written as _isnan. 7) Please send bug reports / suggestions / improvements to nauck@ieee.org. Have fun! Detlef Nauck ----------------------------------------------- E-Mail: nauck@ieee.org WWW : http://fuzzy.cs.uni-magdeburg.de/~nauck