สูตรที่สั้นที่สุดสำหรับ CNF แบบระยะเดียว


10

สูตร CNF แบบ monotone พร้อมเงื่อนไข m ในตัวแปร n ( ) เป็นสูตรของรูปแบบซึ่งแต่ละเป็น OR ของชุดย่อยบางส่วนของตัวแปรและมีตั้งแต่ไปม. f ( x 1 , , x n ) = C i C ฉันx 1 , , x n i 1 mx1,,xnf(x1,,xn)=CiCix1,,xni1m

ตัวอย่างเช่นเป็นสูตร CNF แบบโมโนโทนที่มี 2 คำศัพท์ในตัวแปร 4 ตัว(x1x3x4)(x2x4)

ฉันกำลังมองหาสูตรที่สั้นที่สุด (ไม่จำเป็นต้องเป็นเสียงเดียวไม่จำเป็นต้อง CNF สูตรใด ๆ จะทำ!) ในชุดของตัวแปรเดียวกันที่แสดงถึงฟังก์ชั่นเดียวกันกับสูตร CNF แบบ monotone ที่กำหนดบนตัวแปร n ที่มีคำศัพท์ n (โปรดทราบว่าจำนวนคำและตัวแปรเหมือนกัน)

วิธีการหนึ่งที่เห็นได้ชัดในการสร้างสูตรคือการขยายออกคำนิยาม CNF รับซึ่งจะทำให้เรามีสูตรที่มีขนาด2) (ลองกำหนดขนาดของสูตรให้เป็นความยาวของสูตรเมื่อมันถูกเขียนเป็นสตริง) ฉันต้องการที่จะรู้ว่านี่เป็นการสร้างทั่วไปที่มีประสิทธิภาพมากที่สุดหรือสำหรับทุกระยะ n-term CNF มีสูตรอยู่ ขนาด2)o ( n 2 )O(n2)โอ(n2)

ฉันแค่อยากรู้ว่ามันเป็นไปได้หรือเปล่าฉันไม่ได้สนใจอัลกอริธึมจริงๆ ถ้าเป็นไปไม่ได้ฟังก์ชั่นที่ทำหน้าที่เป็นตัวอย่างจะดีมาก ตัวชี้ไปยังที่ที่ฉันสามารถหาคำตอบในวรรณกรรมได้เช่นกัน

แก้ไข: ฉันเพิ่มตัวอย่างเพื่อให้เรทชัดเจนขึ้น

บอกว่าสูตรใส่เป็นx_n) นี่คือสูตร CNF เดียว สูตรสั้นซึ่งหมายถึงฟังก์ชั่นเดียวกันคือต่อไปนี้:x_n)f=(x1x2)(x1x3)...(x1xn)x1(x2x3...xn)

คำตอบ:


11

คุณสามารถรับขอบเขตล่างโดยใช้อาร์กิวเมนต์การนับ: มี -term CNFs ในตัวแปร (นี่เป็นเรื่องง่าย แต่ต้องการการดูแลเพียงเล็กน้อย ตรวจสอบให้แน่ใจว่าไม่มีมากกว่านับ) แต่มีสูตร (หรือแม้กระทั่งวงจร) ขนาดที่มากที่สุดs Ω(n2/logn)exp(n2) nnexp(slogs)s

ดูเหมือนว่าการชนะปัจจัยสุดท้ายจะยากเนื่องจากต้องมีการพิสูจน์ขีด จำกัด ล่างของกำลังสองในขนาดสูตรและฉันเดาว่าเทคนิคที่มีอยู่ไม่กี่ตัวสำหรับการทำเช่นนี้ไม่เพียงพอ แม้อาจจะเป็นคำตอบที่เหมาะสม - อย่างน้อยขนาดวงจร - ใช้บางส่วนสี่รัสเซียเหมือนเทคนิคlognO(n2/logn)


สมบูรณ์แบบขอบคุณ! Log n factor นั้นไม่สำคัญสำหรับฉันดังนั้นนี่จึงตอบคำถามของฉันได้อย่างสมบูรณ์
Robin Kothari

2

พิจารณาว่าสำหรับ CNF ใด ๆ คุณสามารถคำนวณชุดของ implicates ที่สำคัญ (ซึ่งขั้นต่ำใด ๆ จะต้องเป็นชุดย่อย) โดยการปิดภายใต้ความละเอียดและใช้การกำจัด subsumption

อย่างไรก็ตามในกรณีของ CNFมีโทนสีเดียวการปิดความละเอียดของคือ (เนื่องจากไม่มีตัวอักษรเชิงลบจึงไม่สามารถทำการแก้ปัญหาได้) ดังนั้น CNF ขั้นต่ำคือชุดของส่วนที่สำคัญซึ่งเป็นสูตรที่คุณมีอยู่แล้วFFF

แน่นอนฉันสมมติว่าคุณไม่ต้องการแนะนำตัวแปรใหม่

หากคุณต้องการให้แน่ใจว่าคุณมีสูตรบางอย่างที่มีคำตามที่คุณแนะนำวิธีเดียวที่จะได้รับคือการขยายส่วนคำสั่งบางส่วนโดยการเพิ่มตัวแปรที่ขาดหายไป ใด ๆ CNF ดังกล่าวควรมีจำนวนเท่ากันของตัวอักษร (วัดขนาดที่คุณแนะนำผมเชื่อว่า) สำหรับการแก้ไขและnnn


ดีฉันชอบมัน (ในการส่งผ่านในกรณีที่กรณี DNF เดียวเกิดขึ้น @Robin ฉันเชื่อว่านี่น่าสนใจ: citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.69.4716 )
Daniel Apon

1
ฉันไม่แน่ใจว่าฉันเข้าใจ CNF ขนาดต่ำสุดอาจเป็นสูตร CNF แบบโมโนโทนที่ฉันมีอยู่แล้ว แต่ฉันกำลังมองหาสูตรความยาวที่เล็กที่สุดไม่ว่าชนิดใด ไม่จำเป็นต้องเป็น CNF หรือเสียงเดียว ฉันจะแก้ไขคำถามของฉันเพื่อให้ชัดเจนยิ่งขึ้น
Robin Kothari

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