How to find the sum weight on a vertex

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

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:

import random
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))

But I receive some errors. I'll be happy if you can help me.

edit retag flag offensive close merge delete


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 +0200 )edit



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/", line 7
        for i in G.vertex_iterator():
    IndentationError: unexpected indent
Milad gravatar imageMilad ( 2020-01-09 21:48:36 +0200 )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 +0200 )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 +0200 )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 +0200 )edit