Есть хорошая реализация жадного покрытия множества для больших наборов данных?

Этот вопрос вытекает из моего смежного вопроса, опубликованного здесь. @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), которые могут решить эту задачу, также приемлемы.

6
задан Community 23 May 2017 в 10:30
поделиться