Можем ли мы быстро сгенерировать мод 3 или решить проблему NP?


13

Честно говоря, я не очень много знаю о том, как генерируются случайные числа (комментарии приветствуются!), Но давайте предположим следующую теоретическую модель: мы можем получить целые числа равномерно случайными из и наша цель состоит в том, чтобы выведите целое число, равномерно случайное из [1,3].[1,2n]

Простое решение, ожидаемое время выполнения которого является полиномиальным, заключается в следующем. Откажитесь от (и, возможно, также ) от чтобы число оставшихся целых чисел делилось на чтобы мы могли взять сгенерированного целого числа. Если мы получим сброшенный номер, мы сгенерируем еще один номер, пока не получим неотброшенный.2n2n1[1,2n]3mod3

Но что, если мы хотим обязательно прекратить за полиномиальное время? Из-за проблем с делимостью проблема становится неразрешимой. Однако мне интересно, сможем ли мы решить следующее.

Предположим, что мы можем генерировать целые числа, равномерно случайные из [1,2n] и перед нами сложная вычислительная задача. Наша цель - вывести целое число, равномерно случайное из [1,3], или решить сложную задачу.

Здесь трудной проблемой может быть разложение целого числа, решение экземпляра SAT или что-то подобное. Например, мы можем декодировать одностороннюю перестановку f следующим образом, если нам дано некоторое f(x) (и предположим, что n четное): если для нашей случайной строки f(r)<f(x) , то взять f(r)mod3 , если f(r)>f(x) , то взять f(r)1mod3 . Наконец, если f(r)=f(x) , то мы закончили, так как r=x . (Если n нечетно, то работает нечто подобное, просто мы также должны проверить, если f(r+1)=f(x) и вычесть 2 если f(r)>f(x) .)

Резюме ответов. Эмиль Йержабек показал, что, если мы не сможем генерировать идеально равномерно, мы можем решить любую однозначную задачу поиска из TFNP, а также из PPA-3. С другой стороны, Даниелло показал, что мы не можем решить NP-полные задачи описанным выше способом, если только NP = co-NP.


@Tayfun Если четное, нам нужно, чтобы делилось на , если нечетно, тогда нам нужно, чтобы делилось на . Я был бы рад, если бы вы более конкретно указали, в какой части я должен быть более конкретен. 2 n - 1 3 n 2 n - 2 3n2n13n2n23
Domotorp

(1) Вы можете обобщить пример с односторонними перестановками для решения (однозначных) функций в TFNP. (2) Вы можете решить произвольные задачи поиска PPA-3.
Эмиль Йержабек

@Emil (1): как? (2): Я также думал, что это может быть правильный класс сложности, но я не понимаю, почему мы могли бы решить такие проблемы.
domotorp

Я постараюсь написать это как ответ позже. Кстати, вопрос интересный, я не знаю, в чем дело со всеми отрицательными голосами.
Эмиль Йержабек,

2
Недостатки странные. Это очень крутой вопрос! И я не вижу ничего неясного в этом.
Сашо Николов

Ответы:


6

В качестве продолжения ответа domotorp, я считаю, что мы можем решить задачи поиска NP, удовлетворяющие одному из следующих ограничений:

  1. число решений известно и не делится на ; или,3

  2. число решений ограничено полиномиально (но не известно заранее).

Для 1. мы можем использовать простое заполнение, чтобы уменьшить до следующего случая:

  • Решения из , где четно.м[0,2m1)m

  • Число решений удовлетворяет .ss1(mod3)

  • Любые два решения находятся как минимум на расстоянии друг от друга. (Скажем, они все делятся на )444

Обратите внимание, что . Таким образом, мы можем решить эту проблему, выбрав случайное число и используя протокол, аналогичный описанному в моем ответе для уникальных решений, если (что приводит к распределению на кроме одного на каждое из решений), и выдачу если .a [ 0 , 2 m ) a [ 0 , 2 m - s ) { 0 , 1 , 2 } 0 s 0 a [ 2 m - s , 2 m )32msa[0,2m)a[0,2ms){0,1,2}0s0a[2ms,2m)

