ปัญหาอย่างน้อย NP-hard โดยลดจาก 3-SAT
ก่อนอื่นให้พิจารณาปัญหาในการค้นหาเส้นทางจากStart to the Exitของกราฟที่กำกับต่อไปนี้โดยมีข้อ จำกัด ที่ไม่มีเส้นทางใดสามารถเยี่ยมชมโหนดทั้งสาม (ตาราง) ทั้งสองของประโยค:
( X1 ∨ X2 ∨ X3 ) ∧ ( X1 ∨ ¬ X2 ∨ X4 )
เราแปลงกราฟเหล่านี้เป็นเครือข่ายสวิตช์ สำหรับสิ่งนี้เราใช้อุปกรณ์สามอย่าง:
- โหนดวงกลมและขอบสองทิศทางทุกอันจะกลายเป็นสายไฟซึ่งก่อให้เกิดการเชื่อมต่อระหว่างสวิตช์
- ทุกขอบกำกับกลายเป็นแกดเจ็ตทางเดียวซึ่งประกอบด้วยสวิตช์เดียว (ดูด้านล่าง)
- ทุกโหนดตารางหมายถึงหนึ่งในสามของสวิทช์ที่เป็นส่วนหนึ่งของข้อแกดเจ็ต (ดูด้านล่าง)
ในภาพประกอบต่อไปนี้สวิตช์จะถูกวาดเป็นลูกศรที่เข้ามาสองลูกซึ่งหนึ่งในนั้นจะถูกประ (ปิดใช้งาน) ทิศทางเป้าหมายจะถูกวาดด้วยวงกลมสีดำ (เช่นในที่สุดลูกศรทึบจะต้องอยู่ด้านข้างของวงกลม)
หมายเหตุ: เราจะใช้ตัวหนาเพื่อแยกความแตกต่างของออกจากกราฟออกจากแกดเจ็ต
ABBAX1X2X3X1'X2'X3'
โปรดจำไว้ว่าสำหรับกราฟต้นฉบับการค้นหาเส้นทางที่นำไปสู่Exitและไม่ได้เยี่ยมชมโหนดทั้งสามตารางของประโยคใด ๆ ก็คือ NP-complete ตอนนี้ให้พิจารณาปัญหาในการเข้าถึงExitของกราฟที่ถูกแปลงโดยไม่ต้องกังวลเกี่ยวกับตำแหน่งเป้าหมายของสวิตช์
สังเกตว่าเส้นทางใด ๆ ที่เป็นทางออกสำหรับปัญหากราฟต้นฉบับก็เป็นวิธีแก้ปัญหาสำหรับกราฟที่ถูกแปลงด้วยเช่นกัน ดังนั้นสมมติว่าเส้นทางสำหรับกราฟที่แปลงแล้วไม่ใช่วิธีแก้ปัญหาสำหรับกราฟดั้งเดิม เหตุการณ์นี้อาจเกิดขึ้นในสองกรณี:
- BA
- เส้นทางลัดเลาะทั้งสามเส้นทางบางข้อแกดเจ็ต
ในกรณีแรกแกดเจ็ตทางเดียวจะต้องผ่านการสำรวจในทิศทางที่ตั้งใจไว้ก่อนซึ่งในกรณีนี้เส้นทางนั้นอาจหลีกเลี่ยงการข้ามผ่านในครั้งแรก
ดังนั้นให้พิจารณากรณีที่สองที่เส้นทางลัดสวิตช์ทั้งสามของแกดเจ็ตข้อบางส่วน จากนั้นแกดเจ็ตนั้นจะมีสวิตช์ทั้งสามตัวพลิก (ดูด้านล่าง) นี่คือที่ที่เราใช้ประโยชน์จากตำแหน่งเป้าหมาย โปรดสังเกตว่าไม่สามารถเข้าถึงแกนหลักสีเทาของGadget Clauseได้อีกต่อไปซึ่งหมายความว่าสวิตช์ไม่สามารถถูกนำไปยังตำแหน่งเป้าหมายได้อีกต่อไป ในกรณีนี้เราบอกว่าแกดเจ็ตข้อนี้ไม่สามารถกู้คืนได้
มันยังคงแสดงให้เห็นว่าสำหรับวิธีการแก้ปัญหาของกราฟต้นฉบับใด ๆ สวิทช์ของกราฟแปลงสามารถวางในตำแหน่งเป้าหมายของพวกเขา สำหรับเรื่องนี้เราจะใช้ประโยชน์จากความจริงที่ว่าออกจากสายสามารถเข้าถึงได้เมื่อมีวิธีการแก้ปัญหาหรือบางแกดเจ็ตจะกลายเป็นข้อที่ไม่สามารถกู้
ไปยังสถานที่สวิทช์ในตำแหน่งเป้าหมายของพวกเขาตอนนี้เราสามารถเพิ่มเพิ่มเติมวิธีการหนึ่งที่แกดเจ็ตจากออกจากสายทางเข้าของที่มีอยู่ในทุกวิธีการหนึ่งที่แกดเจ็ตเช่นเดียวกับสามสายทางออกของทุกข้อแกดเจ็ต จากนั้นเมื่อถึงโทเค็นออกจากทั้งหมดเพิ่มเติมวิธีการหนึ่งที่แกดเจ็ตที่สามารถเดินทางข้าม (และจึงวางในตำแหน่งเป้าหมายของพวกเขา) และยังใส่สวิทช์ที่เหลืออยู่ในตำแหน่งเป้าหมายของพวกเขา (เว้นแต่จะมีข้อที่ไม่สามารถกู้) ในที่สุดโทเค็นสามารถกลับไปที่ทางออกและไขปริศนาได้รับการแก้ไข
เราควรสังเกตว่าข้อแกดเจ็ตเท่านั้นที่สามารถกู้คืนเมื่อเข้ามาจากทางออก untraversed; และเนื่องจากแกดเจ็ตทางเดียวที่วางอยู่ระหว่างแกดเจ็ตข้อและตัวแปรถัดไปจึงไม่สามารถเกิดขึ้นได้จนกว่าจะถึงสายออก
ดังนั้นปัญหาเครือข่ายสวิตช์จึงเป็นปัญหา
ยังไม่ชัดเจนหากปัญหาอยู่ใน NP หรือ PSPACE-hard การลดความแข็งของ NP ที่สร้างเครือข่ายระนาบระนาบจะมีผลกระทบที่ยอดเยี่ยมสำหรับสายพันธุ์ที่ จำกัด ของ Sokoban นั่นคือเนื่องจากสวิตช์ทั้งหมดเทียบเท่ากับอุปกรณ์ Sokoban ด้านล่าง