|
|

JFS (version 2) is a free fuzzy systems tool (Windows 95/98/NT) by J.E.Mortensen |
|
|

FUZZLE
3.0 (Fuzzy Logic Tool) 
A PC-based development shell for fuzzy if-then type rules from MODiCO Inc. (animated demo version, 1.05 Mb file, provides a general overview of the product's
facilities). It supports its own execution module (with graphical vizualization) and
converter to ANSI C/Fortran code. Both numeric and linguistic data entries
are supported. Main steps of development in FUZZLE are explained
on the company's page (here You'll find
also unlocking password for the program). Full installation under Windows 95/98 required about 19 Mb of HD space. The package is supplied with 8
animated tutorials («silent video
clips») that cover all working
aspects |
|
|
|
|
|
«The Achilles' heel of a fuzzy system is its rules. Smart rules give smart systems and
other rules give less smart or even dumb systems.
...Adaptive fuzzy systems can help automate this process by
using neural networks or neural-like
learning algorithms to tune rules and thus to move the fuzzy rule patches in
the state space. ...Neural networks can learn from data and feedback; however,
understanding the knowledge or the pattern learned by the neural networks has been
difficult.
...In contrast, fuzzy rule-based models are easy to comprehend because it uses linguistic terms and the structure of if-then
rules. Unlike neural networks, however, fuzzy logic does not come with a learning
algorithm. ...A neuro-fuzzy system can be loosely
defined as a system that uses a combination of fuzzy logic and
neural networks».
B.Kosko. Fuzzy
Engineering, Prentice Hall, 1997 ©
J.Yen,
R.Langari. Fuzzy Logic. Intelligence, Control, and Information, Prentice Hall, 1999 ©
|
|
|

|
|
|
All programs (MATLAB ver.5 and Borland Delphi 4 implementations)
are presented here in the form they were submitted for the final
presentation of CMPE-586 Project by respected students |
|
PROJECT 1 (part of the CMPE-586 course project) is done by
Hashem Lababidi (monitor of the group), Roustem
Nizamiev and Zeki
Yetgin

Brief problem specification:
In ATM, during the call set-up phase, the user
declares its traffic characteristics (requirements) to network in the form of traffic contract, which includes the transfer rate.
Because of statistical multiplexing and the absence of flow control between the user and
the network, a call may exceed the negotiated transfer, and this leads to congestion problems. In order to protect the network and
connections from congestion, a network function called Usage
Parameter Control
(UPC) or, shortly, policing function, is
needed. This policing mechanism must take certain actions when violation of the contract
is detected. One of the most famous and the only implemented up-to-date policing mechanism
is the Leaky Bucket (and its modified version, which uses Previous Data Gathering (PDG) block as an important component).
Details of the Leaky Bucket mechanism («the most effective
traditional policer up to now») are shown in the Figure
1 above. To enter the network an arriving cell must obtain a token
from a token queue; if there is no token available, an arriving cell is deemed (violation
of the traffic contract). Unfortunately, this approach have problems with policing of
well-behaving source (synchronization with the traffic source is absent).
A modified version of the Leaky Bucket mechanism is synchronized with the source (see Figure 2 below). PDG
unit takes a decision and trigger data buffer with a Boolean result.

Definition of the Fuzzy System (Fuzzy PDG Unit):
Consider a transfer rate from the previous bursts (BehaviorRate) as an
input for FPDG unit, whereas the size of buffer
(BufferSize) is a unit's output. The input domain is a closed interval [0,60]
(cells/unit), the output domain is [0,100] (a buffer size greater than 100 increases
the average cell delay, which is not desirable). Definitions of linguistic
variables and terms, rule base and inference process
are covered by Borland Delphi 4
implementation:

fuzst3.exe
[self-extracting file, 341
Kb]
The final version of the program was submitted on June
19, 2000. Results of performed tests (fuzzyTECH 5.31
and SINE 1.0) are included (in the form of screenshots) into
the PDF-document (fuzst3.pdf, 576 Kb). |
|
|
Additional sources of information (Leaky Bucket
Mechanism):
1. CS-791 - A
Critical Look at Network Protocols by Prof. John Byers,
October 28, 1999
2. Scheduling
and Policing Mechanisms (chapter 6.6) in «Computer Networking. A Top-Down Approach Featuring the Internet»
by J.F.Kurose and K.W.Ross
3. The Leaky Bucket as a
Policing Device: Transient Analysis and Dimensionings by D.Logothetis
and K.S.Trivedi
|
|
PROJECT 2 (part of the CMPE-586 course project) is done by
Hasan Sarper (monitor of the group) and Ahmet Akarsu

