Hyperplane arrangements in polymake

Hyperplane arrangements form the latest addition to the zoo of combinatorial objects dealt with by polymake. We report on their implementation and on a algorithm to compute the associated cell decomposition. The implemented algorithm performs significantly better than brute force alternatives, as it requires less convex hulls computations.



There are no comments yet.


page 1

page 2

page 3

page 4


The Application of a Dendritic Cell Algorithm to a Robotic Classifier

The dendritic cell algorithm is an immune-inspired technique for process...

CAD Adjacency Computation Using Validated Numerics

We present an algorithm for computation of cell adjacencies for well-bas...

Simulated Data Experiments for Time Series Classification Part 1: Accuracy Comparison with Default Settings

There are now a broad range of time series classification (TSC) algorith...

Streaming and Batch Algorithms for Truss Decomposition

Truss decomposition is a method used to analyze large sparse graphs in o...

An algorithm to reconstruct convex polyhedra from their face normals and areas

A well-known result in the study of convex polyhedra, due to Minkowski, ...

Parallel local search for solving Constraint Problems on the Cell Broadband Engine (Preliminary Results)

We explore the use of the Cell Broadband Engine (Cell/BE for short) for ...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1 Introduction

Hyperplane arrangements are ubiquitous objects appearing in different areas of mathematics such as discrete geometry, algebraic combinatorics and algebraic geometry. A common theme is to understand the combinatorics and the topology of the cells in the complement of the arrangement. Combinatorics and its connections to other areas of mathematics are the focus of the software framework polymake [DMV:polymake], hence hyperplane arrangements form an almost mandatory addition to the objects available. We will discuss the implementation, such as the datatypes and properties, as well as some basic algorithms for analyzing hyperplane arrangements.

One of the main advantages of polymake are its various interfaces to other software. This allows keeping the codebase slim, while using powerful software that developed by experts from other fields. Still polymake provides basic algorithms for many tasks, in case other software is not available. Hence the idea of the hyperplane arrangements is to provide a datatype with basic functionality as basis for future interfaces to other software, e.g. to ZRAM [zram] for computing the cell decomposition from the hyperplanes. Nevertheless, the polymake implementation of hyperplane arrangements comes with a basic algorithm for computing the associated cell decomposition that performs significantly better than brute force alternatives. Thus, we will discuss the main ideas of this algorithm in this article as well.

The combinatorics of hyperplane arrangements in real space is linked to zonotopes. Each arrangement endows the support space with a fan structure which is the normal fan of a zonotope. Each hyperplane subdivides the space in two halfspaces. Therefore we can encode relative positions of points with respect to the arrangement. In other words, hyperplane arrangements are examples of (oriented) matroids. Moreover, the hyperplanes in an arrangement can be seen as mirrors hyperplanes of a reflection group.

An interesting application is in Geometric Invariant Theory. GIT constructs quotients of algebraic varieties modulo group actions. The quotients depend on the choice of a linearized ample line bundle. Variation of geometric invariant theory quotients studies how quotients vary when changing the line bundle. Under some hypothesis the classes of equivalent quotients are convex subsets, called chambers. The walls among chambers are defined by certain hyperplane arrangements, see [DolgachevHu, Example 3.3.24].

2 Main Definitions

We begin with the basic definitions in the theory of hyperplane arrangements following our implementation in polymake.

Definition 1

A hyperplane arrangement in is given by the following data:

  1. A finite set of linear forms encoding hyperplanes and

  2. A polyhedral cone which we call the support cone.

Given a hyperplane arrangement , the induced fan is a fan with support given by subdividing along all for .

Every hyperplane in the arrangement subdivides the space into two halfspaces

We remark that in the definition we allow duplicate hyperplanes, but from each hyperplane arrangement we can construct a reduced one. Let be a hyperplane arrangement given by the hyperplanes . The reduced hyperplane arrangement has the same support cone as and if and only if , for any and any .

To a hyperplane arrangement we associate the polytope

the Minkowski sum of all the line segments and the dual support cone . If , then and is a zonotope.

Remark 1

Often hyperplane arrangements are defined without a support cone, i.e. only for the case . The connection between intersecting is done via taking the Minkowski sum on the dual side. The main ingredient is the fact that

holds for two cones and .


[ziegler, Thm. 7.16] The fan is the normal fan of .

Definition 2

To a maximal cone of we associate its signature, which is a set .

Example 1

Let be given by

We will have a look at the induced fans for different support cones . The fan and the polytope are visualized in Figure 2.0 for varying .

