US 12,326,859 B1
Systems and methods for graphical symmetry breaking
Brandon Michael Reese, Raleigh, NC (US); and Steven Harenberg, Chapel Hill, NC (US)
Assigned to SAS Institute Inc., Cary, NC (US)
Filed by SAS Institute Inc., Cary, NC (US)
Filed on Dec. 11, 2024, as Appl. No. 18/976,960.
Application 18/976,960 is a continuation of application No. 18/808,240, filed on Aug. 19, 2024.
Claims priority of provisional application 63/631,591, filed on Apr. 9, 2024.
Claims priority of provisional application 63/564,421, filed on Mar. 12, 2024.
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/00 (2019.01); G06F 16/22 (2019.01); G06F 16/2452 (2019.01); G06F 16/248 (2019.01)
CPC G06F 16/2452 (2019.01) [G06F 16/2246 (2019.01); G06F 16/248 (2019.01)] 30 Claims
OG exemplary drawing
 
1. A non-transitory computer-readable medium comprising computer-readable instructions stored thereon that when executed by a processor cause the processor to:
receive a main graph and a query graph, wherein the query graph contains symmetry;
break symmetry in the query graph by:
converting the query graph into a transformed query graph by:
identifying each pair of nodes in the query graph having at least two edges therebetween; and
for each of the pair of nodes:
deleting each of the at least two edges between the pair of nodes;
creating an instance of a first new node between the pair of nodes for each of the at least two edges;
for each instance of the first new node, adding a first new edge between a first node of the pair of nodes and the first new node; and
for each instance of the first new node, adding a second new edge between the first new node and a second node of the pair of nodes;
generating a symmetry breaking expression from the transformed query graph by:
(A) detecting one or more orbits in the transformed query graph, wherein each orbit comprises one or more nodes of the transformed query graph;
(B) selecting an orbit from the one or more orbits having more than one node;
(C) generating an automorphism breaking sub-expression for the selected orbit;
(D) assigning a node of the selected orbit a unique node attribute;
(E) recalculating the one or more orbits in the transformed query graph;
(F) repeating (B)-(E) until each orbit in the transformed query graph has a single node; and
(G) combining each of the automorphism breaking sub-expressions generated in (C) to obtain the symmetry breaking expression; and
translating the symmetry breaking expression to refer to one or more nodes and one or more edges in the query graph to obtain a translated symmetry breaking expression of the query graph; and
find one or more subgraphs of the main graph that match the translated symmetry breaking expression of the query graph, wherein the one or more subgraphs do not contain symmetry.