[sage-support] matchings bipartite graphs

2013-03-20 Thread Alejandro Morales
I want to implement a not so slow function for counting/generating all placements of non-attacking rooks in a board. Currently I am generating all partial permutations and checking whether they are in the board. An alternative would be to encode the board belonging to an n x n grid as a

[sage-support] Re: LLL_gram of matrices with 0 eigenvalues

2013-03-20 Thread Dima Pasechnik
On 2013-03-19, Victor Miller victorsmil...@gmail.com wrote: --=_Part_554_9793948.1363718282627 Content-Type: text/plain; charset=ISO-8859-1 Suppose that A is an m by n integer matrix. Its Gram matrix is G = A*A^t. If A is not full rank, then G has some eigenvalues of 0. If I do

[sage-support] Re: LLL_gram of matrices with 0 eigenvalues

2013-03-20 Thread Victor Miller
Thanks Dima and John, In the meantime, since I have Magma available to me I tried to use magma's functions. What I'm really interested is getting the unimodular (when it makes sense to use that term) transition matrix needed to put a matrix in reduced form. It looks like, but correct me if

[sage-support] Re: LLL_gram of matrices with 0 eigenvalues

2013-03-20 Thread Victor Miller
Aha, I found the nvals= option to magma commands. So for now I'll use that. I would like to ask that LLL optionally return the transition matrix (and also BKZ if that's possible). Victor On Tuesday, March 19, 2013 2:38:02 PM UTC-4, Victor Miller wrote: Suppose that A is an m by n integer

[sage-support] Re: matchings bipartite graphs

2013-03-20 Thread Alejandro Morales
I found the matching_polynomial http://www.sagemath.org/doc/reference/graphs/sage/graphs/matchpoly.html#sage.graphs.matchpoly.matching_polynomial On Wednesday, March 20, 2013 11:17:37 AM UTC-4, Alejandro Morales wrote: I want to implement a not so slow function for counting/generating all

Re: [sage-support] matchings bipartite graphs

2013-03-20 Thread Tom Boothby
I use the following to iterate over all matchings and perfect matchings. def matchings(G): edges = G.edges(labels = False) verts = [[v] for v in G] m = len(edges) for match in DLXCPP(edges+verts): yield [edges[t] for t in match if t m] def perfect_matchings(G): edges

Re: [sage-support] matchings bipartite graphs

2013-03-20 Thread Tom Boothby
Note that that code only works for graphs whose vertices are labeled [0...n]. On Wed, Mar 20, 2013 at 1:03 PM, Tom Boothby tomas.boot...@gmail.com wrote: I use the following to iterate over all matchings and perfect matchings. def matchings(G): edges = G.edges(labels = False) verts =

Re: [sage-support] matchings bipartite graphs

2013-03-20 Thread Nathann Cohen
H... If you want to enumerate all partial permutations then you have much better to do. If you have a n x m matrix with nm what you should do it take all subsets of n elements of n, and enumerate all permutations using those n columns among m. Even if I would LOVE to have a way to

Re: [sage-support] matchings bipartite graphs

2013-03-20 Thread Nathann Cohen
I'm sure it's not fast, but in the file devel/sage/sage/homology/examples.py, there is a function matching which gets used in simplicial_complexes.ChessboardComplex(...). Well, obviously there is a matching function in the Graph class. But nothing to enumerate them. Oh. Now that I think of

[sage-support] Re: matchings bipartite graphs

2013-03-20 Thread Alejandro Morales
Thank you very much for all the suggestions. A little bit more of background. I am working on this patch http://trac.sagemath.org/sage_trac/ticket/14127 and would like to have an efficient way of generating the rook placements. On Wednesday, March 20, 2013 11:17:37 AM UTC-4, Alejandro Morales