Для получения 2., Предположим сначала , что число решений является известным . Как и в /cstheory//a/37546 , пусть будет наибольшей степенью которая делит , так что . Рассмотрим задачу поиска, решения которой представляют собой последовательности такие что , и каждый является решением исходной задачи. С одной стороны, исходная проблема сводится к новой. С другой стороны, число решений новой задачи равно , т. Е. Не делится наsp(n)3k3s3(s3k)y0,,y3k1y0<y1<<y3k1yi(s3k)3и известный. Таким образом, мы сделали 1.

Теперь, если число решений ограничено , но не известно, мы запускаем протокол выше times ( ) параллельно для каждого возможного выбора и:p(n)22p(n)1s2

  • если какой-либо из потоков возвращает решение исходной задачи, мы передаем один такой результат на выход;

  • если все потоки возвращают элементы , мы .r1,,r2{0,1,2}(r1+r2++r2)mod3

При второго события равномерно распределяется в поскольку является истинным числом решений исходной задачи, а остальные не зависят от , поэтому вся сумма также равномерно распределена. ,rs{0,1,2}srirs


Общее обобщение 1 и 2 состоит в том, что число решений происходит из вычислимого списка чисел за полиномиальное время, так что наибольшая степень делящая любое из них, ограничена полиномиально. 3
Эмиль Йержабек

Кстати, знаете ли вы какие - нибудь несоставные задачи, в которых число решений может быть доказано делимым на некоторую суперполиномиальную степень ? Под составным я имею в виду что-то вроде непосредственного произведения некоторых задач, где число решений делится на - составные задачи могут быть легко решены вышеуказанным способом. 33
domotorp

Я думаю, что можно доказать, что существует оракул, при котором некая суперполиномиальная степень 3 задач не может быть решена вышеуказанным способом.
domotorp

@domotorp Интересно, мне было интересно, что какой-то аргумент Валианта – Вазирани может быть использован для решения произвольных проблем TFNP. Во всяком случае, характеристика еще не завершена. Я особенно недоволен ограничением в этом ответе того, что число решений известно или, по крайней мере, исходит из конструктивного списка за полиномиальное время. С одной стороны, класс таких проблем, по-видимому, несопоставим с PPA-3 из моего другого ответа, поэтому было бы хорошо иметь конструкцию, которая обобщает оба. AFAICS единственная верхняя граница в том, что любая проблема разрешима ...
Эмиль Йержабек

... вышеуказанным способом сводится к задаче TFNP, число решений которой равно по модулю (но не известно). Мне не ясно, стоит ли ожидать, что это правильный класс, или нужны какие-то дополнительные ограничения в конце концов. 13
Эмиль Йержабек

10

Я буду использовать числа, начиная с а не с , так как я нахожу это более естественным.01

Вот два класса проблем, которые мы можем решить таким образом:

  1. Функции в TFNP (то есть, однозначные общие задачи поиска NP)

    (Это обобщает пример с односторонними перестановками. В качестве особого случая он включает решение проблем из .)UPcoUP

    Установка состоит в том, что у нас есть предикат полиномиального времени и такой многочлен , что для каждого длины существует уникальный длины такой, что выполнено. Вычислительная задача при заданном найти .R(x,y)p(n)xnym=p(n)R(x,y)xy

    Теперь я предполагаю, что wlog четный, так что . Алгоритм состоит в том, чтобы генерировать равномерно случайный и выводитьm2m1(mod3)y[0,2m)

    • R ( x , y )y (как решение задачи поиска) if ;R(x,y)

    • yy (как случайный элемент ), если и ;{0,1,2}yy{1,2}R(x,y)

    • ymod3 (как случайный элемент ), если нет решает .{0,1,2}y{y,y1,y2}R(x,y)

    Если бы не было решения проблемы поиска, случайного выбора дали бы и раза, и раза (еще один). Однако, если решает проблему поиска, мы работаем с элементами (которые охватывают все три класса вычетов), так что они производят только вычеты и , что выравнивает преимущество . (Здесь я предполагаю, что .)2m12 (2m1)/30 (2m+2)/3yy,y+1,y+2120y<2m2

  2. PPA- задачи поиска3

    Удобный способ определить PPA- - это задачи поиска NP, многие из которых сводятся к следующим типам задач. У нас есть фиксированная функция полиномиального времени и полином , так что для любого входа длины индуцированное отображение ограничено входами длины является функцией удовлетворяющей для каждого . Задача состоит в том, чтобы при заданном найти точку фиксирования из : .3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)fx:[0,2m)[0,2m)fx(fx(fx(y)))=yyxyfxfx(y)=y

    Мы можем решить эту проблему следующим образом: при заданном длины мы генерируем случайное число длины и выводимxnym=p(n)

    • y если это точка ;fx

    • в противном случае , и являются различными элементами. Мы можем пометить их как с , и вывести такой, что .yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y0<y1<y2i{0,1,2}y=yi

    Из определений ясно, что это дает равномерное распределение на , так как точки без фиксирования входят в тройки.{0,1,2}y


