เราสามารถนับความลึกหรือไม่?


19

เราสามารถคำนวณเกตเกตเกตเกต bit ตามขนาดพหุนาม (วงจรแฟนอิน) ที่มีความลึกไหม? อีกวิธีหนึ่งเราสามารถนับจำนวน 1s ในบิตอินพุตโดยใช้วงจรเหล่านี้ได้หรือไม่?lg nnlgnlglgn

คือ ?TC0AltTime(O(lgnlglgn),O(lgn))


โปรดทราบว่าn)) ดังนั้นคำถามคือถามว่าถ้าเราสามารถบันทึกปัจจัยในระดับความลึกของวงจรเมื่อคำนวณประตูธรณีประตูlg lg nTC0NC1=ALogTime=AltTime(O(lgn),O(lgn))lglgn


แก้ไข:

ดังที่ Kristoffer เขียนไว้ในคำตอบของเขาเราสามารถบันทึก factor แต่เราสามารถประหยัดอีกเล็กน้อยได้หรือไม่ เราสามารถแทนที่ด้วยหรือไม่O ( lg nlglgno(lgnO(lgnlglgn)o(lgnlglgn)

สำหรับฉันแล้วดูเหมือนว่าเลเยอร์แบบบังคับเดรัจฉานแบบบังคับนั้นใช้ไม่ได้กับการบันทึก (โดยทั่วไปฟังก์ชั่นใด ๆ ใน )lg lg n + ω ( 1 )2lglgnlglgn+ω(1)


3
ฉันแก้ไขคำตอบเพื่อรวมการแก้ไขล่าสุดด้วย
Kristoffer Arnsfelt Hansen

คำตอบ:


22

พิจารณา fanin 2 วงจรของลึกn) แบ่งเลเยอร์ของเป็นบล็อกแต่ละเลเยอร์ต่อเนื่อง ตอนนี้เราต้องการแทนที่แต่ละบล็อกด้วยวงจรความลึก 2 กล่าวคือประตูแต่ละบานในเลเยอร์สุดท้ายของบล็อกขึ้นอยู่กับมากที่สุดประตูของเลเยอร์สุดท้ายในบล็อกด้านล่าง เราสามารถแทนที่แต่ละเกทในเลเยอร์สุดท้ายด้วย DNF ขนาดพหุนามด้วยอินพุตเป็นเกทส์ในเลเยอร์สุดท้ายของบล็อกด้านล่าง การทำเช่นนี้สำหรับประตูทั้งหมดในเลเยอร์สุดท้ายสำหรับบล็อกทั้งหมดและการเชื่อมต่อเหล่านี้ควรให้วงจรที่ต้องการO ( log n ) C O ( log n / log log n ) ล็อกล็อกn 2 ล็อกล็อกn = ล็อกnCO(logn)CO(logn/loglogn)loglogn2loglogn=logn

ผมขอทราบว่านี่เป็นหลักที่ดีที่สุดที่จะได้รับ: แทรกสลับช่วยให้ขอบเขตที่ต่ำกว่าทุกทางเพื่อความลึกnlogn/loglogn


1
ขอบคุณ Kristoffer ฉันเพิ่มคำถามที่แข็งแกร่งขึ้นเล็กน้อย
Kaveh

2
เพียงเพื่อให้แน่ใจว่าฉันได้ภาพใหญ่อย่างถูกต้อง: ความลึกสูงสุดวงจรเหล่านี้ไม่สามารถคำนวณความเท่าเทียมกันได้ในระดับความลึกนี้พวกเขาก็สามารถคำนวณได้ในทันที N C 1lgn/lglgnNC1
Kaveh

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