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
- Protected
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
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.
math.stackexchange.com/questions/240556/radius-diameter-and-center-of-graph
- 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
Appendix A of Christoph Buchheim, Michael Junger and Sebastian Leipert paper.
onlinelibrary.wiley.com/doi/10.1002/spe.713/pdf
- 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 > runMain scalation.graphalytics.GraphMatcherTest - 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