¿Cómo puedo asignar pesos aleatoriamente desde una distribución de ley de potencia a una red con un gran número de nodos?redes con pesos distribuidos de la ley de potencia aleatoria
escribí
import networkx as nx
import numpy as np
from networkx.utils import powerlaw_sequence
z=nx.utils.create_degree_sequence(200,nx.utils.powerlaw_sequence,exponent=1.9)
nx.is_valid_degree_sequence(z)
G=nx.configuration_model(z)
Gcc=nx.connected_component_subgraphs(G)[0]
edgelist=[nx.utils.powerlaw_sequence(nx.number_of_edges(Gcc),exponent=2.0)]
sé que asignar pesos a los bordes de un diccionario de tuplas (nodo 1, el nodo 2, peso) utilizando:
nx.from_edgelist(edgelist,create_using=None)
Pero cuando estoy solo interesado en conseguir una red ponderada donde los pesos están distribuidos por la ley del poder, ¿hay alguna otra forma más corta?
Muchas gracias. – Aya
discúlpeme ¿y si quiero que esta secuencia de ley de poder sea cualquier número excepto cero? o cualquier número en un rango específico? de modo que el valor más pequeño es 1, por ejemplo. Ni powerlaw_sequence (100, exponente = 2.0, rango (1,20)) ni powerlaw_sequence (100, exponente = 2.0, xmin = 1) funcionan. Gracias – Aya
respuesta de referencia http://stackoverflow.com/questions/9016591/how-to-exclude-some-numbers-from-a-list/9016679#9016679 – Aya