ปัญหาเครื่องเป้น - NP-complete แม้จะมีวิธีการเขียนโปรแกรมแบบไดนามิก?


50

ปัญหาเครื่องหลังสามารถแก้ไขได้อย่างง่ายดายโดยการตั้งโปรแกรมแบบไดนามิก การเขียนโปรแกรมแบบไดนามิกทำงานในเวลาพหุนาม นั่นคือเหตุผลที่เราทำเช่นนั้นใช่ไหม

ฉันได้อ่านแล้วมันเป็นปัญหา NP-complete ซึ่งหมายความว่าการแก้ปัญหาในปัญหาพหุนามอาจเป็นไปไม่ได้

ความผิดพลาดของฉันอยู่ที่ไหน


5
โปรดทราบว่า DP เป็นพหุนามใน "ขนาดตาราง" ตารางมีขนาดใหญ่ขึ้นอย่างมากสำหรับเป้ (ดูคำตอบของ Kaveh)
Raphael

คำตอบ:


40

ปัญหายาสะพายหลังเป็นเมื่อตัวเลขที่จะได้รับเป็นไบนารีหมายเลข ในกรณีนี้การเขียนโปรแกรมแบบไดนามิกจะใช้ขั้นตอนหลายชี้แจง (ในขนาดของการป้อนข้อมูลเช่นจำนวนบิตในการป้อนข้อมูล) เพื่อจบ\NP-complete

ในทางกลับกันหากตัวเลขในอินพุตถูกกำหนดเป็น unary การเขียนโปรแกรมแบบไดนามิกจะทำงานในเวลาพหุนาม (ในขนาดของอินพุต)

ชนิดของปัญหานี้จะเรียกว่าไม่ค่อยNP-complete{-}}

: อีกตัวอย่างที่ดีในการทำความเข้าใจความสำคัญของการเข้ารหัสที่ใช้ในการป้อนข้อมูลคือการพิจารณาอัลกอริทึมปกติเพื่อดูว่าจำนวนนั้นเป็นจำนวนเฉพาะที่ไปจากถึงและตรวจสอบว่ามีการหารหรือไม่ นี่คือพหุนามในแต่ไม่จำเป็นต้องอยู่ในขนาดอินพุต ถ้าถูกกำหนดเป็นเลขฐานสองขนาดของอินพุตคือและอัลกอริทึมทำงานในเวลาซึ่งเป็นเลขชี้กำลังในขนาดอินพุต และความซับซ้อนของการคำนวณตามปกติของปัญหาคือ wrt ขนาดของอินพุต2nnnnlgnO(n)=O(2lgn/2)

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


แต่คิดเกี่ยวกับวัตถุที่จะใส่ในเป้ วัตถุจะต้องมีการป้อนข้อมูลและการป้อนข้อมูลดังกล่าวจะต้องมีพหุนามกับจำนวนของวัตถุ หากวัตถุมีจำนวนมากเพียงพออินพุตจะเป็นพหุนามที่มีขนาดของปัญหา เหตุใดฉันจึงไม่สามารถพูดได้ว่าปัญหาเป้เป็นปัญหา P ในแง่ของขนาดตาราง? ฉันผิดหรือเปล่า?
Strin

@Strin ไม่เลยมีวัตถุจำนวนน้อยพอที่จะรู้สึกว่ามีเครื่องหลังขนาดใหญ่เช่นถ้าขนาดของเป้เป็นใดสิ่งหนึ่งที่มีขนาดเพียงพอขนาดของอินพุตนั้นประมาณซึ่งเล็กกว่ามาก (ฉันสมมติว่าเรากำลังพูดถึง 0-1 เป้)mm2lgmm
Kaveh

คุณสามารถแยกอินพุตให้เป็นอินพุทขนาดเล็กลงซึ่งการเข้ารหัสแบบไบนารี่มีขนาดที่เสร็จสิ้นขั้นตอนวิธีในเวลาพหุนามแล้วรวมวิธีแก้ปัญหาเข้าด้วยกันได้หรือไม่?
Char

