Class SROptimizedScheduler

  • All Implemented Interfaces:
    java.lang.Cloneable, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

    public class SROptimizedScheduler
    extends FixedPointScheduler
    A scheduler the Synchronous Reactive (SR) domain. This scheduler returns a static schedule for the graph. The schedule guarantees that the values will converge to a fixed-point.

    The recursive scheduling algorithm is due to Stephen Edwards, and is described in his Ph.D. thesis. First, a dependency graph is constructed, and the strongly connected components (SCC) are determined. A schedule for each SCC is obtained by separating the sub-graph into a head and a tail, and then recursively applying this algorithm to both the head and the tail. The schedule for the SCC is (TH)nT where H and T are the schedules of the head and tail, respectively, and n is the number of nodes in the head and represents the number of repetitions of the parenthesized expression. Finally, the schedules of the top-level SCCs are concatenated in topological order to obtain the schedule for the entire graph.

    FIXME: This is not implemented! This is a placeholder that uses the same naive scheduler as the base class.

    Since:
    Ptolemy II 2.0
    Version:
    $Id$
    Author:
    Paul Whitaker
    See Also:
    SRDirector
    Pt.AcceptedRating:
    Red (pwhitake)
    Pt.ProposedRating:
    Red (pwhitake)
    • Constructor Detail

      • SROptimizedScheduler

        public SROptimizedScheduler​(SRDirector container,
                                    java.lang.String name)
                             throws IllegalActionException,
                                    NameDuplicationException
        Construct a scheduler in the given container with the given name. The container argument must not be null, or a NullPointerException will be thrown. This attribute will use the workspace of the container for synchronization and version counts. If the name argument is null, then the name is set to the empty string. Increment the version of the workspace.
        Parameters:
        container - The container.
        name - The name of this scheduler.
        Throws:
        IllegalActionException - If the scheduler is not of an acceptable class for the container, or if the name contains a period.
        NameDuplicationException - If the name coincides with an attribute already in the container.