Позвольте мне показать для записи эквивалентность вышеупомянутой проблемы с полной проблемой Пападимитриу для PPA- , так как этот класс в основном игнорируется в литературе. Проблема упоминается в Buss, Johnson: «Пропозициональные доказательства и сокращения между задачами поиска NP», но они не устанавливают эквивалентность. Для PPA аналогичная проблема (Одинокая) дана в работах Бима, Кука, Эдмондса, Импальяццо и Питасси: «Относительная сложность задач поиска NP». Существует ничего особенного , аргумент ниже работ с учетом необходимых изменений для любого нечетного простого.33

Предложение: Следующие задачи поиска NP являются многократными многозначными, сводимыми друг к другу:

  1. Для заданной цепи, представляющей двудольный неориентированный граф и вершину , степень которой не делится на , найдите другую такую ​​вершину.(AB,E)uAB3

  2. Для заданной схемы, представляющей ориентированный граф , и вершины которой степень степени (т. Степень вне минус степень в) не делится на , найдите другую такую ​​вершину.(V,E)uV3

  3. Для заданной схемы, вычисляющей функцию такую ​​что , найдите точку фиксации .f:[0,2n)[0,2n)f3=idf

Доказательство:

1p2 очевиден, так как достаточно направить ребра слева направо.

2p1 . Сначала построим взвешенный двудольный граф. Пусть и - копии : , . Для каждого исходного ребра мы помещаем ребро веса и ребро веса . Это делает равным степени баланса в исходном графе. Если - заданная вершина баланса , мы добавляем дополнительное ребро весаABVA={xA:xV}B={xB:xV}xy{xA,yB}1{xB,yA}1deg(xA)=deg(xB)xub0(mod3){uA,uB}b, так что и . будет нашей выбранной вершиной.deg(uA)=2b0(mod3)deg(uB)=0uA

Чтобы сделать граф простым невзвешенным неориентированным графом, мы сначала уменьшаем все веса по модулю и отбрасываем все ребра веса . Это оставляет только ребра весов и . Последний можно заменить подходящими гаджетами. Например, вместо ребра с весом мы добавляем новые вершины , для , с ребрами , , , , : это делает30122{xA,yB}wiAziBi=0,,3{xA,yB}{xA,ziB}{wiA,yB}{wiA,ziB}{wiA,z(i+1)mod4B}deg(wiA)=deg(ziB)=3, И вносит свой вклад к и .52(mod3)xAyB

3p2 : для простоты предположим, что четно так, что . Построим ориентированный граф на следующим образом:n2n1(mod3)V=[0,2n)

  • Мы включаем ребра и для каждого .3x+13x3x+23xx<2n/31

  • Если является орбитой без фиксированной точки , мы включаем ребра и .x0<x1<x2fx0x1x0x2

Выбранная вершина будет . Первое предложение баланс или к каждой вершине . Аналогичным образом, второе предложение баланс или к вершинам, которые не являются точками фиксации. Таким образом, предполагая, что уже не является точкой фиксации, она действительно является неуравновешенной по модулю , а любая другая неуравновешенная вершина по модулю является точкой фиксации из .u=2n1121(mod3)u121(mod3)u33f

1p3 : Можно считать, что с четным , а заданная вершина имеет степень .A=B=[0,2n)nuA2(mod3)

