Самый эффективный способ преобразовать цепь

18

РЕДАКТИРОВАТЬ (22 августа 2011 г.):

Я еще больше упрощаю вопрос и назначаю вознаграждение за этот вопрос. Возможно, на этот более простой вопрос будет легко ответить. Я также собираюсь зачеркнуть все части оригинального вопроса, которые больше не актуальны. (Спасибо Стасису Юкне и Райану О'Доннелу за частичный ответ на первоначальный вопрос!)


Фон:

Учитывая цепь AC 0 с глубиной k и размером S, существует другая схема AC 0 , вычисляющая ту же функцию с глубиной k и размером O(Sk) , так что новая схема имеет разветвление = 1 для всех затворов. Другими словами, схема выглядит как дерево (за исключением входов, поскольку входы могут разветвляться на более чем один вентиль). Один из способов сделать это - продублировать все ворота с разветвлением> 1, пока все ворота не разветвятся = 1.

Но это самый эффективный способ для преобразования переменного тока 0 цепей к сети переменного тока 0 цепей с 1 разветвления? Я прочитал следующее в лекции 14 заметок курса Райана О'Доннелла :

Предположим, что C - это любая схема глубины k размера S, которая вычисляет четность. Это упражнение, чтобы показать, что C можно преобразовать в выровненную схему глубины-k, где уровни чередуются с логическими элементами И и ИЛИ, входными проводами являются литералы 2n, а каждый вентиль имеет разветвление 1 (т. Е. Это дерево ) - и размер увеличивается не более (2kS)2O(S4) .

Сноска: На самом деле, это немного сложное упражнение. Это проще, если вам нужно только получить размер O(Sk) , который почти одинаков для наших целей, если вы думаете о k как о «константе».

Означает ли это, что есть способ взять любую глубину k AC 0 цепь размера S и преобразовать ее в AC 0 цепь с разветвлением 1, глубиной k и размером (2kS)2 ? Если да, то как это делается и является ли этот метод самым известным?

Оригинальный вопрос:

Учитывая цепь AC 0 с глубиной k и размером S, каков наиболее известный метод (с точки зрения минимизации размера схемы результирующей схемы) для преобразования этого в схему AC 0 глубины k и разветвления затвора 1? Есть ли какие-либо нижние границы, известные для этого?


Более новый, более простой вопрос:

Этот вопрос является ослаблением первоначального, где я не настаиваю на том, чтобы результирующая схема имела постоянную глубину. Как объяснено выше, существует способ преобразовать цепь AC 0 с глубиной k, размер S, в схему с размером , чтобы новая цепь имела разветвление = 1 для всех затворов. Есть ли лучшая конструкция?O(Sk)

Учитывая цепь AC 0 с глубиной k и размером S, каков наиболее известный метод (с точки зрения минимизации размера схемы результирующей цепи) для преобразования этого в схему любой глубины с разветвлением затвора 1?

Робин Котари
источник
5
Граница в порядке. Но если граница ( 2 k S ) 2 будет выполняться для произвольных цепей (не только для тех, которые вычисляют функцию четности), то можно будет смоделировать каждую схему fanin-2 размера S с помощью fanin- 2 формула размера O ( S 5 ) : S ворот фанин-2 достаточно, чтобы имитировать одни ворота неограниченного фанина. Тогда формула может быть преобразована в одну из глубины O ( log S )O(Sk)(2kS)2SO(S5)SO(logS)(хорошо известный результат, ошибочно приписанный Спира). Таким образом, мы получили бы, что глубина схемы больше всего . Но это слишком приятно, чтобы быть правдой: самая известная верхняя граница для глубины контура - только O ( S / log S ) . O(logS)O(S/logS)
Стасис
2
Между прочим, действительно справедливо и для произвольных цепей, но только если мы допустим ворота fanin-2 (см., Например, Thm. 4.1 в книге Вегенера); тогда схемы еще могут запомнить промежуточные результаты. Ситуация с fanin-1 совсем иная: здесь схемы вообще не имеют памяти. Но вопрос Робина очень интересный. Было бы даже интересно показать, что схемы глубины 3 размера S можно моделировать с помощью формул глубины 3 размера меньше, чем S 2 . O(kS)2)SS2
Стасис
4
Я бы доверял всему, что говорит Стас выше; Я не был очень осторожен в этих заметках (извините). С другой стороны, я помню, что, когда писал их, они были очень расстроены из-за того факта - упомянутого во многих многих статьях, но почти никогда не цитируемого - что можно преобразовать произвольные схемы в слоистые, не увеличивая размер "много" , Я хотел бы видеть указатель на самый известный результат по этому вопросу. AC0
Райан О'Доннелл
2
@Ryan О'Доннелл: в самом деле, можно легко сделать схему слоистой с раздутие . Мы используем ассоциативность для достижения того, чтобы каждый вентиль AND имел только вентили ИЛИ в качестве входных данных, и наоборот; глубина остается неизменной. Затем расположите вентили по их глубине и добавьте, если необходимо, тривиальные вентили ИЛИ и И для получения слоистой схемы; глубина остается неизменной, а размер увеличивается только в k раз. Но я понял, что Робин хочет, чтобы схема была преобразована в формулу (древовидная схема, за исключением того, что входные литералы могут иметь большой разветвление). O(kS)
Стасис
2
@Ryan O'Donnell: Спасибо за ответ и за то, что выложили свои лекционные заметки в Интернете! В частности, ваши лекционные заметки по анализу булевых функций оказались очень полезными.
Робин Котари

