t

On Sat, Oct 19, 2019 at 1:59 PM 'Jonathan Kliem' via sage-devel
<sage-devel@googlegroups.com> wrote:
>
> Let me try again. This is the current behaviour:
>
> sage: P = Polyhedron(vertices=[[-1,0],[1,0]],lines=[[0,1]]); P
> A 2-dimensional polyhedron in QQ^2 defined as the convex hull of 2 vertices 
> and 1 line
> sage: P.vertex_graph()
> Graph on 2 vertices
> sage: P.faces(0)
> ()
>
> Let P be a polyhedron defined by vertices/rays/lines. The vertex graph of P 
> returns basically the vertex graph for Q, where Q is defined by the same 
> vertices and rays, but not lines.
>
> So
> sage: P = Polyhedron(vertices=my_vertices, rays=my_rays, lines=my_lines)
> sage: Q = Polyhedron(vertices=my_vertices, rays=my_rays)
>
> have vertex graphs that are canonically isomorphic.

V-representation is only unique for compact polyhedra, anyway, so one
can talk about the graph of
a V-representation, not about the graph of a polyhedron, in general.

To me, a polyhedron with a linearity space should have no vertices, full stop.
Compute a partial decomposition into the linearity space and something
poined, then do something with it...

>
> I don't think this is the way it should be and the vertex graph in the first 
> case should be empty. If no one disagrees I will apply this change in #28626.
>
> However, the current behaviour is somewhat fixed by a doctest.
>
> As I understand it, the mentioned doctest tries to make a point about
>
> sage: P.combinatorial_automorphism_group(vertex_graph_only=True)
>
> In this case it is stated that the automorphism group can only interchange 
> vertices with vertices, rays with rays and lines with lines. Strictly 
> speaking, this is correct. But an automorphism group obtained from this will 
> never interchange rays with rays or lines with lines.
>
> Even worse, it will completely ignore the rays and lines, so that
> sage: P = 
> Polyhedron(vertices=[[0,0,0],[0,1,1],[1,0,1],[-1,-1,1]],rays=[[0,0,1]]); P
> A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 4 vertices 
> and 1 ray
> sage: len(P.combinatorial_automorphism_group(vertex_graph_only=True))
> 24
>
> This is why I consider the doctest strange.
>
> To me it does not make sense to use the vertex graph to obtain the 
> automorphism group.
>
> Btw (and really not the point of this post), I'm not sure that the 
> automorphism group of the vertex-facet graph is what one should consider for 
> the automorphism group of an unbounded polyhedron. At least in dimension 
> higher than 4 this might behave differently than at least I would define it. 
> I would instead consider the vertex-facet-graph with an extra marked vertex 
> at infinity.
>
> Am Samstag, 19. Oktober 2019 11:52:24 UTC+2 schrieb jplab:
>>
>> Hi Jonathan,
>>
>> Could you be more precise with what you mean with "projection"?
>>
>> What is the status quo? (Please provide a minimal reproducible working 
>> example that shows the contrast along with the proposed wished change that 
>> you have in mind, otherwise we are left to guess what you mean and that is 
>> leaving the door open to a lot of misunderstanding)
>>
>> What is the proposed changed?
>>
>> What is the assumption in the mentioned doctest?
>>
>> For computational aid, when no vertices exists (i.e. there is a lineality 
>> space) the current implementation creates an appropriate vertex. I guess we 
>> have to deal with this eventhough the object does not have a 0-dimensional 
>> face in reality. This is to have consistency between H- and 
>> V-representations. In order to have a consistent V-representation, you need 
>> an anchor point, otherwise just having rays and lines does not determine 
>> uniquely the object.
>>
>> That said, if you are interested in making a vertex-graph for unbounded 
>> polyhedra, then, edges should have two vertices.
>>
>> One way is to ask to keep only bounded edges in the definition, and the 
>> default behavior gives the vertex graph on bounded edges. If one wants the 
>> full graph with a point at infinity that compactifies the full vertex graph, 
>> then one could do so by adding an optional parameter "unbounded=False/True". 
>> Where the default would be False and return only compact edges and True 
>> would return one more vertex "the vertex at infinity".
>>
>> To me this seems to be the most reasonable behavior. I don't know if this 
>> answer your question.
>>
>> Le vendredi 18 octobre 2019 12:09:53 UTC+2, Jonathan Kliem a écrit :
>>>
>>> In #28626 I want to use `CombinatorialPolyhedron` to obtain the vertex 
>>> graph of polyhedra.
>>>
>>> However, I seem to have a different opinion of a vertex graph than is 
>>> currently implemented in sage.
>>>
>>> Should the vertex graph of an unpointed polyhedron return the vertex graph 
>>> of the projection or should it be empty?
>>>
>>> As of now the method `vertices` returns the defining vertices, which are 
>>> the proper vertices except for unpointed polyhedra.
>>>
>>> I don't think this ambiguous meaning of vertex should continue for the 
>>> vertex graph.
>>>
>>> However the current behavior is at the moment assumed in a strange doctest 
>>> of `combinatorial_automorphism_group`.
>>> (E.g. the order of the combinatorial automorphism group does not change 
>>> when you add lines.)
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/91149799-da9b-49a4-b9c0-bd9629a386e3%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CAAWYfq25Ao7QxoaZKBJoD-quDjEkLf5%2BO4oD5of2%3DPaPWpZq_w%40mail.gmail.com.

Reply via email to