The previous post talked about generating one type of combinatorial object (chessboards) using a method similar to that outlined by Brendan McKay in a paper called " Isomorph-free exhaustive generation " (J Algorithms, 26 (1998) 306-324.). This one will focus instead on simple graphs, which requires both parts of the method. The canonical construction (or canonical augmentation ) method has two components. Firstly, only one 'expansion' of a graph is tried at each step from the set of equivalent expansions. Secondly, the expansions are checked to see if they are the inverse of a 'canonical deletion' for that graph. For an example of the first rule, consider this set of expansions of a 4-vertex graph on the left: Each of the 5-vertex graphs on the right are shown with the newly added vertex and edges in red; the arrows are labelled by the added edge set - so {1:4, 3:4} means edges added from 1 to 4 and 3 to 4. The sets of vertices to add to - {{0}, {1}, {1,3}}
An Online Research Notebook