Hardness of Robust Graph Isomorphism, Lasserre Gaps, and Asymmetry of Random Graphs Ryan O’Donnell (CMU) John Wright (CMU) Chenggang Wu (Tsinghua) Yuan.

Slides:



Advertisements
Similar presentations
Hardness of Reconstructing Multivariate Polynomials. Parikshit Gopalan U. Washington Parikshit Gopalan U. Washington Subhash Khot NYU/Gatech Rishi Saket.
Advertisements

Direct Product : Decoding & Testing, with Applications Russell Impagliazzo (IAS & UCSD) Ragesh Jaiswal (Columbia) Valentine Kabanets (SFU) Avi Wigderson.
Complexity Classes: P and NP
Shortest Vector In A Lattice is NP-Hard to approximate
Inapproximability of Hypergraph Vertex-Cover. A k-uniform hypergraph H= : V – a set of vertices E - a collection of k-element subsets of V Example: k=3.
Inapproximability of MAX-CUT Khot,Kindler,Mossel and O ’ Donnell Moshe Ben Nehemia June 05.
Approximability & Sums of Squares Ryan O’Donnell Carnegie Mellon.
1 Decomposing Hypergraphs with Hypertrees Raphael Yuster University of Haifa - Oranim.
Gillat Kol joint work with Ran Raz Locally Testable Codes Analogues to the Unique Games Conjecture Do Not Exist.
The Max-Cut problem: Election recounts? Majority vs. Electoral College? 7812.
On the Density of a Graph and its Blowup Raphael Yuster Joint work with Asaf Shapira.
On the Unique Games Conjecture Subhash Khot Georgia Inst. Of Technology. At FOCS 2005.
Max Cut Problem Daniel Natapov.
Inapproximability Seminar – 2005 David Arnon  March 3, 2005 Some Optimal Inapproximability Results Johan Håstad Royal Institute of Technology, Sweden.
COMP 553: Algorithmic Game Theory Fall 2014 Yang Cai Lecture 21.
MaxClique Inapproximability Seminar on HARDNESS OF APPROXIMATION PROBLEMS by Dr. Irit Dinur Presented by Rica Gonen.
Constraint Satisfaction over a Non-Boolean Domain Approximation Algorithms and Unique Games Hardness Venkatesan Guruswami Prasad Raghavendra University.
Introduction to PCP and Hardness of Approximation Dana Moshkovitz Princeton University and The Institute for Advanced Study 1.
A 3-Query PCP over integers a.k.a Solving Sparse Linear Systems Prasad Raghavendra Venkatesan Guruswami.
Inapproximability from different hardness assumptions Prahladh Harsha TIFR 2011 School on Approximability.
PCPs and Inapproximability Introduction. My T. Thai 2 Why Approximation Algorithms  Problems that we cannot find an optimal solution.
Dictator tests and Hardness of approximating Max-Cut-Gain Ryan O’Donnell Carnegie Mellon (includes joint work with Subhash Khot of Georgia Tech)
The number of edge-disjoint transitive triples in a tournament.
Computational problems, algorithms, runtime, hardness
CPSC 411, Fall 2008: Set 12 1 CPSC 411 Design and Analysis of Algorithms Set 12: Undecidability Prof. Jennifer Welch Fall 2008.
On the Hardness of Graph Isomorphism Jacobo Tor á n SIAM J. Comput. Vol 33, p , Presenter: Qingwu Yang April, 2006.
CSE 326: Data Structures NP Completeness Ben Lerner Summer 2007.
Complexity 19-1 Complexity Andrei Bulatov More Probabilistic Algorithms.
Analysis of Algorithms CS 477/677
Lower Bounds for Property Testing Luca Trevisan U C Berkeley.
CS151 Complexity Theory Lecture 6 April 15, 2004.
1 Slides by Asaf Shapira & Michael Lewin & Boaz Klartag & Oded Schwartz. Adapted from things beyond us.
1 Joint work with Shmuel Safra. 2 Motivation 3 Motivation.
Finding Almost-Perfect
1 Hardness Result for MAX-3SAT This lecture is given by: Limor Ben Efraim.
Dana Moshkovitz, MIT Joint work with Subhash Khot, NYU.
Manindra Agrawal NUS / IITK
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
1 3-COLOURING: Input: Graph G Question: Does there exist a way to 3-colour the vertices of G so that adjacent vertices are different colours? 1.What could.
Lower Bounds for Property Testing Luca Trevisan U.C. Berkeley.
Umans Complexity Theory Lectures Lecture 1a: Problems and Languages.
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
Approximation Algorithms for Graph Homomorphism Problems Chaitanya Swamy University of Waterloo Joint work with Michael Langberg and Yuval Rabani Open.
1/19 Minimizing weighted completion time with precedence constraints Nikhil Bansal (IBM) Subhash Khot (NYU)
NP-Complete problems.
Eric Allender Rutgers University Graph Automorphism & Circuit Size Joint work with Joshua A. Grochow and Cristopher Moore (SFI) Simons Workshop, September.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
1 Suppose I construct a TM M f which: 1. Preserves its input u. 2. Simulates a machine M b on input ε. 3. If M b hangs on input ε, force an infinite loop.
C&O 355 Lecture 24 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A A A A A A.
CPS Computational problems, algorithms, runtime, hardness (a ridiculously brief introduction to theoretical computer science) Vincent Conitzer.
Unique Games Approximation Amit Weinstein Complexity Seminar, Fall 2006 Based on: “Near Optimal Algorithms for Unique Games" by M. Charikar, K. Makarychev,
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
Probabilistic verification Mario Szegedy, Rutgers www/cs.rutgers.edu/~szegedy/07540 Lecture 1.
Yuan Zhou, Ryan O’Donnell Carnegie Mellon University.
CSC 413/513: Intro to Algorithms
Why almost all satisfiable k - CNF formulas are easy? Danny Vilenchik Joint work with A. Coja-Oghlan and M. Krivelevich.
Boaz Barak (MSR New England) Fernando G.S.L. Brandão (Universidade Federal de Minas Gerais) Aram W. Harrow (University of Washington) Jonathan Kelner (MIT)
Lower Bounds for Property Testing
UNIT III DYNAMIC PROGRAMMING ALGORITHMS
Polynomial integrality gaps for
Possibilities and Limitations in Computation
NP-Completeness Yin Tat Lee
Background: Lattices and the Learning-with-Errors problem
Introduction to PCP and Hardness of Approximation
On the effect of randomness on planted 3-coloring models
1. for (i=0; i < n; i+=2) if (A[i] > A[i+1]) swap(A[i], A[i+1])
NP-Completeness Yin Tat Lee
Prove this problem is in NP
2-to-2 Games Theorem via Expansion in the Grassmann Graph
Instructor: Aaron Roth
Presentation transcript:

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)