I don't care much about this.

On Tue, Dec 17, 2013 at 11:22:12AM +0100, Nathann Cohen wrote:
> Yooooooooooooooooooooooooooo !!
> 
> > Edge coloring multigraphs raises exception
> 
> Ahahaha. That's possible.
> 
> > sage: 
> > P=graphs.PetersenGraph();ep=P.edges(labels=0);P2=Graph(ep+ep,multiedges=1)
> > sage: graph_coloring.edge_coloring(P2,value_only=1)
> > 7 # not sure this is correct
> 
> It most probably isn't. Really, most of Sage's graph functions are
> written without multigraphs in mind. I hate those things. Implementing
> something for multigraphs instead of graphs just makes you add mostly
> useless code (which, besides, is a pure loss of computational time for
> normal graphs), and does not add anything interesting to the
> algorithm.
> 
> Actually, it's pretty clear from the documentation that edge coloring
> has not been thought for multigraphs, as one of the parameters is
> "vizing", and Vizing's theorem does not apply to multigraphs :-P
> 
> > sage: graph_coloring.edge_coloring(P2,value_only=0)
> >
> > RuntimeError: maximum recursion depth exceeded while calling a Python object
> >
> > How to get explicit edge coloring of multigraph?
> 
> Well, I would say "compute their line graph, and the chromatic numbers
> of those". Which is what you do next :
> 
> > In addition the line graphs of P and P2 are isomorphic:
> >
> > sage: Pl=P.line_graph();P2l=P2.line_graph();Pl.is_isomorphic(P2l)
> > True
> > sage: Pl==P2l
> > True
> >
> > sage: P2.degree()
> > [6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
> 
> Oh. Right. Same explanation there I guess. Though it looks like the
> function works if you have different labels on your different edges.
> 
> Now, for the fix : I personally cannot care less about multigraphs,
> and I actually don't like the fact that making these functions return
> meaningful results on normal graps will make all computations slower
> on normal graphs, wit no value added. Besides, the code will be
> longer, and unclear because it will be polluted with things which have
> nothing to do with the smart part of the algorithm itself. I mean,
> just think of a shortest path algorithm on a multigraph !
> 
> I would personally sleep better if I just added a exception to all
> those functions, saying that "You gave an multigraph as input, and
> this function has not been checked to work for multigraphs". Which
> would mean that you wouldn't be able to use any of those functions
> which multigraphs, which is fair as we expect them to return wrong
> results.
> This being said, if you need this feature and if you are willing to
> help it's a different story. It's pretty hard to have patches reviewed
> in Sage these days, and unless the patches are reviewed I would just
> be working to make your own code work, to only see my work being
> forgotten on our trac server, never merged into Sage. Soooooooo well.
> What do you think ? :-P
> 
> As fun as it is to implement graph algorithms in Sage, really
> multigraphs are nothing but pain and boring bugs. And waste of
> computational time :-P
> 
> See youuuuuuu !
> 
> Nathann
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-support+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-support@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to