package graphalytics
The graphalytics
package contains classes, traits and objects for graph
analytics on Trees, 'DAG's and Directed Graphs. It provides an implicit
conversion when needed for converting doubles to vectors.
- Alphabetic
- By Inheritance
- graphalytics
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
class
APShortestPath extends AnyRef
The
APShortestPath
class is used to solve shortest path problems for graphs stored in matrices.The
APShortestPath
class is used to solve shortest path problems for graphs stored in matrices. It solves the All-Pairs Shortest Path 'APSP' problem for directed graphs. The edge cost/distance (must be non-negative) can be stored in either a dense or sparse matrix. The Floyd-Warshall Algorithm is used.- See also
math.stackexchange.com/questions/240556/radius-diameter-and-center-of-graph
http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm 'APSP' can be used to determine a graph's eccentricities, radius and diameter. These can also be computed using a BFS-based algorithm.
-
class
Ball extends AnyRef
The
Ball
class provides an implementation for ball construction.The
Ball
class provides an implementation for ball construction. A ball consists of all vertices within a given radius of a given center.- See also
ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6691601&tag=1&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D6691601%26tag%3D1
-
class
BipartiteMatcher extends AnyRef
The
BipartiteMatcher
class provides an implementation of finding maximal Bipartite Matching.The
BipartiteMatcher
class provides an implementation of finding maximal Bipartite Matching.- See also
www.geeksforgeeks.org/maximum-bipartite-matching/
-
class
ColorDAG extends AnyRef
The
ColorDAG
class provides a data structure Directed Acyclic Graphs 'DAG's with colored nodes.The
ColorDAG
class provides a data structure Directed Acyclic Graphs 'DAG's with colored nodes. TheColorDAG
consists of source nodes (in-degree is 0), sink nodes (out-degree is 0) and internal nodes. The edges connecting nodes must have color compatibility. TheColorDAG
is divided into 'k' stages: e.g., sources (stage 0), internals (stages 1..k-2) and sinks (stage k-1). -
class
DualIso extends GraphMatcher
The
DualIso
class provides an implementation for Subgraph Isomorphism that uses Dual Graph Simulation for pruning. -
class
DualIsoCAR extends GraphMatcher
The
DualIsoCAR
classes usedDualSim2CAR
for pruning, otherwise it works likeDualIso
, which usesDualSim2
for pruning. -
class
DualSim extends GraphMatcher
The
DualSim
class provides an implementation for Dual Graph Simulation. -
class
DualSim2 extends GraphMatcher
The
DualSim2
class provides a second implementation for Dual Graph Simulation.The
DualSim2
class provides a second implementation for Dual Graph Simulation. It differs fromDualSim
by not using inverse adjacency sets ('pa') in order to save space. -
class
DualSim2CAR extends GraphMatcher
The
DualSim2CAR
class provides a second implementation for Dual Graph Simulation.The
DualSim2CAR
class provides a second implementation for Dual Graph Simulation. It differs fromDualSim
by not using inverse adjacency sets ('pa') in order to save space. It also enforces the cardinality restriction. -
class
Graph extends Cloneable
The
Graph
class stores vertex-labeled directed graphs using an adjacency set 'ch' representation, e.g., 'ch = { {1, 2}, {0}, {1} }' means that the graph has the following edges { (0, 1), (0, 2), (1, 0), (2, 1) }.The
Graph
class stores vertex-labeled directed graphs using an adjacency set 'ch' representation, e.g., 'ch = { {1, 2}, {0}, {1} }' means that the graph has the following edges { (0, 1), (0, 2), (1, 0), (2, 1) }. Optionally, inverse adjacency via the 'pa' array can be stored at the cost of nearly doubling the storage requirements. ---------------------------------------------------------------------------- -
class
GraphDFS extends AnyRef
The
GraphDFS
performs Depth First Search (DFS) or Breadth First Search (BFS) on a Directed Graph.The
GraphDFS
performs Depth First Search (DFS) or Breadth First Search (BFS) on a Directed Graph. The class currently supports three predicates: (1) to find a matching label, and (2) to see if a destination vertex is reachable. -
class
GraphIO extends AnyRef
The
GraphIO
class is used to write graphs to a file. -
class
GraphIso extends AnyRef
The
GraphIso
class determines whether two labelled directed graphs are Graph Isomorphic. -
abstract
class
GraphMatcher extends AnyRef
The
GraphMatcher
abstract class serves as a template for implementing specific algorithms for graph pattern matching. -
class
GraphMetrics extends AnyRef
The
GraphMetrics
class provides methods for determining graph metrics that can be efficiently computed using Breadth-First Search (BFS).The
GraphMetrics
class provides methods for determining graph metrics that can be efficiently computed using Breadth-First Search (BFS). This works for undirected graphs. If a directed graph is passed in, it will be converted to a corresponding undirected graph. -
class
GraphSim extends GraphMatcher
The
GraphSim
class provides an implementation for Simple Graph Simulation. -
class
GraphSim2 extends GraphMatcher
The
GraphSim2
class provides a second implementation for Simple Graph Simulation.The
GraphSim2
class provides a second implementation for Simple Graph Simulation. It differ fromGraphSim
in the looping order in the main for-loop and early termination when 'phi(u)' is empty. -
class
GraphSimIso extends GraphMatcher
The
GraphSimIso
object provides an implementation for Subgraph Isomorphism that uses an adjacency set version of Ullmann's Algorithm. -
class
GraphqlOpt extends AnyRef
The 'GraphqlOpt' class provides an implementation for Subgraph Isomorphism of GraphQL's Algorithm.
The 'GraphqlOpt' class provides an implementation for Subgraph Isomorphism of GraphQL's Algorithm.
- See also
http://cs.ucsb.edu/~dbl/papers/he_sigmod_2008.pdf (GraphQL paper)
-
trait
IsomorphismChecker extends AnyRef
The
IsomorphismChecker
trait check the validity of the isomorphic matches between the query graph 'q' and subgraphs of the data graph 'g'. -
type
Pair = (Int, Int)
The
EdgeType
object define basic type for representing edges -
class
StrictSim extends GraphMatcher
The 'StrictSim' class provides an implementation for strict simulation graph pattern matching.
The 'StrictSim' class provides an implementation for strict simulation graph pattern matching. This version uses
DualSim
.- See also
hipore.com/ijbd/2014/IJBD%20Vol%201%20No%201%202014.pdf
-
class
StrictSim2 extends GraphMatcher
The 'StrictSim2' class provides an implementation for strict simulation graph pattern matching.
The 'StrictSim2' class provides an implementation for strict simulation graph pattern matching. This version uses
DualSim2
.- See also
hipore.com/ijbd/2014/IJBD%20Vol%201%20No%201%202014.pdf FIX: try to implement without using parent references 'pa'.
-
class
TightSim extends GraphMatcher
The 'TightSim' class provides an implementation for tight simulation graph pattern matching.
The 'TightSim' class provides an implementation for tight simulation graph pattern matching. This version uses
DualSim
.- See also
hipore.com/ijbd/2014/IJBD%20Vol%201%20No%201%202014.pdf
-
class
TightSim2 extends GraphMatcher
The 'TightSim2' class provides an implementation for tight simulation graph pattern matching.
The 'TightSim2' class provides an implementation for tight simulation graph pattern matching. This version uses
DualSim2
.- See also
hipore.com/ijbd/2014/IJBD%20Vol%201%20No%201%202014.pdf FIX: try to implement without using parent references 'pa'.
-
class
Tree extends AnyRef
The
Tree
class provides a data structure for multi-way trees with colored nodes. -
class
TreeLayout extends AnyRef
The
TreeLayout
class is used to display multi-way trees with the root at the top and leaves at the bottom.The
TreeLayout
class is used to display multi-way trees with the root at the top and leaves at the bottom. It is translated from the pseudo-code given in- See also
onlinelibrary.wiley.com/doi/10.1002/spe.713/pdf
Appendix A of Christoph Buchheim, Michael Junger and Sebastian Leipert paper.
-
class
TreeNode extends AnyRef
The
TreeNode
class is for a node in a tree.
Value Members
-
val
BASE_DIR: String
The relative path for base directory
-
val
EXT: String
The standard file extension for graphs
-
def
stringArray(a: Any*): Array[String]
Convert the arguments to an array of strings.
Convert the arguments to an array of strings.
- a
the arguments
-
object
APShortestPath
The
APShortestPath
companion object provides factory methods for theAPShortestPath
class. -
object
APShortestPathTest extends App
The
APShortestPathTest
object is used to test theAPShortestPath
class. -
object
Answers
The
Answers
object is used to test all the Graph pattern matchers. -
object
Ball
The
Ball
companion object provides functions involving Balls. -
object
BipartiteMatcherTest extends App
The 'BipartiteMatcherTest' object is used to test
BipartiteMatcher
class. -
object
ColorDAGTest extends App
The
ColorDAGTest
object used to test theColorDAG
class. -
object
Convert
The
Convert
object is used to convert between an Adjacency Matrix representation to an Adjacency Sets representation. -
object
ConvertTest extends App
The
ConvertTest
object is used to test theConvert
object.The
ConvertTest
object is used to test theConvert
object. > runMain scalation.graphalytics.ConvertTest -
object
Cycle
The
Cycle
object provides a means for building a precedence/directed graph and checking it for cycles.The
Cycle
object provides a means for building a precedence/directed graph and checking it for cycles. For cycle detection, vertices are marked with traffic-light colors:- GreeN means go/unexplored,
- YelloW means caution/been there before,
- ReD mean stop/already fully explored.
-
object
CycleTest extends App
The
CycleTest
object tests theCycle
object using a label-free precedence graph.The
CycleTest
object tests theCycle
object using a label-free precedence graph. Graphs are created by passing in an array of adjacency sets (one for each vertex). > runMain scalation.graphalytics.CycleTest -
object
DualIsoCARTest extends App
The
DualIsoCARTest
object is used to test theDualIsoCAR
class.The
DualIsoCARTest
object is used to test theDualIsoCAR
class. runMain scalation.graphalytics.DualIsoCARTest -
object
DualIsoCARTest2 extends App
The
DualIsoCARTest2
object is used to test theDualIsoCAR
class.The
DualIsoCARTest2
object is used to test theDualIsoCAR
class. runMain scalation.graphalytics.DualIsoCARTest2 -
object
DualIsoTest extends App
The
DualIsoTest
object is used to test theDualIso
class.The
DualIsoTest
object is used to test theDualIso
class. > runMain scalation.graphalytics.DualIsoTest -
object
DualIsoTest2 extends App
The
DualIsoTest2
object is used to test theDualIso
class.The
DualIsoTest2
object is used to test theDualIso
class. > runMain scalation.graphalytics.DualIsoTest2 -
object
DualIsoTest3 extends App
The
DualIsoTest3
object is used to test theDualIso
class.The
DualIsoTest3
object is used to test theDualIso
class. > runMain scalation.graphalytics.DualIsoTest3 -
object
DualSim2CARTest extends App
The
DualSim2Test
object is used to test theDualSim2
class.The
DualSim2Test
object is used to test theDualSim2
class. > run-main scalation.graphalytics.DualSim2CARTest -
object
DualSim2CARTest2 extends App
The
DualSim2Test2
object is used to test theDualSim2
class.The
DualSim2Test2
object is used to test theDualSim2
class. > run-main scalation.graphalytics.DualSim2CARTest2 -
object
DualSim2CARTest3 extends App
The
DualSim2Test3
object is used to test the 'DualSim2' class.The
DualSim2Test3
object is used to test the 'DualSim2' class. > run-main scalation.graphalytics.DualSim2CARTest3 -
object
DualSim2Test extends App
The
DualSim2Test
object is used to test theDualSim2
class.The
DualSim2Test
object is used to test theDualSim2
class. > runMain scalation.graphalytics.DualSim2Test -
object
DualSim2Test2 extends App
The
DualSim2Test2
object is used to test theDualSim2
class.The
DualSim2Test2
object is used to test theDualSim2
class. > runMain scalation.graphalytics.DualSim2Test2 -
object
DualSim2Test3 extends App
The
DualSim2Test3
object is used to test the 'DualSim2' class.The
DualSim2Test3
object is used to test the 'DualSim2' class. > runMain scalation.graphalytics.DualSim2Test3 -
object
DualSimTest extends App
The
DualSimTest
object is used to test theDualSim
class.The
DualSimTest
object is used to test theDualSim
class. > runMain scalation.graphalytics.DualSimTest -
object
DualSimTest2 extends App
The
DualSimTest2
object is used to test theDualSim
class.The
DualSimTest2
object is used to test theDualSim
class. > runMain scalation.graphalytics.DualSimTest2 -
object
DualSimTest3 extends App
The
DualSimTest3
object is used to test theDualSim
class.The
DualSimTest3
object is used to test theDualSim
class. Read the query graph 'q' and data graph 'g' from files. > runMain scalation.graphalytics.DualSimTest3 -
object
ExampleGraphS
The
ExampleGraphS
object contains example query and data digraphs in which the vertex label typeTLabel
isDouble
. -
object
Graph
The
Graph
companion object contains the example query graphs. -
object
GraphDFSTest extends App
The
GraphDFSTest
is used to test theGraphDFS
class.The
GraphDFSTest
is used to test theGraphDFS
class. > runMain scalation.graphalytics.GraphDFSTest -
object
GraphGen
The
GraphGen
object is used to build random graph with various characteristics. -
object
GraphGenTest extends App
The
GraphGenTest
object is used to test theGraphGen
class for building random graphs where a vertex's degree is uniformly distributed. -
object
GraphGenTest2 extends App
The
GraphGenTest2
object is used to test theGraphGen
class for building power law graphs. -
object
GraphGenTest3 extends App
The
GraphGenTest3
object is used to test theGraphGen
class for extracting query graphs from data graphs. -
object
GraphIO
The
GraphIO
object is the companion object to theGraphIO
class and is used for reading graphs from files. -
object
GraphIOTest extends App
The
GraphIOTest
object is used to test theGraphIO
class and object.The
GraphIOTest
object is used to test theGraphIO
class and object. > runMain scalation.graphalytics.GraphIOTest -
object
GraphIsoTest extends App
The
GraphIsoTest
object is used to test theGraphIso
class.The
GraphIsoTest
object is used to test theGraphIso
class. > runMain scalation.graphalytics.GraphIsoTest -
object
GraphMatcherTest extends App
The 'GraphMatcherTest' object runs six pattern matching algorithms on the above test graph.
The 'GraphMatcherTest' object runs six pattern matching algorithms on the above test graph. The algorithms tested are the following:
GraphSim
- Simple Graph SimulationGraphSim2
- Simple Graph Simulation (with early termination)DualSim
- Dual Graph SimulationDualSim2
- Dual Graph Simulation (with reduced memory footprint)UllmannIso
- Adjacency List Version of Ullmann's Subgraph Isomorphism AlgorithmDualIso
- Subgraph Isomorphism using Dual Simulation for Pruning -
object
GraphMetricsTest extends App
The
GraphMetricsTest
object is used to test theGraphMetrics
class.The
GraphMetricsTest
object is used to test theGraphMetrics
class.- See also
http://math.stackexchange.com/questions/240556/radius-diameter-and-center-of-graph
-
object
GraphPatternTest extends App
The
GraphPatternTest
object is used to test all the Graph pattern matchers.The
GraphPatternTest
object is used to test all the Graph pattern matchers. > runMain scalation.graphalytics.GraphPatternTest -
object
GraphSim2Test extends App
The
GraphSim2Test
object is used to test theGraphSim2
class.The
GraphSim2Test
object is used to test theGraphSim2
class. > runMain scalation.graphalytics.GraphSim2Test -
object
GraphSim2Test2 extends App
The
GraphSim2Test2
object is used to test theGraphSim2
class.The
GraphSim2Test2
object is used to test theGraphSim2
class. > runMain scalation.graphalytics.GraphSim2Test2 -
object
GraphSim2Test3 extends App
The
GraphSim2Test3
object is used to test theGraphSim2
class.The
GraphSim2Test3
object is used to test theGraphSim2
class. > runMain scalation.graphalytics.GraphSim2Test3 -
object
GraphSimIsoTest extends App
The
GraphSimIsoTest
object is used to test theGraphSimIso
class. -
object
GraphSimTest extends App
The
GraphSimTest
object is used to test theGraphSim
class.The
GraphSimTest
object is used to test theGraphSim
class. > runMain scalation.graphalytics.GraphSimTest -
object
GraphSimTest2 extends App
The
GraphSimTest2
object is used to test theGraphSim
class.The
GraphSimTest2
object is used to test theGraphSim
class. > runMain scalation.graphalytics.GraphSimTest2 -
object
GraphTest extends App
The
GraphTest
object is used to test theGraph
class using the graphs given in theGraph
companion object.The
GraphTest
object is used to test theGraph
class using the graphs given in theGraph
companion object. > runMain scalation.graphalytics.GraphTest -
object
GraphTest2 extends App
The
GraphTest2
object is used to test theGraph
class using a randomly generated graph.The
GraphTest2
object is used to test theGraph
class using a randomly generated graph. > runMain scalation.graphalytics.GraphTest2 -
object
GraphqlOptTest extends App
The
GraphqlOptTest
object randomly generates the data graph and corresponding query graph to testGraphqlOpt
class. -
object
GraphqlOptTest2 extends App
The
GraphqlOptTest2
object test theGraphqlOpt
class by feeding the value of data graph and query graph. -
object
GraphqlOptTest3 extends App
The
GraphqlOptTest3
object test theGraphqlOpt
class by feeding data graph and query graph relative file path. -
object
LabelType
The
LabelType
specifies (data) type for vertex and edge labels.The
LabelType
specifies (data) type for vertex and edge labels.TLabel
must be a subtype of Ordering [Any].- See also
www.scala-lang.org/api/current/#scala.math.Ordering
-
object
StrictSim2Test extends App
The
StrictSim2Test
object is used to test theStrictSim2
class.The
StrictSim2Test
object is used to test theStrictSim2
class. > runMain scalation.graphalytics.StrictSim2Test -
object
StrictSim2Test2 extends App
The
StrictSim2Test2
object is used to test theStrictSim2
class.The
StrictSim2Test2
object is used to test theStrictSim2
class. > runMain scalation.graphalytics.StrictSimTest2 -
object
StrictSim2Test3 extends App
The
StrictSim2Test3
object test theStrictSim2
class by passing data graph and query graph relative file paths.The
StrictSim2Test3
object test theStrictSim2
class by passing data graph and query graph relative file paths. > runMain scalation.graphalytics.StrictSim2Test3 -
object
StrictSimTest extends App
The
StrictSimTest
object is used to test theStrictSim
class.The
StrictSimTest
object is used to test theStrictSim
class. > runMain scalation.graphalytics.StrictSimTest -
object
StrictSimTest2 extends App
The
StrictSimTest2
object is used to test theStrictSim
class.The
StrictSimTest2
object is used to test theStrictSim
class. > runMain scalation.graphalytics.StrictSimTest2 -
object
StrictSimTest3 extends App
The
StrictSimTest3
object test theStrictSim
class by passing data graph and query graph relative file paths.The
StrictSimTest3
object test theStrictSim
class by passing data graph and query graph relative file paths. > runMain scalation.graphalytics.StrictSimTest3 -
object
TestGraphContainer
The
GraphMatcherTest
object creates data graph and query graph that can be used to test the results produced by the pattern matching algorithms.The
GraphMatcherTest
object creates data graph and query graph that can be used to test the results produced by the pattern matching algorithms.- See also
MS Thesis, "A Comparison of Techniques for Graph Analytics on Big Data"
-
object
TightSim2Test extends App
The
TightSim2Test
object is used to test theTightSim2
class.The
TightSim2Test
object is used to test theTightSim2
class. > runMain scalation.graphalytics.TightSim2Test -
object
TightSim2Test2 extends App
The
TightSim2Test2
object is used to test theTightSim2
class.The
TightSim2Test2
object is used to test theTightSim2
class. > runMain scalation.graphalytics.TightSimTest2 -
object
TightSim2Test3 extends App
The
TightSim2Test3
object test theTightSim2
class by passing data graph and query graph relative file paths.The
TightSim2Test3
object test theTightSim2
class by passing data graph and query graph relative file paths. > runMain scalation.graphalytics.TightSim2Test3 -
object
TightSimTest extends App
The
TightSimTest
object is used to test theTightSim
class.The
TightSimTest
object is used to test theTightSim
class. > runMain scalation.graphalytics.TightSimTest -
object
TightSimTest2 extends App
The
TightSimTest2
object is used to test theTightSim
class.The
TightSimTest2
object is used to test theTightSim
class. > runMain scalation.graphalytics.TightSimTest2 -
object
TightSimTest3 extends App
The
TightSimTest3
object test theTightSim
class by passing data graph and query graph relative file paths.The
TightSimTest3
object test theTightSim
class by passing data graph and query graph relative file paths. > runMain scalation.graphalytics.TightSimTest3 -
object
TopSort
The
TopSort
object provides the 'topSort' method for creating a topological sort of the vertices in a directed graph.The
TopSort
object provides the 'topSort' method for creating a topological sort of the vertices in a directed graph. It also perform cycle detection. -
object
TopSortTest extends App
The
TopSortTest
object tests theTopSort
object using a directed graph.The
TopSortTest
object tests theTopSort
object using a directed graph. Graphs are created by passing in an array of adjacency sets (one for each vertex). > runMain scalation.graphalytics.TopSortTest -
object
TrafficLight extends Enumeration
The
TrafficLight
object is an enumeration object for traffic light colors.The
TrafficLight
object is an enumeration object for traffic light colors. Vertices are marked GreeN (unvisited), YelloW (processing), or ReD (done with). -
object
Tree
The
Tree
companion object provides methods for building trees.The
Tree
companion object provides methods for building trees. Toggle 'ANIMATE' flag to turn animation on/off. -
object
TreeLayoutTest extends App
The
TreeLayoutTest
object is used to test theTreeLayout
class.The
TreeLayoutTest
object is used to test theTreeLayout
class. > runMain scalation.graphalytics.TreeLayoutTest -
object
TreeTest extends App
The
TreeTest
object is used to test theTree
class by randomly building a tree.The
TreeTest
object is used to test theTree
class by randomly building a tree. > runMain scalation.graphalytics.TreeTest -
object
TreeTest2 extends App
The
TreeTest2
object is used to test theTree
class by manually building a tree.The
TreeTest2
object is used to test theTree
class by manually building a tree. > runMain scalation.graphalytics.TreeTest2 -
object
TreeTest3 extends App
The
TreeTest3
object is used to test theTree
class by manually building a tree.The
TreeTest3
object is used to test theTree
class by manually building a tree. > runMain scalation.graphalytics.TreeTest3 -
object
TreeTest4 extends App
The
TreeTest4
object is used to test theTree
class by manually building a tree.The
TreeTest4
object is used to test theTree
class by manually building a tree. No animation. > runMain scalation.graphalytics.TreeTest4