- asymmetric(+Graph)
- Ensures Graph is asymmetric
- complementary_graph(+Graph, ?ComplementaryGraph)
- Obtains the complementary graph of a given graph.
- connected(+Graph)
- Guarantees that an undirected graph Graph is connected.
- dirgraph(-Graph, +VertexSet, +EdgeSet)
- Directed graph constructor.
- export_graph(+Graph, ++File)
- Exports Graph to Filename in a .dot format which can then be loaded by GraphViz.
- getEdgeSet(+Graph, ?EdgeSet)
- Obtains a graph's edge-set.
- getVertexSet(+Graph, ?VertexSet)
- Obtains a graph's vertex-set.
- graph_labeling(+Graph)
- Labels a graph variable.
- graph_labeling(+Graph, ++VertexHeuristic, ++EdgeHeuristic)
- Labels a graph variable using VertexHeuristic and EdgeHeuristic.
- order(+Graph, ?Order)
- Obtains a graph's order.
- oriented_graph(+UndirectedGraph, ?DirectedGraph)
- Obtains an oriented graph of a given undirected graph.
- path(+Graph, +OriginVertex, +TerminusVertex)
- Ensures Graph represents a path between OriginVertex and TerminusVertex in Graph.
- predecessors(+Graph, +Vertex, ?PredSet)
- Determines the predecessor-set of a vertex in a graph.
- reachables(+Graph, +SourceVertex, ?ReachSet)
- Determines the reachables-set of a vertex in a graph.
- reverse_graph(+Graph, ?ReverseGraph)
- Obtains the reverse graph of a given graph.
- size(+Graph, ?Size)
- Obtains a graph's size.
- strongly_connected(+Graph)
- Guarantees that a directed graph Graph is strongly connected.
- subgraph(?SubGraph, +Graph)
- Constraints SubGraph to be a subgraph of Graph.
- successors(+Graph, +Vertex, ?SuccSet)
- Determines the successor-set of a vertex in a graph.
- symmetric(+Graph)
- Ensures Graph is symmetric
- underlying_graph(+DirectedGraph, ?UndirectedGraph)
- Obtains an underlying graph of a given directed graph.
- undirgraph(-Graph, +VertexSet, +EdgeSet)
- Unirected graph constructor.
- weakly_connected(+Graph)
- Guarantees that a directed graph Graph is weakly connected.
- weight(+Graph, +WeightHash, ?Weight)
- Calculates the Weight of Graph given a WeightHash.
Graph-based constraint programming can be declaratively used for path and circuit finding problems, to routing, scheduling and allocation problems, among others. CP(Graph) was proposed by G. Dooms et al. as a general approach to solve graph-based constraint problems. It provides a key set of basic constraints which represent the framework's core, and higher level constraints for solving path finding and optimization problems, and to enforce graph properties.
The GRASPER (GRAph constraint Satisfaction Problem solvER) library is an alternative framework for graph-based constraint solving based on Cardinal, a finite sets constraint solver with extra inferences developed in Universidade Nova de Lisboa. It provides a set of basic constraints which represent the core of our framework and functionality for directed graphs, graph weighting, graph matching, graph path optimization problems and some of the most common graph properties.
More information in this background paper.