Best Upper Bounds จาก SAT


43

ในกระทู้อื่นโจ Fitzsimons ถามเกี่ยวกับ "ขอบเขตที่ต่ำที่สุดในปัจจุบันที่ดีที่สุดใน 3SAT"

ฉันต้องการจะใช้วิธีอื่น: ขอบเขตบนที่ดีที่สุดในปัจจุบันใน 3SAT คืออะไร กล่าวอีกนัยหนึ่งความซับซ้อนของเวลาสำหรับตัวแก้ SAT ที่มีประสิทธิภาพมากที่สุดคืออะไร?

โดยเฉพาะอย่างยิ่งมันเป็นไปได้หรือไม่ที่จะหาอัลกอริธึมแบบเอ็กซ์โปเนนเชียล


2
ฉันไม่รู้เกี่ยวกับผลลัพธ์การวิเคราะห์ แต่คุณสามารถหาผลลัพธ์การทดลองได้ที่นี่baldur.iti.uka.de/sat-race-2010/results.html (ดูลิงก์ "HTML")
Radu GRIGore

1
ชื่อคำถามนี้เป็นบิตทำให้เข้าใจผิดเพราะการดำรงอยู่ของคำถามนี้: cstheory.stackexchange.com/questions/1295/sat-solver-download ฉันคิดว่าคุณอาจใช้ถ้อยคำใหม่เป็น 'ขอบเขตบนที่ดีที่สุดใน SAT'?
Suresh Venkat

@Suresh: คำถามที่คุณอ้างถึงเกี่ยวข้องกับ "#SAT" ในขณะที่คำถามนี้สอดคล้องกับ SAT นอกจากนี้คำถามนั้นถูกถามประมาณหนึ่งสัปดาห์หลังจากคำถามนี้ ยังไงก็ตามคุณยังแนะนำให้เปลี่ยนชื่อเรื่องนี้หรือไม่?
MS Dousti

ใช่เพราะ "SAT Solver" เป็นวัตถุที่รู้จักกันดีเฉพาะ - codebase จริงสำหรับการแก้ SAT Google จะสับสนและนำผู้คนที่กำลังมองหารหัสมาที่นี่ :)
Suresh Venkat

4
เกี่ยวกับแรงจูงใจของคำถามนี้ฉันคิดว่าหลายคนเคยลองใช้ตัวแก้ SAT ใน 17x17 ครั้ง ดูเหมือนว่าจะเป็นแนวหน้าของสิ่งที่สามารถจัดการกับตัวแก้ SAT ได้ คุณสามารถลองใช้ตัวแก้ปัญหาแบบขนานได้ แต่ฉันรู้สึกประทับใจกับข้อความของ Bill Gasarch ที่คุณต้องใช้ความพยายามอย่างมาก คุณยังสามารถใช้ตัวแก้ปัญหา SMT กับทฤษฎีที่เหมาะสมหรือใช้ตัวแก้ข้อ จำกัด ที่ใช้ข้อ จำกัด ระดับโลกที่มีตัวขยายประสิทธิภาพ ในแต่ละกรณีความคิดใหม่จะเป็นการแสดงออกถึงคุณสมบัติที่สำคัญซึ่งยากต่อการใช้คำสั่ง
András Salamon

คำตอบ:


38

มีตัวแก้ SAT ที่ "ดีที่สุด" สองแบบหนึ่งแบบสำหรับทฤษฎี

ทฤษฎี

สุ่มสำหรับ 3SATO(1.32113n)

สุ่มสำหรับ 3SATO(1.321n)

deterministicสำหรับ 3SATO(1.439n)

การปฏิบัติ

ตรวจสอบการประชุม SATสำหรับผลการแข่งขันในแต่ละปี


ฉันพบลิงค์ไปยังIwama et al กระดาษ ดังนั้นเป็นผลลัพธ์ล่าสุดและดีที่สุดสำหรับการแก้ SAT จนถึงปัจจุบันหรือไม่? O(1.32113n)
MS Dousti

@ Sadeq: ฉันคิดอย่างนั้น แต่สำหรับ 3-SAT ไม่ใช่ SAT
Tian Liu

2
ตอนนี้อัลกอริทึมที่ดีที่สุดคือในเวลาโดย Timon Hertli, Robin A. Moser และ Dominik Scheder O(1.321n)
Tian Liu

