Page 1
Binary Contingency Tables in Theory and Practice
Ivona Bezáková(Rochester Institute of Technology)
Based on joint works with Nayantara Bhatnagar, Alistair Sinclair, Daniel Štefankovič, and Eric Vigoda.
DIMACS Workshop on Markov Chain Monte Carlo: Synthesizing Theory and Practice June 5th, 2007
Page 2
The Voyage of the Beagle
Galápagos archipelago (1835)
Darwin’s Finches
Page 3
© Robert H. Rothman
Darwin’s Finches
Page 4
10
8
Darwin’s Finches
Page 5
Darwin’s Finches
8
96
2378164210
10
9 3 5 7 3 8 10 9 10 8
chance
OR
competitive pressures
?
Page 6
Input:
Sample space: 0/1 tables satisfying the marginals
Goal: count / sample
2
3
21
3
32
5
3 4 2
4
Binary Contingency Tables
marginals(row sums r1, r2, …, rm, column sums c1, c2, …, cn)
Page 7
Input:
Sample space: 0/1 tables satisfying the marginals
Goal: count / sample
Binary Contingency Tables
marginals(row sums r1, r2, …, rm, column sums c1, c2, …, cn)
2
3
21
3
32
5
3 4 2
41111
11
111
1111 1
1 11
Page 8
Different Approaches
Theory (Markov chain Monte Carlo with simulated annealing)
• Jerrum-Sinclair-Vigoda ’01: approximate permanent in O*(n10), yields O*((mn)10) algorithm for m x n binary contingency tables
• Bezáková-Bhatnagar-Vigoda ’06: O*((mn)3(m+n)5)
Practice (sequential importance sampling, Chen-Diaconis-Holmes-Liu ’05)
• Bezáková-Sinclair-Štefankovič-Vigoda ’06: negative example
• Jose Blanchet ’06: SIS works if marginals O(n1/4)
• Bayati-Kim-Saberi ’07: alternative importance sampling method, works if marginals O(n1/4)
Practice (the switching Markov chain, Diaconis-Gangolli ’94)
• Kannan-Tetali-Vempala ’97, Cooper-Dyer-Greenhill ’05: works for regular marginals
Page 9
Different Approaches
Theory (Markov chain Monte Carlo with simulated annealing)
• Jerrum-Sinclair-Vigoda ’01: approximate permanent in O*(n10), yields O*((mn)10) algorithm for m x n binary contingency tables
• Bezáková-Bhatnagar-Vigoda ’06: O*((mn)3(m+n)5)
Practice (sequential importance sampling, Chen-Diaconis-Holmes-Liu ’05)
• Bezáková-Sinclair-Štefankovič-Vigoda ’06: negative example
• Jose Blanchet ’06: SIS works if marginals O(n1/4)
• Bayati-Kim-Saberi ’07: alternative importance sampling method, works if marginals O(n1/4)
Practice (the switching Markov chain, Diaconis-Gangolli ’94)
• Kannan-Tetali-Vempala ’97, Cooper-Dyer-Greenhill ’05: works for regular marginals
Page 10
Permanent: Broder Chain [Broder ’88]
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Perfect matching:
Permanent:
subset of vertex-disjoint edges covering all vertices
number of all perfect matchings
Page 11
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Perfect matching:
Permanent:
subset of vertex-disjoint edges covering all vertices
number of all perfect matchings
Page 12
At a perfect matching:
- remove a random edge
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 13
At a perfect matching:
- remove a random edge
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 14
At a perfect matching:
- remove a random edge
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 15
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 16
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
• if unmatched: match to the other hole
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 17
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
• if unmatched: match to the other hole
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 18
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
• if unmatched: match to the other hole
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 19
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
• if unmatched: match to the other hole
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 20
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
• if unmatched: match to the other hole
• if matched: slide adjacent edge
Permanent: Broder Chain [Broder ’88]
Page 21
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
• if unmatched: match to the other hole
• if matched: slide adjacent edge
Permanent: Broder Chain [Broder ’88]
Page 22
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
• if unmatched: match to the other hole
• if matched: slide adjacent edge
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 23
At a perfect matching:
- remove a random edge
At a near matching:
- choose a random vertex
• if unmatched: match to the other hole
• if matched: slide adjacent edge
What for: uniform sampling of perfect matchings
How: Markov chain on perfect + near-perfect matchings
Permanent: Broder Chain [Broder ’88]
Page 24
Broder Chain
Mixes in polynomial time ? Even if it did…
Page 25
Broder Chain
Mixes in polynomial time ? Even if it did…
1 perfect matching
Page 26
Broder Chain
Mixes in polynomial time ? Even if it did…
1 perfect matching
near matchings≥2(n/4)
Page 27
Broder Chain
Mixes in polynomial time ? Even if it did…
1 perfect matching
near matchings≥2(n/4)
Thm [Jerrum-Sinclair ’89]:Rapid mixing if perfects polynomially related to nears.
Page 28
Jerrum-Sinclair-Vigoda ’01:Change the weight so that perfect matchingstake polynomial fraction.
Simulated Annealing for Permanent
Page 29
Jerrum-Sinclair-Vigoda ’01:
n2+1 regions, very different size
u,v
Change the weight so that perfect matchingstake polynomial fraction.
Originally:
Simulated Annealing for Permanent
Page 30
Jerrum-Sinclair-Vigoda ’01:
n2+1 regions, very different size
u,v
the same
Change the weight so that perfect matchingstake polynomial fraction.
Want:
Simulated Annealing for Permanent
Page 31
Jerrum-Sinclair-Vigoda ’01:
u,v
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
n2+1 regions, very different sizethe same
Change the weight so that perfect matchingstake polynomial fraction.
Simulated Annealing for Permanent
Want:
Page 32
u,v
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
A perfect matching sampled with prob. 1/(n2+1)
Computing ideal weights as hard as original problem ?
Good:
Bad:
Solution: Approximate
Simulated Annealing for Permanent
Page 33
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
G
G
Page 34
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Kn,n
Page 35
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 36
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 37
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 38
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 39
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 40
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 41
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 42
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
Page 43
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate
G
Page 44
Simulated Annealing for Permanent
Ideal weights(for a matching with holes u,v):
(# perfects)
(# nears with holes u,v)
Kn,n G
Unordered state Ordered state
(EASY) (DIFFICULT)
Solution: Approximate λλλλ = 1 … ~0
1
Page 45
Simulated Annealing for Permanent
Ideal weights(# perfects)
(# nears with holes u,v)
λλλλ = 1 … ~0
1
need to be λλλλ-weighted:
w(u,v) =
λλλλ(M) = λλλλ# λλλλ-edges in M
λλλλ(S) = ∑∑∑∑ λλλλ(M)
where
λλλλ( P P P P )
λλλλ( N N N N (u,v) )
M in S
Page 46
Simulated Annealing for Permanent
λλλλ = 1
1
λλλλ( P P P P )
λλλλ( N N N N (u,v) )w(u,v) =
Initially, λλλλ = 1. Thus w(u,v) = n!/(n-1)! = n.
Algorithm (sketch):
Later, have approx. of w(u,v). Run chain to improve the approx. Decrease λλλλ (until ~0).
(Improved approx. of old λ = starting approx. of new λ)
*
Thm [Jerrum-Sinclair-Vigoda ’01]: Weighted Broder chain mixes if w(u,v) approximated within a constant factor.
Page 47
Simulated Annealing for Permanent
λλλλ = 0.7
1
λλλλ( P P P P )
λλλλ( N N N N (u,v) )w(u,v) =
Initially, λλλλ = 1. Thus w(u,v) = n!/(n-1)! = n.
Algorithm (sketch):
Later, have approx. of w(u,v). Run chain to improve the approx. Decrease λλλλ (until ~0).
(Improved approx. of old λ = starting approx. of new λ)
4-apx
*
Thm [Jerrum-Sinclair-Vigoda ’01]: Weighted Broder chain mixes if w(u,v) approximated within a constant factor.
Page 48
Simulated Annealing for Permanent
λλλλ = 0.7
1
λλλλ( P P P P )
λλλλ( N N N N (u,v) )w(u,v) =
Initially, λλλλ = 1. Thus w(u,v) = n!/(n-1)! = n.
Thm [Jerrum-Sinclair-Vigoda ’01]: Weighted Broder chain mixes if w(u,v) approximated within a constant factor.
Algorithm (sketch):
Later, have approx. of w(u,v). Run chain to improve the approx. Decrease λλλλ (until ~0).
(Improved approx. of old λ = starting approx. of new λ)
4-apx2
*
Page 49
Simulated Annealing for Permanent
λλλλ = 0.7 0.6
1
λλλλ( P P P P )
λλλλ( N N N N (u,v) )w(u,v) =
Initially, λλλλ = 1. Thus w(u,v) = n!/(n-1)! = n.
Algorithm (sketch):
Later, have approx. of w(u,v). Run chain to improve the approx. Decrease λλλλ (until ~0).
(Improved approx. of old λ = starting approx. of new λ)
4-apx2 = 4-apx for
*
Thm [Jerrum-Sinclair-Vigoda ’01]: Weighted Broder chain mixes if w(u,v) approximated within a constant factor.
Page 50
Simulated Annealing for Permanent
λλλλ = 0.7 0.6 …~0
1
λλλλ( P P P P )
λλλλ( N N N N (u,v) )w(u,v) =
Initially, λλλλ = 1. Thus w(u,v) = n!/(n-1)! = n.
Algorithm (sketch):
Later, have approx. of w(u,v). Run chain to improve the approx. Decrease λλλλ (until ~0).
(Improved approx. of old λ = starting approx. of new λ)
4-apx2 = 4-apx for
*
Thm [Jerrum-Sinclair-Vigoda ’01]: Weighted Broder chain mixes if w(u,v) approximated within a constant factor.
Page 51
0 1 0 1
1 1 0 0
1 0 1 0
0 1 0 1
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1 2
2 2 2 2
columns
rows
Page 52
0 1 0 1
1 1 0 0
1 0 1 0
0 1 0 1
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1 2
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
Page 53
0 1 0 1
1 1 0 0
1 0 1 0
0 1 0 1
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1 2
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
Page 54
2 0 1 0 1
1 1 0 0
1 0 1 0
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
1
1
X
XX
X
1
1
Page 55
2 0 1 0 1
1 1 0 0
1 0 1 0
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
1
1
X
XX
X
1
1
Page 56
2 0 1 0 1
1 1 0 0
1 0 1 0
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
1
1
X
XX
X
1
1
Page 57
2 0 1 0 1
1 1 0 0
1 0 1 0
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
1
1
X
XX
X
1
1
Page 58
2 0 1 0 1
1 1 0 0
1 0 0 1
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
0
1
X
XX
X
1
0
Page 59
2 0 1 0 1
1 1 0 0
1 0 0 1
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
0
1
X
XX
X
1
0
Page 60
2 0 1 0 1
1 1 0 0
1 0 0 1
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
0
1
X
XX
X
1
0
Page 61
2 0 1 0 1
1 0 1 0
1 0 0 1
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
2
1
X
XX
X
1
2
Page 62
2 0 1 0 1
1 0 1 0
1 0 0 1
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
2
1
X
XX
X
1
2
Page 63
2 0 1 0 1
1 0 1 0
1 0 0 1
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
2
1
X
XX
X
1
2
Page 64
2 0 1 0 1
1 0 1 0
1 0 0 1
0 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
2
1
X
XX
X
1
2
Page 65
2 0 1 0 1
1 0 1 0
0 0 0 1
1 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
2
1
X
X
X
X
1
2
Page 66
2 0 1 0 1
1 0 1 0
0 0 0 1
1 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
2
1
X
X
X
X
1
2
Page 67
2 0 1 0 1
1 0 1 0
0 1 0 1
1 1 0 0
columns
rows
BCT: Bipartite Graphs with Given Degrees
2
2
2
2
2 3 1 2
2 3 1
2 2 2 2
“Sliding” Markov Chain on perfect and near tables
Perfect: remove a random edge
Near: slide edges or match
Page 68
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
Ideal weights
(# perfects)
(# nears with holes u,v)
Unordered state Ordered state
(EASY) (DIFFICULT)
2 3 1 2
2 2 2 2?
Bezáková-Bhatnagar-Vigoda ’06
Page 69
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
Ideal weights
(# perfects)
(# nears with holes u,v)
Unordered state Ordered state
(EASY) (DIFFICULT)
2 3 1 2
2 2 2 2? on Kn,n
Bezáková-Bhatnagar-Vigoda ’06
Page 70
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
Ideal weights
(# perfects)
(# nears with holes u,v)
Unordered state Ordered state
(EASY) (DIFFICULT)
2 3 1 2
2 2 2 2on Kn,n
2 3 1 2
2 2 2 2on G*
Bezáková-Bhatnagar-Vigoda ’06
Page 71
Simulated Annealing for BCT ?
22 3 1
2 2 2 2 where
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
T in S
λλλλ(T) = λλλλ# λλλλ-edges in T
λλλλ(S) = ∑∑∑∑ λλλλ(T)
Recall that
2 3 1 2
2 2 2 2on Kn,n
2 3 1 2
2 2 2 2on G*
λλλλ = ~0
λλλλ
……………………… 1
Page 72
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ
The catch :
What, if for some u,v, there is no near-table which uses all real edges ? Then,
λλλλ( N N N N (u,v) ) = 0 for λλλλ = 0.
where
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
T in S
λλλλ(T) = λλλλ# λλλλ-edges in T
λλλλ(S) = ∑∑∑∑ λλλλ(T)
Recall that
Page 73
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
G*
Page 74
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
G*
Page 75
Corollary: There exists a (u,v)-near-table similar to G*.
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
a near-table T
Page 76
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G*
Page 77
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 78
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 79
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 80
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 81
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 82
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 83
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 84
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 85
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 86
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 87
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 88
Simulated Annealing for BCT ?
22 3 1
2 2 2 2
λλλλ w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall that
Thm [Bezáková-Bhatnagar-Vigoda ’06]:
There exists a graph G* with given degree sequence s.t. between any two vertices there exists an “alternating”path of length ≤≤≤≤ 5.
Corollary: λλλλ( N N N N (u,v) ) “easy” to compute for λλλλ = ~0.
G* Kn,n
Page 89
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 90
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 91
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 92
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 93
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 94
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 95
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 96
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 97
Simulated Annealing for BCT ?
w(u,v) = λλλλ( P P P P )
λλλλ( N N N N (u,v) )
Recall thatH Kn,n
22 3 1
2 2 2 2
Thm:
It is possible to sample/count bipartite graphs of given degree sequence (which are subgraphs of a given graph H) in time O*((nm)3(n+m)5).
Page 98
Different Approaches
Theory (Markov chain Monte Carlo with simulated annealing)
• Jerrum-Sinclair-Vigoda ’01: approximate permanent in O*(n10), yields O*((mn)10) algorithm for m x n binary contingency tables
• Bezáková-Bhatnagar-Vigoda ’06: O*((mn)3(m+n)5)
Practice (sequential importance sampling, Chen-Diaconis-Holmes-Liu ’05)
• Bezáková-Sinclair-Štefankovič-Vigoda ’06: negative example
• Jose Blanchet ’06: SIS works if marginals O(n1/4)
• Bayati-Kim-Saberi ’07: alternative importance sampling method, works if marginals O(n1/4)
Practice (the switching Markov chain, Diaconis-Gangolli ’94)
• Kannan-Tetali-Vempala ’97, Cooper-Dyer-Greenhill ’05: works for regular marginals
Page 99
Importance Sampling for counting problems
x
with positive probability σσσσ(x)>0
Probability distribution σσσσon the points + ♦
♦
Random variable ηηηη(s) =1/σσσσ(s)
0
if s in the set
if s is ♦
Unbiased estimator
E[ηηηη] = ∑∑∑∑ σσσσ(x).1/σσσσ(x) = size of the set
Page 100
2
3
21
3
32
5
3 4 2
4
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
[Chen-Diaconis-Holmes-Liu ’05]
Sequential Importance Sampling for BCT
Page 101
2
3
22
3
12
5
4 3 3
4
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 102
2
3
22
3
12
5
4 3 3
4
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 103
2
3
3
5
4
4
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 104
2
3
3
5
4
4assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
∏∏∏∏ ri/(n-ri)
where product ranges over i: rows with assignment 1
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 105
1
2
2
5
4
3assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3
∏∏∏∏ ri/(n-ri)
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 106
1
2
2
5
4
3assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3
∏∏∏∏ ri/(n-ri)
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 107
0
1
2
4
4
3assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3
∏∏∏∏ ri/(n-ri)
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 108
4
assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3
∏∏∏∏ ri/(n-ri)
0
1
2
4
3
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 109
0
1
1
3
4
2assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 2
∏∏∏∏ ri/(n-ri)
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 110
4
assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 2
∏∏∏∏ ri/(n-ri)
0
1
1
3
2
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 111
0
1
1
2
4
1assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22
∏∏∏∏ ri/(n-ri)
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 112
4
assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22
∏∏∏∏ ri/(n-ri)
0
1
1
2
1
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 113
0
1
0
1
4
1assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22 2
∏∏∏∏ ri/(n-ri)
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 114
4
assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22 2
∏∏∏∏ ri/(n-ri)
0
1
0
1
1
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 115
0
1
0
0
4
0assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22 2 1
∏∏∏∏ ri/(n-ri)
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 116
4
assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22 2 1
∏∏∏∏ ri/(n-ri)
0
1
0
0
0
Sequential Importance Sampling for BCT
[Chen-Diaconis-Holmes-Liu ’05]
Page 117
Sequential Importance Sampling for BCT
4
assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22 2 1
∏∏∏∏ ri/(n-ri)
0
0
0
0
0
[Chen-Diaconis-Holmes-Liu ’05]
Page 118
Sequential Importance Sampling for BCT
4
assign the column with probability proportional to
a specific σσσσ
• fill table column-by-column
• assign each column ignoring other column sums
where product ranges over i: rows with assignment 1 3 3 22 2 1
∏∏∏∏ ri/(n-ri)
2
3
3
5
4
[Chen-Diaconis-Holmes-Liu ’05]
Page 119
A Counterexample for SIS
1 1 1 11 1 γγγγm
1
ββββm
1
1
1
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ ≠≠≠≠ γγγγ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Page 120
A Counterexample for SIS
1 1 1 11 1
1
ββββm
1
1
1
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Simpler example
1
Page 121
A Counterexample for SIS
1 1 1 11 1
1
ββββm
1
1
1Intuition
1
Random table:
- randomly choose ββββm ones
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Page 122
A Counterexample for SIS
1 1 1 11 1
1
ββββm
1
1
1Intuition
1
Random table:
- randomly choose ββββm ones
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Page 123
A Counterexample for SIS
1 1 1 11 1
1
ββββm
1
1
1Intuition
1
Random table:
- randomly choose ββββm ones
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Page 124
A Counterexample for SIS
1 1 1 11 1
1
ββββm
1
1
1Intuition
1
Random table:
- randomly choose ββββm ones
ααααm
Expect: αβαβαβαβm ones
SIS: asymptotically fewer
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Page 125
A Counterexample for SIS
Intuition
Expect: αβαβαβαβm ones
SIS: asymptotically fewer
all tables
tables with ~αβαβαβαβm ones
tables seen by SIS whp
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Page 126
A Counterexample for SIS
1 1 1 11 1 γγγγm
1
ββββm
1
1
1
Thm [Bezáková-Sinclair-Štefankovič-Vigoda ‘06]:
For any ββββ ≠≠≠≠ γγγγ, SIS output after any subexponentialnumber of trials is off by an exponential factor(with high probability).
Result holds for any order of rows/columns.
Alternating rows and columns?
Page 127
50 100 150 200 250 300 350
201
202
203
204
205
206
SIS – Experimental Results
Bad example, m = 300, ββββ = 0.6, γγγγ = 0.7
log-scaleof SIS estimate
number SIS steps
correct
Page 128
• Practical algorithm ?
• Detecting convergence of SIS
• SIS for larger marginals ?
• The Switching Markov chain of Diaconis-Gangolli ?
• General contingency tables
• Cell-bounded tables
• Counting non-bipartite graphs with a given degree sequence
Open Problems