How to find the sum weight on a vertex
Hi I want to define a random labeling on edges of a graph (without duplicate labels ) and then find the sum of the weights of incident edges to each vertex. Here is code I wrote:
n=[]
import random
W=random.sample(G.num_edges(),G.num_edges())
w_edges = [(E[i][0], E[i][1], W[i]) for i in xrange(q)]
for i in G.vertex_iterator():
x=sum(W[k] for k in G.neighbor_iterator(i))
n.append(x)
But I receive some errors. I'll be happy if you can help me.
What is
q
? What sorts of errors do you get? What is a sample graph that we can work with?@John
q=G.num_edges()
I get these errors:
I wanted to obtain an antimagic labeling. A graph G is antimagic if there exists a bijective edge labeling from E(G) to {1,..., |E(G)|} such that the vertex sums are pairwise distinct. If you have another code, I will appreciate if you tell me.
The code you posted has an indentation error on the last line:
n.append(x)
is indented an extra space compared to the previous line. There is no such error on the linefor i in ...
.Also,
random.sample
takes a list as the first argument, andG.num_edges()
is a number, not a list.