sf.apps.clique.swap¶
-
swap
(clique, graph, node_select='uniform')[source]¶ If possible, generates a new clique by swapping a node in the input clique with a node outside the clique.
Proceeds by calculating the set \(C_1\) of nodes in the rest of the graph that are connected to all but one of the nodes in the clique. If this set is not empty, this function randomly picks a node and swaps it with the corresponding node in the clique that is not connected to it. The set \(C_1\) and corresponding nodes in the clique are provided by the
c_1()
function.Whenever there are multiple nodes within \(C_1\), one must choose which node to add to the growing clique. This function allows a method of choosing nodes to be set with the
node_select
argument, which can be any of the following:"uniform"
(default): choose a node from the candidates uniformly at random;"degree"
: choose the node from the candidates with the greatest degree, settling ties by uniform random choice;A list or array: specifying the node weights of the graph, resulting in choosing the node from the candidates with the greatest weight, settling ties by uniform random choice.
Example usage:
>>> graph = nx.wheel_graph(5) >>> graph.remove_edge(0, 4) >>> clique = [0, 1, 2] >>> swap(clique, graph) [0, 2, 3]
- Parameters
clique (list[int]) – a subgraph specified by a list of nodes; the subgraph must be a clique
graph (nx.Graph) – the input graph
node_select (str, list or array) – method of selecting incoming nodes from \(C_1\) during swapping. Can be
"uniform"
(default),"degree"
, or a NumPy array or list.
- Returns
a new clique subgraph of equal size as the input
- Return type
list[int]