วงจรขนาดกึ่งโพลิโนเมียลสำหรับ 3-SAT trivial หรือไม่?


10

สมมติว่าเราพิจารณา 3-SAT พร้อมกับตัวแปรและc ส่วนคำสั่ง ฉันกำลังค้นคว้าวิธีที่ดูเหมือนจะใช้เวลา / พื้นที่O ( v 2 + บันทึกc )เพื่อแก้ปัญหา SAT ที่เหมาะสมกับคำอธิบายนี้ภายในข้อผิดพลาดที่สามารถปรับได้ตามจำนวนที่กำหนด อย่างไรก็ตามมีการจับเป็นvcO(v2+logc)

วิธีนี้ต้องใช้ชุดของค่าที่คำนวณล่วงหน้าซึ่งสามารถแก้ไขปัญหา 3-SAT ตามอำเภอใจได้พอดีกับคำอธิบายข้างต้น ค่า Precomputed เป็นชุดของขนาดกับแต่ละสละค่าO ( 1 )พื้นที่ ปัญหาที่แท้จริงคือแต่ละค่าเหล่านี้อาจใช้เวลาO ( 2 v )ในการคำนวณ มีโอกาสที่ฉันสามารถหาวิธีเพิ่มความเร็วในการคำนวณเหล่านี้ได้O(v2+logc)O(1)O(2v)

ฉันคิดว่าขอบเขตตัวเองชนะขอบเขตบนที่นำเสนอในคำถามนี้ (สำหรับขนาดเล็ก) ดังนั้นฉันสงสัยว่ามีวิธีที่ไม่สำคัญที่จะไปถึงขอบเขตด้านบนที่ฉันอธิบายถ้าเราอนุญาตให้มีprecomputations O ( v 2 + log c )หรือไม่cO(v2+logc)

ฉันต้องการดำเนินการวิจัยนี้ต่อไปและหวังว่าจะเผยแพร่ผลลัพธ์ของฉันหากทุกอย่างเป็นไปได้ แต่ก่อนอื่นฉันอยากจะรู้ว่ามีวิธีการทำสิ่งเล็กน้อยหรือดีกว่า


UPDATE

ฉันได้ศึกษาปัญหาที่เกี่ยวข้องเพิ่มเติมจากการค้นคว้าอัลกอริทึมนี้ ฉันถามคำถามนี้ในเว็บไซต์ IT Security ของ StackExchange ที่เกี่ยวข้องกับการถอดรหัสรหัสผ่านและ SAT หากคุณสนใจ คำตอบอย่างน้อยหนึ่งข้อสะท้อนถึงสิ่งนี้


คุณบอกว่ามันใช้เวลา / พื้นที่ O (N ^ 2 + logc) ... ดังนั้นมันจึงไม่ใช่ PSPACE? แต่ใน QSPACE (เสมือนพื้นที่)?
Tayfun จ่าย

@Tayfun จ่าย: มันทำงานใน ) มันเป็นอัลกอริธึมที่กำหนดขึ้นซึ่งให้ผลลัพธ์แบบโมดูโลpไพรม์ (โปรดทราบว่าผลลัพธ์นี้เพียงพอสำหรับอัลกอริทึมที่เหลือเพื่อกำหนดการมอบหมายที่น่าพอใจ) มันสามารถเรียกใช้สำหรับนายกใด ๆ การใช้งานมากกว่าหนึ่ง Prime จะเพิ่มโอกาสในการค้นหาการมอบหมายที่น่าพอใจ แต่ก็มีโอกาสในการหางานที่ให้ความพึงพอใจถ้ามีอยู่ของ( พี- 1 ) /พี O(v(2+logc))p(p1)/p
Matt Groff

ต้องใช้ O (N ^ (2 + บันทึก (c))) SPACE หรือไม่
Tayfun จ่าย

@ayfun จ่าย: ใช่ ฉันยังไม่พบวิธีในการลดข้อควรพิจารณาเกี่ยวกับพื้นที่
Matt Groff

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

คำตอบ:


16

หากสิ่งที่คุณกำลังเรียนรู้ได้ผลก็ไม่น่าแปลกใจ

nO(logn)NPnO(logcn)

22n2O(log2n)n2O(log2n)

คุณหมายถึง "ถึงข้อผิดพลาดที่สามารถปรับได้ตามจำนวนที่กำหนด"? อัลกอริทึมถูกสุ่มหรือไม่


x1/(2x)

3
อัลกอริทึมจะไม่ถูกสุ่มได้อย่างไร แต่คุณสามารถเรียกใช้ซ้ำ ๆ เพื่อลดข้อผิดพลาดได้ ฉันคิดว่าคุณอาจต้องให้รายละเอียดเพิ่มเติมอย่างน้อยสองสามครั้งเพื่อที่จะเข้าใจคำถามของคุณ
Ryan Williams

2
pp(p1)/pp

pn

BPPP/poly3/4100n2O(log2n)1/2n
Ryan Williams

3

ฉันไม่ทราบว่าผลลัพธ์ของคุณ - ถ้าถูกต้อง - จะเป็นการล่วงหน้าที่ไม่สำคัญ แต่นี่เป็นปัญหาหนึ่งประเภทที่คุณสามารถทดสอบได้:

f:{0,1}n{0,1}ny{0,1}nx{0,1}nf(x)=y

f

f2n22n/322n/3xy22n/322n/3STST=2nff

f

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