Мы можем эффективно пометить ребра, инцидентные с вершиной как , где . Таким образом, становится подмножеством , которое мы отождествляем с . Определим функцию на следующим образом.yB(y,j)j<deg(y)E[0,2n)×[0,2n)[0,22n)f[0,2n)×[0,2n)

  • На дополнении к : для каждого и такого, что , мы делаем , , . Кроме того, , , для . Это оставляет точку и точки для каждого , степень которого не делится на .EyBjdeg(y)3j<2n1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)f(y,3j+2)=(y,3j)f(3i,2n1)=(3i+1,2n1)f(3i+1,2n1)=(3i+2,2n1)f(3i+2,2n1)=(3i,2n1)3i<2n1(2n1,2n1)3(deg(y)mod3)(y,i)yB3

  • На : для каждого мы фиксируем эффективное перечисление его инцидентных ребер , где . Мы положили , , для . Это оставляет точек для каждой вершины , степень которой не делится на .ExA(y0,j0),,(yd1,jd1)d=deg(x)f(y3i,j3i)=(y3i+1,j3i+1)f(y3i+1,j3i+1)=(y3i+2,j3i+2)f(y3i+2,j3i+2)=(y3i,j3i)i<d/3deg(x)mod3xA3

Поскольку , два его инцидентных ребра были ; мы превращаем их в еще один цикл, используя в качестве третьей точки. Остальные точки оставлены как фиксированные точки . По построению любой из них приведет к решению (1).deg(u)2(mod3)f(2n1,2n1)f


1
Оба решения верны, но у меня есть проблема с определениями классов. В определении TFNP обычно требуется как минимум одно решение, в то время как вы хотите точно такое, которое, я думаю, будет TFUP. PPA-3 изначально определяется с помощью ввода двудольного графа и заданной вершины, степень которой не равна 3, и нам нужно найти другую такую ​​вершину. Ваш пример с , очевидно, относится к этому классу, но почему он завершен? (Это может быть хорошо известно, но для меня это ново.)f
domotorp

1
(1) Я очень четко подчеркнул, что результат не относится к произвольным задачам поиска TFNP, а только к функциям. Я действительно не знаю, как сделать это еще более ясным. (2) Да, это эквивалентно обычному определению PPA-3. Это не должно быть трудно показать.
Эмиль Йержабек,

(1) Извините, здесь мое замешательство было только лингвистическим; в своем первоначальном комментарии вы действительно подчеркнули однозначность, но в своем ответе вы написали только функции TFNP, а затем добавили в скобках «то есть», что, насколько я знаю, делает эквивалент. Я думаю, что было бы легче понять, если бы вы написали «однозначные функции TFNP» в своем ответе.
Домоторп

(2) Эта эквивалентность была бы очень удивительной. С аналогичным приемом, который вы использовали в (1), это будет означать, что USAT находится в PPA-3, не так ли? Я ожидал бы более вероятного, что моя проблема связана с некоторым TFNP, чье количество решений составляет 1 или 2 mod 3 для каждого (и нам нужно знать, какое). Кстати, ваше решение для (1) уже подразумевает, что FullFactoring может быть решен, что было моей первоначальной мотивацией. n
Домоторп

Функции являются однозначными. Вот что значит функция. Я постараюсь найти материал на PPA-3. Тем не менее, я не вижу, как это будет включать в себя USAT. Конструкция в (1) не дает множителя с , или, по крайней мере, я его не вижу: для очевидного выбора нельзя вычислить без решения проблемы поиска в первую очередь. ff3=idf(2m1)
Эмиль Йержабек

7

Если вы могли бы сгенерировать мод ИЛИ решить SAT (или любую другую NP-полную задачу, в этом отношении), тогда . В частности, рассмотрим идеальный генератор / решатель, когда дана формула SAT .3NP=coNPϕ

Пусть будет максимальным числом случайных битов, генерируемых генератором на входах размера . Поскольку генератор работает за полиномиальное время, является полиномиальным. Поскольку не делится на должна быть некоторая последовательность не более бросков монет, которая заставит генератор вывести (правильный) ответ для . Таким образом, если неудовлетворительно, существует множество бросков монет, которые заставляют генератор сказать, что неудовлетворительно. Если выполнимо, то генератор никогда не будет ошибочно утверждать, что(n)n(n)2(n)3(n)ϕϕϕϕϕнеудовлетворительно, независимо от того, какие монеты. Таким образом, мы показали, что язык неудовлетворительных формул находится на , подразумевая . UNSATNPNP=coNP


