Highpoint.Sage.Graphs.Analysis Namespace
Classes
Class  Description  

AnalysisFailedException 
MissingParameterException is thrown when a required parameter is missing. Typically used in a late bound, readfromname/value pair collection scenario.


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 prevertex, 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. 

CpmAnalyst..::..EdgeData  
CpmAnalyst..::..SynchronizerData  
CpmAnalyst..::..VertexData  
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.


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: WORKSINPROGRESS


TimeCycleException 
Interfaces
Interface  Description  

ISupportsCpmAnalysis 
Implemented by an object that can take part in a CPM (nonprobabilistic)
time cycle analysis. Presumption is that the implementer is also capable
of acting as an edge or vertex in a network.


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: WORKSINPROGRESS
