부울 회로가 있다고 가정하십시오.
C함수를 계산합니다 . 회로가 최대 2 개의 팬인 및 팬 아웃을 갖는 AND, OR 및 NOT 게이트로 구성되어 있다고 가정합니다.
f:{0,1}n→{0,1}하자 주어진 입력 될. 와 주어지면 단일 비트 위치 에서 와 다른 입력 에 대해 를 평가하고 싶습니다 . 즉, 값 동일하다 그 점을 제외하고 번째 비트는 플립된다.
x∈{0,1}nC
x
C
n
x
n
C(x1),C(x2),…,C(xn)
xi
x
i
를 독립적으로 평가하는 것보다 더 효율적인 방법이 있습니까?
Cn
에 시간
n다른 입력?
취하다
C포함
m게이트. 그런 다음 독립적으로 평가
C모두에
n입력이 필요합니다
O(mn)시각. 계산하는 방법이 있습니까
C(x1),C(x2),…,C(xn)에
o(mn)시각?
선택적인 맥락 : 우리가 산술 회로를 가지고 있다면 (이 게이트는 곱셈, 덧셈, 부정)
R그러면 다음을 계산할 수 있습니다.
n지향성 파생 상품
∂f∂xi(x)에
O(m)시각. 기본적으로 그라디언트 계산을 위해 표준 방법을 사용할 수 있습니다 (역 전파 / 연쇄 규칙).
O(m)시각. 해당 기능이 연속적이고 차별화 가능하기 때문에 작동합니다. 부울 회로에 대해 비슷한 것을 할 수 있는지 궁금합니다. 부울 회로는 연속적이고 차별화되지 않으므로 동일한 트릭을 수행 할 수는 없지만 사용할 수있는 다른 영리한 기술이 있습니까? 푸리에의 속임수일까요?
(바리안트 질문 : 팬인 및 팬 아웃이 무한한 부울 게이트가있는 경우 평가하는 것보다 점진적으로 더 잘 수행 할 수 있습니까?
Cn
타임스?)
답변
나는 그러한 트릭을 찾기 쉽고 / 또는 사소한 만족도 알고리즘을 제공하기 때문에 상당한 이익을 줄 것 같지 않다고 생각합니다. 방법은 다음과 같습니다.
우선, 표면 상으로는 쉬울지라도, 문제는 실제로 회로의 더 일반적인 문제를 해결할 수 있습니다.
C과
N입력
x0,…,xN−1평가
C모든 입력에서보다 빠르게
O~(N⋅|C|)시각. 그 이유는 우리가 조정할 수 있기 때문입니다
C회로로
C′크기의
|C|+O~(Nn)입력시
0i10N−1−i, 출력
C(xi). 기본적으로, 우리는 단지 작은 조회 테이블을 만듭니다.
0i10N−1−i에
xi그리고 그것을 안으로 연결하십시오
C.
부울 회로의 배치 평가를위한 사소한 알고리즘을 사용하여 빠른 만족도 알고리즘을 만들 수 있습니다. 다음은 시간에 따라 평가를 수행하는 알고리즘이 있다고 가정하는 간단한 경우의 예입니다.
O~(|C|2−ϵ+(N⋅|C|)1−ϵ/2+N2−ϵ)어떤 상수에 대해서도
ϵ>0. 입력 회로
C확장하여 만족도를 결정할 수 있습니다.
C회로로
C′크기의
2n/2⋅|C|이것은 첫 번째 가능한 모든 선택에 대한 OR입니다.
n/2에 입력
C(다른 입력은 무료로 두십시오). 그런 다음 배치 평가
C′그것의 모든
2n/2입력. 최종 결과는 다음과 같이 만족스러운 과제를 찾는 것입니다.
C′iff
C만족합니다. 러닝 타임은
O~(2(n/2)(2−ϵ)⋅|C|2−ϵ)=O~(2n(1−ϵ/2)⋅poly(|C|)).