GraphOptInterface
Documentation for GraphOptInterface.
GraphOptInterface.AbstractGraphOptimizer
GraphOptInterface.BipartiteGraph
GraphOptInterface.Edge
GraphOptInterface.HyperGraph
GraphOptInterface.HyperMap
GraphOptInterface.Node
GraphOptInterface.add_edge
GraphOptInterface.add_node
GraphOptInterface.add_subgraph
GraphOptInterface.all_incident_edges
GraphOptInterface.all_neighbors
GraphOptInterface.children_incident_edges
GraphOptInterface.get_mapped_nodes
GraphOptInterface.identify_edges
GraphOptInterface.identify_nodes
GraphOptInterface.incident_edges
GraphOptInterface.incident_edges
GraphOptInterface.induced_edges
GraphOptInterface.neighborhood
GraphOptInterface.node_variables
GraphOptInterface.non_parent_incident_edges
GraphOptInterface.non_parent_neighbors
GraphOptInterface.parent_incident_edges
GraphOptInterface.parent_neighbors
Graphs.LinAlg.adjacency_matrix
Graphs.LinAlg.incidence_matrix
GraphOptInterface.AbstractGraphOptimizer
— TypeAbstractGraphOptimizer
Abstract supertype for block-structure-exploiting optimizers.
GraphOptInterface.BipartiteGraph
— TypeBipartiteGraph
A simple bipartite graph. Contains two vertex sets to enforce bipartite structure.
GraphOptInterface.Edge
— TypeEdge
An edge represents different types of coupling. For instance an Edge{Tuple{Node}} is an edge the couple variables within a single node. An Edge{Tuple{N,Node}} couple variables across one or more nodes.
GraphOptInterface.HyperGraph
— TypeHyperGraph
A very simple hypergraph type. Contains attributes for vertices and hyperedges.
GraphOptInterface.HyperMap
— TypeHyperMap
A mapping from an OptiGraph to a graph view that supports various graph query functions. Currently supports a HyperGraph
as the graph view.
GraphOptInterface.Node
— TypeNode
A node represents a set of variables and associated attributes.
GraphOptInterface.add_edge
— Methodadd_edge(graph::OptiGraph, nodes::NTuple{N,Node})::Edge where N
Add an edge to graph
.
GraphOptInterface.add_node
— Methodadd_node(graph::OptiGraph)::Node
Add a node to graph
. The index of the node is determined by the central graph.
GraphOptInterface.add_subgraph
— Methodadd_subgraph(graph::OptiGraph)
Add a new subgraph to graph
.
GraphOptInterface.all_incident_edges
— Methodall_incident_edges(hyper_map::HyperMap, nodes::Vector{Node})::Vector{Edge}
Return all of the edges within the optigraph in hyper_map
that are incident to the vector of supplied nodes
.
GraphOptInterface.all_neighbors
— Methodall_neighbors(hyper_map::HyperMap, nodes::Vector{Node})::Vector{Node}
Return the neighbor nodes within the optigraph in hyper_map
to the vector of supplied optigraph nodes.
GraphOptInterface.children_incident_edges
— Methodchildren_incident_edges(hyper_map::HyperMap, graph::OptiGraph)::Vector{Edge}
Return all of the optigraph edges that are incident to the supplied graph
that are strictly child connections.
GraphOptInterface.get_mapped_nodes
— Methodget_mapped_nodes(hyper_map::HyperMap, nodes::Vector{Node})
Get the hypernode elements that correspond to the supplied optigraph nodes
.
GraphOptInterface.identify_edges
— Methodidentify_edges(hypergraph::HyperGraph,partitions::Vector{Vector{HyperNode}})
Identify both induced partition edges and cut edges given a partition of HyperNode
vectors.
GraphOptInterface.identify_nodes
— Methodidentify_nodes(hypergraph::HyperGraph,partitions::Vector{Vector{HyperEdge}})
Identify both induced partition nodes and cut nodes given a partition of HyperEdge
vectors.
GraphOptInterface.incident_edges
— Methodincident_edges(hypergraph::HyperGraph,hypernode::HyperNode)
Identify the incident hyperedges to a HyperNode
.
GraphOptInterface.incident_edges
— Methodincident_edges(hypergraph::HyperGraph,hypernodes::Vector{HyperNode})
Identify the incident hyperedges to a vector of HyperNode
s.
GraphOptInterface.induced_edges
— Methodinduced_edges(hypergraph::HyperGraph,hypernodes::Vector{HyperNode})
Identify the induced hyperedges to a vector of HyperNode
s.
NOTE: This currently does not support hypergraphs with unconnected nodes
GraphOptInterface.neighborhood
— Methodneighborhood(g::HyperGraph,nodes::Vector{OptiNode},distance::Int64)
Retrieve the neighborhood within distance
of nodes
. Returns a vector of the original vertices and added vertices
GraphOptInterface.node_variables
— Methodnode_variables(edge::Edge)::Vector{Tuple{Node,MOI.VariableIndex}}
Return a vector of tuples where each tuple contains the node and variable index associated with each edge variable.
GraphOptInterface.non_parent_incident_edges
— Methodnon_parent_incident_edges(hyper_map::HyperMap, subgraph::OptiGraph)::Vector{Edge}
Return all of the optigraph edges that are incident to the supplied subgraph
that are strictly not parent connections.
GraphOptInterface.non_parent_neighbors
— Methodnon_parent_neighbors(hyper_map::HyperMap, subgraph::OptiGraph)::Vector{Node}
Return the neighbor nodes in subgraph
based on the optigraph in hyper_map
that are not in the parent graph of `subgraph.
GraphOptInterface.parent_incident_edges
— Methodparent_incident_edges(hyper_map::HyperMap, subgraph::OptiGraph)::Vector{Edge}
Return all of the optigraph edges that are incident to the supplied subgraph
that are strictly parent connections.
GraphOptInterface.parent_neighbors
— Methodparent_neighbors(hyper_map::HyperMap, subgraph::OptiGraph)::Vector{Node}
Return the neighbor nodes in subgraph
based on the optigraph in hyper_map
that are only in the parent graph of `subgraph.
Graphs.LinAlg.adjacency_matrix
— MethodGraphs.adjacency_matrix(hypergraph::HyperGraph)
Obtain the adjacency matrix from hypergraph.
Returns a sparse matrix.
Graphs.LinAlg.incidence_matrix
— MethodGraphs.incidence_matrix(hypergraph::HyperGraph)
Obtain the incidence matrix representation of hypergraph
. Rows correspond to vertices. Columns correspond to hyperedges. Returns a sparse matrix.