Seed selection classes for propagation models#
See a propagation model guide for details of these classes.
Base structures for concrete seed selectors#
- class BaseSeedSelector(**kwargs: Any)#
Bases:
ABCBase abstract class for seed selectors.
- __init__(**kwargs: Any) None#
Initialise the object.
- _abc_impl = <_abc._abc_data object>#
- abstract _calculate_ranking_list(graph: Graph) list[Any]#
Create a ranking of nodes based on concrete metric/heuristic.
- Parameters:
graph – single layer graph to compute ranking for
- Returns:
list of node-ids ordered descending by their ranking position
- abstract actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Create actorwise ranking.
- nodewise(net: MultilayerNetwork) dict[str, list[Any]]#
Create a per-node ranking.
Concrete seed selectors#
- class BetweennessSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorBetweenness Centrality seed selector.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Get ranking for actors using betweenness centrality metric.
- class CBIMSeedselector(merging_idx_threshold: float)#
Bases:
BaseSeedSelectorCBIM seed selector.
The this implementation is based on algorithm presented by Venkatakrishna Rao, C. Ravindranath Chowdary in CBIM: Community-based influence maximization in multilayer networks” which was published in “Information Sciences”, 2022, Volume 609 (https://doi.org/10.1016/j.ins.2022.07.103). Call “nodewise” method for the original implementation (which ranks separately nodes from each later). To select actors use “actorwise” method.
- __init__(merging_idx_threshold: float) None#
Create an object.
- Parameters:
merging_idx_threshold – a threshold above which communities will not be merged anymore during consolidation phase
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Get ranking using Community Based Influence Maximization.
- class CIMSeedSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorSeed selector based on Clique-based influence maximisation algorithm.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.
- class ClosenessSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorCloseness Centrality seed selector.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Get ranking for actors using closeness centrality metric.
- class DegreeCentralityDiscountSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorDegree Centrality Discount seed selector.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Get ranking for actors using Degree Centrality Discount algo.
- class DriverActorSelector(method: BaseSeedSelector | None)#
Bases:
BaseSeedSelectorDriver Actor based seed selector.
- __init__(method: BaseSeedSelector | None) None#
Initialise object.
- Parameters:
method – a method to sort driver actors.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Return a list of driver actors for a multilayer network.
- snap_select(net: TemporalNetwork, snap_id: int) list[MLNetworkActor]#
Return a list of driver actors for a temporal network.
- class KatzSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorKatz Centrality seed selector.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Get ranking for actors using Katz centrality metric.
- class KPPShellSeedSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorSeed selector based on K++ Shell Decomposition algorithm.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.
- class KShellMLNSeedSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorSelector for MLTModel based on k-shell algorithm.
In contrary to KShellSeedSelector it utilises k-shell decomposition defined as in network_diffusion.mln.functions.k_shell_mln()
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.
- class KShellSeedSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorSelector for MLTModel based on k-shell algorithm.
According to “Seed selection for information cascade in multilayer networks” by Fredrik Erlandsson, Piotr Bródka, and Anton Borg we have extended k-shell ranking by combining it with degree of the node in each layer, so that ranking is better ordered (nodes in shells can be ordered).
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.
- class MockingActorSelector(preselected_actors: list[MLNetworkActor])#
Bases:
BaseSeedSelectorMock seed selector - returns a ranking provided as argument to init.
- __init__(preselected_actors: list[MLNetworkActor]) None#
Initialise object.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Get ranking for actors.
- class NeighbourhoodSizeDiscountSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorNeighbourhood Size Discount seed selector.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Get ranking for actors using Degree Centrality Discount algo.
- class PageRankMLNSeedSelector(**kwargs: Any)#
Bases:
PageRankSeedSelectorSelector for MLTModel based on Page Rank algorithm.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.
- class PageRankSeedSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorSelector for MLTModel based on Page Rank algorithm.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.
- class RandomSeedSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorRandomised seed selector prepared mainly for DSAA algorithm.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Retrieve actors at random.
- class VoteRankMLNSeedSelector(device: str | None = None, **kwargs: Any)#
Bases:
BaseSeedSelectorSelector for MLTModel based on Vote Rank algorithm.
- __init__(device: str | None = None, **kwargs: Any) None#
Initialise the object.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.
- class VoteRankSeedSelector(**kwargs: Any)#
Bases:
BaseSeedSelectorSelector for MLTModel based on Vote Rank algorithm.
- actorwise(net: MultilayerNetwork) list[MLNetworkActor]#
Compute ranking for actors.