Чи важко знайти оптимальні ланцюги додавання?


20

Доповнення ланцюг являє собою послідовність позитивних цілих чисел (x1,x2,,xn) , де x1=1 , і кожен індекс i2 , ми маємо xi=xj+xk для деяких індексів 1j,k<i . Довжина додавання ланцюга n ; мішень з крапельної ланцюга xn .

Що відомо про складність наступної задачі: З огляду на ціле число N , яка довжина найкоротшого ланцюга додавання, ціль якого N ? Це NP-важко?

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


2
два питання: задається у двійковій формі, я припускаю, чи можуть j і k бути однаковими (якщо так, то завжди є послідовність журналу довжини n через бінарне розширення)Njk
Suresh Venkat,

Припустимо, що задається у двійковій формі, хоча я не знаю алгоритму багаторазового часу, навіть коли N не є одинаковою. І так, додавання до себе дозволено - насправді потрібно зійти з землі. Найкоротший ланцюг на 128 становить (1, 2, 4, 8, 16, 32, 64, 128). NN
Jeffε

Відповіді:


11

Проблема згадується як відкрита в кандидатській дисертації Еріка Лемана "Алгоритми наближення стиснення даних на основі граматики" у 2002 році.

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



1

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

Підхід полягає в тому, щоб звести це до екземпляра MIN-ONES EVEN-3 CSP (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)

Нарешті, нам потрібно додати обмеження, які гарантують, що принаймні один з змінних вибирається, коли присвоєний "відповідний" N- змінний (пробачте, зловживання нотацією). Це можна зробити, додавши звичайне обмеження АБО над усіма P i j таким чином, що сума i + j до N- змінної, про яку йдеться. Однак ми повинні знайти спосіб перекодувати це в рамках MOEC.PNPiji+jN

Тож дозвольте мені окреслити загальний спосіб висловлювання з урахуванням набору змінних:

,(X,l1,l2,,lt)

як обмеження, "якщо завдання задовольняє і встановлює на один, то саме один з l я повинен бути встановлений на один за призначенням", може бути закодований синтаксисом MOEC. Зауважте, що цього достатньо для наших вимог, ми просто вводимо обмеження:Xli

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

Кодування проводиться наступним чином. Нехай є вкоріненим повним бінарним деревом на t листках. Введіть нову змінну T d i для всіх 1 d log t та 1 i L ( d ) , де L ( d ) позначає кількість вузлів T X на глибині d .TXtTdi1dlogt1iL(d)L(d)TXd

Для кожного вузла , якщо p і q - його діти на дереві, введіть обмеження EVEN-3:Tdipq

{Tdi,p,q}

Це означає, що якщо змінна, що відповідає вузлу, встановлена ​​в істинному, то точно один з її дітей повинен бути встановлений і в true. Тепер додайте наслідки:

і ( d log t , j ) l j (кома для ясності).(XT11)(dlogt,j)lj

Ця комбінація обмежень та наслідків EVEN-3 рівнозначна обмеженню, яке ми хотіли кодувати.

Інтуїтивно зрозуміло, що два останні обмеження викликають саме ті реакції, які необхідні для створення ланцюга додавання. Зокрема, давайте подивимось на , які присвоєні одним задовольняючим завданням, - твердження полягає в тому, що вони утворюватимуть ланцюг додавання для N : оскільки призначення змушене встановити N до одного, повинно бути принаймні один P i j, який був встановлений на один, і наслідки примушують N i і N jNiNNPijNiNjщоб присвоїти його, і це йде вниз (я впевнений, що це можна формалізувати за допомогою індукції, хоча я ще не розробив цей рівень деталізації). Зауважте, що задаюче завдання, яке є оптимальним за кількістю присвоєних, не встановить істинним для двох пар ( r , s ) та ( r , s ) з тієї причини, що P- змінні поставляються з додатковими багаж наслідків, а Q -змінних змін немає (вони знаходяться там, щоб забезпечити задоволення ВСЕ-3 - на пункт, де N i є істинним і PPij(r,s)(r,s)PQNi не відповідає дійсності, нам все одно потрібно вибрати щось для задоволення цього пункту, і з причин, що їх легко зрозуміти, це не може бути однією універсальною змінною через положення).Pij

