หนังสือสูตรการเข้ารหัส SAT หรือไม่


17

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

การเข้ารหัสเช่นนี้ดูเหมือนว่าฉันจะเป็นเรื่องธรรมดามากตัวอย่างเช่น: ยืนยันว่าชุดของโหนดที่เชื่อมโยงกันเป็นต้นไม้หรือเป็น DAG หรือรายการเรียงลำดับ ...

มีพื้นที่เก็บข้อมูล / ตำราสูตรของการเข้ารหัสร่วมสำหรับปัญหาที่พบบ่อยกับโซลูชันที่ปรับให้เหมาะสมหรือไม่


1. คำถามนี้มีประโยชน์มาก แต่อาจเกิดขึ้นข้ามถนนด้วยเช่นกัน ฉันคิดว่ามันอาจเป็นคำถามที่ดีกว่าถ้าคุณมุ่งเน้นไปที่โดเมนเดียว (ใช่ซึ่งอาจเกี่ยวข้องกับคำถามหลายข้อหนึ่งข้อต่อโดเมน - แต่ต้องแน่ใจว่าได้ทำการวิจัยก่อนที่จะถามและแสดงสิ่งที่คุณทำ)
DW

2. คุณทำการวิจัยอะไรบ้าง คุณดูที่ส่วนหน้าของ SAT เช่น STP, Alloy และ Minion หรือไม่ คุณดูที่cs.stackexchange.com/q/12087/755 , cs.stackexchange.com/q/13188/755 , cs.stackexchange.com/a/6522/755 , cs.stackexchange.com/a/12153/ 755 ? ที่คำถามที่ติดแท็กsat-solversหรือความพึงพอใจ ?
DW

ใช่คำถามอาจจะค่อนข้างกว้าง @DW ขอบคุณสำหรับลิงค์บางอันเกี่ยวข้องโดยตรง ฉันควรจะพูดถึงว่าฉันไม่สนใจในการแก้ปัญหาเฉพาะหรือวิธีการทั่วไปเพื่อการเข้ารหัสที่มีประสิทธิภาพมากขึ้น การแสดงออก "แนวทางปฏิบัติที่ดีที่สุด" ที่ฉันใช้อาจทำให้เข้าใจผิดฉันจะแก้ไข ฉันสนใจในตำราอาหาร =)
Bordaigorl

เกี่ยวกับโดเมนฉันจะบอกว่าทฤษฎีกราฟ (ไฮเปอร์) แต่นี่อาจจะยังคงกว้างมาก ...
Bordaigorl

ดูคำถามที่เกี่ยวข้องเพิ่มเติมcs.stackexchange.com/q/12087
András Salamon

คำตอบ:


9

ฉันอ่านรายงานการสำรวจเมื่อไม่กี่ปีที่ผ่านมาที่ดูเหมือนว่า " เทคนิคการเข้ารหัส SAT ที่ประสบความสำเร็จ " โดย Magnus Björk

บทคัดย่อ:

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

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

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


4

มันเป็นความคิดที่ดีเสมอก่อนที่จะดูคู่มือความพึงพอใจ [1] (ฉันคิดว่ามันไม่สามารถใช้ได้อย่างอิสระขอโทษ) ที่นี่บทที่ 2 มีชื่อว่า "การเข้ารหัส CNF" อย่างน้อยที่สุดหนังสือเล่มนี้ให้การอ้างอิงวรรณกรรมเกี่ยวกับสถานะของศิลปะในช่วงเวลาของการเขียนและคุณสามารถขยายการค้นหาผ่านพวกเขา

นอกจากนี้ที่นี่และที่นี่เป็นสองสไลด์ล่าสุดในการประมวลผลล่วงหน้า SAT สไลด์ให้ภาพรวมโดยย่อเกี่ยวกับเทคนิคก่อนการประมวลผลและการอ้างอิงเพิ่มเติม แนวคิดคือแทนที่จะพยายาม "สร้างปัญหาด้วยตนเอง" ด้วยวิธีที่มีประสิทธิภาพคุณเพียงแค่สร้างโมเดลในวิธีที่ง่ายที่สุดกดไปแล้วซอฟต์แวร์จะให้การเข้ารหัสที่มีประสิทธิภาพ


