Я хотел бы кое-что узнать об этой задаче оптимизации: для заданных неотрицательных целых чисел найдите функцию минимизирующую выражение
Пример, использующий другую формулировку, может прояснить ситуацию: вам дан набор наборов векторов, таких как
{
{(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)},
{(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)},
{(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)}
}
Выберите один вектор из каждого набора, чтобы максимальная составляющая их суммы была минимальной. Например, вы можете выбрать
(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)
с максимальным компонентом, равным 2, что здесь явно оптимально.
Мне интересно , если это хорошо известная проблема , и какие проблемы , специфичные приближенные методы решения доступны. Это должно быть быстро и легко программировать (без ЦЛПА решателя и т.д.). Нет точного решения не требуется , поскольку это всего лишь приближение реальной проблемы.
Я вижу, что я должен был добавить некоторые подробности о проблемах, которые меня интересуют:
- , т. е. всегда есть 64 строки (при записи, как в приведенном выше примере).
- , то есть, там уже только 2 векторов в ряд.
- N , где (длина вектора) составляет от 10 до 1000.
Более того, в каждой строке сумма элементов всех векторов одинакова, т.е.
и сумма элементов вектора суммы меньше его длины, т.е.
источник
Ответы:
Снижение от 3sat к два вектора версии: дана формула, пусть индексные переменные, , и индексных оговорок. Пусть быть числом переменного раза оказываюсь положительно (если ) или отрицательно (если ) в пункте . OPT составляет менее тогда и только тогда формула выполнима (биекция очевидна).j ∈ { 0 , 1 } k a i , j , k i j = 0 j = 1 k 3i j∈{0,1} k ai,j,k i j=0 j=1 k 3
Как бы атаковать эту проблему: большой поиск окрестностей. Начните с любым решением. Выбор строк в случайном порядке. Использование грубой силы , чтобы найти лучшее решение , где можно изменить только в тех строках-очень выполнимы даже для умеренных учитывая , что размер проблемы заключается строк. Повторение.ф к 64r f k 64
источник
Мы не можем обсуждать сложность проблемы, когда размер проблемы зафиксирован на константе, потому что (большая часть) теория сложности имеет дело с асимптотическим поведением сложности проблемы, когда размер проблемы стремится к бесконечности. Здесь я рассматриваю как число строк, так и размерность векторов как переменных.
Тогда задача является NP-полной, даже если числа на входе даны в унарном виде. Это не ответ на ваш вопрос, потому что вы спрашиваете о приближении, но это нечто.
Определите проблему строго:
Экземпляр : n пар векторов a i , b i ∈ ℕ m ( i ∈ {1,…, n }) и K ∈ ℕ, все в унарном порядке.
Вопрос : Можем ли мы выбрать a i или b i для каждого i, чтобы сумма этих n векторов имела не более K в каждой координате?
Ниже приведена известная NP-полная проблема, называемая 3-разделом :
Экземпляр с 3 разделами : B ∈ ℕ и 3 k целых чисел c 1 ,…, c 3 k между B / 4 и B / 2, исключающие, такие, что ∑ i = 1 3 k c i = kB , все в унарном порядке.
Вопрос : Можно ли разбить мультимножество { c 1 ,…, c 3 k } на k мультимножеств S 1 ,…, S k так, чтобы сумма каждого S j была равнаБ ?
Учитывая случай ( B ; c 1 ,…, c 3 k ) задачи с 3 разделами, создайте пример вышеупомянутой проблемы следующим образом. Для каждого i = 1,…, 3 k и j = 1,…, k мы построим пару из 4 k -мерных векторов, представляющих выбор того, принадлежит ли c i к S j или нет:
Не трудно видеть , что экземпляр ( B , C 1 , ..., с 3 к ) задачи 3-разбиения имеет решение тогда и только тогда , когда есть способ выбрать вектор из каждых из 3 к 2 , построенным пары , так что все координаты суммы этих векторов не превосходит ( к -1) B . (На самом деле, когда это происходит, все координаты суммы равны ( k −1) B. ) Таким образом, это сокращение от задачи с 3-мя разбиениями до задачи выше.
До сих пор я игнорировал два дополнительных ограничения, указанных в конце вопроса, но оба легко применить, слегка изменив это сокращение. Условие, что сумма элементов каждого вектора равна, может быть применено путем добавления фиктивных координат, которые содержат только 0 или 1. Условие, что эта сумма меньше, чем измерение, может быть выполнено путем добавления фиктивных координат, которые содержат только 0.
источник