![Page 1: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/1.jpg)
An output-sensitive algorithm for computing(projections of) resultant polytopes
Vissarion FisikopoulosJoint work with I.Z. Emiris, C. Konaxis and L. Penaranda
Department of Informatics, University of Athens
SoCG, Chapel Hill, NC, USA, 18.Jun.2012
![Page 2: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/2.jpg)
An interesting class of polytopes: resultant polytopes
I Geometry: Minkowski summands of secondary polytopes,equivalence classes of secondary vertices, generalization of Birkhoffpolytopes
I Motivation: useful to express the solvability of polynomial systemsI Applications: discriminant and resultant computation, implicitization
of parametric hypersurfaces
Enneper’s Minimal Surface
![Page 3: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/3.jpg)
Existing work
I Theory of resultants, secondary polytopes, Cayley trick [GKZ ’94]
I TOPCOM [Rambau ’02] computes all vertices of secondary polytope.
I [Michiels & Verschelde DCG’99] define and enumerate coarseequivalence classes of secondary polytope vertices.
I [Michiels & Cools DCG’00] describe a decomposition of Σ(A) inMinkoski summands, including N(R).
I Tropical geometry [Sturmfels-Yu ’08] leads to algorithms for theresultant polytope (GFan library) [Jensen-Yu ’11] and thediscriminant polytope (TropLi software) [Rincón ’12].
![Page 4: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/4.jpg)
What is a resultant polytope?
I Given n + 1 point sets A0,A1, . . . ,An ⊂ Zn
A0
A1
a1
a3
a2
a4
![Page 5: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/5.jpg)
What is a resultant polytope?
I Given n + 1 point sets A0,A1, . . . ,An ⊂ Zn
I 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
![Page 6: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/6.jpg)
What is a resultant polytope?
I Given n + 1 point sets A0,A1, . . . ,An ⊂ Zn
I A =∪n
i=0(Ai × {ei}) ⊂ Z2n where ei = (0, . . . , 1, . . . , 0) ⊂ Zn
I Given T a triangulation of conv(A), a cell is a-mixed if it is theMinkowski sum of n 1-dimensional segments from Aj, j 6= i, andsome vertex a ∈ Ai.
A
A0
A1
a1 a2
a3 a4
a3, 1 a4, 1
a1, 0 a2, 0
![Page 7: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/7.jpg)
What is a resultant polytope?
I Given n + 1 point sets A0,A1, . . . ,An ⊂ Zn
I A =∪n
i=0(Ai × {ei}) ⊂ Z2n where ei = (0, . . . , 1, . . . , 0) ⊂ Zn
I Given T a triangulation of conv(A), a cell is a-mixed if it is theMinkowski sum of n 1-dimensional segments from Aj, j 6= i, andsome vertex a ∈ Ai.
I ρ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
![Page 8: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/8.jpg)
What is a resultant polytope?
I Given n + 1 point sets A0,A1, . . . ,An ⊂ Zn
I A =∪n
i=0(Ai × {ei}) ⊂ Z2n where ei = (0, . . . , 1, . . . , 0) ⊂ Zn
I Given T a triangulation of conv(A), a cell is a-mixed if it is theMinkowski sum of n 1-dimensional segments from Aj, j 6= i, andsome vertex a ∈ Ai.
I ρT(a) =∑
a−mixedσ∈T:a∈σ
vol(σ) ∈ N, a ∈ A
I Resultant polytope N(R) = conv(ρT : T triang. of conv(A))
A N(R)
A0
A1
![Page 9: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/9.jpg)
Connection with Algebra
I The Newton polytope of f, N(f), is the convex hull of the set ofexponents of its monomials with non-zero coefficient.
I The resultant R is the polynomial in the coefficients of a system ofpolynomials which is zero iff the system has a common solution.
A0
A1
N(R) R(a, b, c, d, e) = ad2b+ c2b2 − 2caeb+ a2e2
f0(x) = ax2 + b
f1(x) = cx2 + dx+ e
![Page 10: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/10.jpg)
Connection with Algebra
I The Newton polytope of f, N(f), is the convex hull of the set ofexponents of its monomials with non-zero coefficient.
I The resultant R is the polynomial in the coefficients of a system ofpolynomials which is zero iff the system has a common solution.
A0
A1
N(R)
f0(x, y) = ax+ by + c
f1(x, y) = dx+ ey + f
f2(x, y) = gx+ hy + iA2
a b cd e fg h i
4-dimensional Birkhoff polytope
R(a, b, c, d, e, f, g, h, i) =
![Page 11: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/11.jpg)
Connection with Algebra
I The Newton polytope of f, N(f), is the convex hull of the set ofexponents of its monomials with non-zero coefficient.
I The resultant R is the polynomial in the coefficients of a system ofpolynomials which is zero iff the system has a common solution.
A0
A1
N(R)
f0(x, y) = axy2 + x4y + c
f1(x, y) = dx+ ey
f2(x, y) = gx2 + hy + iA2
NP-hard to compute the resultantin the general case
![Page 12: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/12.jpg)
The idea of the algorithmInput: A ∈ Z2n defined by A0,A1, . . . ,An ⊂ Zn
Simplistic method:I compute the secondary polytope Σ(A)
I many-to-one relation between vertices of Σ(A) and N(R) verticesCannot enumerate 1 representative per class by walking on secondaryedges
![Page 13: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/13.jpg)
The idea of the algorithmInput: A ∈ Z2n defined by A0,A1, . . . ,An ⊂ Zn
New Algorithm:I Vertex oracle: given a direction vector compute a vertex of N(R)I Output sensitive: computes only one triangulation of A per N(R)
vertex + one per N(R) facetI Computes projections of N(R) or Σ(A)
![Page 14: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/14.jpg)
The 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
![Page 15: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/15.jpg)
The 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 A2. refine S into triangulation T of A
w
face of Σ(A)
T
T ′
S
![Page 16: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/16.jpg)
The 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 A2. refine S into triangulation T of A3. return ρT ∈ N|A|
N(R)
w
face of Σ(A)
T
T ′
S
ρT
![Page 17: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/17.jpg)
The 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 A2. refine S into triangulation T of A3. return ρT ∈ N|A|
Oracle property: its output is a vertex of the target polytope (Lem. 5).
![Page 18: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/18.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step
N(R)
Q
Q
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
initialization:I Q ⊂ N(R)I dim(Q)=dim(N(R))
![Page 19: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/19.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal
N(R)
Q
Q
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
2 kinds of hyperplanes of QH :I legal if it supports facet ⊂ N(R)I illegal otherwise
![Page 20: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/20.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Extending an illegal facet
![Page 21: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/21.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Extending an illegal facet
![Page 22: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/22.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Validating a legal facet
![Page 23: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/23.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Validating a legal facet
![Page 24: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/24.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 25: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/25.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
At any step, Q is an innerapproximation . . .
![Page 26: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/26.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
At any step, Q is an innerapproximation . . . from which wecan compute an outer approximationQo.
![Page 27: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/27.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 28: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/28.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 29: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/29.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 30: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/30.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 31: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/31.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 32: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/32.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 33: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/33.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 34: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/34.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 35: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/35.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 36: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/36.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 37: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/37.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 38: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/38.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 39: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/39.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 40: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/40.jpg)
Incremental AlgorithmInput: A
Output: H-rep. QH, V-rep. QV of Q = N(R)
1. initialization step2. all hyperplanes of QH are illegal3. while ∃ illegal hyperplane H ⊂ QH with outer normal w do
I call oracle for w and compute v, QV ← QV ∪ {v}I if v /∈ QV ∩ H then QH ← CH(QV ∪ {v}) else H is legal
N(R)
N(R)
N(R)
Qw
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
Qo
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
N(R)
Q
![Page 41: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/41.jpg)
Complexity
TheoremWe compute the Vertex- and Halfspace-representations of N(R), as wellas 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 proofI Computation is done in dimension m = |A| − 2n + 1.I At most ≤ vtx(N(R)) + fct(N(R)) oracle calls (Lem. 9).I Beneath-and-Beyond algorithm for converting V-rep. to H-rep
[Joswig ’02].
![Page 42: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/42.jpg)
ResPol package
I C++
I CGAL, triangulation [Boissonnat,Devillers,Hornus]extreme points d [Gartner] (preprocessing step)
I Hashing of determinantal predicates: optimizing sequences of similardeterminants
I http://sourceforge.net/projects/respol
I Applications of ResPol on I.Emiris talk this afternoon (CGAL, anOpen Gate to Computational Geometry!)
![Page 43: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/43.jpg)
Output-sensitivity
I oracle calls ≤ vtx(N(R)) + fct(N(R))I output vertices bound polynomially the output triangulation sizeI subexponential runtime wrt to input points (L), output vertices (R)
![Page 44: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/44.jpg)
Hashing and Gfan
I hashing determinants speeds ≤ 10-100x when dim(N(R)) = 3, 4
I faster than Gfan [Yu-Jensen’11] for dimN(R) ≤ 6, else competitive
dim(N(R)) = 4:
![Page 45: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/45.jpg)
Ongoing and future work
I approximate resultant polytopes (dim(N(R)) ≥ 7) using approximatevolume computation
I combinatorial characterization of 4-dimensional resultant polytopesI computation of discriminant polytopes
More on I.Emiris talk this afternoon (CGAL, an Open Gate toComputational Geometry!)
(figure courtesy of M.Joswig)
Facet and vertex graph of the largest 4-dimensional resultant polytope
![Page 46: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/46.jpg)
Ongoing and future work
(figure courtesy of M.Joswig)
Facet and vertex graph of the largest 4-dimensional resultant polytope
Thank You !
![Page 47: An algorithm for computing resultant polytopes](https://reader035.vdocuments.net/reader035/viewer/2022081401/558cd32ad8b42ab1438b47af/html5/thumbnails/47.jpg)
Convex hull implementations
I From V- to H-rep. of N(R).I triangulation (on/off-line), polymake beneath-beyond,
cdd, lrs
0.01
0.1
1
10
100
0 500 1000 1500 2000 2500 3000
tim
e (s
ec)
Number of points
bbcddlrs
triang_off
triang_on
dim(N(R)) = 4