แยกแยะขั้นตอนการตัดสินใจกับ Solver SMT เทียบกับ Theorem Prover เทียบกับ Converaint Solver


23

คำศัพท์เหล่านั้นทำให้ฉันสับสน ตามที่ฉันเข้าใจ

  • เครื่องมือแก้ปัญหา SAT: ตัดสินความพึงพอใจของตรรกะเชิงประพจน์ (ใช้ DPLL หรือ Local Search)
  • ขั้นตอนการตัดสินใจเป็นกระบวนการในการตัดสินใจความพึงพอใจของทฤษฎีอันดับหนึ่งที่สามารถตัดสินใจได้
  • SMT solver เป็นขั้นตอนการตัดสินใจ + ตัวแก้ SAT
  • ทฤษฎีบทพิสูจน์ว่าบางสิ่งเช่น Dynamic Logic เช่นเครื่องมือ KeY
  • ข้อ จำกัด การแก้ปัญหา: ฉันไม่รู้

แต่ฉันเห็นผู้คนเรียก Z3 ว่าเป็นผู้พิสูจน์ทฤษฎีบท ดังนั้นฉันไม่รู้วิธีที่จะทำให้ชัดเจนคำเหล่านั้น และคำทั่วไปมากที่สุดสำหรับพวกเขาทั้งหมดคืออะไร? ขอขอบคุณ.

คำตอบ:


18

SMT solver เป็นขั้นตอนการตัดสินใจ + ตัวแก้ SAT

SAT solver เป็นตัวแก้ปัญหาการตัดสินใจ: ปัญหา SAT เป็นปัญหาการตัดสินใจ นอกจากนี้ปัญหาการตัดสินใจนี้คือ "self-reducible":

ปัญหา SAT นั้นสามารถลดตัวเองได้นั่นคือแต่ละอัลกอริทึมที่ตอบถูกต้องหากตัวอย่างของ SAT สามารถแก้ไขได้สามารถใช้เพื่อค้นหาการมอบหมายที่น่าพอใจ

- ( วิกิพีเดีย )

ซึ่งหมายความว่านักแก้ปัญหา SAT สามารถให้การมอบหมายที่น่าพอใจนอกเหนือจากการตัดสินใจปัญหา

TL; DR SMT Solver แก้ปัญหาทั่วไปของปัญหา SAT ขึ้นอยู่กับประเภท / ข้อ จำกัด ที่อนุญาตในทฤษฎี นอกจากนี้พวกเขายังอนุญาตให้เข้ารหัสความสัมพันธ์ประเภทระดับสูงกว่าการเข้ารหัส SAT อนุญาต

(A=B)(B=C)(A=C)

  1. ดูตัวแก้ปัญหา Beaver SMTที่สามารถแก้ปัญหา SAT ที่เทียบเท่าซึ่งจะต้องแก้ไข

ในขณะที่ตัวแก้ QF_BV SMT มีข้อได้เปรียบเหนือตัวแก้ SAT แต่ฉันไม่คิดว่านี่เป็นข้อได้เปรียบที่ซับซ้อน: พวกเขาทั้งคู่เทียบเท่าและใช้เวลาชี้แจงเพื่อแก้ปัญหากรณีเลวร้ายที่สุดของพวกเขา แต่ในทางปฏิบัติตัวแก้ปัญหา QF_BV SMT อาจเร็วกว่ามากเนื่องจากความรู้พิเศษนี้ ดูคำตอบของฉันสำหรับLimits of SMT solverสำหรับตัวอย่างของสิ่งที่ถือว่า "ยาก" ที่ปัจจุบัน (QF_BV) SMT SMT solver และ SAT solver ทั้งคู่จะสำลัก

นอกจากนี้ยังมีตัวแก้ปัญหา SMT ที่พยายามแก้ปัญหาที่ยากกว่า Boolean Satisfiability (ตัวอย่างเช่นการอนุญาตประเภทและข้อ จำกัด ใน reals หรือการอนุญาตให้ใช้ปริมาณ) เห็นได้ชัดว่าทฤษฎีเหล่านี้มีเหตุผลอย่างน้อยช้าที่สุดเท่าที่นักแก้ปัญหา SAT ตัวแก้ปัญหา SMT เหล่านี้เป็นการแก้ปัญหาทั่วไปของปัญหา SAT แทนที่จะใช้ตัวแปรไบนารี่ "ทฤษฎี" แต่ละตัวช่วยให้ความสัมพันธ์ / ข้อ จำกัด เหนือโดเมนที่แตกต่างกันเช่น reals หรือข้อ จำกัด เชิงปริมาณ (สำหรับทั้งหมด)