10
ยังมีการอัพเดทอื่น: ใน FOCS 2011 Timon Hertli ( arxiv.org/abs/1103.2165 ) ได้พิสูจน์ว่าอัลกอริทึม PPSZ สามารถแก้ปัญหาทุก ๆ 3SAT ได้ในเวลา1.308n
Ryan Williams

21

ผมไม่ทราบใดขั้นตอนวิธีการสุ่มศูนย์ข้อผิดพลาด (หรือกรวย / Eadviceอัลกอริทึม
สำหรับเรื่องที่) สำหรับ SAT ที่มีขอบเขตดีกว่าขั้นตอนวิธีการกำหนดที่รู้จักกัน
โดยไม่คำนึงถึงหรือไม่ว่ามีการสัญญาว่าจะอยู่ที่ความพึงพอใจมากที่สุดคนหนึ่งที่ได้รับมอบหมาย


"ปัญหา 3-SAT สามารถแก้ไขได้อย่างแน่นอนในเวลา "O(1.3303n)


"สำหรับ 3-CNF ที่น่าพอใจอย่างไม่ซ้ำใคร (การตอบสนอง 4-CNF) บนตัวแปรการมอบหมายที่น่าพอใจ สามารถพบได้ในเวลาทำงานที่กำหนดไว้ที่ (resp. ) "On
OO(1.3071n)O(1.4699n)


  1. "มีอัลกอริทึมแบบสุ่มสำหรับ 3-SAT พร้อม
    ข้อผิดพลาดด้านเดียวที่ทำงานในเวลา " O(1.30704n)
  2. "มีอัลกอริทึมแบบสุ่มสำหรับ 4-SAT พร้อม
    ข้อผิดพลาดด้านเดียวที่ทำงานในเวลา "O(1.46899n)


"มีอัลกอริทึมแบบสุ่มสำหรับเฉพาะ -3-SAT เช่นนั้นสำหรับและ จำนวนจริงที่อนุญาตให้รันไทม์ของกระดาษก่อนหน้าสำหรับ 3-SAT แสดง เป็น ,อัลกอริทึมกระดาษปัจจุบันวิ่งในเวลา "ϵ=1/(1024)
S
O(2(S+o(1))n)O(2(Sϵ+o(1))n)



16

อัลกอริทึม Schoening เป็นอัลกอริทึมน่าจะเป็น K-SAT กับการทำงานเวลาที่ k ผลลัพธ์นี้เป็นอัลกอริทึมสำหรับ 3SAT, อัลกอริทึมสำหรับ 4SAT เป็นต้นO(an)a=2(k1)/kO(1.33334n)O(1.5n)

อัลกอริธึมนั้นได้ถูกทำให้เกือบทั้งหมดโดยโมเซอร์และชเดอร์ซึ่งเป็นอัลกอริธึมที่กำหนดขึ้นสำหรับการแก้เวลาทำงาน kSATโดยที่คงที่เหมือนเดิมก่อนและสามารถ จะทำให้เล็กโดยพลการO((a+ϵ)n)aϵ>0

หมายเหตุ: ในคำตอบนี้สัญกรณ์โอใหญ่ซ่อนปัจจัยโพลี (n) ฉันต้องการใช้เครื่องหมายแต่มันไม่ได้แสดงผลอย่างถูกต้องO


1
ทำไมคุณพูดว่า "เกือบสมบูรณ์" ฉันพลาดบางสิ่งบางอย่างในกระดาษหรือไม่
András Salamon

1
มีอัลกอริทึมอัลกอริทึมสำหรับ k-SAT โดยแปดคนดังนั้นโปรดยกโทษให้ฉันไม่ได้พูดถึงพวกเขาทั้งหมด นี่คือลิงค์: linkinghub.elsevier.com/retrieve/pii/S0304397501001748 ดังนั้นสำหรับเรามีและมันไม่ดีเท่าขอบเขตอื่น ๆ สำหรับ 3-SAT ที่นำเสนอที่นี่ แต่สำหรับ k-SAT มันดีที่สุดเท่าที่ฉันรู้ k=3O(1.5n)O((22k+1)n)k=3O(1.5n)
Grigory Yaroslavtsev

