What needs to happen for the fuzzy rules to operate is as follows:

1. the system determines the temperature on a floor (and the rate
   of change of the temperature) and modifies the thermometer object
   causing the Jess shadow facts for the object to be changed. This
   would normally be done by sampling a thermometer periodically,
   say once every minute or two. Sampling more often than this would be 
   of limited use since the system needs to have some time to
   respond to any previous change in the system.

2. the fuzzy rules that match (in a fuzzy way) the temp and rate of change
   of temp will be put on the agenda.

3. each will fire and assert a fuzzy-vent fact for that floor.

4. as each rule fires the system automatically combines each new fuzzy 
   vent fact with the current fuzzy-vent fact for the floor giving the 
   aggregated decision for the vent on that floor.

5. it is important that each rule has a chance to contribute to the
   aggregated solution so the rule that converts this solution to a
   crisp number for the change of the vent must 'wait' until this
   aggregation is complete. Hence the need to have a lower salience than
   the fuzzy rules that determine the change for the vent. (It could
   also be done using modules) 

6. once the vent change is determined the vent opening is altered.

7. after some period of time (in the simulation this is 1 second)
   we start again at item 1 above.

Now this is happening for each floor. If each floor were being 
sampled at different times (with enough time between them to
allow the fuzzy rules and the defuzzification rule to fire) then 
it would be like having a separate set of rules for each floor
(vent). But depending on how the simulation works it may be that
the temperatures and rates of change are sampled at about
the same time. Then the fuzzy rules will fire for each floor
and the defuzzification rules will wait until they are complete
and then fire thus changing the vents. This is normally OK 
because the rules fire very fast (hundreds or thousands can fire
in a second). If the time between sample readings of the temperature
and rate of change of temperature gets to be too short there can be 
problems. It might for example be possible to generate changes to the
thermometer objects so quickly that the defuzzification rules never
(or rarely) get a chance to fire. But in a normal system this will not
happen because the sample interval is much much longer than the 
time to do the fuzzy reasoning. 

That was a bit long winded but I hope it helps to explain what is 
going on. Now to answer your comment about waiting for all devices 
to finish ... actually to wait for all decisions for the devices
to be completed ... this is OK, since there is plenty of time
to make the decisions for all temperatures that might have been 
sampled about the same time. If in the simulation you were to
remove the one second wait times that are in the java simulation 
code then you'd run into trouble because you could get into the
situation where there was no chance for the defuzzification
rule to fire. 

I'm not sure what your actual problem is and what performance 
problems you're experiencing. Perhaps you can be a little more 
explicit and I can try again. 

If anyone else can explain this in simpler terms, please help me
out. 



Bob Orchard
National Research Council Canada                Conseil national de
recherches Canada
Institute for Information Technology    Institut de technologie de
l'information
1200 Montreal Road, Building M-50               M50, 1200 chemin Montrial
Ottawa, ON, Canada K1A 0R6                      Ottawa (Ontario) Canada K1A
0R6

(613) 993-8557 
(613) 952-0215 Fax / tilicopieur

[EMAIL PROTECTED] 

Government of Canada | Gouvernement du Canada




-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Jordan Willms
Sent: Monday, March 08, 2004 8:33 PM
To: [EMAIL PROTECTED]
Subject: JESS: problem with saliences in a multiple-user system


Hello,

I am looking at Fuzzy HVAC Controller example in the Jess book.  At the
bottom of page 275, it says that "because the rule must wait until all the
other fuzzy rules have fired, to allow Jess to combine the outputs, it is
set at a lower priority (salience) than others". How if the program was
supposed to control more than one device?  Then one device had to wait for
the result of all others to finish first.  We are having a similar problem
and it decreases the performance of our system significantly.  Does anyone
has a solution?

Thanks,
Leila


 

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to