Package ptolemy.graph.analysis
Class NegativeLengthCycleAnalysis
- java.lang.Object
-
- ptolemy.graph.analysis.Analysis
-
- ptolemy.graph.analysis.NegativeLengthCycleAnalysis
-
public class NegativeLengthCycleAnalysis extends Analysis
Analysis to check if a cyclic directed graph has a negative-length cycle. A negative-length cycle is a cycle in which the sum of all the values associated with the edges of the cycle is negative. In a graph with multiple edges between two nodes the one with the smallest associated value is being used to check for the existence of negative cycles.- Since:
- Ptolemy II 4.0
- Version:
- $Id$
- Author:
- Shahrooz Shahparnia
- Pt.AcceptedRating:
- Red (ssb)
- Pt.ProposedRating:
- Red (shahrooz)
-
-
Constructor Summary
Constructors Constructor Description NegativeLengthCycleAnalysis(NegativeLengthCycleAnalyzer analyzer)
Construct an instance of this class using a given analyzer.NegativeLengthCycleAnalysis(Graph graph, ToDoubleMapping edgeLengths)
Construct an instance of this class using a default analyzer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
hasNegativeLengthCycle()
Return true if a negative cycle exists in the graph under analysis.java.lang.String
toString()
Return a description of the analysis and the associated analyzer.boolean
validAnalyzerInterface(Analyzer analyzer)
Check if a given analyzer is compatible with this analysis.-
Methods inherited from class ptolemy.graph.analysis.Analysis
analyzer, changeAnalyzer, graph, valid
-
-
-
-
Constructor Detail
-
NegativeLengthCycleAnalysis
public NegativeLengthCycleAnalysis(Graph graph, ToDoubleMapping edgeLengths)
Construct an instance of this class using a default analyzer. The default analyzer runs in O(N^3) in which N is the number of nodes.- Parameters:
graph
- The given graph.edgeLengths
- The lengths associated with the edges of the graph.
-
NegativeLengthCycleAnalysis
public NegativeLengthCycleAnalysis(NegativeLengthCycleAnalyzer analyzer)
Construct an instance of this class using a given analyzer.- Parameters:
analyzer
- The given analyzer.
-
-
Method Detail
-
hasNegativeLengthCycle
public boolean hasNegativeLengthCycle()
Return true if a negative cycle exists in the graph under analysis.- Returns:
- True if the graph has a negative cycle.
-
toString
public java.lang.String toString()
Return a description of the analysis and the associated analyzer.
-
validAnalyzerInterface
public boolean validAnalyzerInterface(Analyzer analyzer)
Check if a given analyzer is compatible with this analysis. In other words if it is possible to use it to compute the computation associated with this analysis.- Overrides:
validAnalyzerInterface
in classAnalysis
- Parameters:
analyzer
- The given analyzer.- Returns:
- True if the given analyzer is valid for this analysis.
-
-