14th Athens Colloquium on Algorithms and Complexity (ACAC19)
1. Practical volume estimation by a new annealing
schedule for cooling convex bodies
A.Chalkis, I.Z.Emiris, V. Fisikopoulos
Dept. of Informatics & Telecommunications, University of Athens
3. Volume computation
Given P a convex polytope in Rd compute the volume of P.
H-polytope: P = {x | Ax ≤ b, A ∈ Rq×d , b ∈ Rq}.
4. Volume computation
Given P a convex polytope in Rd compute the volume of P.
H-polytope: P = {x | Ax ≤ b, A ∈ Rq×d , b ∈ Rq}.
P is given as a set of linear inequalities.
5. Our setting
Given P a convex polytope in Rd compute the volume of P.
V-polytope: P is the convex hull of a set of points in Rd .
6. Our setting
Given P a convex polytope in Rd compute the volume of P.
Zonotope: P is the Minkowski sum of k d-dimensional
segments.
A zonotope is a centrally symmetric convex body.
9. Complexity
Computing the exact volume of P,
is #P-hard for all the representations [DyerFrieze’88]
is open if both H- and V- representations available
10. Complexity
Computing the exact volume of P,
is #P-hard for all the representations [DyerFrieze’88]
is open if both H- and V- representations available
is APX-hard (oracle model) [Elekes’86]
11. Our goal
A new practical volume estimation for V-polytopes and
zonotopes.
12. Our goal
A new practical volume estimation for V-polytopes and
zonotopes.
Why:
Volume computation of such polytopes appear in engineering
and data science.
Current state-of-the-art software can not scale beyond, say
d ≥ 15.
13. Randomized algorithms
Theorem
For any convex body K and any 0 ≤ , δ ≤ 1, there is a
randomized algorithm which computes an estimate V s.t. with
probability 1 − δ we have (1 − )vol(K) ≤ V ≤ (1 + )vol(K), and
the number of oracle calls is poly(d, 1/ , log(1/δ)).
Using randomness, we can go from an exponential
approximation to an arbitrarily small one.
14. Multiphase Monte Carlo
Let Cm ⊆ · · · ⊆ C1 a sequence of concentric balls intersecting
P, s.t. Cm ⊆ P ⊆ C1.
15. Multiphase Monte Carlo
Let Cm ⊆ · · · ⊆ C1 a sequence of concentric balls intersecting
P, s.t. Cm ⊆ P ⊆ C1.
vol(P) = vol(Cm) vol(Cm−1∩P)
vol(Cm∩P)
vol(Cm−2∩P)
vol(Cm−1∩P)
· · · vol(C1∩P)
vol(C2∩P)
16. Multiphase Monte Carlo
Let Cm ⊆ · · · ⊆ C1 a sequence of concentric balls intersecting
P, s.t. Cm ⊆ P ⊆ C1.
vol(P) = vol(Cm) vol(Cm−1∩P)
vol(Cm∩P)
vol(Cm−2∩P)
vol(Cm−1∩P)
· · · vol(C1∩P)
vol(C2∩P)
Compute: vol(Cm) → closed formula.
17. Multiphase Monte Carlo
Let Cm ⊆ · · · ⊆ C1 a sequence of concentric balls intersecting
P, s.t. Cm ⊆ P ⊆ C1.
vol(P) = vol(Cm) vol(Cm−1∩P)
vol(Cm∩P)
vol(Cm−2∩P)
vol(Cm−1∩P)
· · · vol(C1∩P)
vol(C2∩P)
Compute: vol(Cm) → closed formula.
Compute ratios: ri = vol(Ci ∩P)
vol(Ci+1∩P)
19. Ratio estimation
Estimate ri within some target relative error .
Sample N uniform points from Pi = Ci ∩ P and count points
in Pi+1.
20. Ratio estimation
Estimate ri within some target relative error .
Sample N uniform points from Pi = Ci ∩ P and count points
in Pi+1.
Keep each ratio bounded, then O(1/ 2) points suffices.
21. Ratio estimation
Estimate ri within some target relative error .
Sample N uniform points from Pi = Ci ∩ P and count points
in Pi+1.
Keep each ratio bounded, then O(1/ 2) points suffices.
#phases (or ratios) m = d lg d if P is well rounded.
23. Sampling
To sample uniformly distributed points from Pi we use
geometric random walks (Markov chain).
A geometric r.w. starts at p0 ∈ P and at each step i, moves to
a ”neighboring” point pi+1 that depends only on pi .
Problem (set the walk length):
Starting from a uniform point pi , how many steps do we have
to perform until we get a new uniform point? (Mixing time).
24. Sampling
To sample uniformly distributed points from Pi we use
geometric random walks (Markov chain).
A geometric r.w. starts at p0 ∈ P and at each step i, moves to
a ”neighboring” point pi+1 that depends only on pi .
Problem (set the walk length):
Starting from a uniform point pi , how many steps do we have
to perform until we get a new uniform point? (Mixing time).
Random walk Mixing time cost per step cost per step
(walk length) H-rep V- & Z-rep
Hit-and-Run O∗(d3) O(md) 2 LPs
Coordinate Hit-and-Run ?? O(m) 2 LPs
Ball walk O∗(d3) O(md) 1 LP
Vaidya walk O∗(m1/2d3/2) O(md2) –
Riemannian HMC O∗(md2/3) O(md2) –
Billiard walk ?? O(ρmd) ρ LPs
25. Sampling
Random walk Mixing time cost per step cost per step
(number of steps) H-rep V- & Z-rep
Coordinate Hit-and-Run ?? O(m) 2 LPs
Billiard walk ?? O(ρmd) ρ LPs
Coordinate Hit-and-Run:
Is the main paradigm in applications and software.
In practice converges to uniform distribution in O(d2) steps
[Cousins, Vempala’17].
26. Sampling
Random walk Mixing time cost per step cost per step
(number of steps) H-rep V- & Z-rep
Coordinate Hit-and-Run ?? O(m) 2 LPs
Billiard walk ?? O(ρmd) ρ LPs
Coordinate Hit-and-Run:
Is the main paradigm in applications and software.
In practice converges to uniform distribution in O(d2) steps
[Cousins, Vempala’17].
Billiard walk:
Converges faster to uniform distribution than Hit-and-Run in
practice [Polyak’14].
For V-polytopes and zonotopes has comparable cost per step
with Coordinate Hit-and-Run.
27. Billiard walk
Set the walk length equal to 1.
Sample 1000 points from the 1000-dimensional unit-cube and
project the points to the plane.
Left: Billiard walk. Right: Hit-and-Run
28. State-of-the-art
Authors-Year Complexity Algorithm
(oracle calls)
[Dyer, Frieze, Kannan’91] O∗(d23) Sequence of balls + grid walk
[Kannan, Lovasz, Simonovits’97] O∗(d5) Sequence of balls + ball walk
[Lovasz, Vempala’03] O∗(d4) Exponential dist. + hit-and-run
[Cousins, Vempala’15] O∗(d3) Spherical Gaussians + ball walk
29. State-of-the-art
Authors-Year Complexity Algorithm
(oracle calls)
[Dyer, Frieze, Kannan’91] O∗(d23) Sequence of balls + grid walk
[Kannan, Lovasz, Simonovits’97] O∗(d5) Sequence of balls + ball walk
[Lovasz, Vempala’03] O∗(d4) Exponential dist. + hit-and-run
[Cousins, Vempala’15] O∗(d3) Spherical Gaussians + ball walk
Practical methods:
Follow theory but make practical adjustments (experimental).
30. State-of-the-art
Authors-Year Complexity Algorithm
(oracle calls)
[Dyer, Frieze, Kannan’91] O∗(d23) Sequence of balls + grid walk
[Kannan, Lovasz, Simonovits’97] O∗(d5) Sequence of balls + ball walk
[Lovasz, Vempala’03] O∗(d4) Exponential dist. + hit-and-run
[Cousins, Vempala’15] O∗(d3) Spherical Gaussians + ball walk
Practical methods:
Follow theory but make practical adjustments (experimental).
[Emiris, F’14] Sequence of balls + coordinate hit-and-run.
31. State-of-the-art
Authors-Year Complexity Algorithm
(oracle calls)
[Dyer, Frieze, Kannan’91] O∗(d23) Sequence of balls + grid walk
[Kannan, Lovasz, Simonovits’97] O∗(d5) Sequence of balls + ball walk
[Lovasz, Vempala’03] O∗(d4) Exponential dist. + hit-and-run
[Cousins, Vempala’15] O∗(d3) Spherical Gaussians + ball walk
Practical methods:
Follow theory but make practical adjustments (experimental).
[Emiris, F’14] Sequence of balls + coordinate hit-and-run.
[Cousins, Vempala’16] Spherical Gaussians + coordinate
hit-and-run
33. Limitations
Limitations of existing practical methods:
Efficient only for H-polytopes (scale up-to few hundred dims in
hrs)
For V-polytopes or zonotopes:
Both of them request an inscribed ball (ideally the maximum)
C ⊆ P.
The number of total steps is strongly determined by the radius
of C.
[Cousins, Vempala’16] needs a bound on the number of facets.
34. Our contributions
Multiphase Monte Carlo: We allow any convex body C (that
”fits well” to P and is ”easy” to sample from) besides ball to
construct the sequence.
35. Our contributions
Multiphase Monte Carlo: We allow any convex body C (that
”fits well” to P and is ”easy” to sample from) besides ball to
construct the sequence.
Sampling: Billiard walk to V-polytopes and zonotopes.
36. Our contributions
Multiphase Monte Carlo: We allow any convex body C (that
”fits well” to P and is ”easy” to sample from) besides ball to
construct the sequence.
Sampling: Billiard walk to V-polytopes and zonotopes.
A new simulated annealing method to construct a sparser
sequence of bodies.
Sequence by [L.S.’97] (left) and by annealing schedule (right).
37. Our contributions
Multiphase Monte Carlo: We allow any convex body C (that
”fits well” to P and is ”easy” to sample from) besides ball to
construct the sequence.
Sampling: Billiard walk to V-polytopes and zonotopes.
A new simulated annealing method to construct a sparser
sequence of bodies.
Sequence by [L.S.’97] (left) and by annealing schedule (right).
Our method can be easily extended for any polytope P that is
given as a projection of a polytope Q.
38. Annealing Schedule
Inputs: Polytope P, body C, cooling parameters r, δ > 0.
Output: A sequence of scaled copies of C, Cm ⊆ · · · ⊆ C1 s.t.
vol(Pi+1)/vol(Pi ) ∈ [r, r + δ] with high probability
where Pi = Ci ∩ P, i = 1, . . . , m and P0 = P.
39. Statistical tests
for the ratio of volumes of convex bodies
Given convex bodies Pi ⊇ Pi+1, we define two statistical tests:
testL(Pi , Pi+1, r, δ): testR(Pi , Pi+1, r, δ):
H0 : vol(Pi+1)/vol(Pi ) ≥ r + δ H0 : vol(Pi+1)/vol(Pi ) ≤ r
Successful if we reject H0 Successful if we reject H0
If both testL and testR are successful then
ri = vol(Pi+1)/vol(Pi ) ∈ [r, r + δ], with high probability.
40. Annealing Schedule
How we compute the sequence of bodies
1. Compute the body with smallest
volume in the sequence, C
(C = Cm at termination).
41. Annealing Schedule
How we compute the sequence of bodies
1. Compute the body with smallest
volume in the sequence, C
(C = Cm at termination).
2. P0 = P, i = 0
42. Annealing Schedule
How we compute the sequence of bodies
1. Compute the body with smallest
volume in the sequence, C
(C = Cm at termination).
2. P0 = P, i = 0
3. if vol(C ∩ P)/vol(Pi ) ≥ r set m = i + 1, Cm = C stop
otherwise construct Pi+1 s.t. vol(Pi+1)/vol(Pi ) ∈ [r, r + δ].
Check stopping criterion Construct Pi+1
43. Annealing Schedule
How we compute the sequence of bodies
1. Compute the body with smallest
volume in the sequence, C
(C = Cm at termination).
2. P0 = P, i = 0
3. if vol(C ∩ P)/vol(Pi ) ≥ r set m = i + 1, Cm = C stop
otherwise construct Pi+1 s.t. vol(Pi+1)/vol(Pi ) ∈ [r, r + δ].
Check stopping criterion Construct Pi+1
4. i = i + 1, return to step 3.
44. Bound #phases
The annealing schedule terminates with constant probability.
#phases m = O log(vol(P)/vol(C ∩ P)) .
If the body we use in MMC is a ”good fit” to P the
vol(C ∩ P) increases and the number of phases m decreases.
45. Zonotopes
Number of phases
We use the generators of the zonotope P in order to define a
centrally symmetric H-polytope that is a ”good fit” to P.
In both figures vol(C ∩ P)/vol(C ) ∈ [0.8, 0.85].
47. Zonotopes
Number of phases
Two types of bodies: balls (left) symmetric H-polytopes (right)
For low order (i.e. #generators/d) zonotopes, the number of
bodies is ≤ 3 for d ≤ 100, smaller than the case of using balls.
48. Zonotopes
Number of phases
Two types of bodies: balls (left) symmetric H-polytopes (right)
For low order (i.e. #generators/d) zonotopes, the number of
bodies is ≤ 3 for d ≤ 100, smaller than the case of using balls.
The number of bodies right grows as a piecewise constant
function of d.
49. Complexity for zonotopes
We test the method for 3 different random
zonotope-generators.
Order k/d = 2.
for d = 100 takes ≤ 1hr.
50. Complexity for V-polytopes
We test the method for 2 different random
V-polytope-generators.
The method performs O∗(d) oracle calls for random
V-polytopes while the best theoretical complexity is O∗(d3)
oracle calls.
for d = 100 takes ≤ 1hr.
51. Supported by Google Summer of Code 2018 and 2019.
The implementations in C++ are included to the R package
volesti1 in CRAN.
More development branches in Github2.
1
https://cran.r-project.org/web/packages/volesti/index.html
2
https://github.com/GeomScale/volume_approximation