Ask Your Question

JEFLSU's profile - activity

2017-10-15 15:59:45 -0500 received badge  Nice Question (source)
2017-07-31 15:09:43 -0500 received badge  Taxonomist
2017-04-11 06:09:53 -0500 received badge  Popular Question (source)
2017-04-11 05:59:24 -0500 received badge  Notable Question (source)
2016-10-10 05:16:24 -0500 received badge  Popular Question (source)
2016-06-20 10:35:47 -0500 commented answer no method available for opening http localhost 8000

I've learned a bit more about the machine - it seems likely there are no browsers installed at all, it being a data server. I'll ask it which for the browsers in the list and see if I can get a hit, then try to set the default browser.

2016-06-20 08:46:31 -0500 asked a question no method available for opening http localhost 8000

I have built Sage 7.2 from source on a Red Hat machine, and when I try to start a notebook server, I get

/usr/bin/xdg-open: line 402: htmlview: command not found

/usr/bin/xdg-open: line 402: firefox: command not found

/usr/bin/xdg-open: line 402: mozilla: command not found

/usr/bin/xdg-open: line 402: netscape: command not found

/usr/bin/xdg-open: line 402: links: command not found

/usr/bin/xdg-open: line 402: lynx: command not found

xdg-open: no method available for opening 'http://localhost:8080?startup_token=a19cd71a527ae07b9d079e9e71c73c5a'

Now, I've looked at and but the machine is shared, so I don't want to go around messing with anything in /usr/bin. I don't have direct access (or ability to install an X-client on the physical machine I'm using), so I can't check there is a browser installed on the machine I put Sage on.

Is there a way to work around this just within Sage? I didn't see anything that answered this here in ask, or in Sage for Power Users. Perhaps I can't fix this without better access to the machine I put Sage on. In that case, I'll just have to run Sage from command line. But it's nice to have notebook access.

2016-06-10 10:13:08 -0500 commented answer Finding number of strongly connected components

Thanks! I imagine the documentation was at some point in the past consistent with the method; supposing that is so, perhaps there is some discussion floating around on why the method's output was changed?

2016-06-10 10:10:05 -0500 received badge  Scholar (source)
2016-06-10 10:10:04 -0500 received badge  Supporter (source)
2016-06-10 08:01:31 -0500 asked a question Finding number of strongly connected components

I need to find the number of strongly connected components of a digraph, and I looked at the documentation for the ~DiGraph.strongly_connected_components() method. Tabbing .strongly_connected_components? gives the documentation from sage/graphs/base/static_sparse_graph.pyx for tarjan_strongly_connected_components(G) that says,

This routine returns a pair ``[nscc, scc]``, where ``nscc`` is the number of
SCCs and ``scc`` is a dictionary associating to each vertex ``v`` an
integer between ``0`` and ``nscc-1``, corresponding to the SCC containing
``v``. SCCs
are numbered in reverse topological order, that is, if ``(v,w)`` is an edge
in the graph, ``scc[v] <= scc[w]``

Which would be great, as I just need the result of tarjan_strongly_connected_components_C. However, 1) this is only called during tarjan_strongly_connected_components, which does the (admittedly minor) additional work of topologically sorting SCCs and 2) the examples (and testing) show the output of ~DiGraph.strongly_connected_components() is a list of vertex lists for each connected component. This is perfectly reasonable and clear, but more than I want, particularly as there's some work in the back end that determines what I'm looking for earlier in the process.

1) Should I just use len(~DiGraph.strongly_connected_components())? 2) Am I badly misreading the documentation for this method?

I'm in Sage 7.2.

Thanks in advance for help here!

2016-06-01 08:49:02 -0500 received badge  Editor (source)
2016-06-01 08:44:49 -0500 answered a question Graph theory for symbolic electrical circuit analysis?

It looks like you want a matroid here. Using the examples from the paper you mention:

sage: M=Matrix([[0,-1,-1,1,0,0,0,0],[0,0,0,-1,1,1,0,0],[-1,0,1,0,-1,0,-1,0],[1,0,0,0,0,0,0,-1],[0,1,0,0,0,-1,1,1]])
sage: G=DiGraph(M)
sage: mat=Matroid(M)
sage: print mat.representation(reduced=True,labels=True)
([ 0  0  0 -1],[ 0 -1  1  1],[-1  0 -1 -1],[-1 -1  0  0], [0, 1, 2, 3], [4, 5, 6, 7])

The columns of M are of course the edges of the DiGraph G. My output says edges 0,1,2, and 3 are edges of a spanning tree (a basis $B$ of the matroid) and the reduced representation it returns has nonzero entries for the basis elements of the $B$-fundamental circuit for that element. For example, the $B$-fundamental circuit of $4$, the unique undirected cycle among the edges of G contained in $B$ union {4} is {2,3,4}. (Forgive the lack of typesetting; my browser's acting up right now). Note that the standard reduced representation of M is [I | D], where D is the matrix output of the command .representation(reduced=True).

You can tell Sage what basis (collection of edges of a spanning tree) you want to use, which it sounds like you might want. Of course, once you have a matroid, you can have Sage tell you all the bases.

You can get a good feel for what's going on here in the documentation for linear (just means they're representable over some finite field, that is, they have a matrix representation) matroids:

2016-05-31 15:11:44 -0500 commented question How do I get the external face of a planar embedded graph?

What precisely do you mean by "external face"? Given the embedding returned by the .is_planar() implicit in G.layout(), any of the faces given could be considered the external face - embedding on the plane and the sphere are interchangeable under stereographic projection. In any case, if you are referring to external with respect to the graphics object output by G.plot(), it seems the original external face is still the "external face" after your first reduction, but your algorithm chooses a new external face.

Perhaps clarification of "external face" would help get you an answer more like what you're looking for.

2016-05-31 13:25:31 -0500 commented question show() does not show in the right place

I think the original post is questioning the order in which the outputs are displayed in the output of the SMC cell. If my input is something like:

print 1

print 2

I would expect the 1 to be displayed before the 2; in this case, you expect ("BEFORE SHOW ",0) to be the first line of output, followed by the image of the graph, yes? But that's not what it is doing. The topmost output is the graph, then ("BEFORE SHOW ",0), etc.

Is that the question?

2015-04-13 10:23:31 -0500 received badge  Student (source)
2015-04-10 13:58:53 -0500 asked a question Non-orientable genus of a graph

I'm doing some research on crossing-criticality of graphs on surfaces, and am looking for an algorithm to test non-orientable genus. Of course, for orientable surfaces Sage already has an algorithm built in, and I can test for non-projective minors for the projective plane, but does anyone know of work being done on implementation of non-orientable genus testing of a graph?