คำตอบสั้น ๆ รุ่นผู้ประกอบการของSATสามารถแก้ไขได้อย่างมีประสิทธิภาพ - อย่างน้อยถ้าเราถือว่าวงจรโดยพลการของประตูสองอินพุตโดยไม่มีพัดลมออกให้เลือกตัวเลือกประตูที่ต้องการ
คำตอบที่ยาว
ฉันถือว่าปัญหาบูลีนในรูปแบบต่อไปนี้:
2 TREE-OPSAT ได้รับการป้อนข้อมูลx ∈ { 0 , 1 } nสำหรับn ⩾ 2และประตูชุดGประกอบด้วย 2 อินพุตประตูหนึ่งในการส่งออกจะมีอยู่วงจรCประกอบด้วยประตูในGซึ่งยอมรับx , ที่อยู่, ซึ่งเป็น พอใจเมื่อได้รับอินพุตx (บิตแม็พของxกับใบไม้ของวงจรCตามลำดับ)x ∈ { 0 , 1 }nn ⩾ 2GคG xxxค
โดยเฉพาะอย่างยิ่งเราไม่ได้กำหนดโครงสร้างเฉพาะในวงจรC (นอกเหนือจากการเป็นต้นไม้คู่) ไม่อนุญาตให้มีพัดลม (เพื่อให้แต่ละบิตของxใช้เพียงครั้งเดียวเท่านั้น) และประตูอาจไม่สมมาตร ด้วยการอนุญาตให้ใช้เกทสองบิตเท่านั้นฉันจึงไม่รวมประตูNOT (แต่อาจจำลองได้ด้วยการมีหลายประตูที่เกี่ยวข้องซึ่งกันและกันด้วยการปฏิเสธเช่นAND / NANDและฉันยังไม่รวมเกตที่ส่งค่าคงที่โดยไม่มีอินพุต ดังนั้นจำนวนประตูในวงจรจะเป็นn - 1เสมอสำหรับอินพุตn- bit เพื่อความกะทัดรัดฉันจะอ้างถึง2-TREE-OPSATด้านล่างเพียงคxn - 1nOPSAT ; แม้ว่าการวิเคราะห์ปัญหาอาจกลายเป็นเรื่องยากมากขึ้นสำหรับวงจรที่อนุญาตให้k-อินพุตประตู ( k-TREE-OPSAT ) โดยพลการหรืออนุญาตให้ใช้พัดลม (ซึ่งเราอาจเรียกk-FANOUT-OPSAT )
[ แก้ไขเพิ่ม : เราสามารถปรับตัวนี้จะต้องพิจารณาปัญหาทั่วไปมากขึ้นของการแก้ไขปัจจุบันของคำถามของคุณในการที่เราพยายามที่จะทำแผนที่ที่กำหนดx ∈ { 0 , 1 } *เป็นค่าเป้าหมายข∈ { 0 , 1 }โดยการสับเปลี่ยนบทบาทของ0และ1ในการวิเคราะห์ด้านล่าง นี้มีผลของการสับเปลี่ยนบทบาทของและและOR , NANDและNOR , ฯลฯ ]
x ∈ { 0 , 1 }* * * *b ∈ { 0 , 1 }01
สำหรับทางเลือกที่คงที่ของปัญหาของการเลือกต้นไม้ที่เหมาะสมกับประตูที่เหมาะสมนั้นไม่แตกต่างจากการแยกตรรกะ: ใช้การเทียบเท่าเช่น
เราอาจทำการลดลงระหว่างคอลเลกชันที่เกี่ยวข้องกับชุดประตูที่ซับซ้อนมากขึ้นเพื่อชุดประตูที่เรียบง่าย (และทรงพลัง); อาจพูดถึงประตูหนึ่งชุดสามารถเลียนแบบประตูอื่นที่ไม่ใช่ของชุดได้โดยเลือกองค์ประกอบของอย่างชาญฉลาดซึ่งมีผลเหมือนกัน (เมื่อนำเสนอด้วยอินพุตที่เฉพาะเจาะจง) เป็นประตู . โดยเฉพาะอย่างยิ่งการรวมกันบางอย่างของประตู (เช่น ) สามารถจำลองการทำงานคงที่ยอมx ∈ { 0 , 1 } n OR ( x , y )x ∈ { 0 , 1 }n≡(และ(x,y)∨ความเท่าเทียมกัน ( x , y ) ) G G ∉ G { OR , NAND } 1
หรือ( x , y)≡(และ( x , y)∨ความเท่าเทียมกัน( x , y) )
GG ∉ G{ OR , NAND }1: เราบอกว่าประตูชุดดังกล่าวเต็มไปด้วยความตึงเครียด
เราดำเนินการโดยพิจารณาชุดประตูรวมถึงประตูประเภทต่างๆหลังจากนั้นไม่รวมประตูเหล่านั้นจากการวิเคราะห์ในภายหลังเพื่อแสดงให้เห็นว่าชุดประตูที่เกี่ยวข้องกับประตูใดประตูหนึ่งเดียวจะนำไปสู่ปัญหาที่เข้าใจยาก เราจะดำเนินการตามลำดับของจำนวนสายสองบิตที่ตอบสนองประตูที่เป็นปัญหาเริ่มจากประตูคงที่ไปที่ประตูคงที่G 1 0G10
สำหรับชุดประตูใด ๆซึ่งมีประตูคงเราก็อาจจะสร้างวงจรโดยใช้ประตูที่อยู่คนเดียวซึ่งในกรณียอมรับใด ๆxG G ( x , y ) = 1 C C xGG ( x , y) = 1คคx
หรือและ NAND สำหรับชุดประตูใด ๆซึ่งมี : ถ้าประตูอื่นทั้งหมดตอบสนองดังนั้นจึงไม่มีประโยชน์ที่จะเลือกประตูอื่นใดยกเว้นในการสร้างวงจรCวงจรเพียงประตูยอมรับสตริงใด ๆ ยกเว้น0 มิเช่นนั้นจะมีเกทเช่นนั้นนั้นมีความซ้ำซาก ดังนั้นตัวอย่างของOPSATกับนั้นง่าย และหมายเหตุประกอบคล้ายสมัครGG หรือ G ∈ G G ( x , y )GหรือG ∈ G⟹หรือ ( x , y ) หรือ C หรือ x ∈ 0 ∗ G ∈ G { G , OR } หรือ ∈ G NAND ∈ GG ( x , y)⟹หรือ( x , y)หรือคหรือx ∈ 0* * * *G ∈ G{ G , OR }หรือ ∈ GNAND ∈ G
ประตูเหมือนที่มีความหมาย พิจารณาประตูซึ่งผลศูนย์ถ้า(1,0) สำหรับสิ่งต่อไปนี้การวิเคราะห์ที่คล้ายกันจะใช้สำหรับประตูY
พิจารณาสตริง n หากสิ้นสุดในให้ย่อยลงในสตริงย่อยของแบบฟอร์ม ; ในแต่ละเช่นเราซ้ำใช้จากขวาไปซ้ายซึ่งผลผลิตออกสำหรับแต่ละw_j(สำหรับซับสตริงที่มีความยาว 1 เราใช้วงจรเล็ก ๆ น้อย ๆ นั่นคือปล่อยอินพุตนั้นไว้อย่างเดียว) ในทำนองเดียวกันถ้าG ( x , Y ) = ¬ x ∨ Y ( x , Y ) = ( 1 , 0 ) G ' ( x , Y ) = x ∨ ¬ Y x ∈ { 0 , 1 } n x 0 x W J = 1 * 0 w j G 0 w j x 1 x wG ( x , y) = ¬ x ∨ y( x , y) = ( 1 , 0 )G'( x , y) = x ∨ ¬ Y
x ∈ { 0 , 1 }nx0xWJ= 1* * * *0WJG0WJxปลายในสลายลงในสตริงของแบบฟอร์มและซ้ำใช้จากซ้ายไปขวาในแต่ละ , ที่ทำให้การส่งออกสำหรับแต่ละw_jดังนั้นเราอาจจะช่วยลดปัญหาการสร้างวงจรที่มีความพึงพอใจทั้งโดยหรือที่คือจำนวนของสตริงหรือ1 สำหรับเราอาจยอมรับการใช้ประตูโดยใช้ซ้ำจากซ้ายไปขวา นี่เป็นเพียงกรณี1xj = 0 ∗ 1 G w j 1 w j 0 m 1 m m 1 ∗ 0 0 ∗ 1 m ⩾ 2 G G m = 1 x ∈ 1 ∗ 0 x = 1 ∗ 0 G 1 ∗ 0 0 G H ∈ G H ( 1 , 0 ) = 1 { G , HWJ= 0* * * *1GWJ1WJ0ม.1ม.ม.1* * * *00* * * *1m ⩾ 2GGm = 1ซึ่งกรณีที่มีปัญหาเป็นปัจจัย0 สำหรับ , วงจรใด ๆ ที่ประกอบไปด้วยประตูเท่านั้นจะให้ผลสตริงที่สั้นกว่าในรูปแบบ , ในที่สุดให้สตริงเดี่ยวบิต : เพื่อไม่ให้วงจรของประตูพอใจ ข้อมูลนี้ หากยังมีประตูซึ่ง ,นั้นมีความซ้ำซาก; หรือถ้ามีเกทซึ่งเราอาจลดเงื่อนไขของแบบฟอร์มx ∈ 1* * * *0
x = 1* * * *0G1* * * *00GH∈ กรัมH( 1 , 0 ) = 1} H ∈ G H ( 1 , 1 ) = 0 11 ∗ 0 ( 1 ∗ 0 ) ∗ H x x ∈ 1 ∗ 0 G{ G , H}H∈ กรัมH( 1 , 1 ) = 011* * * *0สตริงของแบบฟอร์มโดยใช้ไปสองบิตแรกของxมิฉะนั้นไม่มีวงจรสามารถสร้างที่รับ0
ดังนั้นสำหรับชุดเกทใด ๆ ที่มีเกทคล้ายกับนัย OPSATจึงเป็นเรื่องง่าย( 1)* * * *0 )* * * *Hxx ∈ 1* * * *0
G
การปฏิเสธของการคาดการณ์ พิจารณาประตู¬ π 1 ( x , Y ) = ¬ xและY เราพิจารณาการวิเคราะห์ที่มีนั้นคล้ายคลึงกัน ด้วยตัวเองสามารถยอมรับสตริงใด ๆ ในสำหรับโดยการลดบิตสุดท้ายของเป็นบิตเดียวแล้วจึงใช้ ; และสามารถยอมรับสำหรับโดยการลดสุดท้าย¬ π1( x , y) = ¬ x¬ π 2 ( x , Y ) = ¬ Y ¬ π 1 ¬ π 2 ¬ π 1 0 ( 0 | 1 ) n - 1 n ⩾ 2 n - 1 ¬ π 1 1 ( 0 | 1 ) n - 1 n ⩾ 3 n - 2 ¬ π 1 ( ¬ π 1 (¬ π2( x , y) = ¬ y¬ π1¬ π2¬ π10 ( 0 | 1 )n - 1n ⩾ 2n - 1¬ π11 ( 0 | 1 )n - 1n ⩾ 3n - 2บิตบิตเดียวแล้วใช้วงจรx_3) เพียงปัจจัยการผลิตที่วงจรไม่สามารถยอมรับแล้วหรือ ; การพิจารณาว่าประตูเสริมใด ๆ ยอมรับสิ่งเหล่านี้หรือไม่ ดังนั้นOPSATจึงง่ายสำหรับการปฏิเสธการคาดการณ์x 1 , x 2 ) , x 3 ) ¬ π 1 10 11¬ π1( ¬ π1( x1, x2) , x3)¬ π11011
PARITY และความเท่าเทียมกัน พิจารณาประตูy) เกทที่ตั้งค่าเห็นได้ชัดว่าสามารถตอบสนองได้อย่างแม่นยำโดยสตริงด้วยจำนวนคี่ 1s; เราพิจารณาถึงประโยชน์ของการเพิ่มประตูอื่น ๆPARITY ( x , Y ) = ( x ∨ ¬ Y ) ∧ ( ¬ x ∨ Y ) G = { PARITY } x ∈ { 0 , 1 } nความเท่าเทียมกัน( x , y) = ( x ∨ ¬ Y) ∧ ( ¬ x ∨ y)G= { PARITY }x∈{0,1}n
- ชุดเกทใด ๆ ที่มีทั้งและหรือ
สามารถจำลองวงจรที่มี
หรือประตู (ตามลำดับ) สำหรับอินพุตคงที่ซึ่ง ได้แก่ กรณีที่ง่ายของOPSATพาริตีและNOR ( x , y ) = ¬ ( x ∨ y ) หรือNANDPARITYANDNOR(x,y)=¬(x∨y)ORNAND
- อย่างใดอย่างหนึ่งหรือสามารถนำมาใช้ในการจำลองการอย่างใดอย่างหนึ่งหรือในสตริงสองบิตของความเท่าเทียมกันแม้เพื่อที่เราอาจจะลดประตูชุดกับสิ่งเหล่านี้ ประตูและไปยังกรณีก่อนหน้าπ 1 ( x , y ) = x π 2 ( x , y ) = y และNOR Parityπ1(x,y)=xπ2(x,y)=yANDNORPARITY
- PARITY เท่ากับ = ¬ PARITYPARITYพร้อมกับนั้นไม่สำคัญEQUAL=¬PARITY
- ถ้าเราเสริมด้วยประตูเราสามารถรับสายอักขระคู่เสมอยกเว้นสำหรับโดยใช้กับ -substring ของและจากนั้นใช้วงจรส่วนที่เหลือ ในทำนองเดียวกันร่วมกับสามารถยอมรับสตริงใด ๆ ยกเว้นผู้ที่อยู่ในรูปแบบ(11) การเสริมทั้งและทำให้เราสามารถสร้างวงจรที่รับอินพุตทั้งหมดยกเว้นและPARITY G 01 = ¬ x ∧ Y x ∈ ( 11 ) * 0 * G 01 01 x PARITY PARITY G 10 = x ∧ ¬ Y x ∈ 0 * ( 11 ) * PARITY G 01 G 10 x ∈ 0 * x = 11PARITYG01=¬x∧yx∈(11)∗0∗G0101xPARITYPARITYG10=x∧¬yx∈0∗(11)∗PARITYG01G10x∈0∗x=1111
- ในที่สุดถ้าเราเสริมด้วยค่าคงที่เราสามารถรับอินพุตใด ๆ ยกเว้นหรือโดยใช้เกตเพื่อ สตริงย่อยหรือลดขนาดกรณีพาริตีคี่PARITY Z ( x , y ) = 0 x ∈ ( 11 ) ∗ x ∈ 0 ∗ G 01 10PARITYZ(x,y)=0
ดังนั้นOPSATเป็นเรื่องง่ายสำหรับการใด ๆมี\การวิเคราะห์ที่คล้ายกันนี้ใช้สำหรับ gate สำหรับ gate: เนื่องจาก , วงจร ของ gates จะนับความเท่าเทียมกันของจำนวน s ในอินพุต จากนั้นเราอาจจะลดการวิเคราะห์สำหรับกับที่ของโดยการแลกเปลี่ยนและ1G PARITY เท่ากับPARITY เท่าเทียมกัน ( x , Y ) = ¬ PARITY ( x , Y ) = ¬ PARITY ( ¬ x , ¬ Y ) เท่ากับ 0 เท่ากับPARITY 0 1
ประตูฉาย ประตูและถ่ายด้วยตนเองสามารถสร้างวงจรที่ยอมรับสตริงที่เริ่มต้นหรือสิ้นสุดในตามลำดับเท่านั้น พิจารณาผลของการเพิ่มเกทกับเกตอื่น (การวิเคราะห์ที่คล้ายกันกับ )π 1 ( x , y ) = x π 2 ( x , y ) = y 1 π 1 π 2
- การอนุญาตให้ทั้งและอนุญาตให้สร้างวงจร "ตัวเลือก" ซึ่งเพียงแค่ส่งออกบิตใด ๆ จากอินพุต; เหล่านี้สามารถยอมรับใด ๆและเสริมพวกเขาด้วยประตูใด ๆที่ช่วยให้วงจรความพึงพอใจที่จะสร้างขึ้นสำหรับการใด ๆxπ 1 π 2 x ≠ 0 n G G ( 0 , 0 ) = 1 x
- หากเราเสริมกับหรือเราอาจจำลองหรือประตูเกทที่มีความหมายเหมือนกันสำหรับอินพุตคงที่ OPSATได้รับการแก้ไขสำหรับทั้งสองกรณีนี้π 1 NOR G 01 = ¬ x ∧ y OR
- หากเราเสริมด้วย , , ค่าคงที่หรือการรวมกันของพวกเราจะไม่ได้รับการยอมรับเพิ่มเติมดังนั้นเราจึง ยังคงสามารถยอมรับสตริงที่ขึ้นต้นด้วยเท่านั้นπ 1 และG 10 = x ∧ ¬ Y Z ( x , Y ) = 0 1
ดังนั้นสำหรับประตูอื่น ๆ ที่เราอาจเสริม (หรือ ) ด้วยเราจะได้เซตที่ไม่น่าไว้ไม่ได้รับการยอมรับอำนาจเพิ่มเติมเพียงแค่ (หรือ ) หรืออาจลดลงเป็นกรณีที่ง่ายๆ . ดังนั้นตัวอย่างของOPSAT ที่มีหรือนั้นง่ายπ 1 π 2 π 1 π 2 π 1 ∈ G π 2 ∈ G
ประตูเดลต้าฟังก์ชั่น พิจารณาประตูสองบิตที่มีเพียงอินพุตเดียวที่ตอบสนองพวกเขา: , , , และY วงจรทำเฉพาะกับประตูสามารถยอมรับได้เฉพาะสตริง : เสริมพวกเขาด้วยประตูเดลต้าฟังก์ชั่นอื่น ๆ ที่ช่วยให้พวกเขาเพื่อจำลองทั้ง ,หรือซึ่งมีการแก้ไขกรณี; ข้อสังเกตที่คล้ายกันนำไปใช้กับ\เช่นกันชุดเกทสามารถใช้เพื่อจำลองและNOR G 10 ( x , Y ) = x ∧ ¬ Y G 01 ( x , Y ) = ¬ x ∧ Y และ1 * เท่ากับเธ1 π 2 NOR { G 01 , G 10 } PARITY G 10 G 01 Z ( x , y ) = 0 G 10 G 01ประตู. เราจึงอาจมุ่งเน้นทั้งประตูหรืออาจจะเสริมด้วยประตู0 เรามุ่งเน้นที่โดยมีกรณีของใกล้เคียงกัน วงจรที่สร้างจากเพียงอย่างเดียวสามารถสร้างขึ้นเพื่อยอมรับยกเว้นสตริงโดยใช้วงจรโดยพลการไปยังบิตสุดท้ายจากนั้นจึงใช้วงจรx_3)) เห็นได้ชัดว่าไม่สามารถยอมรับสตริงได้โดยหรือโดย ; และเราสามารถแสดงโดยการเหนี่ยวนำว่าใด ๆ
G 10 1 ( 0 | 1 ) n - 1 11 n - 2 G 10 ( x 1 , G 10 ( x 2 , x 3 ) ) 11 G 10 Z G 10 1 Z G 10 x ∈ 1 ( 0 | 10 | 11 ) ( 0 | 1 ) ∗วงจรที่ยอมรับสตริงจะต้องมีผลระหว่างกลางของประตูในสาขาซ้ายสุดทั้งหมดที่ให้ , จนถึงอินพุตซ้ายสุดเอง ไม่ได้รับประโยชน์เพิ่มเติมจากการเพิ่มประตู ดังนั้นวงจรสามารถยอมรับได้เฉพาะ1
ในที่สุดวงจรที่ประกอบขึ้นเป็นประตูเท่านั้นไม่ยอมรับอินพุตZ
แต่ละประตูให้สูงขึ้นในระดับที่ดีที่กำหนดและโดยทั่วไปมีขนาดค่อนข้างใหญ่ของปัจจัยการผลิตที่จะยอมรับกับประตูเพิ่มเติมพุ่งไปทำเป็นปัญหาเราพบว่า2 TREE-OPSATอยู่ในP