게이트 팬 아웃 1을 사용 하여


18

편집 (2011 년 8 월 22 일) :

나는 질문을 더 단순화하고 질문에 현상금을 넣습니다. 아마도이 간단한 질문에 쉽게 대답 할 수 있습니다. 또한 더 이상 관련이없는 원래 질문의 모든 부분을 취소 할 것입니다. (Stasys Jukna와 Ryan O'Donnell에게 원래 질문에 부분적으로 답변 해 주셔서 감사합니다!)


배경:

깊이 k 및 크기 S를 갖는 AC 0 회로가 주어지면 , 새로운 회로가 모든 게이트에 대해 팬 아웃 = 1을 갖도록 깊이 k 및 크기 O ( S k ) 와 동일한 기능을 계산하는 다른 AC 0 회로 가 존재한다 . 다시 말해, 회로는 트리처럼 보입니다 (입력은 둘 이상의 게이트로 팬 아웃 될 수 있으므로 입력 제외). 이를 수행하는 한 가지 방법은 모든 게이트가 팬 아웃 = 1이 될 때까지 팬 아웃> 1이있는 모든 게이트를 복제하는 것입니다.O(Sk)

그러나 이것은 AC 변환하는 가장 효율적인 방법입니다 0 AC에 회로를 0 팬 아웃 1 회로? Ryan O'Donnell의 강의 노트 14 장 에서 다음을 읽었습니다 .

C가 패리티를 계산하는 크기 S의 깊이 k 회로라고 가정하십시오. 레벨이 AND 및 OR 게이트를 번갈아 가며, 입력 와이어가 2n 리터럴이고 각 게이트에 팬 아웃 1이있는 경우 (즉, 트리 임) ) - 및 최대의 크기가 증가 .(2kS)2O(S4)

각주 : 실제로, 이것은 약간 까다로운 운동입니다. 크기 만 가져야하는 것이 더 쉽습니다. k를 "일정한"것으로 생각하면 우리의 목적과 거의 동일합니다.O(Sk)

이것은 크기 S의 깊이 k AC 0 회로 를 취해 팬 아웃 1, 깊이 k 및 크기 ( 2 k S ) 2 를 갖는 AC 0 회로 로 변환 하는 방법이 있다는 것을 의미합니까 ? 그렇다면 어떻게이 작업을 수행하며 이것이 가장 잘 알려진 방법입니까? (2kS)2

원래 질문 :

깊이 k와 크기 S를 가진 AC 0 회로가 주어지면 이것을 깊이 k와 게이트 팬 아웃 1 의 AC 0 회로 로 변환하는 가장 잘 알려진 방법은 무엇입니까 (결과 회로의 회로 크기 최소화 측면에서) ? 이것으로 알려진 하한이 있습니까?


더 새롭고 간단한 질문 :

이 질문은 결과 회로가 일정한 깊이라고 주장하지 않는 원래 질문을 완화합니다. 상술 한 바와 같이, 깊이 k, 크기 S를 갖는 AC 0 회로를 크기 를 갖는 회로로 변환 하여 새로운 회로가 모든 게이트에 대해 팬 아웃 = 1이되도록하는 방법이있다. 더 나은 구조가 있습니까?O(Sk)

깊이 k와 크기 S 의 AC 0 회로가 주어지면 게이트 팬 아웃 1을 사용하여 깊이 회로로 변환하는 가장 잘 알려진 방법은 무엇입니까 (결과 회로의 회로 크기 최소화 측면에서)?


5
결합이 확인 되나 결합하는 경우 ( 2 k 개의 S ) 2 를 위해 보유 할 임의 (뿐만 아니라 패리티 함수를 계산하는 것) 회로들, 그 다음 하나는 시뮬레이션 할 수 있는 모든 크기의 FANIN -2- 회로 S를 fanin-하여 크기 O 의 두 가지 공식 ( S 5 ) : S fanin-2 게이트는 무한한 fanin의 하나의 게이트를 시뮬레이션하기에 충분합니다. 그런 다음 수식 을 깊이 O ( log S ) 중 하나로 변환 할 수 있습니다.O(Sk)(2kS)2SO(S5)SO(logS)(Spira로 잘못 알려진 잘 알려진 결과). 따라서 회로 깊이가 가장 됩니다. 그러나 이것이 사실 이기에는 너무 좋은 것입니다. 회로 깊이에 대해 가장 잘 알려진 상한은 O ( S / log S ) 입니다. O(logS)O(S/logS)
Stasys

2
Btw 는 또한 임의의 회로 에도 적용 되지만 fanin-2의 게이트를 허용하는 경우에만 해당됩니다 (예 : Wegener 's Book의 Thm. 4.1 참조). 회로는 여전히 중간 결과를 기억할 수 있습니다. fanin-1의 상황은 매우 다릅니다. 여기서 회로에는 메모리가 전혀 없습니다. 그러나 로빈의 질문은 매우 흥미 롭습니다. 크기 S깊이 3 회로 가 S 2 보다 작은 크기의 깊이 3 공식으로 시뮬레이션 될 수 있음 을 보여주는 것도 흥미로울 것 입니다. O(kS)2)SS2
Stasys

4
Stas가 말한 것을 신뢰합니다. 나는 그 노트에서 매우 조심하지 않았습니다 (죄송합니다). 많은 많은 논문에서 언급하지만 거의 결코 표창장과 함께 - -을 기록 할 때 다른 한편으로는, 나는 매우 사실을 소싱에 대한 좌절되고 기억 하나가 임의 변환 할 수 C 0 계층들로 회로 크기를 폭파하지 않고 "많이" . 이 주제에 대해 가장 잘 알려진 결과에 대한 포인터를보고 싶습니다. AC0
Ryan O'Donnell

2
@Ryan 오도넬 : 실제로, 하나의 회로를 쉽게 만들 수 계층화 블로우쪽으로 . 우리는 모든 AND 게이트에 OR 게이트 만 입력으로 사용하고 그 반대도 가능하도록 연관성을 사용합니다. 깊이는 변하지 않습니다. 그런 다음 게이트를 깊이별로 배열하고 필요한 경우 사소한 fanin-1 OR 및 AND 게이트를 추가하여 계층 회로를 얻습니다. 깊이는 동일하게 유지되며 크기는 k의 계수만큼만 증가합니다. 그러나 Robin은 회로수식 으로 변환 되기를 원한다는 것을 이해했습니다 (입력 리터럴이 큰 팬 아웃을 가질 수 있음을 제외하고 트리와 같은 회로). O(kS)
Stasys

2
@Ryan O'Donnell : 답변 해 주셔서 감사하고 강의 노트를 온라인으로 올리셔서 감사합니다! 특히 부울 함수 분석에 대한 강의 노트가 매우 유용했습니다.
Robin Kothari

답변:


11

이전 의견을 요약하려고합니다.

kSASFO(SA)A=O(S/log2S)S=O(n)exp(n/logn)

FFM=O(S2A)DFD=O(logM)=O(AlogS)D1.73log2MDepth=O(Size/logSize)AS/log2S

kA=kA=k1k=3SS2? 나는 대답이 "아니오"여야한다고 생각한다 (학생들에게는 흥미로운 연습이 될 수있다). 깊이 3 공식은 CNF의 큰 OR입니다. 문제는 공통적으로 많은 절을 공유하지만 CN-3의 OR을 찾아서 깊이 3 공식을 강요하기 위해 "매우 다르다"는 것입니다.

SD3S2n2DO(S2)O(DlogS)

fAC0 kSfDk1+log2SDklogSlogS

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.