Ответы:

11

Я постараюсь обобщить мои предыдущие комментарии.

Давайте сначала проигнорируем тот факт, что ваша исходная схема имеет (постоянную) глубину ; просто предположим , что имеет размер S . Пусть A будет наименьшим числом, таким образом, что любой неограниченный размер цепи вентилятора в S может быть преобразован в неограниченную формулу вентилятора в размере F размера O ( S A ) . Я утверждаю, что лучшее, что мы можем сделать до сих пор, это достичь A = O ( S / log 2 S ) . Скажем, даже неизвестно, существует ли какая-либо (фанин-2) схема размера S = O ( n )kSASFO(SA)A=O(S/log2S)S=O(n)можно смоделировать по формуле с размером меньше чем .exp(n/logn)

Чтобы показать это утверждение, мы преобразуем формулу в формулу Фанина-2 F размера M = O ( S 2 A ) . Хорошо известно, что глубина D каждой формулы F может быть сделана логарифмической по своему размеру, то есть D = O ( log M ) = O ( A log S ) . [Это было впервые показано Храпченко в 1968 году, а затем константа при большой-O была улучшена до D 1,73 log 2 MFFM=O(S2A)DFD=O(logM)=O(AlogS)D1.73log2Mнесколькими авторами.] С другой стороны, самый известный результат для цепей fanin-2 [Paterson and Valiant, TCS 2 (3), 397-400] говорит, что . Таким образом, имитация с A, намного меньшим, чем S / log 2 S , улучшит наиболее известное моделирование размера-глубины для цепей.Depth=O(Size/logSize)AS/log2S

Это, однако, только «слово предостережения» - оно не отвечает на ваш вопрос, потому что вы предполагаете, что ваша исходная схема имеет постоянную глубину , подразумевая, что в этом случае мы можем просто взять A = k (или A = k - 1 если у нас есть один выходной вентиль). Сила симуляции Патерсона-Валианта заключается в том, что она применима к произвольным, даже очень несбалансированным цепям, глубина которых составляет почти весь размер! Но в вашей настройке ограниченной глубины даже случай k = 3 неясен: может ли каждая схема глубины 3 размера S быть преобразована в формулу глубины 3 размера, намного меньшего, чем S 2?kA=kA=k1k=3SS2? Я думаю, что ответ должен быть «нет» (может быть интересным упражнением для студентов). Формула глубины 3 - это просто ИЛИ КНФ. Вопрос состоит в том, чтобы найти ИЛИ CNF, которые имеют много общих положений, но в остальном «сильно отличаются», чтобы получить формулу большой глубины-3.

Проблема в том, что мы хотим получить формулу (схема разветвления-1). Как было указано выше, использование вентилей fanout-2 упрощает симуляцию: Гувер, Клаве и Пиппенгер [JACM 31 (1), 1980] показывают, что любая схема fanin-2 размера и глубины D имеет эквивалентный fanin-2 и fanout -2 схема размер 3 S - 2 л и глубиной 2 D . Таким образом, если fanin не ограничен, то результирующая схема будет иметь размер O ( S 2 ) и глубину O ( D log S ) .SD3S2n2DO(S2)O(DlogS)

Есть еще один результат, как-то связанный с вашим вопросом. Ложкин (1981) доказал, что если булева функция может быть вычислена по формуле A C 0 глубины k и размера S , то f может быть вычислена по формуле fanin-2 глубины D k - 1 + log 2 S (это следует из теоремы 6.2 в моей книге). Обратите внимание, что тривиальная верхняя граница была бы только D k log S (если бы мы моделировали каждый отдельный вентиль с помощью дерева глубины log S ).fAC0 kSfDk1+log2SDklogSlogS

Стасис
источник