Package edu.cmu.tetrad.graph
Class TimeLagGraph
java.lang.Object
edu.cmu.tetrad.graph.TimeLagGraph
- All Implemented Interfaces:
Graph,TetradSerializable,Serializable
Represents a time series graph--that is, a graph with a fixed number S of lags, with edges into initial lags
only--that is, into nodes in the first R lags, for some R. Edge structure repeats every R nodes.
- Author:
- Joseph Ramsey
- See Also:
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAttribute(String key, Object value) booleanaddBidirectedEdge(Node node1, Node node2) Adds a bidirected edges <-> to the graph.booleanaddDirectedEdge(Node node1, Node node2) Adds a directed edge --> to the graph.booleanAdds the specified edge to the graph, provided it is not already in the graph.booleanNodes may be added into the getModel time step only.booleanaddNondirectedEdge(Node node1, Node node2) Adds a nondirected edges o-o to the graph.booleanaddPartiallyOrientedEdge(Node node1, Node node2) Adds a partially oriented edge o-> to the graph.voidAdds a PropertyChangeListener to the graph.booleanaddUndirectedEdge(Node node1, Node node2) Adds an undirected edge --- to the graph.voidclear()Removes all nodes (and therefore all edges) from the graph.booleancontainsEdge(Edge edge) Determines whether this graph contains the given edge.booleancontainsNode(Node node) Determines whether this graph contains the given node.booleanDetermines whether this graph is equal to some other graph, in the sense that they contain the same nodes and the sets of edges defined over these nodes in the two graphs are isomorphic typewise.voidfullyConnect(Endpoint endpoint) Removes all edges from the graph and fully connects it using #-# edges, where # is the given endpoint.getAdjacentNodes(Node node) getAttribute(String key) getChildren(Node node) intintgetDirectedEdge(Node node1, Node node2) getEdges()getEndpoint(Node node1, Node node2) intgetIndegree(Node node) intgetNodes()getNodesInTo(Node node, Endpoint endpoint) Nodes adjacent to the given node with the given proximal endpoint.getNodesOutTo(Node node, Endpoint endpoint) Nodes adjacent to the given node with the given distal endpoint.intintgetNumEdges(Node node) intintintgetOutdegree(Node node) getParents(Node node) inthashCode()booleanisAdjacentTo(Node node1, Node node2) booleanbooleanisDefCollider(Node node1, Node node2, Node node3) Added by ekorber, 2004/6/9.booleanisDefNoncollider(Node node1, Node node2, Node node3) Added by ekorber, 2004/6/9.booleanisExogenous(Node node) booleanisParameterizable(Node node) booleanisParentOf(Node node1, Node node2) Determines whether node1 is a parent of node2.booleanpaths()voidremoveAttribute(String key) booleanremoveEdge(Edge edge) Removes the given edge from the graph.booleanremoveEdge(Node node1, Node node2) Removes the edge connecting the two given nodes, provided there is exactly one such edge.booleanremoveEdges(Node node1, Node node2) Removes all edges connecting node A to node B.booleanremoveEdges(Collection<Edge> edges) Iterates through the list and removes any permissible edges found.booleanremoveHighLagEdges(int maxLag) booleanremoveNode(Node node) Removes a node from the graph.booleanremoveNodes(List<Node> nodes) Iterates through the list and removes any permissible nodes found.voidreorientAllWith(Endpoint endpoint) Reorients all edges in the graph with the given endpoint.static TimeLagGraphGenerates a simple exemplar of this class to test serialization.booleansetEndpoint(Node from, Node to, Endpoint endPoint) Sets the endpoint type at the 'to' end of the edge from 'from' to 'to' to the given endpoint.booleansetMaxLag(int maxLag) voidbooleansetNumInitialLags(int numInitialLags) Constructs and returns a subgraph consisting of a given subset of the nodes of this graph together with the edges between them.toString()voidtransferAttributes(Graph graph) voidtransferNodesAndEdges(Graph graph) Transfers nodes and edges from one graph to another.
-
Constructor Details
-
TimeLagGraph
public TimeLagGraph() -
TimeLagGraph
-
-
Method Details
-
serializableInstance
Generates a simple exemplar of this class to test serialization. -
addNode
Nodes may be added into the getModel time step only. That is, node.getLag() must be 0. -
removeNode
Description copied from interface:GraphRemoves a node from the graph.- Specified by:
removeNodein interfaceGraph- Returns:
- true if the node was removed, false if not.
-
addEdge
Description copied from interface:GraphAdds the specified edge to the graph, provided it is not already in the graph. -
removeEdge
Description copied from interface:GraphRemoves the given edge from the graph.- Specified by:
removeEdgein interfaceGraph- Returns:
- true if the edge was removed, false if not.
-
setMaxLag
public boolean setMaxLag(int maxLag) -
removeHighLagEdges
public boolean removeHighLagEdges(int maxLag) -
setNumInitialLags
public boolean setNumInitialLags(int numInitialLags) -
getNodeId
-
getNode
-
getLag0Nodes
-
getMaxLag
public int getMaxLag() -
getNumInitialLags
public int getNumInitialLags() -
toString
-
addDirectedEdge
Description copied from interface:GraphAdds a directed edge --> to the graph.- Specified by:
addDirectedEdgein interfaceGraph
-
addUndirectedEdge
Description copied from interface:GraphAdds an undirected edge --- to the graph.- Specified by:
addUndirectedEdgein interfaceGraph
-
addNondirectedEdge
Description copied from interface:GraphAdds a nondirected edges o-o to the graph.- Specified by:
addNondirectedEdgein interfaceGraph
-
addPartiallyOrientedEdge
Description copied from interface:GraphAdds a partially oriented edge o-> to the graph.- Specified by:
addPartiallyOrientedEdgein interfaceGraph
-
addBidirectedEdge
Description copied from interface:GraphAdds a bidirected edges <-> to the graph.- Specified by:
addBidirectedEdgein interfaceGraph
-
isDefNoncollider
Description copied from interface:GraphAdded by ekorber, 2004/6/9.- Specified by:
isDefNoncolliderin interfaceGraph- Returns:
- true if node 2 is a definite noncollider between 1 and 3
-
isDefCollider
Description copied from interface:GraphAdded by ekorber, 2004/6/9.- Specified by:
isDefColliderin interfaceGraph- Returns:
- true if node 2 is a definite collider between 1 and 3
-
getChildren
- Specified by:
getChildrenin interfaceGraph- Returns:
- a mutable list of children for a node.
-
getDegree
public int getDegree() -
getEdge
-
getDirectedEdge
- Specified by:
getDirectedEdgein interfaceGraph- Returns:
- the directed edge from node1 to node2, if there is one.
-
getParents
- Specified by:
getParentsin interfaceGraph- Returns:
- the list of parents for a node.
-
getIndegree
- Specified by:
getIndegreein interfaceGraph- Returns:
- the number of arrow endpoints adjacent to a node.
-
getDegree
-
getOutdegree
- Specified by:
getOutdegreein interfaceGraph- Returns:
- the number of null endpoints adjacent to an edge.
-
isAdjacentTo
- Specified by:
isAdjacentToin interfaceGraph- Returns:
- true iff node1 is adjacent to node2 in the graph.
-
isChildOf
-
isParentOf
Description copied from interface:GraphDetermines whether node1 is a parent of node2.- Specified by:
isParentOfin interfaceGraph
-
transferNodesAndEdges
Description copied from interface:GraphTransfers nodes and edges from one graph to another. One way this is used is to change graph types. One constructs a new graph based on the old graph, and this method is called to transfer the nodes and edges of the old graph to the new graph.- Specified by:
transferNodesAndEdgesin interfaceGraph- Parameters:
graph- the graph from which nodes and edges are to be pilfered.- Throws:
IllegalArgumentException- This exception is thrown if adding some node.
-
transferAttributes
- Specified by:
transferAttributesin interfaceGraph- Throws:
IllegalArgumentException
-
underlines
- Specified by:
underlinesin interfaceGraph
-
paths
-
isParameterizable
- Specified by:
isParameterizablein interfaceGraph- Returns:
- true if the given node is parameterizable.
-
isTimeLagModel
public boolean isTimeLagModel()- Specified by:
isTimeLagModelin interfaceGraph- Returns:
- true if this is a time lag model, in which case getTimeLagGraph() returns the graph.
-
getTimeLagGraph
- Specified by:
getTimeLagGraphin interfaceGraph- Returns:
- the underlying time lag model, if there is one; otherwise, returns null.
-
getSepset
-
setNodes
-
isExogenous
- Specified by:
isExogenousin interfaceGraph- Returns:
- true iff the given node is exogenous in the graph.
-
getAdjacentNodes
- Specified by:
getAdjacentNodesin interfaceGraph- Returns:
- a mutable list of nodes adjacent to the given node.
-
getEndpoint
- Specified by:
getEndpointin interfaceGraph- Returns:
- the endpoint along the edge from node to node2 at the node2 end.
-
setEndpoint
Description copied from interface:GraphSets the endpoint type at the 'to' end of the edge from 'from' to 'to' to the given endpoint. Note: NOT CONSTRAINT SAFE- Specified by:
setEndpointin interfaceGraph- Throws:
IllegalArgumentException
-
getNodesInTo
Description copied from interface:GraphNodes adjacent to the given node with the given proximal endpoint.- Specified by:
getNodesInToin interfaceGraph
-
getNodesOutTo
Description copied from interface:GraphNodes adjacent to the given node with the given distal endpoint.- Specified by:
getNodesOutToin interfaceGraph
-
addPropertyChangeListener
Description copied from interface:GraphAdds a PropertyChangeListener to the graph.- Specified by:
addPropertyChangeListenerin interfaceGraph
-
getEdges
-
containsEdge
Description copied from interface:GraphDetermines whether this graph contains the given edge.- Specified by:
containsEdgein interfaceGraph- Returns:
- true iff the graph contain 'edge'.
-
containsNode
Description copied from interface:GraphDetermines whether this graph contains the given node.- Specified by:
containsNodein interfaceGraph- Returns:
- true iff the graph contains 'node'.
-
getEdges
-
getEdges
-
hashCode
public int hashCode() -
equals
Description copied from interface:GraphDetermines whether this graph is equal to some other graph, in the sense that they contain the same nodes and the sets of edges defined over these nodes in the two graphs are isomorphic typewise. That is, if node A and B exist in both graphs, and if there are, e.g., three edges between A and B in the first graph, two of which are directed edges and one of which is an undirected edge, then in the second graph there must also be two directed edges and one undirected edge between nodes A and B. -
fullyConnect
Description copied from interface:GraphRemoves all edges from the graph and fully connects it using #-# edges, where # is the given endpoint.- Specified by:
fullyConnectin interfaceGraph
-
reorientAllWith
Description copied from interface:GraphReorients all edges in the graph with the given endpoint.- Specified by:
reorientAllWithin interfaceGraph
-
getNode
-
getNumNodes
public int getNumNodes()- Specified by:
getNumNodesin interfaceGraph- Returns:
- the number of nodes in the graph.
-
getNumEdges
public int getNumEdges()- Specified by:
getNumEdgesin interfaceGraph- Returns:
- the number of edges in the (entire) graph.
-
getNumEdges
- Specified by:
getNumEdgesin interfaceGraph- Returns:
- the number of edges in the graph which are connected to a particular node.
-
subgraph
Description copied from interface:GraphConstructs and returns a subgraph consisting of a given subset of the nodes of this graph together with the edges between them. -
getNodes
-
getNodeNames
- Specified by:
getNodeNamesin interfaceGraph- Returns:
- the names of the nodes, in the order of
getNodes.
-
clear
public void clear()Description copied from interface:GraphRemoves all nodes (and therefore all edges) from the graph. -
removeEdge
Description copied from interface:GraphRemoves the edge connecting the two given nodes, provided there is exactly one such edge.- Specified by:
removeEdgein interfaceGraph
-
removeEdges
Description copied from interface:GraphIterates through the list and removes any permissible edges found. The order in which edges are added is the order in which they are presented in the iterator.- Specified by:
removeEdgesin interfaceGraph- Returns:
- true if edges were added, false if not.
-
removeNodes
Description copied from interface:GraphIterates through the list and removes any permissible nodes found. The order in which nodes are removed is the order in which they are presented in the iterator.- Specified by:
removeNodesin interfaceGraph- Returns:
- true if nodes were added, false if not.
-
removeEdges
Description copied from interface:GraphRemoves all edges connecting node A to node B. In most cases, this will remove at most one edge, but since multiple edges are permitted in some graph implementations, the number will in some cases be greater than one.- Specified by:
removeEdgesin interfaceGraph- Returns:
- true if edges were removed, false if not.
-
getAllAttributes
- Specified by:
getAllAttributesin interfaceGraph
-
getAttribute
- Specified by:
getAttributein interfaceGraph
-
removeAttribute
- Specified by:
removeAttributein interfaceGraph
-
addAttribute
- Specified by:
addAttributein interfaceGraph
-