Сложно ли найти оптимальные цепочки сложений?

20

Дополнение цепь представляет собой последовательность положительных целых чисел , где х 1 = 1 , и каждый индекс я 2 , мы имеем й я = х J + х K для некоторых индексов 1 J , к < я . Длина прибавления цепи п ; мишень из капельной цепи х(x1,x2,,xn)x1=1i2xi=xj+xk1j,k<in .xn

Что известно о сложности следующей задачи: Учитывая целое число , какова длина самой короткой цепочки сложения, целью которой является N ? Это NP-жесткий?NN

Википедия указывает на статью 1981 года, написанную Дауни, Леонгом и Сетхи, в которой доказывается, что следующая связанная проблема является NP-трудной: учитывая набор целых чисел, какова минимальная длина цепочки сложений, которая включает весь набор? Некоторые авторы, очевидно, утверждают, что эта статья доказывает, что задача с одной целью является NP-трудной, но это не так.

Jeffε
источник
2
два вопроса: дается в двоичной форме, я полагаю, и могут ли j и k быть идентичными (если так, то всегда есть последовательность длины log n через двоичное расширение)Njk
Suresh Venkat
Давайте предположим, что задано в двоичном виде, хотя я не знаю алгоритма поли-времени, даже когда N унарно. И да, добавление к себе разрешено - фактически требуется оторваться от земли. Самая короткая цепочка для 128 - это (1, 2, 4, 8, 16, 32, 64, 128). NN
Джефф

Ответы:

11

Проблема упоминается как открытая в докторской диссертации Эрика Лемана «Алгоритмы аппроксимации для сжатия данных на основе грамматики» в 2002 году. С стр. 35 диссертации:

«Тем не менее, точное решение проблемы цепочки сложения остается странно неуловимым. М-арный метод выполняется во времени polylog (n) и дает приближение 1 + o (1). Однако, даже если экспоненциально больше времени, поли ( n), точный алгоритм не известен ".

Эндрю В.
источник
1

Я хотел бы задокументировать некоторый частичный прогресс - казалось бы, многообещающий - к алгоритму полиномиального времени. ОБНОВЛЕНИЕ : добавлены некоторые детали, чтобы учесть глюк, отмеченный @David (спасибо!).

Подход заключается в том, чтобы свести это к экземпляру CSP-серверов MIN-ONES EVEN-3 (MOEC), что является проблемой, решаемой за полиномиальное время. Доказательство сокращения немного нечетко, но я надеюсь, что оно существует!

Экземпляр MOEC - это семейство мерных подмножеств множества переменных и целое число k . Вопрос в том, существует ли удовлетворительное назначение веса не более k , где назначение - это функция от юниверса до { 0 , 1 } , вес назначения - это число переменных, которым оно присваивает одну, и назначение удовлетворяющий, если для каждого подмножества переменных { x , y , z } присваивание (скажем, f ) имеет свойство, которое:3kk{0,1}{x,y,z}f

.f(x)+f(y)+f(z)=0(mod  2)

Вы можете представить это как 3-SAT с другим понятием удовлетворенности - выберите ни одного или два. Я буду немного небрежен в отношении примера MOEC в том смысле, что я учту, кроме обычных подмножеств, последствия, дизъюнкции длины два и ограничение ( x = 1 ) . Я считаю, что эти простые дополнения сохранят проблему за полиномиальное время.3(x=1)

Допустим, мы уменьшаем проблему цепочки сложений для числа . Переменная, установленная для этого сокращения, следующая:n

Для каждого переменная N i . Я переписать переменную N п , как N . Для каждой пары i , j такой, что 1 i , j k , введите переменные P i j и Q i j . 1inNiNnNi,j1i,jkPijQij

Введем следующие подмножества для каждого такого что k = i + j :i,j,kk=i+j

{Pij,Qij,Nk}

и следующие последствия:

и P i jN jPijNiPijNj

и следующие ограничения:

.(N1=1),(N=1)

PNPiji+jN

Итак, позвольте мне изложить общий способ сказать, учитывая набор переменных:

(X,l1,l2,,lt)

Xli

(Nk,{Pij | i+j=k})

TXtTdi1dlogt1iL(d)L(d)TXd

Tdipq

{Tdi,p,q}

Это означает, что если переменная, соответствующая узлу, установлена ​​в значение true, то точно один из его дочерних элементов также должен быть установлен в значение true. Теперь добавьте значения:

(XT11)(dlogt,j)lj

Эта комбинация ограничений и последствий EVEN-3 эквивалентна ограничению, которое мы хотели закодировать.

NiNNPijNiNjPij(r,s)(r,s)PQNiPij

ffNiNikNkik,jkik+jk=jfPikjkQikjk(i,j)iikjjki+j=kfQijPijki,ji+j=kQijPijNi(i,j)

ttQxxв любом случае происходит в более длинной цепочке, а остальные сравниваются благоприятно. Тем не менее, я должен тщательно это записать, и, возможно, я просто вижу вещи с синдромом после полуночи!

Neeldhara
источник
1
Если это работает, кажется, что это все еще будет экспоненциальное время (когда N выражено в двоичном виде), потому что число переменных пропорционально N ^ 2, а не polylog (N).
Дэвид Эппштейн
N
Я не понимаю, как описанные вами ограничения заставляют решение быть действительным. Что мешает вам установить P_ij = 0 и Q_ij = 1 для всех i + j = n, а P_ij = Q_ij = 0 для всех остальных i, j?
Дэвид Эппштейн
NiPij