วิธีการขนาดเล็กสามารถเป็นวงจรบูลชั้นสำหรับการทำงานที่มีความซับซ้อนวงจร


12

พิจารณาฟังก์ชันคำนวณโดยวงจรบูลีนC ที่มีอินพุตnของขนาดs ( n ) = p o l y ( n )บนพื้นฐาน{ X O R , A N D , N O T } (กับ indegree 2 สำหรับX O R , A N Dประตู)fCns(n)=poly(n){XOR,AND,NOT}XOR,AND

วงจรบูลีนเป็นชั้นถ้ามันสามารถจัดเป็นชั้น ( dเป็นความลึกของวงจร) ของประตูดังกล่าวว่าขอบใด ๆ ระหว่างสองประตูเชื่อมต่อชั้นที่อยู่ติดกันdd

เนื่องจากมีวงจรบูลีนขนาดsเราสามารถพูดอะไรเกี่ยวกับขนาดของวงจรคอมพิวเตอร์แบบเลเยอร์f ? มีเล็ก ๆ น้อย ๆ ที่ถูกผูกไว้บน: โดยการเพิ่มโหนดเพื่อหุ่นCในแต่ละชั้นข้ามขอบที่เราได้รับวงจรชั้นขนาดที่มากที่สุดO ( s 2 ) แต่เราจะดีขึ้นโดยทั่วไป (เช่นO ( s log s )หรือO ( s ) ) หรือสำหรับวงจรที่น่าสนใจ?fsfCO(s2)O(slogs)O(s)

พื้นหลัง. คำถามนี้เกิดขึ้นจากผลล่าสุดในการเข้ารหัสซึ่งแสดงวิธีการคำนวณปลอดภัยชั้นวงจรบูลีนขนาดกับการสื่อสารo ( s ) (เช่นs /บันทึกsหรือs /บันทึกบันทึกs ) ; ฉันกำลังพยายามที่จะเข้าใจว่าข้อ จำกัด นี้สำหรับวงจรบูลีนที่เป็นชั้น ๆ สามารถนำไปใช้ในทางปฏิบัติได้อย่างไรสำหรับวงจรทั่วไปหรือสำหรับวงจร "ธรรมชาติ" อย่างไรก็ตามฉันไม่ได้พบอะไรมากเกี่ยวกับวงจรแบบชั้นในวรรณกรรม ตัวชี้ที่เหมาะสมก็จะได้รับการต้อนรับso(s)s/logss/loglogs)


