Sage Modeling and Simulation Library

Highpoint.Sage.Graphs.Analysis Namespace

Classes


  Class Description
Public class AnalysisFailedException
MissingParameterException is thrown when a required parameter is missing. Typically used in a late bound, read-from-name/value pair collection scenario.
Public class CpmAnalyst
An object that is capable of examining a network of edges that implement ISupportsCPMAnalysis and determining CPM data (earliest and latest firing times for each vertex.

The algorithm here is that we start at the beginning, traversing each path, and advancing elapsed time by the duration of the edge as we cross each edge. We record the earliest time we reach each vertex - that is the earliest possible start for the principal edge if it is a pre-vertex, and the earlies possible completion if it is a postVertex. For the second pass, we take the "earliest" time that the finish vertex was reached, which is the earliest that the whole recipe can be completed. Using that as the overall duration, we traverse back- wards, subtracting the duration of each edge and assigning the time of arrival at each vertex as the "latest possible" start or finish. This works great until you start constraining vertices, with the Vertex Synchronizer. In this case, the synchronizer delineates a set of synchronized vertices, none of which can fire until all are ready to be fired. So the earliest a set of synchronized vertices can fire is the LATEST 'earliest' time that any of the member vertices can fire. So, we have a SynchronizerData object that tracks how many vertices in its member set have been visited, and does not allow traversal beyond that set of vertices until all of them have been visited and their 'earliest' settings set to the latest time that any of them were visited. Then, 'elapsedTime' is set to that 'latest' time, and all member vertices are used, in turn, as roots from which to probe forward.

Protected class CpmAnalyst..::..EdgeData
Protected class CpmAnalyst..::..SynchronizerData
Protected class CpmAnalyst..::..VertexData
Public class PathLength
This class provides the analytical capability to discern the shortest path from one vertex to another, or from one edge to another. Its methods are static, but since all of its data members are locals, it may be considered threadsafe.
Public class PertAnalyst
This class is able, in its instances, to perform a PERT analysis, including determination of critical paths, and their tasks' mean and variances. NOTE: WORKS-IN-PROGRESS
Public class TimeCycleException

Interfaces


  Interface Description
Public interface ISupportsCpmAnalysis
Implemented by an object that can take part in a CPM (non-probabilistic) time cycle analysis. Presumption is that the implementer is also capable of acting as an edge or vertex in a network.
Public interface ISupportsPertAnalysis
This interface is implemented by any edge in a graph where the edge has duration, and therefore can be used as a part of the computations necessary to performing a PERT analysis. NOTE: WORKS-IN-PROGRESS