Этот вопрос вытекает из моего смежного вопроса, опубликованного здесь. @mhum предположил, что моя проблема попадает в область проблемы покрытия. Я попробовал закодировать свой вопрос в проблему минимального покрытия множества и в настоящее время у меня есть набор данных в такой форме:
Set Cost
(1,2) 1
(1) 1
(1,2,3) 2
(1) 2
(3,4) 2
(4) 3
(1,2) 3
(3,4) 4
(1,2,3,4) 4
Цель состоит в том, чтобы найти хорошее покрытие множества, которое охватывает все числа и которое пытается минимизировать общую стоимость. Мой набор данных большой и содержит по крайней мере 30000 наборов (размер которых варьируется от 5-40 элементов), подобных этому. Есть ли какие-нибудь хорошие жадные реализации для решения этой задачи или я сам могу решить ее? Я не эксперт в LP, но любые LP-решатели (из numpy/scipy), которые могут решить эту задачу, также приемлемы.