Есть ли способ закодировать экземпляр суммы подмножества или проблему разбиения числа так, чтобы (небольшое) решение целочисленного отношения дало ответ? Если не точно, то в каком-то вероятностном смысле?
Я знаю, что LLL (и, возможно, PSLQ) использовались с умеренным успехом в решении задач Subset Sum в области «низкой плотности», где диапазон выбранных чисел больше , но эти методы плохо масштабируются для случаи большего размера и потерпеть неудачу в «высокой плотности» области, когда диапазон чисел , выбранных намного меньше , чем 2 N . Здесь низкая плотность и высокая плотность относится к числу решений. Область с низкой плотностью относится к небольшому количеству или отсутствию существующих решений, тогда как область с высокой плотностью относится к области со многими решениями.
В области высокой плотности LLL находит (малые) целочисленные отношения среди данных экземпляров, но по мере увеличения размера экземпляра вероятность того, что найденное отношение является жизнеспособным решением проблемы суммы подмножеств или числового разбиения, становится все меньше и меньше.
Обнаружение целочисленных отношений является полиномиальным с точностью до экспоненциальной границы оптимального значения, в то время как сумма подмножеств и NPP, очевидно, являются NP-полными, так что в общем случае это, вероятно, невозможно, но если экземпляр рисуется случайным образом равномерно, может ли это сделать его проще?
Или я не должен даже задавать этот вопрос, а вместо этого спрашивать, есть ли способ уменьшить экспоненциальную оценку из оптимального ответа вместо экспоненциального увеличения вычислений?
Ответы:
Тем не менее, Flaxman и Przydatek предоставляют алгоритм, который решает проблемы подмножеств средней плотности в ожидаемое полиномиальное время.
Проверьте эту ссылку:
Flaxman и Przydatek, Решение проблем подмножеств средней плотности в ожидаемое полиномиальное время
источник