Package org.tweetyproject.graphs
Interface Graph<T extends Node>
- Type Parameters:
T
- The type of the node.
- All Superinterfaces:
GeneralGraph<T>
,Iterable<T>
- All Known Implementing Classes:
AbstractBipolarFramework
,AbstractEAFTheory
,ArgumentTree
,BpmnModel
,ClaimBasedTheory
,Compilation
,DeductiveArgumentationFramework
,DefaultGraph
,DungTheory
,EAFTheory
,EvidentialArgumentationFramework
,ExecutableDungTheory
,HyperGraph
,IncompleteTheory
,InducedTheory
,NamedPEAFTheory
,NecessityArgumentationFramework
,PEAFTheory
,PerceivableStructuredArgumentationFramework
,PetriNet
,ProbabilisticArgumentationFramework
,ReachabilityGraph
,SerialisationGraph
,SimpleGraph
,SocialAbstractArgumentationFramework
,StructuredArgumentationFramework
,WeightedDungTheory
Common interface for graphs with
nodes of type T
- Author:
- Matthias Thimm
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
When inverting a graph, ignore self loops (don't add and don't remove)static final int
When inverting a graph, deal with self loops like ordinary edges (add if not present and remove if present)static final int
When inverting a graph, simple remove self loops, but don't add new ones. -
Method Summary
Modifier and TypeMethodDescriptionboolean
add
(GeneralEdge<T> edge) Adds the given edge to this graph.boolean
Adds the given node to this graph.boolean
areAdjacent
(T a, T b) Returns "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.boolean
Returns "true" when this graph contains the given node or edge.boolean
existsDirectedPath
(T node1, T node2) Checks whether there is a (directed) path from node1 to node2.Returns the adjacency matrix of this graph (the order of the nodes is the same as returned by "iterator()").getChildren
(Node node) Returns the set of children (node connected via an undirected edge or a directed edge where the given node is the parent) of the given node.getComplementGraph
(int selfloops) Returns the complement graph of this graph, i.e.Returns the corresponding edge (a,b) if a and b are adjacent.Collection<? extends GeneralEdge<? extends T>>
getEdges()
Returns the edges of this graph.getNeighbors
(T node) Returns the set of neighbors of the given node.getNodes()
Returns the nodes of this graph.int
Returns the number of nodes in this graph.getParents
(Node node) Returns the set of parents (node connected via an undirected edge or a directed edge where the given node is the child) of the given node.Returns the strongly connected components of this graph.Collection<Graph<T>>
Returns the set of sub graphs of this graph.boolean
Returns "true" iff the graph has a self loop (an edge from a node to itself).boolean
Checks whether this graph only contains weighted edges.iterator()
toString()
Methods inherited from interface org.tweetyproject.graphs.GeneralGraph
getRestriction
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
IGNORE_SELFLOOPS
static final int IGNORE_SELFLOOPSWhen inverting a graph, ignore self loops (don't add and don't remove)- See Also:
-
INVERT_SELFLOOPS
static final int INVERT_SELFLOOPSWhen inverting a graph, deal with self loops like ordinary edges (add if not present and remove if present)- See Also:
-
REMOVE_SELFLOOPS
static final int REMOVE_SELFLOOPSWhen inverting a graph, simple remove self loops, but don't add new ones.- See Also:
-
-
Method Details
-
add
Adds the given node to this graph.- Parameters:
node
- some node.- Returns:
- "true" iff the edge has been added successfully.
-
add
Adds the given edge to this graph. If at least one of the nodes the given edge connects is not in the graph, an illegal argument exception is thrown.- Parameters:
edge
- some edge.- Returns:
- "true" iff the edge has been added successfully.
-
getNodes
Collection<T> getNodes()Returns the nodes of this graph.- Specified by:
getNodes
in interfaceGeneralGraph<T extends Node>
- Returns:
- the nodes of this graph.
-
getNumberOfNodes
int getNumberOfNodes()Returns the number of nodes in this graph.- Returns:
- the number of nodes in this graph.
-
areAdjacent
Returns "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.- Parameters:
a
- some nodeb
- some node- Returns:
- "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.
-
getEdge
Returns the corresponding edge (a,b) if a and b are adjacent. Otherwise it returns null.- Parameters:
a
- some nodeb
- some node- Returns:
- the edge (a,b) or null.
-
getEdges
Collection<? extends GeneralEdge<? extends T>> getEdges()Returns the edges of this graph.- Specified by:
getEdges
in interfaceGeneralGraph<T extends Node>
- Returns:
- the edges of this graph.
-
iterator
-
contains
Returns "true" when this graph contains the given node or edge.- Parameters:
obj
- an object- Returns:
- "true" if this graph contains the given node or edge.
-
getChildren
Returns the set of children (node connected via an undirected edge or a directed edge where the given node is the parent) of the given node.- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of children of the given node.
-
getParents
Returns the set of parents (node connected via an undirected edge or a directed edge where the given node is the child) of the given node.- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of parents of the given node.
-
existsDirectedPath
Checks whether there is a (directed) path from node1 to node2.- Parameters:
node1
- some node.node2
- some node.- Returns:
- "true" if there is a directed path from node1 to node2.
-
getNeighbors
Returns the set of neighbors of the given node.- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of neighbors of the given node.
-
getAdjacencyMatrix
Matrix getAdjacencyMatrix()Returns the adjacency matrix of this graph (the order of the nodes is the same as returned by "iterator()").- Returns:
- the adjacency matrix of this graph
-
getComplementGraph
Returns the complement graph of this graph, i.e. the graph on the same set of vertices as this graph that connects two vertices v and w with an edge if and only if v and w are not connected in this graph.- Parameters:
selfloops
- Indicates how to deal with selfloops:
IGNORE_SELFLOOPS - ignore self loops (don't add and don't remove)
INVERT_SELFLOOPS - deal with self loops like ordinary edges (add if not present and remove if present)
REMOVE_SELFLOOPS - simple remove self loops, but don't add new ones.- Returns:
- the complement graph of this graph.
-
getStronglyConnectedComponents
Collection<Collection<T>> getStronglyConnectedComponents()Returns the strongly connected components of this graph. A set of nodes is strongly connected, if there is a path from each node to each other. A set of nodes is called strongly connected component if it is strongly connected and maximal with respect to set inclusion.- Returns:
- the strongly connected components of this graph.
-
getSubgraphs
Collection<Graph<T>> getSubgraphs()Returns the set of sub graphs of this graph.- Returns:
- the set of sub graphs of this graph.
-
hasSelfLoops
boolean hasSelfLoops()Returns "true" iff the graph has a self loop (an edge from a node to itself).- Returns:
- "true" iff the graph has a self loop (an edge from a node to itself).
-
isWeightedGraph
boolean isWeightedGraph()Checks whether this graph only contains weighted edges.- Returns:
- "true" if all edges are weighted in this graph.
-
toString
String toString()
-