47
An output-sensitive algorithm for computing (projections of) resultant polytopes Vissarion Fisikopoulos Joint work with I.Z. Emiris, C. Konaxis and L. Pe˜ naranda Department of Informatics, University of Athens SoCG, Chapel Hill, NC, USA, 18.Jun.2012

An algorithm for computing resultant polytopes

Embed Size (px)

DESCRIPTION

Presentation of the paper "An output-sensitive algorithm for computing (projections of) resultant polytopes" in the Annual Symposium on Computational Geometry (SoCG 2012)

Citation preview

Page 1: An algorithm for computing resultant polytopes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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)

QQ

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

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

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

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

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

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

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

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