[sage-support] Re: Graphs from binary incidence matrices

2013-04-22 Thread Dima Pasechnik
On 2013-04-17, Tom Boothby tomas.boot...@gmail.com wrote:
 Dima,

 Rows correspond to vertices and columns correspond to edges.  This
 matrix represents an undirected triangle with a double edge.  I don't
 understand why the graph __init__ requires a +1 and a -1 in each
 column -- that describes a directed incidence matrix, and has no place
 in undirected graphs.
Yes it does, in a way. If you want to construct the Laplacian matrix L of the
graph from the incidence matrix E just by using matrix multiplication, 
you need to pick up an orientation for each edge, i.e. assigning +1 to
one end, and -1 to the other. Then, bingo, you have L=E.T*E

Dima


-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [sage-support] Re: Graphs from binary incidence matrices

2013-04-22 Thread Tom Boothby
 Yes it does, in a way. If you want to construct the Laplacian matrix L of the
 graph from the incidence matrix E just by using matrix multiplication,
 you need to pick up an orientation for each edge, i.e. assigning +1 to
 one end, and -1 to the other. Then, bingo, you have L=E.T*E

I've always seen that described as: take a random orientation of an
incidence matrix and multiply it by its transpose to get the
Laplacian.

-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [sage-support] Re: Graphs from binary incidence matrices

2013-04-22 Thread Tom Boothby
That might not have been terribly clear -- the point is, incidence
of edges and vertices is a binary relation.  One needs to make a
choice to orient the matrix to make the linear algebra coincidence
work out.

On Mon, Apr 22, 2013 at 8:51 AM, Tom Boothby tomas.boot...@gmail.com wrote:
 Yes it does, in a way. If you want to construct the Laplacian matrix L of the
 graph from the incidence matrix E just by using matrix multiplication,
 you need to pick up an orientation for each edge, i.e. assigning +1 to
 one end, and -1 to the other. Then, bingo, you have L=E.T*E

 I've always seen that described as: take a random orientation of an
 incidence matrix and multiply it by its transpose to get the
 Laplacian.

-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




[sage-support] Re: Graphs from binary incidence matrices

2013-04-17 Thread Dima Pasechnik
On 2013-04-17, Michael Welsh yom...@yomcat.geek.nz wrote:
 I have some GF(2) matrices that are incidence matrices of undirected graphs. 
 When I try to construct the graphs in sage, this happens:

 sage: Graph(matrix(GF(2), [[1,0,1,1],[1,1,0,1],[0,1,1,0]]))

it's not even clear what two parallel edges should lead to. Should they
cancel each other?

 ---
 ValueErrorTraceback (most recent call last)
ipython-input-1-cf6c24cef566 in module()
  1 Graph(matrix(GF(Integer(2)), 
 [[Integer(1),Integer(0),Integer(1),Integer(1)],[Integer(1),Integer(1),Integer(0),Integer(1)],[Integer(0),Integer(1),Integer(1),Integer(0)]]))

 /Applications/sage/local/lib/python2.7/site-packages/sage/graphs/graph.pyc in 
 __init__(self, data, pos, loops, format, boundary, weighted, implementation, 
 sparse, vertex_labels, name, multiedges, convert_empty_dict_labels_to_None)
1288 multiedges = (  len(uniq(positions))  total  )
1289 except AssertionError:
 - 1290 raise ValueError(msg)
1291 num_verts = data.nrows()
1292 elif format == 'Graph':

 ValueError: Non-symmetric or non-square matrix assumed to be an incidence 
 matrix: Each column represents an edge: -1 goes to 1.
 sage: 

 Is there a way around this, apart from manually changing each column so that 
 it has a -1 in it?

 Michael


-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [sage-support] Re: Graphs from binary incidence matrices

2013-04-17 Thread Tom Boothby
Dima,

Rows correspond to vertices and columns correspond to edges.  This
matrix represents an undirected triangle with a double edge.  I don't
understand why the graph __init__ requires a +1 and a -1 in each
column -- that describes a directed incidence matrix, and has no place
in undirected graphs.

On Wed, Apr 17, 2013 at 4:46 AM, Dima Pasechnik dimp...@gmail.com wrote:
 On 2013-04-17, Michael Welsh yom...@yomcat.geek.nz wrote:
 I have some GF(2) matrices that are incidence matrices of undirected graphs. 
 When I try to construct the graphs in sage, this happens:

 sage: Graph(matrix(GF(2), [[1,0,1,1],[1,1,0,1],[0,1,1,0]]))

 it's not even clear what two parallel edges should lead to. Should they
 cancel each other?

 ---
 ValueErrorTraceback (most recent call last)
ipython-input-1-cf6c24cef566 in module()
  1 Graph(matrix(GF(Integer(2)), 
 [[Integer(1),Integer(0),Integer(1),Integer(1)],[Integer(1),Integer(1),Integer(0),Integer(1)],[Integer(0),Integer(1),Integer(1),Integer(0)]]))

 /Applications/sage/local/lib/python2.7/site-packages/sage/graphs/graph.pyc 
 in __init__(self, data, pos, loops, format, boundary, weighted, 
 implementation, sparse, vertex_labels, name, multiedges, 
 convert_empty_dict_labels_to_None)
1288 multiedges = (  len(uniq(positions))  total  )
1289 except AssertionError:
 - 1290 raise ValueError(msg)
1291 num_verts = data.nrows()
1292 elif format == 'Graph':

 ValueError: Non-symmetric or non-square matrix assumed to be an incidence 
 matrix: Each column represents an edge: -1 goes to 1.
 sage:

 Is there a way around this, apart from manually changing each column so that 
 it has a -1 in it?

 Michael


 --
 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?hl=en.
 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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.