2
การเข้ารหัสข้อ จำกัด 1-out-of-n สำหรับนักแก้ปัญหา SAT
ฉันใช้ตัวแก้ SAT เพื่อเข้ารหัสปัญหาและเป็นส่วนหนึ่งของอินสแตนซ์ SAT ฉันมีตัวแปรบูลีนซึ่งมีจุดประสงค์ว่าหนึ่งในนั้นควรเป็นจริงและส่วนที่เหลือควรเป็นเท็จ . (บางครั้งฉันเคยเห็นสิ่งนี้อธิบายว่าเป็นการเข้ารหัส "one-hot")x1,x2,…,xnx1,x2,…,xnx_1,x_2,\dots,x_n ฉันต้องการเข้ารหัสข้อ จำกัด "ตรงหนึ่งจากต้องเป็นจริง" ใน SAT วิธีที่ดีที่สุดในการเข้ารหัสข้อ จำกัด นี้เพื่อให้นักแก้ปัญหา SAT ทำงานได้อย่างมีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้x1,…,xnx1,…,xnx_1,\dots,x_n ฉันเห็นการเข้ารหัสข้อ จำกัด นี้ได้หลายวิธี: ข้อ จำกัด แบบคู่ ฉันสามารถเพิ่มข้อ จำกัด แบบ pairwiseสำหรับทั้งหมดเพื่อให้แน่ใจว่าอย่างน้อยที่สุดหนึ่งนั้นเป็นจริงแล้วเพิ่มเพื่อให้แน่ใจว่าอย่างน้อยก็เป็นจริง .¬xi∨¬xj¬xi∨¬xj\neg x_i \lor \neg x_ji,ji,ji,jx 1 ∨ x 2 ∨ ⋯ ∨ x nxixix_ix1∨x2∨⋯∨xnx1∨x2∨⋯∨xnx_1 \lor x_2 \lor \cdots \lor x_n สิ่งนี้เพิ่มส่วนคำสั่งและไม่มีตัวแปรบูลีนพิเศษΘ(n2)Θ(n2)\Theta(n^2) การเข้ารหัสแบบไบนารี …