ปัญหาการตั้งค่า "งู"


13

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

ปัญหางู

การป้อนข้อมูล : รับภาพถ่ายกราฟ , Lกรวดหน้า1 , . . , พีลิตรจะถูกวางไว้บนโหนดU 1 , . . , ยูลิตรที่เป็นเส้นทางที่ง่าย ก้อนกรวดเป็นตัวแทนของงูและคนแรกที่p 1คือหัวของเขา หัวสามารถเคลื่อนย้ายจากตำแหน่งปัจจุบันไปยังโหนดอิสระที่อยู่ติดกันและร่างกายตามมา บางโหนดมีการทำเครื่องหมายด้วยจุด; เมื่อหัวถึงโหนดที่มีจุดร่างกายจะเพิ่มขึ้นตามG=(V,E)lp1,...,plu1,...,ulp1ก้อนกรวดในต่อไปนี้อีย้ายของหัว จุดบนโหนดนั้นจะถูกลบหลังจากการเคลื่อนที่ของงูee

ปัญหา : เราถามว่างูสามารถเคลื่อนย้ายไปตามกราฟและไปถึงการกำหนดค่าเป้าหมาย ซึ่งการกำหนดค่าเป้าหมายเป็นคำอธิบายแบบเต็มของตำแหน่งงูนั่นคือตำแหน่งของก้อนกรวดT

มันง่ายที่จะพิสูจน์ว่าปัญหางูเป็นปัญหา NP-hard ในกราฟระนาบของ max degree 3 แม้ว่าจะไม่มีการใช้จุดและบนกราฟกริด SOLID ถ้าเราสามารถใช้จำนวนจุดโดยพลการ สิ่งต่างๆมีความซับซ้อนบนกราฟกริดแบบทึบโดยไม่มีจุด (เกี่ยวข้องกับปัญหาเปิดอื่น)

ฉันอยากจะรู้ว่าปัญหาได้รับการศึกษาภายใต้ชื่ออื่น
และโดยเฉพาะถ้ามีหลักฐานว่าเป็น NP ...

แก้ไข:ปัญหากลายเป็น PSPACE ที่สมบูรณ์แม้บนกราฟระนาบและผลลัพธ์ดูเหมือนน่าสนใจมากดังนั้นจึงยังคงต้องดูว่าเป็นปัญหาใหม่หรือไม่และหากมีผลลัพธ์เป็นที่รู้จัก

ป้อนคำอธิบายรูปภาพที่นี่
ตัวอย่างง่ายๆ (ก้อนกรวดแสดงเป็นสีเขียวหัวของงูคือ P1)


1
NPNPeNP

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

@Saeed: การกำหนดค่าเป้าหมายเป็นเพียงตำแหน่งสุดท้ายของก้อนกรวด (เช่นงู) ฉันจะเพิ่มตัวเลขเพื่อชี้แจงปัญหา
Marzio De Biasi

คำถามของคุณชัดเจนเพียงพอ แต่ฉันได้คำศัพท์ที่ผสมในความคิดเห็นของฉัน คุณควรอ่าน "จุด" ทุกที่แทนที่จะเป็น "ก้อนกรวด"
Tom van der Zanden

@ TomvanderZanden: ตกลงขอบคุณฉันเห็นด้วยกับคุณ (ดูความเห็นของฉันที่จะตอบ Zimmux) ฉันเขียน "... โดยมีหรือไม่มีจุด ... " เพื่อบอกว่าไม่เกี่ยวข้อง แต่มันไม่ชัดเจนพอ ดังนั้นฉันจึงแก้ไขคำถามและทำให้ชัดเจนยิ่งขึ้น
Marzio De Biasi

คำตอบ:


8

การย้ายงูจากตำแหน่งหนึ่งไปอีกตำแหน่งหนึ่งนั้นเป็น PSPACE ที่สมบูรณ์ งูเป็นสิ่งเล็กน้อยใน PSPACE เราให้การลดความแข็ง PSPACE จากข้อ จำกัด Nondeterministic ของ Hearn

ตรรกะข้อ จำกัด Nondeterministic

12223132อุปกรณ์ NCL

งู

ในการก่อสร้างของเราหัวของงูจะไล่ตามหางในระยะทางที่สั้นและจะถูกบังคับให้ทำซ้ำรอบเดียวกันโดยมีการดัดแปลงเล็กน้อย เราฝังกราฟข้อ จำกัด แต่ละอันดังรูป (ขอบที่แสดงด้วยสีแดง) ซึ่งเราระบุตำแหน่งของงูด้วยเส้นหนา ขอบมีสองด้าน (จุดยอด) และงูใช้เส้นทางกลางที่จุดยอดซึ่งเป็นขอบกำกับ กลับขอบ

ในการย้อนกลับขอบงูแรกล้างเส้นทางกลางและจากนั้นใช้เส้นทางกลางเมื่อหัวของมันมาถึงจุดสุดยอดตรงข้าม

2

งูและ งูหรือ

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

หากต้องการแสดงให้เห็นว่าเส้นทางสีดำสามารถสร้างได้ในลักษณะระนาบเสมอพิจารณาทรีย่อยที่ทอด (ขอบหนาในรูปด้านล่าง) ของกราฟข้อ จำกัด จากนั้นเราสามารถทำให้ขอบสีดำติดตามต้นไม้นี้ตามภาพประกอบด้านล่างทำให้เกิดกราฟระนาบ

ขยายขอบเขตย่อย ระนาบระนาบ

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


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