Localized Zeno Conditions in DDE Models

The following applet uses the DDE domain of Ptolemy II to model localization of Zeno conditions. The applet incorporates polymorphic actors in conjunction with DDE-specific actors.

Background
The above applet illustrates the localization of Zeno conditions in the DDE domain. The demo consists of two topologically identical branches connected to a clock source actor. Each branch contains a feedback loop and is fed identical tokens from the clock source. As with all feedback loops in DDE (and DE) models, a positive time delay is necessary in feedback loops to prevent deadlock. If the time delay of a given loop is lower bounded by zero but can not be guaranteed to be greater than a fixed positive value, then a Zeno condition occurs in which time will cease to advance even though the actors of the feedback loop continue to execute without deadlocking.

In centralized discrete event systems, Zeno conditions prevent progress in the entire simulation. This is true because the feedback cycle experiencing the Zeno condition prevents time from advancing in the entire model. In contrast, distributed systems localize Zeno conditions as much as possible based on the topology of the system. Thus, as shown in the demo above, a Zeno condition can exist in one section of a topology without impacting the entire system.

Operation
In the above model, the bottom branch experiences a Zeno condition as soon as time advances to 45. This causes the the bottom branch to continue execution long after the top branch has ceased execution, even though the clock source sends identical data to both branches. Note that for convenience the lower branch only approximates a Zeno condition. It has been deliberately designed to eventually end the Zeno condition and complete execution.

A color coding scheme is utilized as follows:

This applet is implemented by LocalZenoApplet.java.

The model consists of the following domain-polymorphic actors:

and the following DDE actors:

In the lower branch, the feedback actor is implemented with ZenoDelay instead of FeedBackDelay to provide a delay value that approximates a Zeno condition. ZenoDelay extends FeedBackDelay.