class MuGraph[TLabel] extends Graph[TLabel] with Cloneable
The MuGraph
class stores vertex/edge-labeled multi-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.
----------------------------------------------------------------------------
- Alphabetic
- By Inheritance
- MuGraph
- Graph
- Cloneable
- Cloneable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
MuGraph(ch: Array[Set[Int]], label: Array[TLabel], elabel: Map[Pair, Set[TLabel]], inverse: Boolean = false, name: String = "g", id: Array[Int] = Array (), schema: Array[String] = Array ())(implicit arg0: ClassTag[TLabel])
- ch
the array of child (adjacency) vertex sets (outgoing edges)
- label
the array of vertex labels: v -> vertex label
- elabel
the map of edge labels: (u, v) -> edge label
- inverse
whether to store inverse adjacency sets (parents)
- name
the name of the multi-digraph
- id
the array of vertex id's
- schema
optional schema: map from label to label type
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addPar(): Unit
Add the inverse adjacency sets for rapid accesses to parent vertices.
Add the inverse adjacency sets for rapid accesses to parent vertices.
- Definition Classes
- Graph
-
def
addVertices(g: MuGraph[TLabel], vset: Set[Int], makeMap: Boolean = false): (Array[TLabel], Map[Int, Int])
Create an array vertices from selected vertices from graph 'g', those in 'vset'.
Create an array vertices from selected vertices from graph 'g', those in 'vset'. If 'makeMap', record the mapping between g's vertices and the new vertices.
- g
graph to be used for adding vertex labels
- vset
selected vertices from graph g
- makeMap
whether to make a map from new vertex id's to old vertex id's
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
buildId: Array[Int]
Create an array [1, 2, ..., size] for default values for 'id's.
-
def
buildIndex: Unit
Builds index from (start vertex, edge) -> end vertex.
-
def
buildLabelMap(label: Array[TLabel]): Map[TLabel, Set[Int]]
Given an array of labels, return an index from labels to the sets of vertices containing those labels.
Given an array of labels, return an index from labels to the sets of vertices containing those labels.
- label
the array of vertex labels of type
TLabel
- Definition Classes
- Graph
-
val
ch: Array[Set[Int]]
- Definition Classes
- Graph
-
def
checkEdges: Boolean
Check whether the end-point vertex id of each edge is within bounds: '0 ..
Check whether the end-point vertex id of each edge is within bounds: '0 .. maxId'.
- Definition Classes
- Graph
-
def
checkElabels: Boolean
Check whether the edges in the 'elabel' map correspond to edges in the the adjacency list.
-
def
children(u: Int, elab: TLabel): Set[Int]
Return the children of vertex 'u' that are connected via an edge labeled 'elab'.
Return the children of vertex 'u' that are connected via an edge labeled 'elab'.
- u
the source vertex
- elab
the edge label
-
def
clone(): MuGraph[TLabel]
Clone (make a deep copy) of 'this' multi-digraph.
-
val
count: HashMap[(TLabel, TLabel, Int), Int]
count of no.
count of no. of occurences of a pair of vertices with a particular edge
-
val
edgeMap: HashMap[TLabel, Set[Pair]]
index from edges the set of pairs of nodes
- val elabel: Map[Pair, Set[TLabel]]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(g2_: Any): Boolean
To check if two graphs are equal.
To check if two graphs are equal.
- g2_
the graph to be compared with this graph
- Definition Classes
- MuGraph → AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getVerticesWithLabel(l: TLabel): Set[Int]
Return the set of vertices in 'this' digraph with label l.
Return the set of vertices in 'this' digraph with label l.
- Definition Classes
- Graph
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val id: Array[Int]
-
def
indexEdges: Unit
Build and index from edge -> (Vertex pair).
-
val
indexMap: HashMap_NE[(TLabel, TLabel)]
index from (source node, edge) to the destination node
-
var
inverse: Boolean
- Definition Classes
- Graph
-
def
isConnected: Boolean
Determine whether 'this' digraph is (weakly) connected.
Determine whether 'this' digraph is (weakly) connected.
- Definition Classes
- Graph
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
label: Array[TLabel]
- Definition Classes
- Graph
-
val
labelMap: Map[TLabel, Set[Int]]
The map from label to the set of vertices with the label
The map from label to the set of vertices with the label
- Definition Classes
- Graph
-
def
makeUndirected(): MuGraph[TLabel]
Make this multi-directed graph work like an undirected graph by making sure that for every edge 'u -> v', there is a 'v -> u' edge and that they have same edge label.
-
def
nEdges: Int
Return the number of edges in 'this' digraph.
Return the number of edges in 'this' digraph.
- Definition Classes
- Graph
-
def
nSelfLoops: Int
Determine the number of vertices in the digraph that have outgoing edges to themselves.
Determine the number of vertices in the digraph that have outgoing edges to themselves.
- Definition Classes
- Graph
-
val
name: String
- Definition Classes
- Graph
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
val
pa: Array[Set[Int]]
The optional array of vertex inverse (parent) adjacency sets (incoming edges)
The optional array of vertex inverse (parent) adjacency sets (incoming edges)
- Definition Classes
- Graph
-
def
parents(v: Int, elab: TLabel): Set[Int]
Return the parents of vertex 'v' that are connected via an edge labeled 'elab'.
Return the parents of vertex 'v' that are connected via an edge labeled 'elab'. Requires the parents 'pa' to be added (@see
Graph
).- v
the destination vertex
- elab
the edge label
-
def
printG(clip: Boolean = true): Unit
Print 'this' multi-digraph in a deep sense with all the information.
-
def
same(g: Graph[TLabel]): Boolean
Determine whether 'this' digraph and digraph 'g' have the same vertices and edges.
Determine whether 'this' digraph and digraph 'g' have the same vertices and edges. Note, this is more strict than graph isomorphism which allows vertices to be renumbered.
- g
the other digraph
- Definition Classes
- Graph
- val schema: Array[String]
-
def
size: Int
Return the size of graph in terms of the number of vertices.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toGraphIm(name2: String = name): graphalytics.Graph
Return the equivalent immutable Graph.
Return the equivalent immutable Graph. Assumes the default
TLabel
of typeString
. For other types (e.g.,Double
use '_.toDouble' rather than '.toString' in the last line of this method.- name2
the name to give the new immutable Graph
- Definition Classes
- Graph
- See also
scalation.graphalytics.Graph
-
def
toLine(i: Int, clip: Boolean = true): String
Convert the 'i'th row/line of 'this' multi-digraph to a string.
-
def
toString(): String
Convert 'this' multi-digraph to a string in a shallow sense.
-
def
union(g2: Graph[TLabel]): Graph[TLabel]
Take the union 'this' digraph and 'g2'.
-
val
vid: Array[Int]
- Definition Classes
- Graph
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )