Como calcular a inversão de bits usando n negações2n−1n
Deixe os bits serem classificados em ordem decrescente, ou seja,
i < j implica x i ≥ x j . Isso pode ser alcançado por uma rede de classificação monótona como a rede de classificação Ajtai – Komlós – Szemerédi.x0,…,x2n−1i<jxi≥xj
Definimos o circuito de inversão para bits I n ( → x ) indutivamente: Para o caso base, temos n = 1 e I 1 0 ( → x ) : = ¬ x 0 . Seja m = 2 n - 1 . Reduzimos I n (para 2 m + 1 ) bits para uma porta I n - 1 (para m2n−1In(x⃗ )n=1I10(x⃗ ):=¬x0m=2n−1In2m+1In−1mbits) e uma porta de negação usando portas e ∨ . Usamos a negação de computação ¬ x m . Para i < m deixar y i : = ( x i ∧ ¬ x m ) ∨ x m + i . Usamos I n - 1 para inverter → y . Agora podemos definir I n da seguinte maneira:∧∨¬xmi<myi:=(xi∧¬xm)∨xm+iIn−1y⃗ In
Ini:=⎧⎩⎨⎪⎪In−1i(y⃗ )∧¬xm¬xmIn−1i(y⃗ )∨¬xmi<mi=mi<m
É fácil verificar isso invertendo considerando os possíveis valores de x n e usando o fato de → x estar diminuindo.x⃗ xnx⃗
De Michael J. Fischer, A complexidade das redes limitadas por negação - uma breve pesquisa, 1975.