4
นี่คือตัวอย่างของวงจรที่ดูเหมือนยากที่จะแปลงเป็นวงจรแบบเลเยอร์โดยไม่มีการระเบิดขนาดใหญ่ กําหนดจะเป็นฟังก์ชั่นบางอย่างที่สามารถคำนวณขนาดยู กำหนดg ( x 1 , , x n ) = ( x 2 , , x n , x 1f ( x 2 ,f:{0,1}n1{0,1}uและให้ Cเป็นเสื้อซ้ำกรัม จากนั้น Cมีขนาด O ( ทียู ) มันดูเหมือนยากที่จะสร้างวงจรชั้นที่มีขนาดน้อยกว่า Θ ( n T ) ดังนั้นถ้า u = o ( n )บางทีเราควรคาดหวังว่าช่องว่างระหว่างขนาดของวงจรเทียบกับขนาดของวงจรแบบเลเยอร์ ไม่ใช่ข้อพิสูจน์เป็นเพียงตัวอย่างที่ชี้นำเพื่อขับสัญชาตญาณ g(x1,,xn)=(x2,,xn,x1f(x2,,xn))CtgCO(tu)Θ(nt)u=o(n)
DW

2
เท่าที่ผมจำได้ว่าสำหรับวงจรชั้นที่ดีที่สุดที่รู้จักกันเป็นขอบเขตล่างของฟอร์ม ) โดยเฉพาะอย่างยิ่งมันเป็นเรื่องง่ายที่จะพิสูจน์สำหรับn -to- nฟังก์ชัน ยกตัวอย่างเช่นแผนที่เชิงเส้นA xที่A { 0 , 1 } n × nมีเลขศูนย์บนเส้นทแยงมุมหลักเท่านั้น จากนั้นก็จะต้องมีอย่างน้อยnประตูในทุกชั้นและจำนวนของชั้นเป็นอย่างน้อยเข้าสู่ระบบ2 n โปรดทราบว่าฟังก์ชั่นนี้สามารถคำนวณได้อย่างง่ายดายโดยวงจรปกติขนาดO (Ω(nlogn)nnAxA{0,1}n×nnlog2n ) สำหรับฟังก์ชั่นเอาต์พุตเดียวมันเป็นไปได้ที่จะพิสูจน์ขอบเขตล่างเดียวกัน แต่ฉันไม่จำอาร์กิวเมนต์ O(n)
Alexander S. Kulikov

1
ขอบคุณมากสำหรับความคิดเห็น @ AlexanderS.Kulikov เป็นคติชนโต้แย้งของคุณหรือคุณมีตัวชี้บางอย่างสำหรับการทำงานในวงจรชั้น? ทำให้รู้สึก - ฉันจะได้รับมากด้วยความประหลาดใจบางสิ่งบางอย่างที่มีขนาดเล็ก - แต่เป็นO ( n 2 )เท่านั้นที่รู้จักขอบเขตบน? Ω(nlogn)O(n2)
Geoffroy Couteau

1
ฉันคิดว่ามันเป็นคติชนใช่ ฉันไม่แน่ใจว่าฉันได้รับคำถามเกี่ยวกับขอบเขตบนคุณอาจต้องการดูกระดาษต่อไปนี้: cs.utexas.edu/~panni/sizedepth.pdfO(n2)
Alexander S. Kulikov

1
ฉันคิดว่าเราไม่รู้การเปลี่ยนแปลงที่ดีกว่าโดยทั่วไป โปรดทราบว่าวงจรขนาดsและความลึกdสามารถเปลี่ยนเป็นวงจรชั้นขนาดที่มากที่สุดd s (ซึ่งในกรณีที่แย่ที่สุดทำให้วงจรมีขนาดO ( s 2 ) ) ฉันแค่อยากจะชี้ให้เห็นว่าถ้าเราสามารถพิสูจน์ขอบเขตล่างของω ( n log n )กับขนาดของวงจรแบบเลเยอร์ ให้ขอบเขตล่างแบบซุปเปอร์เชิงเส้นกับขนาดของวงจรเชิงลึกสำหรับบันทึกสำหรับฟังก์ชันนี้ คำถามนี้ยังคงเปิดให้บริการมานานกว่า 40 ปีO(s2)sddsO(s2)ω(nlogn)
Alex Golovnev

คำตอบ:


8

เท่าที่ฉันรู้มีการศึกษาวงจรสามชั้น ในนิยามทั้งหมดเหล่านี้อนุญาตให้ใช้ระหว่างสองเลเยอร์ที่อยู่ติดกันเท่านั้น

  1. วงจรเรียกว่าซิงโครนัส ( ฮาร์เปอร์ 1977 ) หากประตูทั้งหมดถูกจัดเรียงเป็นเลเยอร์และอินพุตต้องอยู่ที่ชั้น 0 (คำจำกัดความเทียบเท่า: สำหรับประตูgใด ๆเส้นทางทั้งหมดจากอินพุตไปยังgมีความยาวเท่ากัน)

  2. วงจรเป็นแบบซิงโครนัสในพื้นที่ ( Belaga 1984 ) ถ้าแต่ละอินพุตเกิดขึ้นเพียงครั้งเดียว แต่อยู่ที่เลเยอร์โดยพลการ

  3. gogo

เป็นเรื่องง่ายที่จะเห็นว่าคลาสทั้งสามนั้นมีอยู่ในรายการจากจุดอ่อนที่สุดไปจนถึงจุดแข็งที่สุด

s

  1. ss2

  2. ω(slogs)sdO(sd)fω(nlogn)fO(logn)O(n)

  3. มีฟังก์ชั่นที่ชัดเจนอยู่

    Ω(nlogn)O(n)

    Ω(nlogn)O(n)

n

f:{0,1}n{0,1}niiO(n)lognnnfΩ(nlogn)n1Ω(logn)nn

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.