Я пытаюсь найти оптимальный алгоритм, который может найти самое большое подмножество, где сумма элементов является самой низкой и охватывает все элементы.Нужен алгоритм для поиска минимальной стоимости в подмножестве элементов
например: - Представьте себе, что A B C - это розничные торговцы, а W X Y Z - это продукты, целью которых является минимизация посещений и снижение цены.
A B C
W 4 9 2
X 1 3 4
Y 9 3 9
Z 7 1 1
So it appears my top two choices are
a) B:{XYZ} - 7 C:{W} - 2
b) C:{WXZ} - 7 B:{Y} - 3
So a) is picked because since it has a lower cost, i.e 9.
Эта проблема кажется похожей на вершинную оболочку и другие алгоритмы линейного программирования, но я не могу определить правильный.
Update:
Кажется, мне нужно добавить дополнительную переменную. Введение t. Если расходы на посещение наименьшего числа розничных продавцов и ближайших меньших -> t, выбирается следующий первый.
Continuing with the example.
say t = 5,
The largest subset containing all elements would be B:{WXYZ} with a cost of 16.
The next largest subset(s) is B:{XYZ} - 7 C:{W} - 2 with a cost of 9.
t = 16 - 9 > 5. So we pick B:{XYZ} - 7 C:{W} - 2
but if we did A:{X}, B:{Y}, C:{WZ} - 5, t = 9 - 5 < 5.
So B:{XYZ} - 7 C:{W} - 2 is picked
Действительно, меня интересует только тот алгоритм, который подходит для этого шаблона. Я не могу быть первым человеком, которому нужна такая оптимизация.
Hrmm, рассмотрев использование дерева и, возможно, глубину первого поиска? Прошло некоторое время с тех пор, как я сделал такое, похоже, что это может сработать. – Trent
Какова компромисс между минимизацией цены и минимизацией посещений. Вы хотите найти для самой низкой цены минимальное количество посещений, которое это удовлетворяет? – Owen
Проблема, похоже, выглядит как http://en.wikipedia.org/wiki/Transportation_theory_(mathematics) – MBo