Liczba bramek binarnych potrzebnych do obliczenia AND i OR n bitów wejściowych jednocześnie

16

Jaka jest minimalna liczba bramek binarnych potrzebnych do jednoczesnego obliczenia AND i OR bitów wejściowych? Trywialna górna granica wynosi 2 n - 2 . Uważam, że jest to optymalne, ale jak to udowodnić? Nie działa tutaj standardowa technika eliminacji bramki, ponieważ poprzez przypisanie stałej do dowolnej zmiennej wejściowej trywializuje jedno z wyjść.n2)n-2)

Problem podano również jako ćwiczenie 5.12 w książce „Złożoność funkcji boolowskich” autorstwa Ingo Wegenera w nieco innej formie: „Niech . Przez metodą eliminacji można udowodnić tylko dolną granicę wielkości n + Ω ( 1 ) . Spróbuj udowodnić większe dolne granice. ”fn(x)=x1xnx¯1x¯nn+Ω(1)

Alexander S. Kulikov
źródło
1
@Ryan: Nie chodzi o I od OR ale o I i OR. Jednak nie znam odpowiedzi na pytanie Sashy.
Tsuyoshi Ito,
1
@TsuyoshiIto Dzięki, jakoś udało mi się to parsować niepoprawnie. Jest to zdecydowanie nietrywialny problem - można sobie wyobrazić użycie innego rodzaju bramek, aby uzyskać przewagę nad . 2n2)
Ryan Williams
2
@Sasha, czy próbowałeś zastosować solwery SAT do małych przykładów (jak ), tak jak w niektórych swoich wcześniejszych artykułach? n=4
Ryan Williams
2
@ Ryan Tak, jasne. Wiemy, że , C 4 = 5 , C 57 . Dotyczy to funkcji z książki (wynosi 1 iff, wszystkie n bitów wejściowych są równe). Rośnie jak 2 n - 3 . A obwód o wielkości 2 n - 3 jest łatwy do zbudowania: najpierw obliczyć x ix i + 1 dla wszystkich i = 1 , , n -C3=3C4=5C571n2n32n3xixi+1 ( ( n - 1 ) bramek), a następnie oblicz ich koniunkcję ( ( n - 2 ) bramek). i=1,,n1(n1)(n2)
Alexander S. Kulikov,
1
@Tsuyoshi: Myślę, że funkcja bramek Sashy jest drugą funkcją pytania ( f n ( x ) = x 1x nˉ x 1ˉ x n ), którą można zbudować za pomocą n - 1 bramki XNOR (zastosowane do x i , x i + 1 ) oraz n - 2 ORAZ bramki zastosowane do XNOR. 2n3fn(x)=x1xnx¯1x¯nn1xi,xi+1n2
Marzio De Biasi,

Odpowiedzi:

14

Ten artykuł Blum & Seysen może być przydatny:

N.Blum, M. Seysen. Charakterystyka wszystkich sieci optymalnych do jednoczesnego obliczania AND i NOR . Acta Inf. 21: 171–181 (1984)

Myślałem, że dla 2 n - c dolną granicę można uzyskać metodami Bluma i Seysena, ale wydaje się, że tak nie jest.x1xnx¯1x¯n 2nc

Vladimir Lysikov
źródło
1
Czy jest dostępna publiczna wersja pdf artykułu Blum i Seysen?
Marzio De Biasi,
@Vladimir, dziękuję za odniesienie! Postaram się sprawdzić, czy ich metody mają zastosowanie w tym przypadku, gdy znajdę artykuł.
Alexander S. Kulikov,
3
@Vladimir, dzięki jeszcze raz! W rzeczywistości ten artykuł zawiera dokładnie odpowiedź na moje pytanie i jeszcze bardziej: mówi, że do obliczenia AND i OR jednocześnie potrzebne są i każdy obwód tego rozmiaru oblicza AND i OR niezależnie (to ciekawe!). Nie jest również trudne do wykazania, że C ( f n ) C ( A N D , O R ) - c 2 n - c ' . 2n2C(fn)C(AND,OR)c2nc
Alexander S. Kulikov,
@Sasha, tak, brakowało mi tej prostej konstrukcji. Aby to wyjaśnić, w artykule rozważono funkcje AND i NOR, więc dla AND i OR otrzymujemy dolną granicę poprzez zmianę jednej bramki i dla x 1x nˉ x 1ˉ x n --- 2 n - 52n2x1xnx¯1x¯n2n5
Vladimir Lysikov,
1
Przypomnienie @SashaK. jeśli podoba Ci się odpowiedź, „zaakceptuj” ją, klikając znacznik pod liczbą głosów.
Suresh Venkat,
3

Twoje pytanie wiąże się ze znanym pytaniem dotyczącym obliczania minimalnej i maksymalnej liczby list jednocześnie przy użyciu minimalnej liczby porównań. W takim przypadku odpowiedź wynosi .3n/2

Sprytny algorytm potwierdzający górną granicę przekłada się na obwód AND / OR z tą samą granicą, którą otrzymujesz, ponieważ jedno z porównań oblicza zarówno minimum, jak i maksimum.

Jednak dolna granica (podana przez argument przeciwnika) wydaje się tłumaczyć, przynajmniej w przypadku obwodów monotonicznych (ponieważ obwód AND / OR przekłada się na algorytm max / min). Oznaczałoby to dolną granicę . Być może można uzyskać ścisłą dolną granicę, analizując argument przeciwnika.3n/2

Górna granica pojawia się w „Wprowadzenie do algorytmów”, gdzie można również znaleźć prosty argument pokazujący, że obwody komparatora maks./min są prawidłowe, jeśli działają dla wejść logicznych (należy zastosować odpowiedni próg). Dolną granicę można znaleźć np . Tutaj .

Yuval Filmus
źródło
2
Zauważ, że w pytaniu Sashy wszystkie 2-bitowe funkcje boolowskie mogą być użyte do budowy obwodu.
Ryan Williams,
Tak, nie jest jasne, w jaki sposób dolną granicę można przełożyć na przypadek wszystkich funkcji binarnych.
Alexander S. Kulikov,