Я хотів би зафіксувати деякий частковий прогрес - здавалося б, багатообіцяючий поки що - до поліноміального алгоритму часу. ОНОВЛЕННЯ : Додано деякі деталі для обліку проблеми, на яку вказав @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 . 1≤i≤nNiNnNi,j1≤i,j≤kPijQij
Введіть такі підмножини для кожного , що k = i + j :i,j,kk=i+j
{Pij,Qij,Nk}
та наступні наслідки:
і
P i j ⇒ N jPij⇒NiPij⇒Nj
та такі обмеження:
.(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 .TXtTdi1≤d≤logt1≤i≤L(d)L(d)TXd
Для кожного вузла , якщо p і q - його діти на дереві, введіть обмеження EVEN-3:Tdipq
{Tdi,p,q}
Це означає, що якщо змінна, що відповідає вузлу, встановлена в істинному, то точно один з її дітей повинен бути встановлений і в true. Тепер додайте наслідки:
і
( d log t , j ) ⇒ l j (кома для ясності).(X⇒T11)(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)i≠ikj≠jki+j=kfQijPijki,j , встановіть усі Q i j і P i j на нуль (зауважте, що послідовність випливає з того, що два числа складаються лише одним способом). Кожне застереження, що включає N i у ланцюжку, задовольняється, оскільки або P-змінна, або Q-змінна, відповідна їй, була встановлена в одну (і зауважте, що саме одна з них встановлена на одну для будь-якої пари ( i , j ) ). Для кожного іншого пункту все встановлено на нуль. Про те, що наслідки мають місце, легко перевірити.i+j=kQijPijNi(i,j)
Незрозуміла частина полягає в наступному: тому що для кожного елемента обраного в ланцюзі додавання, присвоєння має вагу t (через те, що всі Q -змінні встановлюються на один). Тож існує ймовірність, що довший додатковий ланцюг відповідатиме дешевшому призначенню, але я впевнений, що цього не відбудеться через доказ у наступних рядках: розгляньте оптимальний ланцюжок додавання та припустимо, що існує довший, який має менша вага, що задовольняє йому завдання. Зрозуміло, що елементи довшого ланцюга виключають принаймні один із коротшого - нехай цей елемент буде x . Хочу сказати, що витрати, понесені з xttQxxв будь-якому випадку, це відбувається в більш тривалому ланцюгу, а решта вигідно. Однак я мушу це ретельно записувати, і я, можливо, просто бачу речі з синдромом після півночі!