@Kaveh "ขนาดของอินพุตนั้นประมาณ 2 lg m" ฉันไม่เข้าใจว่าคุณได้ส่วนนั้นมาจากไหน ความสัมพันธ์ระหว่างm(ขนาดแพ็ค) และn(จำนวนรายการ) ไม่เป็นที่ทราบใช่ไหม? และอีกครั้ง "เมื่อตัวเลขได้รับเป็นเลขฐานสอง" ... แต่คุณไม่สามารถพูดแบบนั้นเพื่ออะไรได้เลย? ด้วยอัลกอริธึมส่วนใหญ่เราพูดถึงขนาดอินพุตในฐาน 10 ทำไมพูดถึงไบนารีที่นี่ และไม่ว่าคุณเข้ารหัสในไบนารีฐานแปดทศนิยม ฯลฯ ที่ ... actualจำนวนครั้งที่คุณย้ำผ่านห่วงขั้นตอนวิธีการหลักของคุณโดยตรงขึ้นอยู่กับทั้งสองและn W
The111

1
@ The111 ฉันคิดว่ามันจะดีกว่าถ้าคุณโพสต์ว่าเป็นคำถามใหม่ที่และฉันจะโพสต์คำตอบ ฉันคิดว่าคำถามของคุณเป็นพื้นฐานมากกว่าและมีความคิดเห็นที่ไม่เกี่ยวข้องกับคำถามนี้
Kaveh

33

ความสับสนหลักอยู่ที่ความแตกต่างระหว่าง " ขนาด " และ " ค่า "

" เวลาพหุนาม " หมายถึงพหุนาม wrt ขนาดของอินพุต

" Pseudopolynomial เวลา " หมายถึง WRT พหุนามความคุ้มค่าของการป้อนข้อมูล มันสามารถแสดงให้เห็น (ด้านล่าง) ว่าสิ่งนี้เทียบเท่ากับการ wrt ชี้แจงขนาดของอินพุต


กล่าวอีกนัยหนึ่ง: ให้แทนขนาดของอินพุตและแทนค่าของอินพุตNsizeNval

เวลาพหุนาม: สำหรับO(Nsizex)xN

Pseudopoly เวลา: สำหรับO(Nvalx)xN

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

ตอนนี้ค่าสามารถแปลงเป็นขนาดโดยแสดงเป็นจำนวน # ของตัวเลขที่ใช้แทน บอกคุณว่าหลายตัวเลขที่มีความจำเป็นที่จะเป็นตัวแทนใช้ฐานขสิ่งนี้สามารถแก้ไขได้สำหรับเพื่อมอบ:Nsize=Logb(Nval)NvalbNval

Nval=bNsize

การเสียบสิ่งนี้ลงในนิยามเวลา pseudopolynomial แสดงให้เห็นว่ามันเป็น wrt เลขชี้กำลัง :Nsize

Pseudopoly เวลา: สำหรับb , x NO(bxNsize)b,xN


7
สร้างบัญชีที่นี่เพียงเพื่อบอกว่าขอบคุณมาก! หลังจากตัวอย่างของคุณฉันก็เข้าใจในที่สุด
Inoryy

2
คำตอบของคุณชนะทุกคนไชโย!
มูฮัมหมัด Razib

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

@bcorso สมมติว่าคุณได้รับค่า N และคุณต้องหาผลรวมของตัวเลขตั้งแต่ 1 ถึง N และคุณใช้วิธีวนรอบซึ่งจะเป็นอัลกอริธึมเวลา pseudopolynomial?
DollarAkshay

8

ปัญหาเป้ที่กำหนดไว้ในกระดาษคาร์พของเป็น NP-สมบูรณ์ตั้งแต่มีการลดลงจากปัญหา NPC อื่น ๆ (ปกแน่นอนในกรณีนี้) เพื่อเป้ ซึ่งหมายความว่ามีไม่มีขั้นตอนวิธีการพหุนามที่สามารถแก้ทุกกรณีของปัญหาเป้เว้นแต่{}P=NP

อย่างไรก็ตามมีตัวแปรที่แตกต่างกัน (เช่น0-1 เป้และอื่น ๆ ) ที่อาจมีหรือไม่มีโซลูชั่นพหุนามเวลาหรือการประมาณที่ดี แต่นี่ไม่เหมือนกับปัญหาเป้ทั่วไป นอกจากนี้อาจมีอัลกอริทึมที่มีประสิทธิภาพที่ทำงานกับอินสแตนซ์ (ตระกูลของ) ที่เฉพาะเจาะจงแต่อัลกอริทึมเหล่านี้จะใช้เวลานานในอินสแตนซ์อื่น ๆ

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