US 12,287,783 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 Aug. 19, 2024, as Appl. No. 18/808,240.
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.
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, and wherein the query graph comprises an additional query;
break the symmetry in the query graph by:
converting the query graph into a transformed query graph by:
responsive to determining that the query graph comprises (a) at least two different node attributes, or (b) at least two different edge attributes, or (c) at least one node attribute and at least one edge attribute, transforming each node attribute and each edge attribute into a single output attribute to obtain a first transformed query graph;
responsive to determining that the first transformed query graph comprises an edge having the at least one edge attribute, creating a first new node for the edge to obtain a second transformed query graph, wherein the first new node comprises the single output attribute as a new node attribute;
determining that the second transformed query graph comprises a pair of nodes having at least two edges therebetween;
responsive to determining that the second transformed query graph comprises the pair of nodes having the at least two edges therebetween, converting each of the at least two edges into a second new node between the pair of nodes to obtain a third transformed query graph;
converting the additional query into a tree representation; and
combining the third transformed query graph with the tree representation to obtain the transformed query graph;
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.