Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func All ¶
func All(n int, output chan *graph.DenseGraph, a int, m int)
All with a = 0 and m = 1 sends all non-isomorphic graphs on n vertices to the output channel which it then closes. In general, this will begin a search using canonical deletion to find all graphs on at most n vertices where the choice at level ceil(2n/3) is equal to a mod m. For small values of m this should produce a fairly even split and allow for some small parallelism.
func AllParallel ¶
func AllParallel(n int, output chan *graph.DenseGraph, numWorkers int)
AllParallel sends all non-isomorphic graphs on n vertices to the output channel which it then closes. It automatically splits the work across numWorkers goroutines.
func WithPruning ¶
func WithPruning(n int, output chan *graph.DenseGraph, a int, m int, preprune, prune func(g *graph.DenseGraph) bool)
WithPruning with a = 0 and m = 1 outputs all non-isomorphic graphs on n vertices such that neither the graph itself nor any of its predecessors were pruned. In general, only the choices which are equal to a mod m are output to allow a small amount of parallelism. The function prune is called once an augmentation has been determined to be canonical whereas preprune is called once the augmentation has been applied to the graph but before checking if the augmentation is canonical. Preprune is not applied to graphs on 0 or 1 vertices and prune is not checked for graphs on 0 vertices unless n is 0. Note that the vertices are added in the order 0, 1, ..., n-1 and, when adding the kth vertex, the graph induced on {0, 1 \dots, k-2} has already not been pruned.
func WithPruningParallel ¶
func WithPruningParallel(n int, output chan *graph.DenseGraph, numWorkers int, preprune, prune func(g *graph.DenseGraph) bool)
WithPruningParallel uses numWorkers goroutines to output all non-isomorphic graphs on n vertices such that neither the graph itself nor any of its predecessors were pruned.
Types ¶
This section is empty.