mirror of
https://github.com/marcin-szczepanski/jFuzzyLogic.git
synced 2024-08-17 02:11:56 +02:00
114 lines
7.3 KiB
Plaintext
114 lines
7.3 KiB
Plaintext
Dear Pablo.
|
||
|
||
Next December 1st is the deadline of the Special Issue. We should work strong this month in order to finish the paper.
|
||
|
||
I have modified our conference contribution in order to use the journal styles (I have attached the zip file). These styles are unfriendly and I have spoken a lot of time with this task. Moreover, I have removed a lot of typos that I have found.
|
||
|
||
Well, I send you the scheme for this paper/extension. The main idea is to show more and better jFuzzyLogic reusing the material of our conference contribution and adding new material (for instance, optimization API, etc). I have detailed a lot the content for each section. I think you can write/extend section 3 and 4 and I can write/extend the rest of the paper (and I have modified our contribution in order to use the journal styles and I have written the scheme).
|
||
|
||
Is that Ok?
|
||
|
||
|
||
All the best,
|
||
Jesus
|
||
|
||
|
||
Abstract. We should rewrite the abstract for this paper
|
||
1. Introduction. We should rewrite the introduction for this paper
|
||
2. Preliminaries
|
||
We should add a new section with preliminaries:
|
||
a) A new subsection about FLC. This subsection will not be added if we expend the number of pages (the limit is 15 pages) with the rest of the paper. If we can add this subsection, subsection 2.c will move to a new Section (not subsection).
|
||
b) IEC-61131 languages. In this subsection we should indice the advantage of the standars and then we should introduce IEC-61131 and FCL. This subsection will extend the introduction of Section 3 and subsection 3.A of our conference contribution. This section will not include the corresponding Java code to run the FCL
|
||
code of the example, we should show this information in the case study.
|
||
c) Comparison of fuzzy logic software. This section will be extend with other softwares.
|
||
|
||
3. jFuzzyLogic Implementation
|
||
In this section we should sell more and better jFuzzyLogic, adding subsections in order to introduce better the different components of jFuzzyLogic. In our conference contribution we explain how we can write the FCL file, but we can find the FCL syntax in internet (for instance, http://www.fuzzytech.com/binaries/ieccd1.pdf) and this syntax is not jFuzzyLogic. jFuzzyLogic is a library and we should speak about this library, describing its components.
|
||
|
||
To do that, we will use this scheme:
|
||
|
||
Section 3.
|
||
At the begging, we say what is jFuzzyLogic (is an open source library....), adding the URL where we can download jFuzzyLogic and an image of the webpage. Then we speak about ANTLR, AST, etc but we don't speak about FIS because this comment will be moved to subsection 2.b. This part consist of the bellow 2 paragraphs modified /extended with this idea:
|
||
|
||
jFuzzyLogic is fully implemented in Java, thus the
|
||
package is platform independent. ANTLR17 was
|
||
used to generate Java code for a lexer and parser
|
||
based on our FCL grammar definition. This generated
|
||
parser uses a left to right leftmost derivation
|
||
recursive strategy, formally know as <20>LL(*)<29>.
|
||
|
||
Using the lexer and parser created by ANTLR
|
||
we are able to parse FCL files by creating an Abstract
|
||
Syntax Tree (AST), a well known structure
|
||
in compiler design. The AST is converted into
|
||
an Interpreter Syntax Tree (IST), which is capable
|
||
of performing the required computations. This
|
||
means that the IST can represent the grammar, like
|
||
and AST, but it also capable of performing calculations.
|
||
The parsed FIS can be evaluated by recursively
|
||
transversing the IST.
|
||
|
||
Then, we speak about how this section is organizate. For instance: In the following subsections we describe in detail the main features, etc...
|
||
|
||
|
||
Subsection 3.1. Main features of jFuzzyLogic.
|
||
This subsection is more or less subsection 3.C in our conference contribution, but now we should speak briefly of the object tree and API because we will add two subsections for the object tree and API (Subsection 3.4 and 3.5) and we should speak about other features of jFuzzyLogic. You can read this section in KEEL paper in order to obtain ideas for adding features in this subsection.
|
||
|
||
Subsection 3.2. Membership functions. We need to extend those paragraphs.
|
||
|
||
Only two membership functions are defined in
|
||
the IEC standard: singleton and piece-wise linear.
|
||
jFuzzyLogic also implements other commonly
|
||
used membership functions: trapezoidal, sigmoidal,
|
||
gaussian, generalized bell, difference of sigmoidal,
|
||
and cosine. Furthermore, jFuzzyLogic allows to
|
||
build arbitrary membership functions by combining
|
||
mathematical functions.
|
||
|
||
Because of the flexibility in defining membership
|
||
functions, we discretize them at a number of points.
|
||
The number of points, by default one thousand, can
|
||
be adjusted according to the precision-speed tradeoff
|
||
required for a particular application. Inference
|
||
is performed by evaluating membership functions at
|
||
these discretization points. In order to perform a discretization,
|
||
the <20>universe<73> for each variable, has to
|
||
be estimated. The universe is defined as the range
|
||
where the variable has non-neglectable value. For
|
||
each variable, each membership function and each
|
||
term is taken into account when calculating a universe. Once all rules have been analyzed, the accumulation
|
||
for each variable is complete.
|
||
|
||
In those paragraphs is the first time where we speak about jFuzzyLogic in our conference contribution. This is the idea what I want to say you.
|
||
|
||
|
||
Subsection 3.3. Aggregation, Activation, Accumulation, defuzzification methods.
|
||
Here, we should speak about the Aggregation, Activation, Accumulation and defuzzification methods what we can use in jFuzzyLogic. Moreover, we should remark if you have added more methods to jFuzzyLogic (more than the standar) and how the user can use them.
|
||
On the other hand, in this susection we should also speak about excecution order, etc
|
||
|
||
|
||
Subsection 3.4. jFuzzyLogic object tree
|
||
This section introduce the objects available in jFuzzyLogic and how we can add new object to this tree. For instance, can we use a template in order to add new object?, etc.
|
||
|
||
Subsection 3.5. Optimization API
|
||
This subsection is the queen of the crown in this Section. we can speak a lot of this API in this subsection, with figures, etc. We can describe this API, introducing:
|
||
- How we can modify rules, etc
|
||
- What tuning methods you can use and how...
|
||
- etc
|
||
|
||
Maybe, we can add other subsections. We can speak about this point. For instance, in these subsection we should explain details as:
|
||
|
||
1- Can jFuzzyLogic manage hierarchical controllers? How is one block linked to another one?
|
||
|
||
2- Optimization. Is the specification of the data used for optimizing the membership functions included in the FLC model?
|
||
|
||
|
||
|
||
4. A case study
|
||
This section should be extended. I will prepare another FLC (in a FCL file) and we will show an example of java API to execute these FCL codes. I have added an example of java API to execute the FCL codes for WCOR in the file attached.
|
||
Moreover, we should add a example using the optimization API (with figures, etc) with the FLC obtained by WCOR (for example). This part should be very nice because the API is a value very important for jFuzzyLogic.
|
||
|
||
|
||
5. Conclusions
|
||
We should add some commets that people say to me in the conference. And, we should add some ideas/comments of the referees because some of them can be review our paper again and they want to see that we have consider their comments.
|