วิธีที่มีประสิทธิภาพที่สุดในการแปลงให้เป็นวงจร (ความลึกใด ๆ ) ด้วยเกท fanout 1


18

แก้ไข (22 ส.ค. 2554):

ฉันลดความซับซ้อนของคำถามต่อไปและตั้งคำถามให้มากขึ้น บางทีคำถามที่ง่ายกว่านี้อาจมีคำตอบที่ง่าย ฉันจะหยุดทุกส่วนของคำถามเดิมที่ไม่เกี่ยวข้องอีกต่อไป (ขอขอบคุณ Stasys Jukna และ Ryan O'Donnell ที่ตอบคำถามต้นฉบับบางส่วน!)


พื้นหลัง:

ด้วยวงจรAC 0 ที่มีความลึก k และขนาด S, มีวงจรAC 0อีกอันที่มีฟังก์ชั่นเดียวกันกับความลึก k และขนาดที่วงจรใหม่มี fanout = 1 สำหรับประตูทุกบาน กล่าวอีกนัยหนึ่งวงจรดูเหมือนต้นไม้ (ยกเว้นที่อินพุตเนื่องจากอินพุตอาจ fanout มากกว่าหนึ่งประตู) วิธีหนึ่งในการทำเช่นนี้คือการทำซ้ำประตูทั้งหมดที่มี fanout> 1 จนกว่าประตูทั้งหมดจะมี fanout = 1O(Sk)

แต่นี่เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการแปลง AC 0 circuit เป็น AC 0 circuits โดยใช้ fanout 1 ฉันอ่านต่อไปนี้ในบทที่ 14 ของบันทึกการสอนของ Ryan O'Donnell :

สมมติว่า C เป็นวงจรความลึกใด ๆ ของขนาด S ที่คำนวณพาริตี้ มันเป็นแบบฝึกหัดที่แสดงให้เห็นว่า C สามารถแปลงเป็นวงจรความลึกระดับที่ระดับที่สลับกันและและหรือประตูสายอินพุตเป็นตัวอักษร 2n และแต่ละประตูมีพัดลม 1 ออก (เช่นเป็นต้นไม้ ) - และการเพิ่มขึ้นของขนาดที่มากที่สุด4)(2kS)2O(S4)

เชิงอรรถ: จริง ๆ แล้วนี่เป็นการออกกำลังกายที่ยุ่งยากเล็กน้อย มันง่ายกว่าถ้าคุณจะได้ขนาดซึ่งเกือบจะเหมือนกันสำหรับจุดประสงค์ของเราถ้าคุณคิดว่า k เป็น "ค่าคงที่"O(Sk)

นี่หมายความว่ามีวิธีที่จะนำวงจรความลึก k AC 0ขนาด S และแปลงเป็นวงจรAC 0โดยมี fanout 1, ความลึก k และขนาดหรือไม่? ถ้าเป็นเช่นนั้นจะทำอย่างไรและนี่เป็นวิธีที่รู้จักกันดีที่สุดหรือไม่ (2kS)2

คำถามเดิม:

ด้วยวงจรAC 0 ที่มีความลึก k และขนาด S วิธีที่ดีที่สุดที่รู้จัก (ในแง่ของการลดขนาดวงจรของวงจรผลลัพธ์) ของการแปลงให้เป็นวงจรAC 0ของความลึก k และประตู fanout 1 คืออะไร มีข้อ จำกัด ที่ต่ำกว่านี้หรือไม่?


ใหม่กว่าคำถามที่ง่ายกว่า:

คำถามนี้เป็นการผ่อนคลายของต้นฉบับดั้งเดิมที่ฉันไม่ยืนยันว่าวงจรผลลัพธ์มีความลึกคงที่ ดังที่อธิบายไว้ข้างต้นมีวิธีการแปลงวงจรAC 0ด้วยความลึก k, ขนาด S เป็นวงจรที่มีขนาดเพื่อให้วงจรใหม่มี fanout = 1 สำหรับประตูทุกบาน มีการก่อสร้างที่ดีขึ้นหรือไม่O(Sk)

ด้วยวงจรAC 0 ที่มีความลึก k และขนาด S วิธีที่ดีที่สุดที่รู้จักกัน (ในแง่ของการลดขนาดวงจรของวงจรผลลัพธ์) ของการแปลงนี้เป็นวงจรที่มีความลึกใด ๆ กับประตู fanout 1


