Come posso assegnare in modo casuale pesi da una distribuzione di legge di potenza a una rete con un numero molto elevato di nodi.reti con pesi distribuiti a legge di potenza casuale
ho scritto
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)]
so che assegnare un peso ai bordi da un dizionario di tuple (node1, node2, peso) che utilizzano:
nx.from_edgelist(edgelist,create_using=None)
Ma quando io sono solo interessati a ottenere un rete ponderata in cui i pesi sono distribuiti dalla legge di potenza, c'è un altro modo più breve?
Grazie mille. – Aya
scusami se voglio che questa sequenza della legge di potenza sia un numero qualsiasi tranne zero? o qualsiasi numero in un intervallo specifico? in modo che il valore più piccolo sia 1, ad esempio, né powerlaw_sequence (100, esponente = 2.0, intervallo (1,20)) né powerlaw_sequence (100, esponente = 2.0, xmin = 1) funzionano. Grazie – Aya
risposta per riferimento http://stackoverflow.com/questions/9016591/how-to-exclude-some-numbers-from-a-list/9016679#9016679 – Aya