Enumerating all edges from a vertex in an H-representation of a polytope?

36 Views Asked by At

Description

Let's say I give you a convex polytope in $h-$representation, i.e. $Ax \leq b$, with $A \in \mathbb{R}^{m \times d}$. For now let's assume $d=3$.

A vertex $v$ is non-degenerate if there exist exactly a single set $B$ of $d$ rows of $A$ such that $A_B v = b_B$. Geometrically (in 3D) if among all planes defining the polytope there's 3 and only 3 of them which intersect at the vertex.

A vertex is degenerate if more than 3 planes intersect at that vertex.

Said differently, in 3D a vertex can be defined as 3 integers $(i,j,k)$, where those are the rows of $A$ defining the planes that intersect at the vertex.

Similarly, the edge $(i,j)$ connecting 2 vertices $(i,j,k), (i,j,l)$ can also be described with 2 indices.

Problem

Now, say I give you one vertex $v = (i, j, k)$ and the associated matrix $A$. You are tasked to find all edges incident on $v$. If $v$ is non-degenerate, then we can enumerate them quite easily $(i, j), (j, k), (k, i)$. But if $v$ is degenerate then that is not enough, to begin with the planes $i, j, k$ might not intersect at proper edges of the polytope (depending on what the other rows look like).

Is it possible to enumerate all the edges connected to $v$ in time $O(d)$ ?

This is related to the simplex method and to reverse linear search, but I am having a miserable time understanding either of those from a purely geometrical approach.