ให้วงจรบูลีนกับตัวแปร (ซึ่งใช้เพียงไม่, และและหรือประตู) วิธีใดที่มีประสิทธิภาพมากที่สุดในการแยกสูตรบูลีนที่เป็นวงจร มีอัลกอริทึม polytime สำหรับปัญหานี้หรือไม่?n
ให้วงจรบูลีนกับตัวแปร (ซึ่งใช้เพียงไม่, และและหรือประตู) วิธีใดที่มีประสิทธิภาพมากที่สุดในการแยกสูตรบูลีนที่เป็นวงจร มีอัลกอริทึม polytime สำหรับปัญหานี้หรือไม่?n
คำตอบ:
ถ้าฉันเข้าใจคำถามของคุณถูกต้องฉันจะบอกว่าคุณสามารถใช้การลดมาตรฐานจาก CIRCUIT-SAT ถึง SAT: แทนแต่ละประตูเป็นตัวแปรใหม่แล้วแสดงวงจรทั้งหมดในรูปแบบ CNF โดยแต่ละประโยคมีรูปแบบโดยที่คือตัวแปรใหม่และสูตรสำหรับเกตได้รับจากโดยใช้ตัวแปรสำหรับประตูอื่น ๆ เพื่อเป็นตัวแทนของอินพุต สิ่งนี้สามารถทำได้โดยการสำรวจเส้นทางง่ายๆ (ในเวลาเชิงเส้นซึ่งเป็นที่เหมาะสมอย่างชัดเจน)v ϕ
ตัวอย่างเช่นถ้าคุณ hade สามปัจจัยการผลิต ,และมีการเชื่อมโยงและประตูและเช่นเดียวกับและและหรือประตูเชื่อมโยงผลของพวกเขาคุณสามารถแนะนำสามตัวแปรเพื่อเป็นตัวแทนของ gates- ,และตามลำดับ - และเขียนสูตรไปที่โปรดทราบว่าตัวแปรเอาต์พุตรวมอย่างชัดเจน
รู้เบื้องต้นเกี่ยวกับอัลกอริทึมโดย Cormen และคณะ อธิบายรายละเอียดในบทที่เกี่ยวกับ NP-Completeeness