Тому я вважаю, що ланцюжок додавання відповідає задоволенню та навпаки. Дозвольте мені описати одну частину цього дещо формально: давши ланцюг додавання, ми побудуємо завдання яке задовольняє. Для початку f встановлює всі N i , які є в ланцюжку, на одну, а іншу N i - на нуль. Далі, якщо k має в ланцюзі додавання, то для кожного N k , нехай i k , j k - елементи ланцюга такі, що i k + j k = j . Тоді f задаєffNiNikNkik,jkik+jk=jf до одного (і Q i k j k до нуля), і всі ( i , j ) такі, що i i k і j j k і i + j = k , f встановлює Q i j до одного (і P i j до нуля). Для всіх k , які не містять ланцюжок додавання, для всіх i , j таких, що iPikjkQikjk(i,j)iikjjki+j=kfQijPijki,j , встановіть усі Q i j і P i j на нуль (зауважте, що послідовність випливає з того, що два числа складаються лише одним способом). Кожне застереження, що включає N i у ланцюжку, задовольняється, оскільки або P-змінна, або Q-змінна, відповідна їй, була встановлена ​​в одну (і зауважте, що саме одна з них встановлена ​​на одну для будь-якої пари ( i , j ) ). Для кожного іншого пункту все встановлено на нуль. Про те, що наслідки мають місце, легко перевірити.i+j=kQijPijNi(i,j)

Незрозуміла частина полягає в наступному: тому що для кожного елемента обраного в ланцюзі додавання, присвоєння має вагу t (через те, що всі Q -змінні встановлюються на один). Тож існує ймовірність, що довший додатковий ланцюг відповідатиме дешевшому призначенню, але я впевнений, що цього не відбудеться через доказ у наступних рядках: розгляньте оптимальний ланцюжок додавання та припустимо, що існує довший, який має менша вага, що задовольняє йому завдання. Зрозуміло, що елементи довшого ланцюга виключають принаймні один із коротшого - нехай цей елемент буде x . Хочу сказати, що витрати, понесені з xttQxxв будь-якому випадку, це відбувається в більш тривалому ланцюгу, а решта вигідно. Однак я мушу це ретельно записувати, і я, можливо, просто бачу речі з синдромом після півночі!


1
Якщо це все-таки спрацює, здається, що це все-таки буде експоненціальним часом (коли N виражається бінарним), оскільки кількість змінних пропорційна N ^ 2, а не полілогу (N).
Девід Еппштейн

Ага так, я мав би це наголосити. Я думав про в унарній формі після зауваження @ JeffE, що навіть це не ясно. Я планую подумати над тим, щоб зменшити розмір екземпляра далі, але на даний момент я більше прагну, щоб це було нормально. Якщо це так, я думаю, що є можливість для покращення. Між іншим, чи вважаєте ви підхід перспективним? N
Нельдхара

Я не бачу, як обмеження, які ви описуєте, змушують рішення бути дійсним. Що вас заважає встановити P_ij = 0 і Q_ij = 1 для всіх i + j = n, а P_ij = Q_ij = 0 для всіх інших i, j?
Девід Еппштейн

Дякуємо, що пройшли шлях до цього! І так, ви цілком праві; Я мав на увазі додати обмеження, яке сказало, що будь-яке з означає щось з відповідних P i j 's, але зрозумів, що це підірває складність екземпляра в домені Hitting Set, і, хоча я мав намір це виправити, Я думаю, що замість цього забув. Я оновив відповідь можливим виправленням, це просто трохи втомлива (але проста) конструкція. NiПij
Нельдхара
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.