Проблемы разбиения Алгоритм грубой силы
Я пытаюсь сделать псевдокод для проблемы раздела ниже в грубой форме.
набор целых чисел X и целое число k (k> 1). Найти k подмножеств X так, чтобы числа в каждом подмножестве суммировались в одну и ту же сумму, и нет двух подмножеств, имеющих общий элемент, или сделать вывод, что таких k подмножеств не существует. Проблема в NP-Complete
Например, при X = {2, 5, 4, 9, 1, 7, 6, 8} и k = 3 возможное решение будет: {2, 5, 7}, {4, 9, 1}, {6, 8} потому что все они в сумме до 14.
для исчерпывающего поиска я знаю, что обычно нам нужно искать каждое возможное решение и проверять, является ли цель похожей. Но так как это проблема разделения, это может быть сложно.
Алгоритм грубой силы:
Subset= X.sum/K //I had a guess this would make the parition
For int i==1; I <subset; i++ // this would change partition if not found in the first one
If (j=0; I<n; i++)
Sum == s[i]
If sum == target
Display “found”
Else
“not found”