4
ฉันพูดว่า "เกือบสมบูรณ์" เพื่อระบุว่ามีปัจจัยเอปไซลอน ฉันเดาว่าใครจะคาดหวังว่าการทำให้กระจัดกระจายแบบสมบูรณ์นั้นทำได้ในเวลาเดียวกัน หรือบางทีอาจจะไม่สมเหตุสมผล
Robin Kothari

1
@Gearory Yaroslavtsev: อัลกอริทึม Moser-Scheder ไม่ได้กำหนดไว้สำหรับ kSAT ที่ฉันพูดถึงเร็วกว่าที่คุณอ้างถึงหรือไม่? ฉันพลาดอะไรไปรึเปล่า?
Robin Kothari

1
ฉันแค่เป็นห่วงเกี่ยวกับนี้ในบันทึกของคุณดังนั้นมันจึงเร็วขึ้นแน่นอน ดูเหมือนว่ากระดาษจะปรากฏบน arXiv เมื่อไม่กี่วันที่ผ่านมา: arxiv.org/PS_cache/arxiv/pdf/1008/1008.4067v1.pdfดังนั้นไม่น่าแปลกใจเลยที่ฉันไม่รู้ ϵ
กริกอ Yaroslavtsev

12

ดังที่ได้กล่าวไปแล้วถ้าคุณสนใจที่จะรับประกันเวลาทำงานตามทฤษฎีคำถามนี้จะซ้ำกัน

แต่ฉันอยากจะชี้ให้เห็นว่าถ้าคุณต้องการที่จะแก้ปัญหาที่เป็นรูปธรรม (เช่นปัญหาการระบายสีที่คุณพูดถึง) ฉันคิดว่ามันไม่สมเหตุสมผลเลยที่จะศึกษาขอบเขตด้านทฤษฎี

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


8
นอกเหนือจากการสรุปของ Jukka มันก็มีค่าเช่นกันว่ามีตัวแก้ SAT หลักสองประเภท: แบบที่อยู่บนพื้นฐานของการสำรวจแบบสำรวจซึ่งทำงานได้ดีสำหรับกรณีแบบสุ่ม SAT และกลุ่มที่ใช้การเรียนรู้แบบประโยครวมกับความละเอียดหน่วยซึ่งมีแนวโน้มที่จะทำงาน ค้นพบโครงสร้าง combinatorial ได้ดี สิ่งเหล่านี้มีพฤติกรรมที่แตกต่างกันมาก กรณีที่เลวร้ายที่สุดสำหรับนักแก้ปัญหา SAT มักเป็นกรณีที่ไม่น่าพอใจ แต่พื้นที่ของ nogoods มีโครงสร้างที่ซับซ้อนซึ่งไม่อนุญาตให้มีการตัดแต่งกิ่งมากนัก น่าเสียดายที่อินสแตนซ์จาก combinatorics มีแนวโน้มที่จะเป็นเช่นนี้
András Salamon

11

ฉันคิดว่าเมื่อใครสักคนมาพร้อมกับขอบเขตบนที่ดีกว่าพวกเขาจะอ้างอิงบทความนี้ มีการอ้างถึงบทความนี้เพียงครั้งเดียวซึ่งก็คือ "อัลกอริธึมที่น่าพอใจและความแข็งเฉลี่ยของสูตรสำหรับสูตรเหนือฐานไบนารีเต็ม" และดูเหมือนว่าพวกเขาจะพูดถึงสูตรบางประเภทเท่านั้น ดังนั้นดูเหมือนว่าจะเป็น Upper Bound ที่ดีที่สุดจนถึงตอนนี้
Tayfun จ่าย

@TayfunPay:กระดาษด้านล่างในคำตอบของฉันอ้างถึงกระดาษนั้น

@RickyDemer Uhuh! มันเป็นขอบเขตที่ดีกว่านี้หรือไม่? สัญกรณ์ไม่ชัดเจนสำหรับฉัน
Tayfun จ่าย

@TayfunPay: ใช่และคุณสามารถตามหาเอกสารสองฉบับดังที่อธิบายไว้ในเอกสารต่อไปนี้ S3Sk ที่ด้านบนของหน้า 11 บทความนั้นบอกว่าอัลกอริทึมของพวกเขาให้ขอบเขตเดียวกับ PPSZ ซึ่งหมายความว่าพวกเขาไม่ได้แสดงอะไรเกินกว่าที่ฉันได้กล่าวถึงในประโยคก่อนหน้าของฉัน (ต่อ ... )