บทพิสูจน์ทฤษฎีบท

P=ยังไม่มีข้อความP

แต่การเปลี่ยนแปลงดังกล่าวอาจซีดจางลงอย่างมีนัยสำคัญเมื่อเทียบกับการปฏิวัติวิธีที่มีประสิทธิภาพสำหรับการแก้ปัญหา NP-complete จะเกิดขึ้นในวิชาคณิตศาสตร์เอง อ้างอิงจากสสตีเฟ่นคุก[19]

... มันจะแปลงคณิตศาสตร์โดยการอนุญาตให้คอมพิวเตอร์ค้นหาหลักฐานทางการของทฤษฎีบทใด ๆ ที่มีการพิสูจน์ความยาวที่สมเหตุสมผลเนื่องจากการพิสูจน์อย่างเป็นทางการสามารถจดจำได้ง่ายในเวลาพหุนาม ตัวอย่างปัญหาอาจรวมถึงปัญหารางวัล CMI ทั้งหมด

- ( วิกิพีเดีย )

[19]: ทำอาหาร, สตีเฟ่น (เมษายน 2000) ปัญหา P กับปัญหา NP นวลคณิตศาสตร์สถาบัน (PDF)

P=ยังไม่มีข้อความP

แต่สำหรับตอนนี้ทฤษฎีบทอัตโนมัติส่วนใหญ่เป็นผู้พิสูจน์ด้วยการใช้ฮิวริสติกหรืออัลกอริธึมเชิงอธิบาย (แต่ก็ยังมีประโยชน์)

เครื่องมือแก้ข้อ จำกัด

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

แต่ฉันเห็นผู้คนเรียก Z3 ว่าเป็นผู้พิสูจน์ทฤษฎีบท ดังนั้นฉันไม่รู้วิธีที่จะทำให้ชัดเจนคำเหล่านั้น

AFAIK, Z3 เป็นชุดเครื่องมือจำนวนมากรวมถึงตัวแก้ปัญหา SMT, ทฤษฎีการพิสูจน์ / การตรวจสอบแบบจำลองภาษาและอีกมากมาย

และคำทั่วไปมากที่สุดสำหรับพวกเขาทั้งหมดคืออะไร?

ฉันคิดว่าลักษณะทั่วไปของปัญหาความพึงพอใจคือทฤษฎีโมดูโลที่น่าพอใจและดังนั้น "SMT solver" จึงเป็นสิ่งทั่วไปที่สุดของทั้งหมดนี้ อย่างไรก็ตามการใช้งานตัวแก้ SMT ที่เกิดขึ้นจริงทั้งหมดไม่ได้แก้ทฤษฎีทั้งหมดดังนั้นจึงไม่ได้หมายความว่าตัวแก้ปัญหา SMT ทั้งหมดจะมีความเท่าเทียมกัน


1
ขอบคุณสำหรับคำตอบ. แต่ฉันไม่คิดว่า SMT solver เป็นคำทั่วไปมากที่สุด ในขณะที่ผู้คนมักเปรียบเทียบตัวแก้ปัญหา SMT กับตัวแก้ไขข้อ จำกัด ดูตัวอย่างเช่นstackoverflow.com/questions/10584990/…
qsp

@ qsp ฉันอาจจะผิด แต่ฉันไม่แน่ใจว่าการเปรียบเทียบนั้นหมายความว่าอย่างไร อย่างไรก็ตามฉันก็ไม่มีความรู้เพียงพอที่จะรู้ว่า CSP มีประสิทธิภาพ / ทั่วไปมากกว่า SMT ทั้งหมดหรือไม่ หากคุณพบการอ้างอิงสำหรับสิ่งนั้นรู้สึกอิสระที่จะแก้ไขคำตอบ
Realz Slaw
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.