Utilities
cynetdiff.utils
¶
Functions used to convert NetworkX graphs to usable models.
check_csr_arrays(starts, edges)
¶
Asserts that the graph represented by starts
and edges
is in
valid compressed sparse row (CSR) format. Useful for debugging,
before the manual construction of a model.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
starts |
array
|
An array of start indices for each node's edges in the edge array. Type
of array elements must be |
required |
edges |
array
|
An array of edges represented as integer indices of nodes. Type
of array elements must be |
required |
Raises:
Type | Description |
---|---|
ValueError
|
If the input parameters are not in valid CSR format. |
networkx_to_ic_model(graph, *, activation_prob=None, _include_succcess_prob=False)
¶
Converts a NetworkX graph into an Independent Cascade model. Includes activation
probability values if they are defined on each edge under the key "activation_prob"
.
Activation probability should only be set on either edges or through the function
argument, not both.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
Graph or DiGraph
|
A NetworkX graph or directed graph. |
required |
activation_prob |
float
|
Activation probability for the Independent Cascade model, by default |
None
|
_include_succcess_prob |
bool
|
If True, includes success probabilities for each edge. These probabilities are then stored in the edge data dictionary with the key "success_prob", by default False. Used mainly for testing. |
False
|
Returns:
Type | Description |
---|---|
tuple[IndependentCascadeModel, dict[Any, int]]
|
A tuple with the instance of IndependentCascadeModel using the given graph and a dictionary mapping the nodes of the graph to their integer labels in the model. |
networkx_to_lt_model(graph)
¶
Converts a NetworkX graph into a Linear Threshold model. Includes influence
values if they are defined on each edge under the key "influence"
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
Graph or DiGraph
|
A NetworkX graph or directed graph. |
required |
Returns:
Type | Description |
---|---|
tuple[LinearThresholdModel, dict[Any, int]]
|
A tuple with the instance of LinearThresholdModel using the given graph and a dictionary mapping the nodes of the graph to their integer labels in the model. |
set_activation_random_sample(graph, weight_set)
¶
Set activation probability on each edge uniformly at random from the given weight set. Should be used on graphs before creating the independent cascade model.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
Graph or DiGraph
|
A NetworkX graph or directed graph. |
required |
weight_set |
AbstractSet[float]
|
The set of weights to sample from. Assigns each edge in the input graph a weight uniformly at random from this set. |
required |
set_activation_uniformly_random(graph, *, range_start=0.0, range_end=1.0)
¶
Set activation probability on each edge uniformly at random in the range
[range_start
, range_end
]. Must have that
0.0
<= range_start
< range_end
<= 1.0
. Should be used on graphs before
creating the independent cascade model.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
Graph or DiGraph
|
A NetworkX graph or directed graph. |
required |
range_start |
float
|
The start of the range to sample activation probabilities from. If not set,
defaults to |
0.0
|
range_end |
float
|
The end of the range to sample activation probabilities from. If not set,
defaults to |
1.0
|
set_activation_weighted_cascade(graph)
¶
Set activation probability on each edge (u,v) to 1/in_degree(v). Graph must be directed. Should be used on graphs before creating the independent cascade model.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
DiGraph
|
A NetworkX directed graph. |
required |