ฉันเจออัลกอริทึมพหุนามที่แก้ 2SAT ฉันพบว่ามันน่าประหลาดใจที่ 2SAT อยู่ใน P ซึ่งอินสแตนซ์ SAT (หรืออื่น ๆ อีกมากมาย) ทั้งหมดเป็น NP-Complete อะไรทำให้ปัญหานี้แตกต่างกัน สิ่งที่ทำให้มันจึงง่าย (NL-ที่สมบูรณ์แบบ - ง่ายยิ่งขึ้นกว่า P)?
ฉันเจออัลกอริทึมพหุนามที่แก้ 2SAT ฉันพบว่ามันน่าประหลาดใจที่ 2SAT อยู่ใน P ซึ่งอินสแตนซ์ SAT (หรืออื่น ๆ อีกมากมาย) ทั้งหมดเป็น NP-Complete อะไรทำให้ปัญหานี้แตกต่างกัน สิ่งที่ทำให้มันจึงง่าย (NL-ที่สมบูรณ์แบบ - ง่ายยิ่งขึ้นกว่า P)?
คำตอบ:
นี่คือคำอธิบายที่ใช้งานง่ายและไม่โอ้อวดตามคำตอบของ MGwynne
ด้วย -SAT คุณสามารถแสดงนัยของรูปแบบโดยที่และเป็นตัวอักษร แม่นยำมากขึ้นทุก -clauseสามารถเข้าใจได้เป็นคู่ของผลกระทบ A:และl_1 หากคุณตั้งค่าจริงจะต้องเป็นจริงเช่นกัน หากคุณตั้งเท็จต้องเป็นเท็จเช่นกัน ความหมายดังกล่าวตรงไปตรงมา: ไม่มีทางเลือกคุณมีเพียงa ⇒ b a b 2 l 1 ∨ l 2 ¬ l 1 ⇒ l 2 ¬ l 2 ⇒ l 1 a b b a 1 ¬ l l l ¬ l lความเป็นไปได้ไม่มีที่ว่างสำหรับการคูณกรณี คุณสามารถติดตามทุกการเชื่อมโยงที่เป็นไปได้และดูว่าคุณได้รับทั้งจากและจาก : ถ้าคุณทำเพื่อบางสูตร 2-SAT นั้นไม่น่าพอใจ ในกรณีที่จำนวนของโซ่ความเกี่ยวข้องที่เป็นไปได้นั้นถูก จำกัด ขอบเขตแบบพหุนามในขนาดของสูตรอินพุต
ด้วย -SAT คุณสามารถแสดงความหมายของรูปแบบโดยที่ ,และเป็นตัวอักษร ตอนนี้คุณกำลังมีปัญหา: ถ้าคุณตั้งค่าจริงดังนั้นหรือต้องเป็นจริง แต่อันใด คุณต้องเลือก: คุณมี 2 ความเป็นไปได้ นี่คือที่เป็นไปได้ในการคูณตัวพิมพ์ใหญ่และการระเบิดของ combinatorial เกิดขึ้นa ⇒ b ∨ c a b c a b c
กล่าวอีกนัยหนึ่ง -SAT สามารถแสดงความเป็นไปได้มากกว่าหนึ่งรายการในขณะที่ -SAT ไม่มีความสามารถดังกล่าว มันมีความเป็นไปได้มากกว่าหนึ่งอย่างแน่นอน (ความเป็นไปได้ในกรณีที่ -SAT,ความเป็นไปได้ในกรณีของ -SAT) ที่ทำให้เกิดการระเบิดแบบ combinatorial โดยทั่วไปของปัญหาที่ไม่สมบูรณ์2 2 3 k - 1 k
พิจารณาความละเอียดของสูตร 2-SAT ตัวแก้ไขใด ๆ มีขนาดไม่เกิน 2 (โปรดทราบว่าถ้าสำหรับส่วนที่มีความยาวและ resp) จำนวนอนุประโยคขนาด 2 เป็นกำลังสองในจำนวนตัวแปร ดังนั้นอัลกอริธึมการแก้ปัญหาจึงเป็น Pn , m ≤ 2 n m
เมื่อคุณไปถึง 3-SAT คุณจะได้ตัวทำละลายที่ใหญ่ขึ้นและใหญ่ขึ้นดังนั้นมันจึงเป็นรูปลูกแพร์ :)
ลองแปลปัญหาเป็น 2-SAT เนื่องจากคุณไม่สามารถมีส่วนคำสั่งขนาด 3 ได้คุณจึงไม่สามารถ (โดยทั่วไป) เข้ารหัสความหมายที่เกี่ยวข้องกับตัวแปร 3 ตัวหรือมากกว่านั้นตัวอย่างเช่นตัวแปรหนึ่งเป็นผลมาจากการดำเนินการแบบไบนารีกับอีกสองคน นี่เป็นข้อ จำกัด อย่างมาก
ดังที่วอลเตอร์กล่าวว่าประโยคของ 2-SAT มีรูปแบบพิเศษ สิ่งนี้สามารถถูกนำไปใช้เพื่อค้นหาวิธีแก้ปัญหาอย่างรวดเร็ว
มีจริงหลายชั้นเรียนของอินสแตนซ์ SAT ที่สามารถตัดสินใจในเวลาพหุนามและ 2-SAT เป็นเพียงหนึ่งในเหล่านี้เรียนเวไนย เหตุผลสามประการที่สามารถทำให้ระบบย่อยได้ง่ายมีสามประเภท:
(ความสามารถในการรองรับโครงสร้าง) คลาสของอินสแตนซ์ SAT ใด ๆ ที่ตัวแปรโต้ตอบในลักษณะคล้ายต้นไม้สามารถแก้ไขได้ในเวลาพหุนาม ระดับของพหุนามขึ้นอยู่กับความกว้างสูงสุดของอินสแตนซ์ในชั้นเรียนซึ่งความกว้างวัดว่าอินสแตนซ์นั้นห่างจากการเป็นต้นไม้มากแค่ไหน อย่างแม่นยำยิ่งขึ้นมาร์กซ์แสดงให้เห็นว่าหากอินสแตนซ์มีขอบเขตความกว้างของ submodular ดังนั้นคลาสสามารถตัดสินใจได้ในเวลาพหุนามโดยใช้วิธีหารและพิชิต
(ความสามารถในการเข้าใจภาษา) คลาสของอินสแตนซ์ SAT ใด ๆ ที่รูปแบบของตัวแปร True-false คือ "ดี" สามารถแก้ไขได้ในเวลาพหุนาม แม่นยำยิ่งขึ้นรูปแบบของตัวอักษรกำหนดภาษาของความสัมพันธ์และ Schaefer จำแนกหกภาษาที่นำไปสู่การสามารถจัดการได้แต่ละแบบมีอัลกอริทึมของตัวเอง 2-SAT จัดเป็นหนึ่งในหกคลาส Schaefer
(Hybridabilityability) นอกจากนี้ยังมีบางคลาสของอินสแตนซ์ที่ไม่ตกอยู่ในอีกสองหมวดหมู่ แต่สามารถแก้ไขได้ในเวลาพหุนามด้วยเหตุผลอื่น
หากคุณเข้าใจอัลกอริทึมสำหรับ 2SAT คุณรู้อยู่แล้วว่าทำไมมันถึงอยู่ใน P - นี่คือสิ่งที่อัลกอริทึมแสดงให้เห็นอย่างแม่นยำ ฉันคิดว่าการ์ตูนเรื่องนี้แสดงให้เห็นถึงจุดของฉัน อย่างที่คุณรู้อยู่แล้วว่าทำไม 2SAT ถึงอยู่ใน P สิ่งที่คุณอาจอยากรู้ก็คือทำไม 2SAT ถึงไม่แข็ง NP
เพื่อให้เข้าใจว่าเหตุใด 2SAT จึงไม่ใช่ปัญหา NP คุณต้องพิจารณาว่าการลดปัญหาอื่น ๆ ใน NP นั้นง่ายเพียงใด เพื่อให้เข้าใจง่ายยิ่งขึ้นให้ดูว่า SAT สามารถลดลงเป็น 3SAT ได้อย่างไรและลองใช้เทคนิคเดียวกันเพื่อลด SAT เป็น 2SAT 2SAT นั้นไม่ได้มีความหมายเหมือนกับ 3SAT และรุ่น SAT อื่น ๆ