Tverberg's Theorem in the Plane

Visualization

Number of sets: r =
Number of points: n =






Your browser does not support the canvas API or WebGL or whatever.

Click and drag points to move them around. The solution will be recalculated based on the new positions.

How it Works

Overview of Tverberg's Theorem

Tverberg's theorem states that for a set S of n points in dimension d, we can partition them into r subsets, where n = (d+1)(r-1) + 1, such that there exists a point (not necessarily in n) which is inside the convex hull of all subsets. In other words, the convex hulls of all the subsets overlap.

In the Plane

Our specific focus is Tverberg's theorem in the plane, so dimension d is fixed at d = 2. This means that our relation between number of subsets r and the set's size is n = 3r - 2.

When considering only the plane, there are three types of subsets: those of size 1, size 2, and size 3. In this explanation, we'll generally refer to these types of sets by the form which their respective convex hulls take. (We're assuming points are in general position, so no two points are the same, and no three points are collinear.)

So we can say that a partition is composed of some number of points plus some number of segments plus some number of triangles. We can restrict this further though:

So we can have either two segments or one point. The rest of our subsets must be triangles. (If we used any polygons 'larger' than a triangle, we wouldn't have enough points to form r subsets.)

Birch Partitions

The basis of our algorithm for finding a Tverberg partition in the plane uses a paper proving a result similar to this in the plane. B.J. Birch's paper On 3n Points in a Plane shows that for 3n points, we can partition the points into n subsets of 3, such that the triangles formed by each subset all overlap.

Birch's method for finding a partition is as follows:

  1. Find the center of the 3n points (not one of the points themselves).
  2. Sort the 3n points by their angle relative to the center point, assigned each one an index i from 0 to 3n-1.
  3. For t ∈ [0, n-1], triangle t is formed by the points where i % n == t.
To see this process in action, choose the Birch partition option.

Essentially, this method creates a triangle using the three points where each pair has n-1 points between them (in sorted order).

This method works because of a property of the center point of a set: all closed halfspaces bounded by the center point must contain at least a third of the total points, in this case n/3 points. Since each border-segment of each triangle has n-1 points between them, then there must be n+1 (including the segment bounds) points in the halfspace bounded by the line through the center which is parallel to this border-segment. If this is the case for all three borders of a triangle, then the triangle must contain the center.

Choosing a Center Point

Tverberg in the plane is a fairly similar problem, since most of our partition will be made up of triangles. It just has a tighter constraint, where one of the points must be within the intersection. In some cases we can choose one of the points as a center point, and use Birch's algorithm to find the triangles which bound it.

But for this to work, the point we choose must fulfill the same role as a center point. So we need to check the property of all lines through a point being a boundary for a closed halfspace with a third of the points:

To see this process in action, choose the Tverberg steps option.

In this case, the Tverberg partition is the triangle subsets formed by the Birch partition, plus the point c.

But in many cases, there is no point within the set which is valid for this property (e.g. the case of all points being convex).

Making a Center Point

Our other possible configuration for a Tverberg partition in the plane is a two line segments and a number of triangles. Essentially, we need to get all line segments, and test whether their intersection is a valid center for Birch's algorithm:

To see this process in action, choose the Tverberg steps option.

In this case, the Tverberg partition is the triangle subsets formed by the Birch partition, plus the two line segments formed by the points a, b, c, and d whose intersection was the center point i.