search

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2020 License: MIT Imports: 6 Imported by: 0

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL