1. Constructing Polytopes via a Vertex Oracle
Vissarion Fisikopoulos
Joint work with I.Z. Emiris, C. Konaxis (now U. Crete) and
L. Pe˜naranda (now IMPA, Rio)
Department of Informatics, University of Athens
Mittagsseminar, ETH, Zurich, 12.Jul.2012
2. Main actor: resultant polytope
Geometry: Minkowski summands of secondary polytopes, equival.
classes of secondary vertices, generalize Birkhoff polytopes
Motivation: useful to express the solvability of polynomial systems
Applications: discriminant and resultant computation, implicitization
of parametric hypersurfaces
Enneper’s Minimal Surface
3. Existing work
Theory of resultants, secondary polytopes, Cayley trick [GKZ ’94]
TOPCOM [Rambau ’02] computes all vertices of secondary polytope.
[Michiels & Verschelde DCG’99] coarse equivalence classes of
secondary polytope vertices.
[Michiels & Cools DCG’00] decomposition of Σ(A) in Minkoski
summands, including N(R).
Tropical geometry [Sturmfels-Yu ’08]: algorithms for resultant
polytope (GFan library) [Jensen-Yu ’11] and discriminant polytope
(TropLi software) [Rincn ’12].
4. What is a resultant polytope?
Given n + 1 point sets A0, A1, . . . , An ⊂ Zn
A0
A1
a1
a3
a2
a4
5. What is a resultant polytope?
Given n + 1 point sets A0, A1, . . . , An ⊂ Zn
A =
n
i=0(Ai × {ei }) ⊂ Z2n
where ei = (0, . . . , 1, . . . , 0) ⊂ Zn
A
A0
A1
a1
a3
a3, 1
a1, 0
a2
a4
a4, 1
a2, 0
6. What is a resultant polytope?
Given n + 1 point sets A0, A1, . . . , An ⊂ Zn
A =
n
i=0(Ai × {ei }) ⊂ Z2n
where ei = (0, . . . , 1, . . . , 0) ⊂ Zn
Given T a triangulation of conv(A), a cell is a-mixed if it contains 2
vertices from Aj , j = i, and one vertex a ∈ Ai .
A
A0
A1
a1 a2
a3 a4
a3, 1 a4, 1
a1, 0 a2, 0
7. What is a resultant polytope?
Given n + 1 point sets A0, A1, . . . , An ⊂ Zn
A =
n
i=0(Ai × {ei }) ⊂ Z2n
where ei = (0, . . . , 1, . . . , 0) ⊂ Zn
Given T a triangulation of conv(A), a cell is a-mixed if it contains 2
vertices from Aj , j = i, and one vertex a ∈ Ai .
ρT (a) = a−mixed
σ∈T:a∈σ
vol(σ) ∈ N, a ∈ A
ρT = (0, 2, 1, 0)
A
A0
A1
a1 a2
a3 a4
a3, 1 a4, 1
a1, 0 a2, 0
8. What is a resultant polytope?
Given n + 1 point sets A0, A1, . . . , An ⊂ Zn
A =
n
i=0(Ai × {ei }) ⊂ Z2n
where ei = (0, . . . , 1, . . . , 0) ⊂ Zn
Given T a triangulation of conv(A), a cell is a-mixed if it contains 2
vertices from Aj , j = i, and one vertex a ∈ Ai .
ρT (a) = a−mixed
σ∈T:a∈σ
vol(σ) ∈ N, a ∈ A
Resultant polytope N(R) = conv(ρT : T triang. of conv(A))
A N(R)
A0
A1
9. Connection with Algebra
The support of a polynomial is the the set of exponents of its
monomials with non-zero coefficient.
The resultant R is the polynomial in the coefficients of a system of
polynomials which is zero iff the system has a common solution.
The resultant polytope N(R), is the convex hull of the support of R.
A0
A1
N(R) R(a, b, c, d, e) = ad2
b + c2
b2
− 2caeb + a2
e2
f0(x) = ax2
+ b
f1(x) = cx2
+ dx + e
10. Connection with Algebra
The support of a polynomial is the the set of exponents of its
monomials with non-zero coefficient.
The resultant R is the polynomial in the coefficients of a system of
polynomials which is zero iff the system has a common solution.
The resultant polytope N(R), is the convex hull of the support of R.
A0
A1
N(R)
f0(x, y) = ax + by + c
f1(x, y) = dx + ey + f
f2(x, y) = gx + hy + iA2
a b c
d e f
g h i
4-dimensional Birkhoff polytope
R(a, b, c, d, e, f, g, h, i) =
11. Connection with Algebra
The support of a polynomial is the the set of exponents of its
monomials with non-zero coefficient.
The resultant R is the polynomial in the coefficients of a system of
polynomials which is zero iff the system has a common solution.
The resultant polytope N(R), is the convex hull of the support of R.
A0
A1
N(R)
f0(x, y) = axy2
+ x4
y + c
f1(x, y) = dx + ey
f2(x, y) = gx2
+ hy + iA2
NP-hard to compute the resultant
in the general case
12. The idea of the algorithm
Input: A ∈ Z2n
defined by A0, A1, . . . , An ⊂ Zn
Simplistic method:
compute the secondary polytope Σ(A)
many-to-one relation between vertices of Σ(A) and N(R) vertices
Cannot enumerate 1 representative per class by walking on secondary
edges
13. The idea of the algorithm
Input: A ∈ Z2n
defined by A0, A1, . . . , An ⊂ Zn
New Algorithm:
Vertex oracle: given a direction vector compute a vertex of N(R)
Output sensitive: computes only one triangulation of A per N(R)
vertex + one per N(R) facet
Computes projections of N(R) or Σ(A)
14. A basic tool for the oracle:
Regular triangulations of A ⊂ Rd
are obtained by projecting the lower (or
upper) hull of A lifted to Rd+1
via a generic lifting function w ∈ (R|A|
)×
.
w = (2, 1, 4)w = (2, 6, 4)
A
If w is not generic then we construct a regular subdivision.
15. The Vertex (Optimization) Oracle
Input: A ⊂ Z2n
, direction w ∈ (R|A|
)×
Output: vertex ∈ N(R), extremal wrt w
1. use w as a lifting to construct regular subdivision S of A
w
face of Σ(A)
S
16. The Vertex (Optimization) Oracle
Input: A ⊂ Z2n
, direction w ∈ (R|A|
)×
Output: vertex ∈ N(R), extremal wrt w
1. use w as a lifting to construct regular subdivision S of A
2. refine S into triangulation T of A
w
face of Σ(A)
T
T
S
17. The Vertex (Optimization) Oracle
Input: A ⊂ Z2n
, direction w ∈ (R|A|
)×
Output: vertex ∈ N(R), extremal wrt w
1. use w as a lifting to construct regular subdivision S of A
2. refine S into triangulation T of A
3. return ρT ∈ N|A|
N(R)
w
face of Σ(A)
T
T
S
ρT
18. The Vertex (Optimization) Oracle
Input: A ⊂ Z2n
, direction w ∈ (R|A|
)×
Output: vertex ∈ N(R), extremal wrt w
1. use w as a lifting to construct regular subdivision S of A
2. refine S into triangulation T of A
3. return ρT ∈ N|A|
Lemma
Oracle’s output is
always a vertex of the target polytope,
extremal wrt w.
20. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
Q
N(R)
2 kinds of hyperplanes of QH :
legal if it supports facet
⊂ N(R)
illegal otherwise
21. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
N(R)
Q
w
Extending an illegal facet
22. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
Extending an illegal facet
23. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
Validating a legal facet
24. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
Validating a legal facet
25. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
26. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
At any step, Q is an inner
approximation . . .
27. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
Qo
At any step, Q is an inner
approximation . . . from which we
can compute an outer approximation
Qo.
28. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
29. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
30. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
31. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
32. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
33. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
34. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
35. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
36. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
37. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
38. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
39. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
40. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
41. Incremental Algorithm
Input: A
Output: H-rep. QH , V-rep. QV of Q = N(R)
1. initialization step
2. all hyperplanes of QH are illegal
3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
call oracle for w and compute v, QV ← QV ∪ {v}
if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
Q
42. Complexity
Theorem
We compute the Vertex- and Halfspace-representations of N(R), as well
as a triangulation T of N(R), in
O∗
( m5
|vtx(N(R))| · |T|2
),
where m = dim N(R), and |T| the number of full-dim faces of T.
Elements of proof
Computation is done in dimension m = |A| − 2n + 1, N(R) ⊂ R|A|
.
At most ≤ vtx(N(R)) + fct(N(R)) oracle calls (Lem. 9).
Beneath-and-Beyond algorithm for converting V-rep. to H-rep
[Joswig ’02].
43. ResPol package
C++
towards high-dimensional
triangulation [Boissonnat,Devillers,Hornus]
extreme points d [G¨artner] (preprocessing step)
Hashing of determinantal predicates: optimizing sequences of similar
determinants
http://sourceforge.net/projects/respol
48. Ongoing and future work
Extension of hashing determinants to CH computations
(with L.Pe˜naranda) (to appear in ESA’12)
Combinatorial characterization of 4-dimensional resultant polytopes
(with I.Z.Emiris, A.Dickenstein)
Computation of discriminant polytopes
(with I.Z.Emiris, A.Dickenstein)
Membership oracles from vertex (optimization) oracles
(with B.G¨artner)
References
The paper: “An output-sensitive algorithm for computing
projections of resultant polytopes.” in SoCG’12
The code: http://respol.sourceforge.net
49. The end. . .
(figure courtesy of M.Joswig)
Facet and vertex graph of the largest 4-dimensional resultant polytope
Thank You !