Ask Your Question
0

Why is this polar polytope incorrect?

asked 8 years ago

done_with_fish gravatar image

updated 8 years ago

I have a polytope

sage: P = Polyhedron([
....: [-1, -1, -1, -1, -1], 
....: [-1, -1, -1, -1, 6], 
....: [-1, -1, -1, 6, -1], 
....: [-1, -1, 6, -1, -1], 
....: [-1, 6, -1, -1, -1], 
....: [5/2, -1, -1, -1, -1]
....: ])

The polar can be constructed manually with

sage: Pd = Polyhedron(ieqs=[vector([1]+v)for v in P.vertices_list()])
sage: Pd.vertices()
(A vertex at (1, 0, 0, 0, 0), 
 A vertex at (0, 1, 0, 0, 0),
 A vertex at (-2, -1, -1, -1, -1), 
 A vertex at (0, 0, 0, 0, 1), 
 A vertex at (0, 0, 0, 1, 0), 
 A vertex at (0, 0, 1, 0, 0))

This yields a result different from P.polar()

sage: P.polar().vertices()
(A vertex at (12/7, 6/7, 6/7, 6/7, 6/7), 
 A vertex at (0, 0, 0, 0, -6/7), 
 A vertex at (-12/7, 0, 0, 0, 0), 
 A vertex at (0, 0, 0, -6/7, 0), 
 A vertex at (0, -6/7, 0, 0, 0), 
 A vertex at (0, 0, -6/7, 0, 0))

Why am I getting different results? Is this a bug?

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
1

answered 8 years ago

Sébastien gravatar image

I am not an expert of polytopes, but I see that the documentation of P.polar() says that the "original vertices are translated so that their barycenter is at the origin".

I can confirm this by doing:

sage: Pcentred = P - P.center()
sage: Pcentred = - Pcentred           # I don't know why, but Sage .polar() method does this
sage: Pd = Polyhedron(ieqs=[vector([1]+v) for v in Pcentred.vertices_list()])
sage: Pd.vertices()
(A vertex at (12/7, 6/7, 6/7, 6/7, 6/7),
 A vertex at (0, 0, 0, 0, -6/7),
 A vertex at (-12/7, 0, 0, 0, 0),
 A vertex at (0, 0, 0, -6/7, 0),
 A vertex at (0, -6/7, 0, 0, 0),
 A vertex at (0, 0, -6/7, 0, 0))
Preview: (hide)
link

Comments

I guess this has the advantage of working for any polytope (the polar is only defined for polytopes containing the origin, I think).

done_with_fish gravatar imagedone_with_fish ( 8 years ago )

Indeed, polarity of polyhedron requires compactness (to get a good duality property, for example that taking twice the dual gives back the original object) and that the origin is in the interior of the (then compact) polyhedron.

Hence, in order to allow polarity of polytope that do not contain the origin, it is automatically shifted so that its barycenter is the origin. This allows for a somehow "canonical" polar object. Taking another point in the interior as the origin would also work, but not implemented.

jipilab gravatar imagejipilab ( 6 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 8 years ago

Seen: 362 times

Last updated: Sep 20 '16