https://en.wikipedia.org/wiki/Dominating_set
Zbiór dominujący (ang. dominating set) grafu nieskierowanego G=(V,E) jest to podzbiór S zbioru wierzchołków V, taki że każdy wierzchołek z V, który nie należy do S, ma co najmniej jednego sąsiada w S. Problem znalezienia najmniejszego zbioru dominującego jest trudny.
# Testowanie zbioru dominującego. import unittest def find_dominating_set(graph): pass class TestDominatingSet(unittest.TestCase): def setUp(self): self.G = dict() self.edges = [] # wstawiamy 3-krotki, graf ważony # Wstawiamy wierzchołki i krawędzie do G. def test_dominating_set(self): dset = find_dominating_set(self.G) neighbors = set(dset) for source in dset: neighbors.update(self.G[source]) self.assertEqual(len(neighbors), len(self.G))