Brief problem specification:
When a program executed on a single computer becomes inefficient in trying to compute the
result of a complex task, we can partition the task
into several subtasks and distribute them between computers that work in parallel to
minimize amount of time needed to complete all calculations. This way of using computers
in cooperation is called parallel computation. At
this point reasonable questions may come to our mind: what is the functional
dependency between the number of computers and the corresponding amount of time necessary
to complete a program's execution? will the performance of «enlarged» system
grow in linear proportion to the number of computers used? Unfortunately, the answer
to the second question is negative - for any task, with any
complexity, the overall performance of the parallel system increases as the number of
computers grows, but this goes on up to some extremum point
(depends upon the complexity of the task). After it, with a growth of the number of
computers, the performance will decrease due to communication
and coordination overheads in the system. The Figure given above illustrates an
approximate functional dependency «number of computers - time»
for two tasks of different complexities (complexity(task2)>complexity(task1)). In both cases functions have parabolic-like shape.
Definition of the Fuzzy System:
Consider the number of computers (1..8)
as an input variable of the system; 7 linguistic
terms are chosen as values of input variable (e.g. one computer is associated with the
value negligible, whereas two computers correspond
to the restricted case as a starting point for
parallel computations, etc.). Computational time is a system's output; the output domain is [40,60] (measured in milliseconds). In
the current implementation the complexity of the task is
fixed (constant), however, later on (!) it
will form the second input variable. Definitions of linguistic
variables and their terms (antecedent
and consequent MFs), rule base and inference process details are covered by group's MATLAB 5.3 (Release 11)
application (a set of M- and MAT-files)
enhanced with a convenient GUI:

sarpak1.exe
[self-extracting file, 45
Kb]
The final version of the program was submitted on June
20, 2000. After extracting 14 files and saving them
in the arbitrary directory on the disk, run MATLAB 5.3
and add a full path (option File > Set Path...) to the
directory used; afrewards, run script SarpAk.m. The general
idea of designed Graphical User Interface can be obtained
from the file (sarpak1.pdf, 320 Kb), which
includes several screenshots of selected forms. |
|
«Parallelism is that simple - applying
multiple CPUs to a single problem. Besides offering faster solutions,
applications that have been parallelized can solve bigger, more complex problems whose
input data or intermediate results exceed the memory capacity of one CPU.
...Computer scientists may find parallel programming to be interesting in itself, but
that's not the objective of most scientists and engineers. As Boeing's Ken Neves said, "Nobody wants parallelism. What we want is performance".
...Is parallel performance achievable? Absolutely. But it is
not easily achieved, nor can it be achieved for every problem. Achieved performance
depends on five interdependent factors:
1. the degree of parallelism inherent in the application;
2. the parallel computer architecture on which that application
executes;
3. how well the language and runtime system exploit that
architecture;
4. how effectively the program code exploits the language, runtime
system, and architecture; and
5. the runtime environment at the time of execution».
C.M.Pancake (Oregon State University), IEEE
Computational Science & Engineering, vol.3, #2, 1996, pp.18-37 ©
|
|
|
|
|
PROJECT 3 (part of the CMPE-586 course project) is done by
Önsen Toygar (monitor of the group), Öykü Akaydin and Meltem Yagli

Brief problem specification and definition of the
Fuzzy System: Very often recommendations on the desired «healthy»
correspondence between height and weight given by doctors (dietologists),
aerobics instructors and other
specialists to women are not precise (uncertain in some particular cases). It is a
regular practice in recommendations to use such terms/phrases as «close to», «around»,
«quite light (normal)», «too heavy for the average height», etc. For
this section of the course project the age range is limited to (20..34),
whereas the height covers quite realistic domain of values from 1.5
to 1.82 meter long. A woman's age is
an input variable of the system (the variable has 5
linguistic values); appropriate weight is a system's output
(5 adjectives very light, light,
normal, heavy
and very heavy characterize this variable). The Figure shown above illustrates one of
numerous data tables, which cover ideal (!?)
characteristics of interest for women - other sources propose slightly different values of
weight. The latter somehow depends on the region, habits, traditions (including cuisine),
etc. Definitions of linguistic variables and their terms (antecedent and consequent MFs), rule base and inference process
details are covered by Borland Delphi 4
implementation:

heiweig.zip
[a single file in zip-format, 278
Kb]
The final version of the program was submitted on June
20, 2000. The program does not display 3D relations
(this was done separately in MATLAB environment). The age of women
under consideration is fixed (limited to the range with very close
values of weight), but it may form the second system's input variable. Conclusions
produced by the program were compared to the output of fuzzyTECH
5.31 and running MATLAB script (M-file prepared by the
group) for several test data (similarity is 97%).
|
|

PROJECT 4
(part of the CMPE-586 course project) is done by
Yiltan Bitirim, Arca
Artem and Tamer Tulgar (monitor of the group)

