ptolemy.domains.sr.kernel
Class SROptimizedScheduler

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.util.Attribute
          extended by ptolemy.actor.sched.Scheduler
              extended by ptolemy.actor.sched.FixedPointScheduler
                  extended by ptolemy.domains.sr.kernel.SROptimizedScheduler
All Implemented Interfaces:
java.io.Serializable, 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: SROptimizedScheduler.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Paul Whitaker
See Also:
SRDirector, Serialized Form
Accepted Rating:
Red (pwhitake)
Proposed Rating:
Red (pwhitake)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Field Summary
 
Fields inherited from class ptolemy.actor.sched.Scheduler
_DEFAULT_SCHEDULER_NAME
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Constructor Summary
SROptimizedScheduler(SRDirector container, java.lang.String name)
          Construct a scheduler in the given container with the given name.
 
Method Summary
 
Methods inherited from class ptolemy.actor.sched.FixedPointScheduler
_getSchedule
 
Methods inherited from class ptolemy.actor.sched.Scheduler
clone, getSchedule, isValid, setContainer, setValid
 
Methods inherited from class ptolemy.kernel.util.Attribute
_checkContainer, _getContainedObject, _propagateExistence, getContainer, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, setName, updateContent
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _description, _exportMoMLContents, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, containedObjectsIterator, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, uniqueName, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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.