1 / 35
Quantum query complexity and the adversary bound Part II: Learning - - PowerPoint PPT Presentation
Quantum query complexity and the adversary bound Part II: Learning - - PowerPoint PPT Presentation
Quantum query complexity and the adversary bound Part II: Learning graphs Alexander Belov University of Latvia 22nd EWSCS, 5-10 March 2017, Palmse 1 / 35 Learning graphs Dual Adversary Certificate Structure Examples Idea Construction
Learning graphs
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
2 / 35
Dual Adversary
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
3 / 35
Recall the dual adversary bound minimise
max
z
- j∈[n]
Xj[ [z, z] ]
subject to
- j:xj=yj
Xj[ [x, y] ] = 1
whenever f(x) = f(y);
Xj is a p.s.d. D × D matrix
for all j ∈ [n],
Dual Adversary
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
3 / 35
Recall the dual adversary bound minimise
max
z
- j∈[n]
Xj[ [z, z] ]
subject to
- j:xj=yj
Xj[ [x, y] ] = 1
whenever f(x) = f(y);
Xj is a p.s.d. D × D matrix
for all j ∈ [n],
How do we ensure the feasibility condition?
- In general this is difficult,
- but there is a way for functions with short certificates.
Certificate Structure
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
4 / 35
Function
f : [q]n ⊇ D → {0, 1}
For x ∈ f −1(1), write out:
Mx =
- S ⊆ [n] | xS is enough to deduce f(x) = 1
- .
The set of all Mx is the certificate structure of f. (Interested in inclusion-wise minimal Mx only.)
Example
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
5 / 35
Element Distinctness Problem Function f : [q]n → {0, 1}: there are two equal elements.
1147 1417 1471
∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
- ∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
- ∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
- 4117
4171 4711
∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
- ∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
- ∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
Another Example
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
6 / 35
Collision Problem Distinguish between two cases: Negative: each symbol in the input string is unique; or Positive: each symbol has exactly two appearances. E.g., negative input: 2746 and three variants of positive inputs:
1144 1414 1441
∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
- ∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
- ∅
- 1
- ❏
❏ ❏ ❏ ❏ 2 ✴ ✴
3
- ✎✎
4
- t
t t t t
- ✴
✴
- ❏
❏ ❏ ❏ ❏
- ✕✕
- ▲
▲ ▲ ▲ ▲ ♣♣♣♣♣♣
- ❇
❇ ❇
- ✜✜
- ❁
❁ ❁ rrrrr
- ✮
✮ t t t t t
- ✎✎
- ✎✎
✮ ✮
- ❇
❇ ❇
- t
t t t t t t t t t
- ❁
❁ ❁
- ▲
▲ ▲ ▲ ▲
- ✎
✎ rrrrr
- ✜✜
- ❏
❏ ❏ ❏ ❏
- ✴✴
♣♣♣♣♣♣
- ✕✕
✴ ✴ ❏ ❏ ❏ ❏ ❏
Idea
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
7 / 35
How do we ensure the feasibility condition?
- j:xj=yj
Xj[ [x, y] ] = 1
whenever f(x) = f(y); Element distinctness on positive input x = 122.
- ❄
❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
Idea
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
7 / 35
How do we ensure the feasibility condition?
- j:xj=yj
Xj[ [x, y] ] = 1
whenever f(x) = f(y); Element distinctness on positive input x = 122. Define flow pe(x) of value 1 from ∅ to Mx.
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧
- ⑧
⑧ ⑧ ⑧ ⑧
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
Idea
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
7 / 35
How do we ensure the feasibility condition?
- j:xj=yj
Xj[ [x, y] ] = 1
whenever f(x) = f(y); Element distinctness on positive input x = 122.
y = 456 y = 123
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧
- ⑧
⑧ ⑧ ⑧ ⑧
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧
- ⑧
⑧ ⑧ ⑧ ⑧
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
Idea
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
7 / 35
How do we ensure the feasibility condition?
- j:xj=yj
Xj[ [x, y] ] = 1
whenever f(x) = f(y); Element distinctness on positive input x = 122.
In all cases, the value of the cut is 1! y = 456 y = 123
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧
- ⑧
⑧ ⑧ ⑧ ⑧
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧
- ⑧
⑧ ⑧ ⑧ ⑧
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
Construction
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
8 / 35
For each arc e from S to S ∪ {j}, we define a block-diagonal matrix
Xe
j =
- α
Yα,
where the sum is over all assignments α on S. Each Yα is defined as ψψ∗, where (we is the weight of e):
ψ[ [z] ] = pe(z)/√we, f(z) = 1, and z satisfies α; √we, f(z) = 0, and z satisfies α; 0,
- therwise.
Finally, we define
Xj =
- e loads j
Xe
j .
Feasibility
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
9 / 35
- j:xj=yj
Xj[ [x, y] ] = 1
whenever f(x) = f(y)
- Claim. Left-hand side is the value of the cut, and Xj 0.
Xj =
- e loads j
Xe
j ,
Xe
j =
- α
Yα, Yα = ψψ∗ ψ[ [z] ] = pe(z)/√we, f(z) = 1, and z satisfies α; √we, f(z) = 0, and z satisfies α; 0,
- therwise.
Objective value
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
10 / 35
minimise
max
z
- j∈[n]
Xj[ [z, z] ]
- Claim. The objective value is
- j∈[n]
Xj[ [z, z] ] =
- e we,
if f(z) = 0;
- e
pe(z)2 we ,
if f(z) = 1.
Xj =
- e loads j
Xe
j ,
Xe
j =
- α
Yα, Yα = ψψ∗ ψ[ [z] ] = pe(z)/√we, f(z) = 1, and z satisfies α; √we, f(z) = 0, and z satisfies α; 0,
- therwise.
Summary
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
11 / 35
- First, for each arc e from S to S ∪ {j},
define its weight we.
- ❄
❄ ❄ ❄ ❄ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
∅ 1 2 3
Summary
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
11 / 35
- First, for each arc e from S to S ∪ {j},
define its weight we.
- Next, for each Mx in the certificate structure,
define flow pe(x) of value 1 from ∅ to Mx.
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧
- ⑧
⑧ ⑧ ⑧ ⑧
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
Summary
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
11 / 35
- First, for each arc e from S to S ∪ {j},
define its weight we.
- Next, for each Mx in the certificate structure,
define flow pe(x) of value 1 from ∅ to Mx. The complexity of the learning graph is
max
- e
we, max
x∈f−1(1)
pe(x)2 we
- .
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧
- ⑧
⑧ ⑧ ⑧ ⑧
- ❄
❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ⑧
⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄
- ∅
1 2 3
Example: OR function
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
12 / 35
- For each arc from ∅ to {j}, its weight is we =
1 √n.
- ···
- ❖❖❖❖❖❖❖❖❖❖
❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
∅ 1 2 n
Example: OR function
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
12 / 35
- For each arc from ∅ to {j}, its weight is we =
1 √n.
- For each Mx, the flow goes to a ∈ Mx.
- ···
- ❖❖❖❖❖❖❖❖❖❖
- ❄
❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
∅ 1 2 n
Example: OR function
Learning graphs Dual Adversary Certificate Structure Examples Idea Construction Feasibility Objective value Summary OR function Symmetry Element Distinctness Triangle Detection
12 / 35
- For each arc from ∅ to {j}, its weight is we =
1 √n.
- For each Mx, the flow goes to a ∈ Mx.
The complexity of the learning graph is
max
- e
we, max
x∈f−1(1)
pe(x)2 we
- = max
- n · 1
√n, 1 1/√n
- = √n.
- ···
- ❖❖❖❖❖❖❖❖❖❖
- ❄
❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
∅ 1 2 n
Symmetry
Learning graphs Symmetry Alternative Description Transitions Theorem OR function Element Distinctness Triangle Detection
13 / 35
Alternative Description
Learning graphs Symmetry Alternative Description Transitions Theorem OR function Element Distinctness Triangle Detection
14 / 35
- Randomized procedure for loading values of variables.
- For each positive input: the goal is to load a 1-certificate.
For OR function: (x is a positive input, and {a} is a 1-certificate) I: Load a
- We start in the empty set ∅.
- We divide in a number of stages.
- On each stage we load a number of variables: a transition.
- Length of the transition: number of loaded variables.
Transitions
Learning graphs Symmetry Alternative Description Transitions Theorem OR function Element Distinctness Triangle Detection
15 / 35
I: Load a
- Define the set of transitions as the union over all inputs:
I: From ∅ to {j} for all j ∈ [n]
- ···
- ❖❖❖❖❖❖❖❖❖❖
❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
∅ 1 2 n
Theorem
Learning graphs Symmetry Alternative Description Transitions Theorem OR function Element Distinctness Triangle Detection
16 / 35
Symmetry Assumption:
- On each stage, the length of each transition is the same.
- On each stage, the number of taken transitions is the same for
all inputs, all taken with the same probability. Then, there exists a learning graph with complexity
- i
Li
- Ti,
where Length
Li:
Number of variables loaded on the stage i Speciality
Ti:
- Number of transitions
- n the stage i
- /
- Number of transitions
used for one input
OR function
Learning graphs Symmetry Alternative Description Transitions Theorem OR function Element Distinctness Triangle Detection
17 / 35
Symmetry Assumption:
- On each stage, the length of each transition is the same.
- On each stage, the number of taken transitions is the same for
all inputs, all taken with the same probability.
- ···
- ❖❖❖❖❖❖❖❖❖❖
❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
∅ 1 2 n
- ···
- ❖❖❖❖❖❖❖❖❖❖
- ❄
❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
∅ 1 2 n
Transitions Used Length Speciality I: From ∅ to {j}
j = a 1 n
Complexity:
i Li
√Ti = √n.
Element Distinctness
Learning graphs Symmetry Element Distinctness Formulation Na¨ ıve learning graph Learning graph Idea More generality Triangle Detection
18 / 35
Formulation
Learning graphs Symmetry Element Distinctness Formulation Na¨ ıve learning graph Learning graph Idea More generality Triangle Detection
19 / 35
Given x1, . . . , xn ∈ [q], detect whether there exist a = b such that xa = xb. Certificate: {a, b}. Goal: To load two specific elements a and b.
Na¨ ıve learning graph
Learning graphs Symmetry Element Distinctness Formulation Na¨ ıve learning graph Learning graph Idea More generality Triangle Detection
20 / 35
I: Load a II: Load b Transitions Used Length Speciality I: From ∅ to {i}
i = a 1 n
II: From {i} to {i, j}
i = a, j = b 1 n2
Complexity:
i Li
√Ti = n.
Na¨ ıve learning graph
Learning graphs Symmetry Element Distinctness Formulation Na¨ ıve learning graph Learning graph Idea More generality Triangle Detection
20 / 35
Transitions Used Length Speciality I: From ∅ to {i}
i = a 1 n
II: From {i} to {i, j}
i = a, j = b 1 n2
The second stage is a bottleneck. Can we improve length? Can we improve speciality?
Learning graph
Learning graphs Symmetry Element Distinctness Formulation Na¨ ıve learning graph Learning graph Idea More generality Triangle Detection
21 / 35
I: Load r elements not from {a, b} II: Load a III: Load b Transitions Used Length Speciality I: From ∅ to S of r elements
a, b / ∈ S r 1
II: From S to S ∪{j} for |S| =
r and j / ∈ S a, b / ∈ S, j = a
1
n
III: From S to S ∪{j} for |S| =
r + 1 and j / ∈ S a ∈ S, j = b
1
n2/r
Complexity:
- i
Li
- Ti = O
- r + √n + n/√r
- = O(n2/3)
when r = n2/3.
Idea
Learning graphs Symmetry Element Distinctness Formulation Na¨ ıve learning graph Learning graph Idea More generality Triangle Detection
22 / 35
I: Load r elements not from {a, b} II: Load a III: Load b Main idea: Before loading b, a is hidden among the r previously loaded elements. Where does a man hide a leaf? In the forest. But what does he do if there is no forest?.. He grows a forest to hide it in. Gilbert Keith Chesterton
More generality
Learning graphs Symmetry Element Distinctness Formulation Na¨ ıve learning graph Learning graph Idea More generality Triangle Detection
23 / 35
A similar algorithm solves any problem with 1-certificate complexity
k = O(1).
Let a1, . . . , ak be a 1-certificate. I: Load r elements not from {a1, a2, . . . , ak} II.1: Load a1 . . . II.k: Load ak
- Complexity is O(nk/(k+1)).
Triangle Detection
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
24 / 35
Settings
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
25 / 35
Given xi,j ∈ {0, 1}, with 1 ≤ i < j ≤ n, detect whether there exist 1 ≤ a < b < c ≤ n such that
xa,b = xa,c = xb,c = 1.
NB: the number of input variables is Θ(n2).
- c
- a
- b
- ⑧
⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦ ✎ ✎ ✎ ✎ ✎ ✎ ✎ ✎ ✎ ❄ ❄ ❄ ❄ ❄ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ⑧ ⑧ ⑧ ⑧ ⑧ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴
Settings
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
26 / 35
Given xi,j ∈ {0, 1}, with 1 ≤ i < j ≤ n, detect whether there exist 1 ≤ a < b < c ≤ n such that
xa,b = xa,c = xb,c = 1.
- We can use the learning graph of the last section with
complexity
(n2)3/4 = n3/2.
- But we can do better.
Learning graph
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
27 / 35
- c
- a
- b
- In the beginning nothing is loaded.
Continue as follows...
Learning graph
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
28 / 35
- c
- a
- b
- ❖
❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ❄ ❄ ❄ ❄ ❄ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ I: Take disjoint A, B ⊆ [n] \ {a, b, c} of sizes n4/7 and
n5/7, and load all edges between A and B
Length:
|A||B| = n9/7
Speciality:
1
Complexity:
n9/7
Learning graph
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
29 / 35
- c
- a
- b
- ❖
❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ❄ ❄ ❄ ❄ ❄ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ II: Add a to A and load all edges between a and B Length:
|B| = n5/7
Speciality:
n
Complexity:
n17/14
Learning graph
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
30 / 35
- c
- a
- b
- ❖
❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ❄ ❄ ❄ ❄ ❄ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ♦♦♦♦♦♦♦♦♦ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ III: Add b to B and load all edges between b and A Length:
|A| = n4/7
Speciality:
n2/|A| = n10/7
Complexity:
n9/7
Learning graph
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
31 / 35
- c
- a
- b
- ❖
❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ❄ ❄ ❄ ❄ ❄ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ♦♦♦♦♦♦♦♦♦ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ IV: Load ℓ = n3/7 edges connecting c to vertices in B, but b Length:
ℓ = n3/7
Speciality:
n3/(|A||B|) = n3/(n4/7n5/7) = n12/7
Complexity:
n9/7
Learning graph
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
32 / 35
- c
- a
- b
- ❖
❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ❄ ❄ ❄ ❄ ❄ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ♦♦♦♦♦♦♦♦♦ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ V: Load edge bc Length:
1
Speciality:
n3/|A| = n3/n4/7 = n17/7
Complexity:
n17/14
Learning graph
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
33 / 35
- c
- a
- b
- ❖
❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ❄ ❄ ❄ ❄ ❄ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❖ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ♦♦♦♦♦♦♦♦♦ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ❄ ❄ ❄ ❄ ❄ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ VI: Load edge ac Length:
1
Speciality:
n3/ℓ = n18/7
Complexity:
n9/7
Complexity
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
34 / 35
I: Take disjoint A, B ⊆ [n] \ {a, b, c} of sizes n4/7 and
n5/7 and load all edges between A and B
II: Add a to A and load all edges between a and B III: Add b to B and load all edges between b and A IV: Load ℓ = n3/7 edges connecting c to elements in B, but
b
V: Load edge bc VI: Load edge ac Stage I II III IV V VI Length
n9/7 n5/7 n4/7 n3/7
1 1 Speciality 1
n n10/7 n12/7 n17/7 n18/7
Complexity
n9/7 n17/14 n9/7 n9/7 n17/14 n9/7
Total complexity: O(n9/7).
Learning graphs Symmetry Element Distinctness Triangle Detection Settings Learning graph Complexity
35 / 35