ความซับซ้อนของปัญหา NP-hard หรือ -complete ที่เปลี่ยนไปอย่างมากเมื่ออินพุตถูกเข้ารหัสแบบ unary หรือไม่?


12

ปัญหาของปัญหา NP-hard หรือ NP-complete อย่างรุนแรง (ดังเช่นที่กำหนดไว้ที่นี่ ) จะเปลี่ยนไปเมื่ออินพุทของมันไม่เหมือนกันแทนที่จะเข้ารหัสแบบไบนารี่หรือไม่?

มันแตกต่างกันอย่างไรหากอินพุตของปัญหา NP-hard ที่รุนแรงถูกเข้ารหัสแบบ unary ฉันหมายถึงถ้าฉันใช้ตัวอย่างปัญหาเครื่องหลังที่ไม่สมบูรณ์ของ NP อย่างอ่อนแอมันเป็น NP-complete เมื่อเข้ารหัสแบบไบนารี แต่สามารถแก้ไขได้ในเวลาพหุนามโดยโปรแกรมแบบไดนามิกเมื่อเข้ารหัสแบบ unary บางทีมันอาจมีความเกี่ยวข้องกับความแข็งของระดับพหุนามเวลาแบบพหุนามที่สูงขึ้น?

แนวคิดเกี่ยวกับการ ... อย่างหนักนั้นมีไว้สำหรับคลาสความซับซ้อนอื่น ๆ เช่นคลาสที่สูงขึ้นของลำดับเวลาพหุนามหรือไม่

ก่อนหน้านี้ฉันเคยถามคำถามนี้ที่ stackoverflow.comแต่มันก็ชี้ให้เห็นว่ามันเหมาะสมกว่าที่นี่


ฉันควรถามคำถามนี้ดีกว่านี้ที่cstheory.stackexchange.comหรือไม่ ฉันไม่รู้ว่ามันมีอยู่จริง ผู้ที่มาที่นี่ไม่ได้ไปในทิศทางที่ฉันหวังไว้
user2145167

ทำไมพวกเขาไม่? พวกเขาถูกต้อง (เท่าที่ฉันสามารถบอกได้) ดังนั้นคำถามของคุณอาจไม่ใช่คำถามที่คุณต้องการถาม นอกจากนี้วิทยาการคอมพิวเตอร์เชิงทฤษฎีสำหรับคำถาม TCS ระดับการวิจัยซึ่งสิ่งนี้ไม่แน่นอน
กราฟิลส์

คำตอบ:


4

ขนาดปัญหาของการเข้ารหัสใน unary คือขนาดและถ้าไบนารี หากเวลาที่ใช้คือนี่คือในกรณีแรกและในกรณีที่สอง อัลกอริทึมที่เป็นพหุนามในกรณีแรกอาจเป็นเลขชี้กำลังสำหรับวินาที การเข้ารหัสของปัญหาสามารถเปลี่ยนความซับซ้อนของอัลกอริทึมอย่างรุนแรงN บันทึกN F ( N ) F ( ขนาด) F ( 2 ขนาด )NNlogNF(N)F(size)F(2size)


3

เลขที่

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


2
ฉันคิดว่าคำถามคือว่าสำหรับปัญหา NP-hard ใด ๆรุ่นที่ไม่รวมนั้นไม่ใช่ NP-hard P 1PP1
Raphael

2

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


1

เมื่อเห็นปัญหาการกำหนดที่ผ่านมาในคำตอบของ JeffE คำตอบคือใช่

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

ในความเป็นจริงทุกปัญหาที่ไม่สมบูรณ์ของ NP ที่อ่อนแอจะอยู่ในหมวดหมู่นี้


คำถามข้างเคียง แต่ฉันไม่เคยเข้าใจ - คุณจะ "เข้ารหัส" สิ่งที่แตกต่างกันอย่างไร? คุณไม่ต้องการตัวคั่นบางตัว?
user541686

@Mehrdad ใช่และไม่ใช่ ใช่; สัญลักษณ์การแยกจะไม่นับรวมในกรณีนี้เช่นกัน cf ยังป้อนตัวอักษรกับเทป; ที่นี่เราพิจารณาขนาดของตัวอักษรอินพุตเท่านั้น ไม่มี โดยหลักการแล้วหมายเลขหนึ่งก็เพียงพอที่จะเข้ารหัส tuples และชุดตัวเลขที่นับได้ดังนั้นคุณไม่จำเป็นต้องใช้สัญลักษณ์คั่น เห็นได้ชัดว่าไม่ได้มีประโยชน์สำหรับ "การทำงาน" กับเครื่องดังกล่าว แต่เป็นเหตุผลที่ไม่สนใจสัญลักษณ์การแยก (และการควบคุมอื่น ๆ )
ราฟาเอล

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

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