Hardness of Robust Graph Isomorphism, Lasserre Gaps, and Asymmetry of Random Graphs Ryan O’Donnell (CMU) John Wright (CMU) Chenggang Wu (Tsinghua) Yuan Zhou (CMU)
Hardness of Robust Graph Isomorphism, Lasserre Gaps, and Asymmetry of Random Graphs Ryan O’Donnell (CMU) John Wright (CMU) Chenggang Wu (Tsinghua) Yuan Zhou (CMU)
Motivating Example Yesterday’s Facebook graph Yesterday’s Facebook graph Graph Isomorphism algorithm A
Motivating Example Yesterday’s Facebook graph Yesterday’s Facebook graph Graph Isomorphism algorithm A
Motivating Example Yesterday’s Facebook graph Yesterday’s Facebook graph Graph Isomorphism algorithm A should: output “YES, same graph” unscramble graph #2
Motivating Example Yesterday’s Facebook graph Today’s Facebook graph Graph Isomorphism algorithm A
Motivating Example Yesterday’s Facebook graph Today’s Facebook graph Graph Isomorphism algorithm A
Motivating Example Yesterday’s Facebook graph Today’s Facebook graph Graph Isomorphism algorithm A
Motivating Example Yesterday’s Facebook graph Today’s Facebook graph Graph Isomorphism algorithm A
Motivating Example Yesterday’s Facebook graph Today’s Facebook graph Graph Isomorphism algorithm A will: output “NO, not isomorphic” terminate
Motivating Example Yesterday’s Facebook graph Today’s Facebook graph But these graphs are almost isomorphic! can we detect this? can we unscramble graph #2?
Robust Graph Isomorphism Given two “almost isomorphic” graphs, find the “best almost-isomorphism” between them (or something close to it)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
G = (V(G), E(G)) H = (V(H), E(H)) Isomorphisms π A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
Isomorphisms G = (V(G), E(G)) H = (V(H), E(H)) A bijection π:V(G) → V(H) is an isomorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(H)
Isomorphisms, eq. Pr[(π(u), π(v)) ∈ E(H)] = 1 (u, v) E(G) G = (V(G), E(G)) H = (V(H), E(H)) A bijection π:V(G) → V(H) is an isomorphism if ~ (assuming |E(G)| = |E(H)|)
Isomorphisms, eq. Pr[(π(u), π(v)) ∈ E(H)] = 1 (u, v) E(G) G = (V(G), E(G)) H = (V(H), E(H)) A bijection π:V(G) → V(H) is an isomorphism if ~ (uniformly random) (assuming |E(G)| = |E(H)|)
Isomorphisms, eq. Pr[(π(u), π(v)) ∈ E(H)] = 1 (u, v) E(G) G = (V(G), E(G)) H = (V(H), E(H)) A bijection π:V(G) → V(H) is an isomorphism if ~ (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ (assuming |E(G)| = |E(H)|)
π Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ (assuming |E(G)| = |E(H)|)
π Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ Fact: π is an isomorphism ⇔ π is a 1-isomorphism (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ π (assuming |E(G)| = |E(H)|)
π Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ Fact: This π is a ½-isomorphism. (assuming |E(G)| = |E(H)|)
Approximate Isomorphisms Pr[(π(u), π(v)) ∈ E(H)] = α (u, v) E(G) A bijection π:V(G) → V(H) is an α-isomorphism if ~ G and H are α-isomorphic if they have a β-isomorphism, and β ≥ α. (assuming |E(G)| = |E(H)|)
Approximate GISO (c, s)-approximate GISO Given G and H, output: YES if G and H are c-isomorphic NO if G and H are not s-isomorphic Fact: (1, s)-approximate GISO is no harder than GISO. Not so clear for (1-ε, s)-approximate GISO… c > s, c “close to 1” s “far from 1”
Robust GISO Given G and H which are (1-ε)-isomorphic, output a (1-r(ε))-isomorphism. (r(ε) → 0 as ε → 0 + ) Robust algorithms previously studied for CSPs a characterization conjectured by [Guruswami and Zhou 2011] confirmed by [Barto and Kozik 2012] Robust GISO introduced in [WYZV 2013] gives a robust GISO algorithm if G and H are trees which other classes of graphs have robust GISO algorithms?
Approximate GISO, a brief history [Arora et al. 2002] give a PTAS for this problem in the case of dense graphs – Our graphs will be sparse, i.e. m = O(n) [Arvind et al. 2012] have shown hardness of approximation results for variants of our problem – e.g., GISO with colored graphs
GISO Hardness Famously not known to be in P or NP-complete Evidence that it’s not NP-complete What about robust GISO?
Our result Assume Feige’s Random 3XOR Hypothesis. Then there is no poly-time algorithm for Robust GISO. Thm: There exists a constant ε 0 such that: For all ε > 0, no poly-time algorithm can distinguish between: (1-ε)-isomorphic graphs G and H not (1-ε 0 )-isomorphic graphs G and H In other words, no poly-time algorithm solves (1-ε, 1-ε 0 )-approximate GISO. (constantly far apart)
Our (newer) result Assume RP ≠ NP. Then there is no poly-time algorithm for Robust GISO. Thm: There exists a constant ε 0 such that: For all ε > 0, no poly-time algorithm can distinguish between: (1-ε)-isomorphic graphs G and H not (1-ε 0 )-isomorphic graphs G and H In other words, no poly-time algorithm solves (1-ε, 1-ε 0 )-approximate GISO. (constantly far apart)
Algorithms for GISO
GISO Algorithms Algorithm Runtime Brute force Weisfeiler-Lehman (WL) algorithm [Babai Luks 83] O(n!) ≈ O(2 n log n ) exp(O(n log n)) exp(O(n log n) 1/2 )
WL k algorithm Standard heuristic for GISO Larger k, more powerful. Runs in time n k + O(1). By [Atserias and Maneva 2013], equivalent to something familiar: WL k Level-(k+1) Sherali-Adams LP for GISO Level-k Sherali-Adams LP for GISO WL k-1 Level-(k-1) Sherali-Adams LP for GISO …
WL k /Level-k Sherali-Adams LP “Super LP” Once speculated that WL k solves GISO with k= O(log n) Some graphs require k = Ω(n) rounds [Cai, Fürer, Immerman 1992] How do SDPs do? What about the Lasserre/SOS “Super-Duper SDP”?
Cai, Fürer, Immerman Instance Some graphs require k = Ω(n) rounds [Cai, Fürer, Immerman 1992] Basically encoded a 3XOR instance as a pair of graphs. Our main theorem is similar – we reduce from random 3XOR. Known that random 3XOR is as hard as possible for Lasserre SDP [Schoenebeck 2008]
Our result There exists a constant ε 0 such that Ω(n) levels of the Lasserre/SOS hierarchy are needed to distinguish: Thm: YES: G and H are isomorphic NO: G and H are (1-ε 0 )-isomorphic (constantly far apart)
Our proof Assume Feige’s Random 3XOR Hypothesis. Then there is no algorithm for Robust GISO. Thm:
Our proof By a reduction from (a variant of) 3XOR Instance I x1 + x2 + x3 = 0 (mod 2) x10 + x15 + x1 = 1 (mod 2) x4 + x5 + x12 = 1 (mod 2) … x7 + x8 + x9 = 0 (mod 2) xi ∈ {0, 1}
Our proof By a reduction from (a variant of) 3XOR Instance I x1 + x2 + x3 = 0 (mod 2) x10 + x15 + x1 = 1 (mod 2) x4 + x5 + x12 = 1 (mod 2) … x7 + x8 + x9 = 0 (mod 2) xi ∈ {0, 1}
Our proof By a reduction from (a variant of) 3XOR Instance I x1 + x2 + x3 = 0 (mod 2) x10 + x15 + x1 = 1 (mod 2) x4 + x5 + x12 = 1 (mod 2) … x7 + x8 + x9 = 0 (mod 2) xi ∈ {0, 1}
Our proof By a reduction from (a variant of) 3XOR Instance I x1 + x2 + x3 = 0 (mod 2) x10 + x15 + x1 = 1 (mod 2) x4 + x5 + x12 = 1 (mod 2) … x7 + x8 + x9 = 0 (mod 2) 3XOR easy to solve on satisfiable instances (Gaussian elimination) Thm: [Håstad 2001] Given a 3XOR instance I, it is NP-hard to distinguish between: YES: I is (1 - ε)-satisfiable NO: I is (½ + ε)-satisfiable xi ∈ {0, 1}
Our proof By a reduction from (a variant of) 3XOR Instance I x1 + x2 + x3 = 0 (mod 2) x10 + x15 + x1 = 1 (mod 2) x4 + x5 + x12 = 1 (mod 2) … x7 + x8 + x9 = 0 (mod 2) 3XOR easy to solve on satisfiable instances (Gaussian elimination) Thm: [Håstad 2001] Given a 3XOR instance I, it is NP-hard to distinguish between: YES: I is almost-satisfiable NO: I is far-from-satisfiable xi ∈ {0, 1}
Our proof By a reduction from (a variant of) 3XOR (reduction) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Far-from-satisfiable 3XOR instance I Far-from-isomorphic graphs (G, H)
Our proof By a reduction from (a variant of) 3XOR Almost-satisfiable 3XOR instance I Far-from-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Far-from-isomorphic graphs (G, H) (reduction) ✔ ✗ (only works for most far-from-satisfiable 3XOR instances)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) …
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) … x9 + x10 + xn = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) … x9 + x10 + xn = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) … x9 + x10 + xn = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = 0 (mod 2) x3 + x5 + x7 = 1 (mod 2) … x9 + x10 + xn = 1 (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = 0 (mod 2) x3 + x5 + x7 = 1 (mod 2) … x9 + x10 + xn = 1 (mod 2) For some C > 0, ~50%-satisfiable whp.
Feige’s R3XOR Hypothesis No poly-time algorithm can distinguish between: an almost-satisfiable 3XOR instance a random 3XOR instance
Feige’s R3XOR Hypothesis No poly-time algorithm can distinguish between: an almost-satisfiable 3XOR instance a random 3XOR instance Well-believed and “standard” complexity assumption
Feige’s R3XOR Hypothesis No poly-time algorithm can distinguish between: an almost-satisfiable 3XOR instance a random 3XOR instance Well-believed and “standard” complexity assumption Variants of this hypothesis used as basis for cryptosystems, hardness of approximation results, etc.
Feige’s R3XOR Hypothesis No poly-time algorithm can distinguish between: an almost-satisfiable 3XOR instance a random 3XOR instance Well-known complexity assumption Variants of this hypothesis used as basis for cryptosystems, hardness of approximation results, etc. Solvable in time 2 O(n/log(n)) [Blum, Kalai, Wasserman 2003]
Our proof Assume Feige’s R3XOR Hypothesis (reduction) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Far-from-satisfiable 3XOR instance I Far-from-isomorphic graphs (G, H)
Our proof Assume Feige’s R3XOR Hypothesis (reduction) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Random 3XOR instance I Far-from-isomorphic graphs (G, H)
Our proof Assume Feige’s R3XOR Hypothesis (reduction) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Random 3XOR instance I Far-from-isomorphic graphs (G, H) (w.h.p.)
The reduction Assume graph:3XOR instances → graphs
The reduction Assume graph:3XOR instances → graphs x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I
The reduction Assume graph:3XOR instances → graphs x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I)
The reduction Assume graph:3XOR instances → graphs x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I) Fact: sat( I ) is satisfiable (just set xi’s to 0)
The reduction Assume graph:3XOR instances → graphs x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I)
The reduction Assume graph:3XOR instances → graphs x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I) G := graph( I ) H := graph(sat( I )) Output (G, H)
Equation 0-Gadget x + y + z = 0 (mod 2)
Equation 0-Gadget x + y + z = 0 (mod 2) good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation 0-Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation 0-gadget, zoomed out x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 x + y + z = 0 (mod 2)
Equation 0-gadget, zoomed out x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 x y z = x + y + z = 0 (mod 2)
Equation 1-Gadget x + y + z = 1 (mod 2) good assignments
Equation 1-Gadget x + y + z = 1 (mod 2) good assignments Variable vertices: x 01 y 01 z 01
Equation 1-Gadget x + y + z = 1 (mod 2) good assignments Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 1 x → 0 y → 1 z → 0 x → 1 y → 0 z → 0 x → 1 y → 1 z → 1 Equation vertices:
Equation 1-Gadget x + y + z = 1 (mod 2) good assignments Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 1 x → 0 y → 1 z → 0 x → 1 y → 0 z → 0 x → 1 y → 1 z → 1 Equation vertices:
Equation 1-gadget, zoomed out x 01 y 01 z 01 x → 0 y → 0 z → 1 x → 0 y → 1 z → 0 x → 1 y → 0 z → 0 x → 1 y → 1 z → 1 x + y + z = 1 (mod 2)
Equation 1-gadget, zoomed out x 01 y 01 z 01 x → 0 y → 0 z → 1 x → 0 y → 1 z → 0 x → 1 y → 0 z → 0 x → 1 y → 1 z → 1 x + y + z = 1 (mod 2) x y z =
graph: 3XOR instance → Graph 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2)
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
graph: 3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
The reduction Assume graph:3XOR instances → graphs x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I) G := graph( I ) H := graph(sat( I )) Output (G, H)
Zoomed-out picture x1 … Eq1Eq2Eqm … x2x3xn G x1 … Eq1Eq2Eqm … x2x3xn H
Need to show (reduction) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Random 3XOR instance I Far-from-isomorphic graphs (G, H) (w.h.p.)
Need to show (reduction) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Random 3XOR instance I Far-from-isomorphic graphs (G, H) (w.h.p.) Completeness:
Completeness Almost-satisfiable 3XOR instance I
Completeness Satisfiable 3XOR instance I
Completeness Satisfiable 3XOR instance I Let f:{xi} → {0, 1} be a satisfying assignment
Completeness Satisfiable 3XOR instance I Let f:{xi} → {0, 1} be a satisfying assignment We’ll use f to construct an isomorphism π between G and H
Completeness Satisfiable 3XOR instance I Let f:{xi} → {0, 1} be a satisfying assignment We’ll use f to construct an isomorphism π between G and H What should π look like?
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment If f(x1) = 0, π maps 0 vertex to 0 and 1 vertex to
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment If f(x2) = 1, π swaps the 0 and the 1 vertices
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment If f(x3) = 1, π swaps the 0 and the 1 vertices
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment ?
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment ? Fact: For every good even assignment, the 0-gadget has an isomorphism with the 0-gadget For every good odd assignment, the 1-gadget has an isomorphism with the 0-gadget
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π only swaps the z vertices good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π only swaps the z vertices good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π only swaps the z vertices good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π only swaps the z vertices good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π only swaps the z vertices good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Gadget Isomorphism (0,0,1)(0,1,0)(1,0,0)(1,1,1)(0,0,0)(0,1,1)(1,0,1)(1,1,0) x 01 y 01 z 01 x 01 y 01 z 01 π only swaps the z vertices good assignments x+y+z = 1 (mod 2)x+y+z = 0 (mod 2)
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment Define π to be the appropriate isomorphism for each equation. This π is an isomorphism between G and H.
Constructing π x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn f:{xi} → {0, 1} a satisfying assignment Define π to be the appropriate isomorphism for each equation. This π is an isomorphism between G and H. ✔
Need to show (reduction) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) Random 3XOR instance I Far-from-isomorphic graphs (G, H) (w.h.p.) (take my word for this … almost) ✔ Soundness:
Need to show Random 3XOR instance I Far-from-isomorphic graphs (G, H) (w.h.p.) Almost-satisfiable 3XOR instance I Almost-isomorphic graphs (G, H) G and H are almost-isomorphic ⇒ a (1-ε)-isomorphism π What must be true about π? (w.h.p.)
A possible π? x1 … Eq1Eq2Eqm … x2x3xn G x1 … Eq1Eq2Eqm … x2x3xn H
A possible π? x1 … Eq1Eq2Eqm … x2x3xn G x1 … Eq1Eq2Eqm … x2x3xn H π
A possible π? x1 … Eq1Eq2Eqm … x2x3xn G x1 … Eq1Eq2Eqm … x2x3xn H π
A possible π? x1 … Eq1Eq2Eqm … x2x3xn G x1 … Eq1Eq2Eqm … x2x3xn H π
A possible π? x1 … Eq1Eq2Eqm … x2x3xn G x1 … Eq1Eq2Eqm … x2x3xn H π
A possible π? x1 … Eq1Eq2Eqm … x2x3xn G x1 … Eq1Eq2Eqm … x2x3xn H π Take my word for this: If π is a (1-ε)-isomorphism, then none of these can happen (often).
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn π GH
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn π GH
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn π GH
Blue blobs map to blue blobs x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn π GH
Blue blobs map to blue blobs x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn π GH
Blue blobs map to blue blobs x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn π GH
A dream scenario x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π G1G2
A dream scenario x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π Trust me on this: If π looks like this, then the rest of the proof goes through. G1G2
A dream scenario x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π Trust me on this: If π looks like this, then the rest of the proof goes through. G1G2 When does this fail?
Fails when equation graph exhibits a lot of symmetry. x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 …
When does this fail? Fails when equation graph exhibits a lot of symmetry. x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … e.g.:
When does this fail? Fails when equation graph exhibits a lot of symmetry. x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … e.g.: What do G and H look like?
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … GH
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one Too much symmetry
Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one
Too much symmetry Eq1Eq2Eq3 x1x2x3x4x5x6 … … Eq1Eq2Eq3 x1x2x3x4x5x6 … … H π could just shift everything over by one This is not what we wanted!
Why could we do this? The equation graph had a lot of symmetry. x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 …
When does this fail? The equation graph had a lot of symmetry. But this graph was chosen randomly! x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 …
When does this fail? The equation graph had a lot of symmetry. But this graph was chosen randomly! Maybe random graphs usually have very little symmetry? x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 …
When does this fail? The equation graph had a lot of symmetry. But this graph was chosen randomly! Maybe random graphs usually have very little symmetry? If so, then we usually get our dream scenario. x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 …
A dream scenario x1 … Eq1Eq2Eqm … x2x3xnx1 … Eq1Eq2Eqm … x2x3xn π GH
A dream scenario x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π Trust me on this: If π looks like this, then the rest of the proof goes through.
A dream scenario x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π Trust me on this: If π looks like this, then the rest of the proof goes through. ✔
Robust asymmetry of random graphs
Symmetric graphs A symmetric graph is one in which you can rearrange the vertices and get back the same graph.
Symmetric graphs A symmetric graph is one in which you can rearrange the vertices and get back the same graph. e.g.
Symmetric graphs A symmetric graph is one in which you can rearrange the vertices and get back the same graph. e.g. An asymmetric graph:
Symmetric graphs (formally) A symmetric graph is one with a nontrivial automorphism.
Symmetric graphs (formally) A symmetric graph is one with a nontrivial automorphism. A permutation π on V(G) is an automorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(G)
Symmetric graphs (formally) A symmetric graph is one with a nontrivial automorphism. A permutation π on V(G) is an automorphism if (u, v) ∈ E(G) ⇔ (π(u), π(v)) ∈ E(G) Fact: The (trivial) identity permutation π(v) = v is always an automorphism.
Random graphs are asymmetric G(n, p) is asymmetric with high probability when. [Erdős and Rényi 63] ln n n ≤ p ≤ 1 – ln n n
Random graphs are asymmetric G(n, p) is asymmetric with high probability when. [Erdős and Rényi 63] Random d-regular graphs are asymmetric w.h.p. when 3 ≤ d ≤ n – 4. ln n n ≤ p ≤ 1 – ln n n
Random graphs are asymmetric G(n, p) is asymmetric with high probability when. [Erdős and Rényi 63] Random d-regular graphs are asymmetric w.h.p. when 3 ≤ d ≤ n – 4. What about (hyper-)graphs with m edges? ln n n ≤ p ≤ 1 – ln n n
Approximate automorphisms Pr[(π(u), π(v)) ∈ E(G)] = α (u, v) E(G) A permutation π on V(G) is an α-automorphism if ~
Approximate automorphisms Pr[(π(u), π(v)) ∈ E(G)] = α (u, v) E(G) A permutation π on V(G) is an α-automorphism if ~ Does G have a good α-automorphism?Try 1:
Approximate automorphisms Pr[(π(u), π(v)) ∈ E(G)] = α (u, v) E(G) A permutation π on V(G) is an α-automorphism if ~ Does G have a good α-automorphism? every graph has a 1-automorphism (identity permutation) Try 1:
Approximate automorphisms Pr[(π(u), π(v)) ∈ E(G)] = α (u, v) E(G) A permutation π on V(G) is an α-automorphism if ~ Does G have a good α-automorphism? every graph has a 1-automorphism (identity permutation) Ignoring the identity permutation, does G have a good α-automorphism? Try 1: Try 2: ✗
Approximate automorphisms Pr[(π(u), π(v)) ∈ E(G)] = α (u, v) E(G) A permutation π on V(G) is an α-automorphism if ~ Does G have a good α-automorphism? every graph has a 1-automorphism (identity permutation) Ignoring the identity permutation, does G have a good α-automorphism? Try 1: Try 2: ✗ every graph has a automorphism: π(1) = 2 π(2) = 1 π(3) = 3 π(4) = 4 π(5) = 5 π(6) = 6 π(7) = 7 π(8) = 8 … π(n) = n
Approximate automorphisms Pr[(π(u), π(v)) ∈ E(G)] = α (u, v) E(G) A permutation π on V(G) is an α-automorphism if ~ Does G have a good α-automorphism? every graph has a 1-automorphism (identity permutation) Ignoring the identity permutation, does G have a good α-automorphism? Try 1: Try 2: ✗ every graph has a automorphism: Does G have a good α-automorphism which is far from the identity?? Try 3: ✗ π(1) = 2 π(2) = 1 π(3) = 3 π(4) = 4 π(5) = 5 π(6) = 6 π(7) = 7 π(8) = 8 … π(n) = n
Random graphs are robustly asymmetric Let G be a random n-vertex m-edge graph. Then WHP, any (1-ε)-automorphism for G is O(ε)-close to the identity, for any large enough ε. Thm:
Random graphs are robustly asymmetric Let G be a random n-vertex m-edge graph. Then WHP, any (1-ε)-automorphism for G is O(ε)-close to the identity, for any large enough ε. Some restrictions: C*n ≤ m ≤ ε ≥ ε 0 C n2n2 Also works for hypergraphs. Thm:
Q.E.D.
Open Problems
Can we explicitly construct robustly asymmetric graphs? Currently, we can only generate robustly asymmetric graphs randomly.
Can we explicitly construct robustly asymmetric graphs? Currently, we can only generate robustly asymmetric graphs randomly. An explicit construction would prove NP- hardness of robust Graph Isomorphism.
Can we explicitly construct robustly asymmetric graphs? Currently, we can only generate robustly asymmetric graphs randomly. An explicit construction would prove NP- hardness of robust Graph Isomorphism. We don’t really have any great candidates yet…
Improving hardness for approximating GISO
PCP Theorem for GISO There exists a constant ε 0 such that: For all ε > 0, no poly-time algorithm can distinguish between: (1-ε)-isomorphic graphs G and H (1-ε 0 )-isomorphic graphs G and H Our theorem:
PCP Theorem for GISO For all ε > 0, no poly-time algorithm can distinguish between: (1-ε)-isomorphic graphs G and H.99999…9999-isomorphic graphs G and H Our theorem: For all ε > 0, it is NP-hard to distinguish between: satisfiable 3Sat instance.99999…9999-satisfiable 3Sat instance PCP theorem:
A historical parallel? Given 3Sat instance, can’t tell if it’s: fully satisfiable.999…99-satisfiable Given two graphs, can’t tell if they’re: nearly isomorphic.999…99-isomorphic
A historical parallel? Given 3Sat instance, can’t tell if it’s: fully satisfiable.999…99-satisfiable Parallel repetition [Raz 1995] Given two graphs, can’t tell if they’re: nearly isomorphic.999…99-isomorphic
A historical parallel? Given 3Sat instance, can’t tell if it’s: fully satisfiable.999…99-satisfiable Given 3Sat instance, can’t tell if it’s: fully satisfiable ~7/8-satisfiable Parallel repetition [Raz 1995] Given two graphs, can’t tell if they’re: nearly isomorphic.999…99-isomorphic
A historical parallel? Given 3Sat instance, can’t tell if it’s: fully satisfiable.999…99-satisfiable Given 3Sat instance, can’t tell if it’s: fully satisfiable ~7/8-satisfiable Parallel repetition & Long code reduction [Raz 1995, Håstad 2001] Given two graphs, can’t tell if they’re: nearly isomorphic.999…99-isomorphic Parallel repetition for graphs? ???
An attempt: tensor product Given G = (V, E), G ⊗ G is graph with vertex set V×V and edge set Known that if G and H are not isomorphic, then G ⊗ G and H ⊗ H are not isomorphic. (under some mild conditions) If G and H are not (1-ε) isomorphic, are G ⊗ G and H ⊗ H not (1-ε) 2 isomorphic? ((u1, u2), (v1, v2)) ∈ E(G ⊗ G) ⇔ (u1, v1) ∈ E and (u2, v2) ∈ E
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = ? (mod 2) For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) x2 + x4 + xn = ? (mod 2) For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = ? (mod 2) For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 0 (mod 2) For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 0 (mod 2) C*n equations For each equation, pick variables and the offset independently and uniformly at random.
Random 3XOR x1 x2x3x4 x5x6x7 x8xn … x1 + x3 + x8 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 0 (mod 2) C*n equations For each equation, pick variables and the offset independently and uniformly at random. For some C > 0, ~50%-satisfiable whp.
Step 1 – two instances x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I
x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I) Step 1 – two instances x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2)
Step 1 – two instances 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I) Fact: sat( I ) is satisfiable (just set xi’s to 0) x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2)
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 … x2x3xn Variable vertices
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 … x2x3xn Variable vertices
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 … x2x3xn Variable vertices “x1 → 0”“x1 → 1”
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 … x2x3xn Variable vertices “x2 → 0”“x2 → 1”
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 … x2x3xn Equation vertices
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 … x2x3xn Equation vertices Eq1: Eq2: Eqm:
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 … x2x3xn Equation vertices Eq1: Eq2: Eqm: Eq1Eq2Eqm …
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I Equation vertices Eq1: Eq2: Eqm: x1 01 x2 01 x3 01
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I Equation vertices Eq1: Eq2: Eqm: x1 01 x2 01 x3 01
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I Equation vertices Eq1: Eq2: Eqm: x1 01 x2 01 x3 01
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I Equation vertices Eq1: Eq2: Eqm: x1 01 x2 01 x3 01 x1 → 0 x2 → 0 x3 → 0 x1 → 0 x2 → 1 x3 → 1 x1 → 1 x2 → 0 x3 → 1 x1 → 1 x2 → 1 x3 → 0
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I Equation vertices Eq1: Eq2: Eqm: x1 01 x2 01 x3 01 x1 → 0 x2 → 0 x3 → 0 x1 → 0 x2 → 1 x3 → 1 x1 → 1 x2 → 0 x3 → 1 x1 → 1 x2 → 1 x3 → 0
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I Equation vertices Eq1: Eq2: Eqm: x1 01 x2 01 x3 01 x1 → 0 x2 → 0 x3 → 0 x1 → 0 x2 → 1 x3 → 1 x1 → 1 x2 → 0 x3 → 1 x1 → 1 x2 → 1 x3 → 0
Step 2 – generate graph for I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I Equation vertices Eq1: Eq2: Eqm: x1 01 x2 01 x3 01 x1 → 0 x2 → 0 x3 → 0 x1 → 0 x2 → 1 x3 → 1 x1 → 1 x2 → 0 x3 → 1 x1 → 1 x2 → 1 x3 → 0
Step 2 – generate graph for I
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π
Green blobs map to green blobs x1 … Eq1Eq2Eqm … x2x3xn G1 x1 … Eq1Eq2Eqm … x2x3xn G2 π G1G2 x1, x2, and x3 are variables in an equation, but π(x1), π(x2), and π(x3) are not.
π should preserve equations
Other forms of approximate GISO Could define G and H to be “ε-similar” if changing ε-fraction of G’s adjacency matrix makes it isomorphic to H.
Other forms of approximate GISO Could define G and H to be “ε-similar” if changing ε-fraction of G’s adjacency matrix makes it isomorphic to H. – Not interesting when G, H have m = O(n) edges (they’d be O(1/n)-similar)
Other forms of approximate GISO Could define G and H to be “ε-similar” if changing ε-fraction of G’s adjacency matrix makes it isomorphic to H. – Not interesting when G, H have m = O(n) edges (they’d be O(1/n)-similar) – All our graphs will have m = O(n) edges.
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Other forms of approximate GISO Could restrict G and H to be colored graphs and consider Approximate Colored GISO, i.e. red maps to red, blue maps to blue, etc. GH π
Other forms of approximate GISO Could restrict G and H to be colored graphs and consider Approximate Colored GISO, i.e. red maps to red, blue maps to blue, etc. GH π Thm: [Arvind et al. 2012] As hard as 2Lin(2) to approximate NP-hard to approximate to factor better than 11/12 UG-hard to approximate to factor better than.878
3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
3XOR instance → Graph x1 … Eq1Eq2Eqm … x2x3xn 3XOR instance Eq 1: x1 + x2 + x3 = 0 (mod 2) Eq 2: x1 + x4 + xn = 1 (mod 2) … Eq m: x7 + x11 + xn = 1 (mod 2) Place the equation gadget over equation and variable blobs →
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) …
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) … x9 + x10 + xn = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) … x9 + x10 + xn = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = ? (mod 2) x3 + x5 + x7 = ? (mod 2) … x9 + x10 + xn = ? (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = 0 (mod 2) x3 + x5 + x7 = 1 (mod 2) … x9 + x10 + xn = 1 (mod 2)
Random 3XOR x1 x2 x3 x4 x5 x6 x7 x8 xn x9 x10 … n variables m equations (m = C * n) Of the possible sets of size 3, pick m of them ( ) n3n3 x1 + x2 + x3 = 0 (mod 2) x3 + x5 + x7 = 1 (mod 2) … x9 + x10 + xn = 1 (mod 2) For some C > 0, ~50%-satisfiable whp.
The reduction x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I
The reduction x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I)
The reduction x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I) Fact: sat( I ) is satisfiable (just set xi’s to 0)
The reduction x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I)
The reduction x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 1 (mod 2) … x1 + x3 + x8 = 1 (mod 2) 3XOR instance I x1 + x2 + x3 = 0 (mod 2) x2 + x4 + xn = 0 (mod 2) … x1 + x3 + x8 = 0 (mod 2) instance sat( I) instance I → graph G instance sat( I ) → graph H Output (G, H)
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: Main property: This graph has a symmetry for each “good” assignment good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Equation Gadget x + y + z = 0 (mod 2) Variable vertices: x 01 y 01 z 01 x → 0 y → 0 z → 0 x → 0 y → 1 z → 1 x → 1 y → 0 z → 1 x → 1 y → 1 z → 0 Equation vertices: good assignments
Other Equation gadget x 01 y 01 z 01 x → 0 y → 0 z → 1 x → 0 y → 1 z → 0 x → 1 y → 0 z → 0 x → 1 y → 1 z → 1 x + y + z = 1 (mod 2)