2
Другими словами: все, что мы можем решить таким образом, сводится к проблеме TFNP. Таким образом, вместо NP мы должны стрелять по подклассам TFNP.
Эмиль Йержабек

Да, хотя я не уверен, что уникальность необходима, или можно сойти с рук что-то значительно слабее.
Даниелло

1
Уникальность чего?
Эмиль Йержабек

«Установка состоит в том, что у нас есть предикат полиномиального времени и такой многочлен , что для каждого длины существует уникальный длины такой, что имеет место. Вычислительная задача при заданном найти . " У меня есть ощущение , что число «ы не быть делится на может быть достаточно. [Только что заметил новый ответ R(x,y)p(n)xn ym=p(n)R(x,y)xyy3
Domotorp

3
Ну, первая часть моего ответа посвящена поисковым задачам с уникальным решением, но это, конечно, не обязательно. Уже вторая часть моего ответа посвящена поисковым проблемам с потенциально большим количеством решений. То, что я имел в виду под моим комментарием выше, это простое наблюдение, что если является рандомизированным многовременным алгоритмом, который либо генерирует равномерно случайный элемент , либо решает проблему , то « учитывая , вычислить строку случайных битов, которая заставляет решать », является проблемой TFNP, и сводится к ней. Нет уникальности. A(x){0,1,2}SxASS
Эмиль Йержабек

4

Итак, вот расширение аргумента Эмиля, которое показывает, что проблемы поиска, где количество решений равно 1, 2 или 4 (нам не нужно знать, какие), могут быть решены вышеуказанным способом. Я публикую это как ответ, потому что это слишком долго для комментария, и я надеюсь, что кто-то умнее меня сможет доказать, что на самом деле количество решений может быть чем-то, что не делится на 3.

Скажем , что случайная последовательность находится близко к раствору (то есть, к , для которых имеет место) , если один из , или выполнено. (Для простоты предположим, что и не являются решениями.) В решении Эмиля было достаточно сгенерировать случайную строку и вывести за исключением того, что мы локально возимся в решениях; Я не буду вдаваться в подробности, вижу его ответ. Для нас достаточно, что если близко к решению, то мы можем убить произвольное числоryR(x,y)R(x,r)R(x,r+1)R(x,r+2)y=0y=1rrmod3rmod3возможно , путем вывода раствора , так что для остальной части И « функция дает совершенно равномерное число .rrmod3mod3

Теперь предположим, что число решений равно 1 или 2 для любого . Мы генерируем две случайные строки длины : и . Если хотя бы один из них не близок к решению, мы . Для простоты предположим, что четно так, что у нас есть дополнительный 0, если мы только что сделали это, а также предположим, что если есть два решения, они далеки. Если и оба близки к одному и тому же решению, мы возимся так, чтобы убить 0. Если и близки к разным решениям, то если , мы возимся так, что мы убиваем 1, и еслиxnr1r2r1+r2mod3nr1r2r1r2r1<r2r1>r2 , мы возимся так, чтобы убить 2. Таким образом, если есть только одно решение, мы убиваем ровно один 0, а если есть два решения, мы убиваем два 0, и один 1 и один 2.

Этот аргумент не может быть расширен до 3 решений, но может быть для 4, и отсюда я буду очень схематичным. Создайте четыре случайные строки: и выведите если все они не близки к решению. Снова предположим, что есть дополнительный 0 и решения всегда далеко. Если все близки к одному и тому же решению, мы возимся, чтобы убить 0. Если три близки к тому же решению, которое меньше решения, к которому близок четвертый , мы возимся вокруг, чтобы убить 1. Если три из близки к тому же решению, которое больше, чем решение, к которому четвертыйr1,r2,r3,r4r1+r2+r3+r4mod3riririririблизко, мы возимся, чтобы убить 2. Если все близки к другому решению, мы убиваем три 0. Корректность для одного и двух решений аналогична предыдущему случаю. Обратите внимание, что для четырех решений мы убиваем четыре + три 0, шесть 1 и шесть 2.ri

Я думаю, что рассуждения последнего абзаца могут быть распространены на любое ограниченное число решений, которое не делится на 3 с некоторой алгеброй. Более интересный вопрос - существует ли протокол, который работает для любого количества решений.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.