5
ขอบเขตของก็โอเค แต่ถ้าขอบเขตจะเก็บไว้สำหรับวงจรโดยพลการ (ไม่เพียง แต่การคำนวณฟังก์ชั่นพาริตี้) จากนั้นหนึ่งสามารถจำลองทุก fanin-2 วงจรขนาดโดย fanin- ขนาด 2 สูตร : fanin-2 ประตูก็เพียงพอที่จะจำลอง fanin หนึ่งประตูที่ไม่มีขอบเขต จากนั้นสูตรสามารถเปลี่ยนเป็นหนึ่งในระดับความลึก (ผลลัพธ์ที่รู้จักกันดีซึ่งมีสาเหตุมาจาก Spira อย่างผิด ๆ ) ดังนั้นเราจะได้ความลึกของวงจรที่เป็นมากที่สุด แต่สิ่งนี้ดีเกินกว่าที่จะเป็นจริง: ขอบเขตบนที่รู้จักกันดีที่สุดสำหรับความลึกของวงจรคือO(Sk)(2kS)2SO(S5)SO(logS)O(logS)O(S/logS).
Stasys

2
Btwมีไว้สำหรับวงจรโดยพลการแต่ถ้าเราอนุญาตให้ใช้fanin-2 (ดูเช่น thm. 4.1 ในหนังสือของ Wegener); จากนั้นวงจรก็ยังสามารถจำผลลัพธ์ระดับกลางได้ สถานการณ์กับ fanin-1 นั้นแตกต่างกันมาก: ที่นี่วงจรไม่มีหน่วยความจำเลย แต่คำถามของโรบินน่าสนใจมาก มันจะน่าสนใจได้ที่จะแสดงให้เห็นว่าลึก 3วงจรขนาดสามารถจำลองโดยความลึก 3 สูตรที่มีขนาดเล็กกว่า 2 O(kS)2)SS2
Stasys

4
ฉันจะเชื่อสิ่งที่ Stas กล่าวข้างต้น; ฉันไม่ได้ระมัดระวังอย่างมากในโน้ตเหล่านั้น (ขออภัย) ในทางกลับกันฉันจำได้เมื่อเขียนพวกเขาค่อนข้างผิดหวังเกี่ยวกับการจัดหาข้อเท็จจริง - กล่าวถึงในเอกสารจำนวนมาก แต่แทบจะไม่เคยมีการอ้างอิง - ที่หนึ่งสามารถแปลงวงจรโดยพลการเป็นพลชั้นโดยไม่มีการระเบิดขนาด "มาก" . ฉันชอบที่จะเห็นตัวชี้ไปยังผลลัพธ์ที่รู้จักกันดีที่สุดในเรื่องนี้ AC0
Ryan O'Donnell

2
@Ryan ดอนเนลล์: แน่นอนหนึ่งสามารถทำให้วงจรชั้นกับระเบิดขึ้น(KS) เราใช้การเชื่อมโยงเพื่อบรรลุว่าทุก ๆ ประตูมีเพียงประตูหรือเป็นอินพุตและในทางกลับกัน; ความลึกยังคงไม่เปลี่ยนแปลง จากนั้นจัดเรียงประตูตามความลึกของพวกเขาและเพิ่มถ้าจำเป็น fanin-1 เล็กน้อยและประตู AND และเพื่อให้ได้วงจรแบบเลเยอร์ ความลึกยังคงเหมือนเดิมและขนาดเพิ่มขึ้นเพียงปัจจัยของ k แต่ฉันเข้าใจว่า Robin ต้องการให้วงจรถูกแปลงเป็นสูตร (วงจรคล้ายต้นไม้ยกเว้นว่าตัวอักษรอินพุตอาจมี fanout ขนาดใหญ่) O(kS)
Stasys

2
@ Ryan O'Donnell: ขอบคุณสำหรับการตอบกลับและการวางบันทึกการบรรยายออนไลน์! โดยเฉพาะอย่างยิ่งบันทึกการบรรยายของคุณเกี่ยวกับการวิเคราะห์ฟังก์ชั่นบูลีนนั้นมีประโยชน์อย่างยิ่ง
Robin Kothari

คำตอบ:


11

ฉันจะพยายามสรุปความคิดเห็นก่อนหน้าของฉัน