Brief problem specification:
A speed of file's downloading may vary depending on many
factors, e.g. connection speed of the user's local site to the Internet, number of
connected users to the site, traffic intensity of the site in a certain period of day,
etc. The Figure shown above
represents experimental data obtained on May 29/30, 2000
(these were the days when there were problems with satelite connection). It is better to
say that the Figure shows a tendency of changes in downloading speed through the day.
«One-day» experiments (in the same working conditions) were repeated during the month of
June (different sites and sizes of files), but the results were very similar (late in the
night (00:00 - 03:30am) we were able to notice short time
«splashes» of speed up to 9.06 Kb).
Definition of the Fuzzy System:
Consider the period of the day (0..24h)
as an input variable of the system; 8 linguistic
terms are chosen as values of input variable (e.g. late night,
early morning, morning,
etc.). File downloading speed is a system's output;
the output domain is [0,9]
(measured in kilobytes per second). Definitions of working
conditions, linguistic variables and their terms
(antecedent and consequent MFs), rule base and inference process (two predefined inference engines are
used, i.e. minimum engine and product
engine) details are covered by group's MATLAB
5.3 (Release 11) application (with
GUI):

loaddown.exe [self-extracting file, 44 Kb]
The final version of the program was submitted on June
19, 2000. After extracting 30 M-files and 1 MAT-file and setting path in MATLAB environment, run script StartTask.m ( our apologizes for possible
dislocation of forms images on the screen caused by
screen resolution). |
|

PROJECT 5
(part of the CMPE-586 course project) is done by
Mirza Faisal Baig (monitor
of the group) and Mirza Tariq Hamayun
(EE Department)

Brief problem specification:
The downward velocity of landing
aircraft is proportional to the square of the height. The aircraft will descend from
altitude promptly, but it will touch down very gently to avoid damage. Two state variables
for the simulation are height (h) and vertical
velocity ( )
of the aircraft (see Figure 1
above). The output of the system is a force f, which
altered height and velocity of aircraft. In difference notation
the new values of
state variables
and h are calculated in response to control input and the
previous state variables values (see Figure 2).
The task is to control aircraft's vertical descent during approach and landing (consider initial 0-th altitude of 1,000 feet
(304.8m) and downward velocity of -20ft/s, or -6.1m/s).

A fragment of FIS Editor (Fuzzy Logic
Toolbox, MathWorks®)
Definition of the Fuzzy System
(Aircraft Landing Control): The system under study has 2 inputs and one output (see Scheme above); membership
functions for all 3 variables, definition of rules
(totality of 20 rules), used operators, implication forms and deffuzification
methods, results of simulation are distinctly shown
by group's Fuzzy Logic Toolbox 2.0
implementation (Fuzzy Inference System, MATLAB 5.3, Release 11):

aircraft.exe [self-extracting file, 34 Kb]
The final version of the program was submitted on June
17, 2000. After extracting 10 M-files and 1 FIS file, run script air2aa2.m ( for better viewing enlarge Figure
windows to the whole screen), or if You use FL Toolbox, run script fuzzy (it starts FIS Editor main
window) and open from disk aircraft_2.fis (or, simply type fuzzy aircraft_2 in Run script dialog box). |
|
«The Fuzzy
inference system is a popular
computing framework based on the concepts of fuzzy set theory, fuzzy if-then rules, and
fuzzy reasoning... Because of its multi-disciplinary nature, the fuzzy inference system is
known by a number of names, such as fuzzy-rule-based
system, fuzzy expert system, fuzzy
model, fuzzy associative memory, fuzzy logic controller,
and simply (and ambiguously) fuzzy
system.
...The basic structure of a fuzzy inference system consists of three conceptual
components: a rule base, which contains a selection of fuzzy rules, a database or dictionary, which defines the membership functions used in the
fuzzy rules, and a reasoning mechanism, which performs the inference procedure upon the
rules and a given condition to derive a reasonable output or conclusion».
J.-S. Roger Jang, C.-T. Sun. Neuro-Fuzzy Modeling
and Control (IEEE Proceedings, 1995) ©
|
|
 [interesting
Internet sites related to Fuzzy Logic] |
|
Courses on Fuzzy Logic in other
Universities worldwide:
CpE 321: Applied Fuzzy Logic
I (West Virginia University,
Computer Science and Electrical Engineering, USA)
Graduate Program in Computer
Engineering (3 hrs. Lecture)
EPS 3240: Fuzzy Sets
Theory and Fuzzy Logic (Federal
University of Santa Catarina State,
Department of Production
Engineering, Brazil). Includes Course Contents and
Student Works
MATH 5425: Fuzzy
Logic and Neural Nets (The
University of New South Wales, School of Mathematics, Australia)
Graduate Course in
Mathematics
xxx: Fuzzy Logic with
Engineering Applications (University
of New Mexico, Department of Civil Engineering, USA)
xxx: Neural Fuzzy Systems
(Lectures by R.Fuller, Åbo Academi
University, Finland)
|