Учитывая подмножество декартового произведения из двух конечных множеств, я хочу найти его минимальное покрытие множествами, которые сами являются декартовыми произведениями.
Например, учитывая произведение между и , я могу наблюдать подмножество и постарайтесь покрыть это минимальным количеством декартовых произведений.J = { 1 , 2 , 3 } { ( A , 2 ) , ( B , 3 ) , ( B , 2 ) }
Это можно сделать двумя способами: и , оба требуют 2 продукта. Неоптимальным решением может быть разбиение его на 3 тривиальных продукта.
Можно ли найти такое оптимальное покрытие эффективно (например, за полиномиальное время)?
algorithms
set-cover
yuvalm2
источник
источник
Ответы:
ЯМ формулирует эту проблему в комментариях как нахождение минимального числа двудольных клик (bi-cliques), которые покрывают двудольный граф. два набора, которые вы упомянули, являются двумя наборами вершин двудольного графа. декартовы произведения подмножеств двух вершин являются бикликами. Википедия утверждает, что это проблема двухстороннего измерения и проблема GT18 у Гарея и Джонсона , доказавшая, что NP завершена, на основе простой переформулировки задачи базиса множеств SP7.
источник