min_weighted_dominating_set#

min_weighted_dominating_set(G, weight=None)[source]#

Returns a dominating set that approximates the minimum weight node dominating set.

Parameters:
GNetworkX graph

Undirected graph.

weightstring

The node attribute storing the weight of an node. If provided, the node attribute with this key must be a number for each node. If not provided, each node is assumed to have weight one.

Returns:
min_weight_dominating_setset

A set of nodes, the sum of whose weights is no more than (log w(V)) w(V^*), where w(V) denotes the sum of the weights of each node in the graph and w(V^*) denotes the sum of the weights of each node in the minimum weight dominating set.

Raises:
NetworkXNotImplemented

If G is directed.

Notes

This algorithm computes an approximate minimum weighted dominating set for the graph G. The returned solution has weight (log w(V)) w(V^*), where w(V) denotes the sum of the weights of each node in the graph and w(V^*) denotes the sum of the weights of each node in the minimum weight dominating set for the graph.

This implementation of the algorithm runs in O(m) time, where m is the number of edges in the graph.

References

[1]

Vazirani, Vijay V. Approximation Algorithms. Springer Science & Business Media, 2001.

Examples

>>> G = nx.Graph([(0, 1), (0, 4), (1, 4), (1, 2), (2, 3), (3, 4), (2, 5)])
>>> nx.approximation.min_weighted_dominating_set(G)
{1, 2, 4}