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: ABC

Base 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: BaseSeedSelector

Betweenness Centrality seed selector.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Get ranking for actors using betweenness centrality metric.

class CBIMSeedselector(merging_idx_threshold: float)#

Bases: BaseSeedSelector

CBIM 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: BaseSeedSelector

Seed selector based on Clique-based influence maximisation algorithm.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Compute ranking for actors.

class ClosenessSelector(**kwargs: Any)#

Bases: BaseSeedSelector

Closeness Centrality seed selector.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Get ranking for actors using closeness centrality metric.

class DegreeCentralityDiscountSelector(**kwargs: Any)#

Bases: BaseSeedSelector

Degree Centrality Discount seed selector.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Get ranking for actors using Degree Centrality Discount algo.

class DriverActorSelector(method: BaseSeedSelector | None)#

Bases: BaseSeedSelector

Driver 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: BaseSeedSelector

Katz Centrality seed selector.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Get ranking for actors using Katz centrality metric.

class KPPShellSeedSelector(**kwargs: Any)#

Bases: BaseSeedSelector

Seed selector based on K++ Shell Decomposition algorithm.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Compute ranking for actors.

class KShellMLNSeedSelector(**kwargs: Any)#

Bases: BaseSeedSelector

Selector 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: BaseSeedSelector

Selector 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: BaseSeedSelector

Mock 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: BaseSeedSelector

Neighbourhood Size Discount seed selector.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Get ranking for actors using Degree Centrality Discount algo.

class PageRankMLNSeedSelector(**kwargs: Any)#

Bases: PageRankSeedSelector

Selector for MLTModel based on Page Rank algorithm.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Compute ranking for actors.

class PageRankSeedSelector(**kwargs: Any)#

Bases: BaseSeedSelector

Selector for MLTModel based on Page Rank algorithm.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Compute ranking for actors.

class RandomSeedSelector(**kwargs: Any)#

Bases: BaseSeedSelector

Randomised 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: BaseSeedSelector

Selector 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: BaseSeedSelector

Selector for MLTModel based on Vote Rank algorithm.

actorwise(net: MultilayerNetwork) list[MLNetworkActor]#

Compute ranking for actors.