แรกให้เราละเลยความจริงที่ว่าวงจรเดิมของคุณมี (คงที่) ความลึก ; เพียง แต่คิดว่ามันมีขนาดSให้เป็นจำนวนที่น้อยที่สุดเช่นว่าทุกมากมายวงจร fanin ขนาดสามารถเปลี่ยนเป็นสูตร fanin มากมายขนาดA) ฉันเรียกร้องที่ดีที่สุดที่เราสามารถทำได้เพื่อให้ห่างไกลเพื่อให้บรรลุS) พูดก็ยังไม่เป็นที่รู้จักไม่ว่าจะเป็นว่ามีวงจร (fanin-2) ขนาดสามารถจำลองโดยใช้สูตรที่มีขนาดเล็กกว่าn)kSASFO(SA)A=O(S/log2S)S=O(n)exp(n/logn)

เพื่อแสดงให้เห็นการเรียกร้องที่เราเปลี่ยนสูตรเป็น fanin-2 สูตรขนาด2A) เป็นที่ทราบกันดีว่าลึกของทุกสูตรสามารถทำลอการิทึมในขนาดของมันที่เป็นS) [สิ่งนี้ถูกแสดงครั้งแรกโดย Khrapchenko 2511 แล้วค่าคงที่ภายใต้ big-O ได้รับการปรับปรุงเป็นโดยผู้เขียนหลายคน] ในทางกลับกันผลลัพธ์ที่ดีที่สุดที่รู้จักกันดีสำหรับวงจร fanin-2 [Paterson and Valiant TCS 2 (3), 397-400] กล่าวว่าล็อกขนาด) ดังนั้นจึงมีการจำลองด้วยเล็กกว่าFFM=O(S2A)DFD=O(logM)=O(AlogS)D1.73log2MDepth=O(Size/logSize)AS/log2S จะปรับปรุงการจำลองขนาดความลึกที่รู้จักกันเป็นอย่างดีสำหรับวงจร

อย่างไรก็ตามนี่เป็นเพียง "คำเตือน" - มันไม่ตอบคำถามของคุณเพราะคุณคิดว่าวงจรดั้งเดิมของคุณมีความลึกคงที่หมายความว่าในกรณีนี้เราสามารถใช้ (หรือถ้าเรามีประตูทางออกเดียว) พลังของการจำลอง Paterson-Valiant คือมันใช้กับกฎเกณฑ์แม้กระทั่งวงจรที่ไม่สมดุลมากซึ่งมีความลึกเกือบเท่ากับขนาดทั้งหมด! แต่ในการตั้งค่าความลึกที่ จำกัด ของคุณแม้กรณีไม่ชัดเจน: วงจรความลึก -3 ทุกขนาดสามารถเปลี่ยนเป็นสูตรความลึก -3 ที่มีขนาดเล็กกว่าkA=kA=k1k=3SS2? ฉันเดาคำตอบควรเป็น "ไม่" (อาจเป็นแบบฝึกหัดที่น่าสนใจสำหรับนักเรียน) สูตรความลึก -3 เป็นเพียงแค่ขนาดใหญ่หรือของ CNFs คำถามคือการหา OR ของ CNFs ที่ใช้คำสั่งจำนวนมากร่วมกัน แต่อย่างอื่นก็คือ "แตกต่างกันมาก" เพื่อบังคับใช้สูตรความลึกขนาดใหญ่ 3

ปัญหาคือเราต้องการได้สูตร (วงจร fanout-1) ดังที่ได้กล่าวไว้ข้างต้นการอนุญาตให้ประตูของfanout-2ทำให้การจำลองง่ายขึ้น: Hoover, Klawe และ Pippenger [JACM 31 (1), 1980] แสดงว่าวงจร fanin-2 ใด ๆ ที่มีขนาดและความลึกมี fanin-2 และ fanout เทียบเท่า -2 วงจรขนาดและความลึก2Dดังนั้นหากเป็น fanin มากมายแล้ววงจรที่เกิดขึ้นจะมีขนาดและความลึกS)SD3S2n2DO(S2)O(DlogS)

ยังมีอีกผลลัพธ์ที่เกี่ยวข้องกับคำถามของคุณ Lozhkin (1981) พิสูจน์ว่าหากฟังก์ชันบูลีนสามารถคำนวณได้ด้วยสูตรของความลึกและขนาดดังนั้นสามารถคำนวณได้โดย fanin-2 สูตรความลึก (สิ่งนี้ตามมาจากทฤษฎีบท 6.2 ในหนังสือของฉัน) โปรดสังเกตว่าขอบเขตบนเล็กน้อยจะเป็น (ถ้าเราจำลองแต่ละประตูด้วยต้นไม้แห่งความลึก )fAC0 kSfDk1+log2SDklogSlogS

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