Re: Spread*** allowing to use fuzzy logic



It seems to me that there are two approaches to using fuzzy data -- either
in a spread*** or in a database.

First, we can populate the cells (or row/column intersections) with fuzzy
membership values derived from some fuzzy process (expert systems, cluster
analysis, neural networks, etc) and then use the membership functions as the
basis for further analysis. The problem with storing fuzzy numbers or fuzzy
quantifiers in a database is simply that the membership values on any data
that is interesting will change over time. Thus, storing the result of the
fuzzy assertion <age> is Young or <project.duration> is Long will invariably
change as the client grows older or the project is revised (or our notion of
what constitutes a Long project changes). In toy or academic databases this
might not be of concern (as evidenced by the large number of academic papers
on static fuzzy databases), but in any real world database containing
thousands or millions of records and hundreds and hundreds of tables,
storing fuzzy membership values is a complete waste of time and (more
important) epistemologically wrong.

Second, we can use the data to derive fuzzy membership values that are used
in context to drive the analysis. This is the basis of FuzzySQL processors
which use fuzzy statements in the where statement as well as the having
clause of the group statement. This would also be the use of fuzzy
statements in the rules of a fuzzy spread***. Queries, rules, and policies
that _use_ the data to drive the conditional flow of analysis are only
constrained by semantic changes in the fuzzy set representations (that is,
what we mean by a fuzzy term). In any case, spreadsheets and databases
should never store fuzzy membership values as persistent data (we might want
to populate a column (in a spread*** or a database table) with the results
of a fuzzy policy execution, but this should always be considered
provisional or transient data).

I have about twenty five years experience in fuzzy database systems
delivered to actual paying clients. But I don't insist that my way of
thinking about the problem is absolutely correct. These are just that
principles that work for me.

Earl

Incidentally, there have been, over the years, a number of fuzzy logic based
spreadsheets. Fuzzyware marketed one about ten years ago. None of them
gained any user support -- primarily because users fail to understand the
great benefit of expressing objective functions and constraints (the rules
and equations of a typical spread***) in terms of fuzzy sets and because
the developers were terrible, terrible, terrible marketing people with no
sense of how to explain their products to potential customers with real
money - business people and government agencies.

"Dmitry A. Kazakov" <mailbox@xxxxxxxxxxxxxxxxx> wrote in message
news:t8yrxm1arskk.1q5sh1f272wuv$.dlg@xxxxxxxxxxxxx
On Wed, 30 Aug 2006 14:10:44 -0400 (EDT), Anonyma wrote:

It is nice to explore ideas using what-if scenarios and using the
spread*** type of human interface.
I have looked with google, but I cannot find anything. Maybe I did not
look well. I apologize if this seems trivial or a waste of time for the
pros.
Is there any spread*** using fuzzy logic? is there any fuzzy logic
extension for something like excel?

That would be no problem to do. But the question is what do you want to do
with fuzzy data in the cells?

BTW, there is a fuzzy PostgreSQL extension. RDBMS are in some sense
spreadsheets...

Failing all of the above, is there any easy to use toolkit with
spread*** type of objects that can easily be integrated with fuzzy logic?
I am a decent programmer for command line, non graphical, applications,
in C and C++. I am rather inexperienced in anything involving graphics and
MFC.

[ OK, as an experienced MFC user, I'd like to give you an advise, you
probably won't follow, anyway, never ever use MFC! (:-)) ]

I am ready to study if there is something that is usable. I do not mind
to buy books, if they provide detailed information.

You can take a look at:

http://www.dmitry-kazakov.de/ada/fuzzy.htm

With some little effort it could be used from Basic script, if you aim at
Excel. But Excell, well...

I already have integrated it with GTK+

http://www.gtk.org (GTK+ is GPL and platform-independent)

AFAIK, GTK+ has a spread*** widget. I didn't look at it yet. But, for
example, tree-view models (used in the tree-view widget) are fully
supported. That is - you can put a fuzzy logical value, fuzzy set, IFS etc
into a cell of the model and there is a renderer for it. Further, you can
put a feature description with it. This way you can handle fuzzy sets over
the sets of linguistic variables, have fuzzification/defuzzification etc.

A fuzzy logic interpreter/script is also no problem. I have practically
everything for that, including the pre-compiler. The only problem is to
define the set of operations you want to support and the syntax for
accessing other rows and cells. If you want it, I think, you should think
about making it more or less compatible with FCL (fuzzy control language).
I have a compiler from FCL too. It is only a front-end, because, well, the
back-end is up to you.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


.