Figure 2.0: Visualization of and for 1

In each of the pictures, the support cone is indicated as the shaded area. The structure of the fan depends heavily on the support cone . In particular, it is possible for hyperplanes to only intersect trivially and thereby becoming irrelevant for . Thus, one may loose information when going from to .

The labels at the hyperplanes in the first picture indicate which side constitutes , respectively. Using these one can read of the signatures of the single cells, for example the cell generated by the rays and has signature .

Remark 2

Reduced hyperplane arrangements are examples of oriented matroids. The ground set is the collection of hyperplanes and the signatures are the covectors.

2.1 Affine hyperplane arrangements

An affine hyperplane arrangement is usually given by a finite set of affine hyperplanes:

The whole space is then subdivided along the hyperplanes

resulting in a polyhedral complex .

Analogously to the connection between polytopes and cones, or polyhedral complexes and fans, every affine hyperplane arrangement gives rise to a (projective) hyperplane arrangement by embedding it at height :

If we intersect the fan with the affine hyperplane , the resulting polyhedral complex is isomorphic to , via the embedding , .

The support cone allows one to deal with affine hyperplanes computationally. Set

then the maximal cones of are in one-to-one correspondence with the maximal cells of . In particular, polymake can interpret as a polyhedral complex via the embedding mentioned above, and this polyhedral complex will be exactly .

Example 2

As a simple example, choose the following hyperplanes in :

The associated hyperplanes of in are exactly those of the hyperplane arrangement from 1. For we choose the cone , then will be at height one.

The induced affine hyperplane arrangement is indicated by the dots and thick line. It is one dimensional and the associated polyhedral complex has four maximal cells.

Example 3
fan > $HA = new HyperplaneArrangement(HYPERPLANES=>[[0,1],[1,1],[-2,1]],"SUPPORT.INEQUALITIES"=>[[1,0]]);
fan > $HA->CELL_DECOMPOSITION->RAYS; # Force computation
fan > $pc = new PolyhedralComplex($HA->CELL_DECOMPOSITION);
fan > print "(".join("),(",@{$pc->VERTICES}).")\n";
(0 -1),(0 1),(1 -1),(1 0),(1 2)
fan > print join(",",@{$pc->MAXIMAL_POLYTOPES})."\n";
{0 2},{1 4},{2 3},{3 4}

3 Implementation

Hyperplane arrangements are implemented in the software polymake as a new object HyperplaneArrangement, which is derived from the already existing object VectorConfiguration. Besides the existing properties of VectorConfiguration it has been augmented with the following properties and methods.

  1. HYPERPLANES A matrix containing the hyperplanes as rows, this is just an override of the property VECTORS of VectorConfiguration

  2. SUPPORT A polymake Cone, denoting the support .

  3. CELL_DECOMPOSITION A polymake PolyhedralFan, the cell decomposition .

  4. CELL_SIGNATURES A Array<Set<Int>>, the -th set in the array contains the indices of hyperplanes evaluating negatively on the -th maximal cone of CELL_DECOMPOSITION.

  5. signature_to_cell Given a signature as Set<Int>, get the maximal cone with this signature, if it exists.

  6. cell_to_signature Given a cell, a maximal cone of CELL_DECOMPOSITION, determine its signature.

3.1 Cell decomposition algorithm

Given , we want to compute the subdivision of induced by the hyperplanes, the induced fan . This means, we want to find all the rays and maximal cones of . In terms of the zonotope , this is equivalent to knowing the facets and vertices of , see [Fukuda, GritzmannSturmfels]. The facet directions of are the rays of . For very vertex of we get a maximal cone by determining which facets contain it.

The brute force approach is to loop over all possible signatures in

and for every signature to build the cone

For comparing the different algorithms, we count the number of times they have to perform a convex hull computation for converting a signature to a cone. There are signatures, so we have to perform convex hull computations. As we saw in 1, it can happen that some hyperplanes are irrelevant, either completely or just for single cells. Furthermore, in 1 the maximum number of two-dimensional cones we got was six, however we would have to compute eight intersections with the brute force approach regardless.

Remark 3

This brute force approach is in some ways parallel to the brute force approach for computing the Minkowski sum making up , by taking considering all possible sums of the endpoints of the line segments. One arrives at points whose convex hull is . There are several ways to go on: Either attempt a massive convex hull computation directly, or check each point individually whether it is a vertex.

Our approach is to first find a full-dimensional cone of and then to flip hyperplanes in order to compute its neighbors. First take a facet of , then set