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] --------------------------------------------------------------------