[1] Biere, Armin, Marijn Heule และ Hans van Maaren บรรณาธิการ คู่มือความพึงพอใจ ฉบับ 185. IOS Press, 2009


3

ไม่ว่าคำตอบโดยตรง แต่มุมมากขึ้นเกี่ยวข้องอย่างใกล้ชิดอีกบางนี้ถูกปกคลุมด้วยพื้นที่ที่ค่อนข้างใหม่ของการวิจัยที่รู้จักในฐานะ SMT, ทฤษฎี Satisfiability Modulo แนวคิดพื้นฐานคือการรวมการเข้ารหัสปัญหา (เช่นการพูดเลขคณิตเลขจำนวนเต็มกราฟและอื่น ๆ ) ลงในตัวแก้ SAT แต่ยังใช้ / ยกระดับความรู้พิเศษที่มาจากการเชื่อมต่อนี้เพื่อสร้างอัลกอริทึมการแก้ปัญหาขั้นสูง นี่คือการสำรวจ ตามที่ระบุไว้พวกเขาจะมีประสิทธิภาพมากขึ้นกว่าการรวมกลไกการเข้ารหัสแบบเฉพาะกิจกับตัวแก้ SAT มาตรฐาน

  • ทฤษฎีโมดูโลที่น่าพอใจ: Appetizer / Leonardo de Moura และ Nikolaj Bjørner

    ความพึงพอใจโมดูโลทฤษฎี (SMT) เป็นเรื่องเกี่ยวกับการตรวจสอบความพึงพอใจของสูตรตรรกะมากกว่าหนึ่งทฤษฎี ปัญหานี้เกิดจากการผสมผสานของพื้นฐานบางส่วนที่สำคัญที่สุดในวิทยาการคอมพิวเตอร์ มันรวมปัญหาของความน่าเชื่อถือบูลีนกับโดเมนเช่นที่ศึกษาในการเพิ่มประสิทธิภาพนูนและคำจัดการระบบสัญลักษณ์ นอกจากนี้ยังดึงปัญหาที่อุดมสมบูรณ์ที่สุดในศตวรรษที่ผ่านมาของสัญลักษณ์เชิงตรรกะ: ปัญหาการตัดสินใจความสมบูรณ์และความไม่สมบูรณ์ของทฤษฎีเชิงตรรกะและทฤษฎีความซับซ้อนในที่สุด ปัญหาของการรวมอัลกอริธึมแบบพิเศษแบบแยกส่วนสำหรับแต่ละโดเมนนั้นลึกและน่าสนใจเหมือนกับการค้นหาอัลกอริทึมใหม่ที่ทำงานได้ดีในบริบทของการรวมกัน นอกจากนี้ SMT ยังมีบทบาทที่มีประโยชน์มากในด้านวิศวกรรมซอฟต์แวร์ ซอฟต์แวร์ที่ทันสมัย การวิเคราะห์ฮาร์ดแวร์และเครื่องมือที่ใช้แบบจำลองมีความซับซ้อนมากขึ้นและระบบซอฟต์แวร์ที่มีหลายแง่มุม อย่างไรก็ตามที่แกนกลางของพวกเขาเป็นองค์ประกอบที่ใช้ตรรกะเชิงสัญลักษณ์เพื่ออธิบายสถานะและการเปลี่ยนแปลงระหว่างพวกเขา เครื่องมือแก้ปัญหา SMT ที่ได้รับการปรับแต่งอย่างดีซึ่งคำนึงถึงการพัฒนาที่ล้ำสมัยมักจะปรับขนาดคำสั่งให้มีขนาดเกินกว่าตัวแก้ปัญหาโฆษณาแบบกำหนดเอง


นี่เป็นจุดที่ดีมาก แต่ถึงแม้คุณจะใช้ตัวแก้ปัญหา SMT ก็มีบางส่วนที่ใช้ SAT ในการค้นหาที่สามารถได้รับประโยชน์จาก "สูตรอาหาร" ที่ประสบความสำเร็จ ...
Bordaigorl

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

ฉันเห็น. ฉันจะอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ขอบคุณ!
Bordaigorl

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