How to find the sum weight on a vertex

asked 2020-01-09 16:09:44 +0100

Milad gravatar image

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.

edit retag flag offensive close merge delete

Comments

What is q? What sorts of errors do you get? What is a sample graph that we can work with?

John Palmieri gravatar imageJohn Palmieri ( 2020-01-09 20:02:30 +0100 )edit

@John

q=G.num_edges()

I get these errors:

 Traceback (most recent call last):            n.append(x)
      File "", line 1, in <module>

      File "/private/var/folders/v7/j_ry66_d0s333h_720qz836c0000gn/T/tmpu6JFBi/___code___.py", line 7
        for i in G.vertex_iterator():
        ^
    IndentationError: unexpected indent
Milad gravatar imageMilad ( 2020-01-09 21:48:36 +0100 )edit

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.

Milad gravatar imageMilad ( 2020-01-09 21:55:08 +0100 )edit

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 line for i in ....

John Palmieri gravatar imageJohn Palmieri ( 2020-01-10 17:57:20 +0100 )edit

Also, random.sample takes a list as the first argument, and G.num_edges() is a number, not a list.

John Palmieri gravatar imageJohn Palmieri ( 2020-01-10 17:57:56 +0100 )edit