Минимальная обложка это вопрос, где вы должны найти минимальное количество наборов, необходимых для покрытия каждого элемента.
Например, представьте, что у нас есть набор X=array(1,2,3,4,5,6)
и 5 другой набор S, где
S[1] = array(1, 4)
S[2] = array(2, 5)
S[3] = array(3, 6)
S[4] = array(1, 2, 3)
S[5] = array(4, 5, 6)
Проблема состоит в том, чтобы найти минимальное количество множеств S, которые покрывают каждый элемент X. Поэтому очевидно, что минимальное покрытие множеств в нашем случае будет S[4]
а также S[5]
потому что они охватывают все элементы.
Кто-нибудь есть идеи, как реализовать этот код в C ++. Обратите внимание, что это NP-полный, поэтому нет быстрого алгоритма для его решения. Любое решение в C ++ будет приветствоваться.
И, кстати, это не домашнее задание, мне нужно использовать этот алгоритм в Куайн-Маккласка проект для генерации последней части решения.
Заранее спасибо.
Задача ещё не решена.