Алгоритм минимальной группировки

У меня есть набор значений, каждое значение имеет возможную группу. Значение может повторяться, но в другой группе.

Каким будет оптимальный алгоритм для получения минимального количества групп

Примерный набор: (12, группа б) (38, группа а) (12, группа а)

Желаемый результат: (38, группа а) (12, группа а)

(используется только одна группа)

-- edit: мне нужен алгоритм для поиска минимального количества групп из набора, подобного приведенному выше примеру. Если бы у меня был плохой алгоритм, он выберет (12, группа b) (38, группа a) Это 2 группы для одинаковых значений вместо использования одной, а не то, что я хочу


person user235410    schedule 06.06.2011    source источник
comment
Я не уверен, что точно понимаю, чего вы хотите. Не могли бы вы уточнить?   -  person Victor Zamanian    schedule 06.06.2011


Ответы (1)


Если я правильно понял вопрос, это проблема с обложкой

Жадный алгоритм, описанный в ссылке, начинается с группы a, а затем завершается, так как он уже охватывает все.

Обратите внимание, что в целом это дает только приближение к оптимальному решению.

person Henrik    schedule 06.06.2011
comment
Действительно, NP-полный для оптимальности! - person davin; 06.06.2011