0

I am looking for an efficient algorithm (if there is one) to solve the following problem: Given a set S, whose elements are sets with only two elements. For simplicity, let' s say "two elements" are integers from 1 on. As an example, S can be decribed like: S = {{1, 2}, {2, 3}}. We define R as a radix, which means the integers in the set can not be greater than or equal to R, a bit different from integer 10 in the decimalism. We now define a group G which is merged by the disjoint sets in S with the total count of integers in G less than or equal to R. For example, S = {{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}}, R = 4, and then G1 = {{1, 2}, {3, 4}}, G2 = {{1, 3}, {2, 4}}, G3 = {{1, 4}, {2, 3}}. Therefore, in this example, the minimal count of groups is 3.

I want to know if there is any algorithms can efficiently solve this problem with minimal groups. Before posting this problem, I was thinking to transform it into a graph clustering problems, however I find it hard to do with it. I hope I can get some help here, thank you!

463035818_is_not_an_ai
  • 109,796
  • 11
  • 89
  • 185
Vertero
  • 3
  • 3

1 Answers1

0

I think I must have misunderstood this question, it seems so trivial.

Let

  • N be the number of sets in S
  • M be the minimal number of groups in G1, G2, ... GM

then

M = ( 2 * N ) / R, rounded UP to the nearest whole integer

The rounding up is needed because if 2 * N is not divisible by R, then there will one G group with less than R elements.

e.g for your example: M = 2 * 6 / 4 = 3

ravenspoint
  • 19,093
  • 6
  • 57
  • 103
  • Thank you for answering this question. However, to be honest, I am looking for a "procedure" which can find exact elements in every group. I wonder if there is an algorithm which could output every group while I input a random set S. – Vertero Sep 14 '22 at 00:48