ptolemy.domains.sr.kernel
Class SROptimizedScheduler
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.util.Attribute
ptolemy.actor.sched.Scheduler
ptolemy.actor.sched.FixedPointScheduler
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:
- Proposed Rating:
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. |
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 |
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.