Учитывая вселенную элементов U = {1, 2, 3, ..., n} и количество множеств в этой вселенной {S1, S2, ..., Sm}, какое наименьшее множество мы можем создать, что будет охватывать хотя бы один элемент в каждом из m наборов?
Например, учитывая следующие элементы U = {1,2,3,4} и наборы S = {{4,3,1}, {3,1}, {4}}, следующие наборы будут охватывать хотя бы один элемент из каждого набора:
{1,4}
или же
{3,4}
поэтому минимальный размер, требуемый здесь, равен 2.
Есть мысли о том, как это можно увеличить, чтобы решить проблему для наборов m = 100 или m = 1000? Или мысли о том, как кодировать это в R или C ++?
Пример данных сверху с использованием R library(sets)
.
s1 <- set(4, 3, 1)
s2 <- set(3, 1)
s3 <- set(4)
s <- set(s1, s2, s3)
Приветствия