# Create Graph In Sage

I want define new graph in sage. Let $V$ be vector space over finite field $GF(q)$. The graph's vertices are 1-dimensional subspace from $V$ and $n-1$ -dimensional subspace from $V$ and two vertices are adjacent if and only if direct sum of two subspace is $V$.

I have trouble with define this graph in sage. Any suggestion?

• ask.sagemath.org is probably more appropriate. Aug 22, 2012 at 20:37
• I vote AGAINST closing. Questions about mathematical software are stated as being okay in the FAQ somewhere (don't remember where). If any one wants to vote to close, please cancel this vote against closing instead of actually voting to close. Sep 25, 2012 at 20:27
• Actually, it's one of the first things in the FAQ: math.stackexchange.com/faq It specifically says that questions are welcome if they are about "Software that mathematicians use" So anyone voting to close as off-topic is voting against the FAQ. Sep 25, 2012 at 20:30

Here is a simple algorithm to create the graph you want.

p=5
n=3
V=VectorSpace(GF(p),n)
edges=[]
for i in V.subspaces(1):
for j in V.subspaces(n-1):
gens=list(j.gens())
gens.append(i.gens())
H=V.subspace(gens)
if(H.dimension()==n):
edges.append((i,j))

G=Graph(edges)


I'm not sure what you want to label them, so the edges are actually the current vectorspaces, which is rather inefficient. You should probably come up with a simple naming scheme using a python dictionary, for instance. There are also likely faster ways to compute this that cut out a good deal of the tests.