I am trying to find extreme rays of a polyhedral cone using polymake. My understanding is that in a cone, every feasible solution is also a ray and an extreme ray is a ray that cannot be written as the convex combination of two other rays. The methods RAYS
and LINEARITY_SPACE
give me some rays that generate the cone but I found an example where one of the rays can be written as the combination of two other rays. Are the results of RAYS
not guaranteed to be extreme rays? If so, is there a method to get the extreme rays?
Example
declare $cone=new Cone<Rational>(INEQUALITIES=>[[1, 0, 1], [2, 1, 0]]);
# Note that all variables are unbounded.
print_constraints($cone);
Inequalities:
0: x0 + x2 >= 0
1: 2 x0 + x1 >= 0
print $cone->RAYS;
1 -2 0
0 1 0
print $pq->LINEALITY_SPACE;
-1 2 1
The first returned ray $(1, -2, 0)$ can be written as $(1, -2, -1) + (0, 0, 1)$ so it cannot be extreme.