(... ต่อไป) S2SnSS3

8

เป็นไปไม่ได้ที่ 3SAT จะมีอัลกอริธึมย่อยแบบเอ็กซ์โพเนนเชียลยกเว้นว่าสมมติฐานเวลาเอ็กซ์โพเนนเชียลเป็นเท็จ

O(1.324n)

อัลกอริทึมแบบสุ่มพร้อมเวลาทำงานที่คาดหวังสำหรับ 3SATO(1.32216n)


15
นั่นไม่ใช่การพูดซ้ำซาก?
Tsuyoshi Ito

1
2o(n)

ผลงานของ Kazuo Iwama และคณะ (2004) ใหม่กว่าของ Schoening's (1999) ฉันสงสัยว่าผลลัพธ์ที่ได้จะมีมากกว่านี้หรือไม่
MS Dousti

8
เพื่อหลีกเลี่ยงความสับสนความเห็นสุดท้ายของฉันอ้างถึงประโยคแรกของคำตอบ: "เป็นไปไม่ได้ที่ 3SAT จะมีอัลกอริธึมย่อยแบบเอ็กซ์โพเนนเชียลยกเว้นว่าสมมติฐาน EON เป็นจริงเท็จ" ความเข้าใจของฉันคือ สมมติฐานเป็นสมมติฐานที่ระบุว่าไม่มีอัลกอริธึมสำหรับ 3SAT ซึ่งเวลาการทำงานเป็นค่าเอ็กซ์โพแนนเชียล (เช่น 2 ^ {o (n)}) ในจำนวนตัวแปร
Tsuyoshi Ito

10
และเพื่อหลีกเลี่ยงความสับสนเพิ่มเติมฉันจะเสริมว่าเมื่อ Tsuyoshi โพสต์ความคิดเห็นของเขาคำตอบนั้นมีเพียงประโยคเดียวเท่านั้นซึ่งทำให้ความคิดเห็นของเขาเหมาะสมมาก
Robin Kothari

7

นี้โพสต์ที่เกี่ยวข้องกับขอบเขตบนของ SAT นี้เป็นหนึ่งในข้อเสนอที่มีขอบเขตที่ต่ำกว่าที่ดีที่สุด ลิงค์นี้ให้รายละเอียดของการแข่งขันประจำปีเปรียบเทียบการใช้งานตัวแก้ SAT ซึ่งสามารถดาวน์โหลดได้ทั้งหมด เพื่อความง่ายคุณสามารถเริ่มต้นด้วยSAT4Jซึ่งเป็นไลบรารีบน Java สำหรับการแก้ปัญหา SAT


ปรากฎว่าคำถามนี้ถูกถามไปแล้วก่อนหน้านี้; ฉันไม่เห็นมันเมื่อฉันค้นหาเว็บไซต์ การตอบสนองของ Tian Liu ในคำถามขอบเขตคือสิ่งที่ฉันกำลังมองหา ขอบคุณสำหรับลิงค์เดฟ!
Daniel Apon

1
นี่เป็นหลักฐานว่าฉันใช้เวลามากเกินไปที่นี่ ;-)
Dave Clarke

เราดีใจที่คุณทำ :)
Suresh Venkat

2
ฉันไม่แน่ใจว่าฉันอยากจะแนะนำ sat4J ไม่เพียง แต่จะช้ากว่าอย่างมีนัยสำคัญ แต่ยังมีความซับซ้อนมากขึ้น มันเป็นความจริง แต่มันสามารถปรับแต่งได้อย่างดีเนื่องจากโครงสร้างเชิงวัตถุ MiniSat นั้นถูกเขียนขึ้นมาเป็นอย่างดีและ 2.2 นั้นทันสมัย
Mikolas

3

อัลกอริธึมที่ดีที่สุดที่กำหนดไว้สำหรับ 3-SAT ตอนนี้มีขอบเขตสูงสุด 1.32793 ^ n ดูhttps://arxiv.org/abs/1804.07901โดย Sixue Liu โดยทั่วไปขอบเขตบนของ k-SAT ทั้งหมดได้รับการปรับปรุงในบทความนี้

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