พื้นหลังบางส่วน ปัญหาข้างต้นเป็นปัญหาเครื่องหลังที่มีข้อ จำกัด วิธีการแก้ปัญหาเป้หลังที่มีประสิทธิภาพมากที่สุดโดยมีหรือไม่มีข้อ จำกัด สามารถแก้ไขได้ในเวลา pseudopolynomial ยังคง NP-Hard สำหรับรูปแบบบางอย่างดูhttps://en.wikipedia.org/wiki/Knapsack_problem#Definition ข้อ จำกัด แรกในรูปแบบนี้คือมูลค่าของรายการ (ลูก) ที่จะวางในเป้ (ถังขยะ) ไม่สำคัญ ปัญหาจะถูก จำกัด ด้วยระยะเวลาที่ใช้ในการใส่สิ่งของในเป้ ปัญหาเดิมต้องการรายการที่มีค่าที่สุดในเวลาสั้นที่สุดเท่าที่จะทำได้ ข้อ จำกัด อีกประการสำหรับรุ่นนี้คือน้ำหนักและอาร์กิวเมนต์อื่นทั้งหมดเป็นจำนวนเต็ม และข้อ จำกัด ของดอกเบี้ยก็คือน้ำหนักw j + 1wjแบ่งสำหรับทุกJหมายเหตุ: ปัญหาเครื่องหลังแบบเศษส่วนสามารถแก้ไขได้ในเวลาพหุนาม แต่ไม่ได้นำเสนอวิธีแก้ปัญหาที่ใช้งานได้จริงที่สุดกับปัญหาดั้งเดิม ปัญหานี้ใช้จำนวนเต็มที่แบ่งเท่า ๆ กัน (ไม่มีวิธีแก้ปัญหาที่มีเหตุผล) บางทีดูว่าปัญหาใหญ่ของปัญหาเครื่องหลังคืออะไร? .wj+1j
คำถามหลักที่ควรจะเป็น "คือปัญหานี้ยังคง NP-Hard เมื่อถูก จำกัด โดยพหุนามที่สอดคล้องกับเป็นปัญหาซับซ้อนน้อยลง (ใน P) เมื่อมันถูก จำกัด ขอบเขตเหตุผลที่ฉันพูดแบบนี้เพราะปัญหาสามารถ แสดงเป็น P เมื่อถูกล้อมรอบและ NP-Hard เมื่อไม่จำเป็นต้องหาร i w j w j w j + 1 w j w j + 1 w j j w jwjiwjwjwj+1เท่ากัน (น้ำหนักเป็นเพียงการสุ่ม) ข้อ จำกัด ทั้งหมดจะจำกัดความซับซ้อนของปัญหานี้ในสองเงื่อนไขนี้ เงื่อนไขเหล่านี้ (1. ปัญหาน้ำหนักเป้นแบบสุ่มที่ไม่มีข้อ จำกัด ของมูลค่าสินค้าและ 2. ปัญหาน้ำหนักเป้นส่วนแบ่งที่ไม่มีข้อ จำกัด ของมูลค่ารายการ) คัดค้านซึ่งกันและกันในแง่ของการลดความซับซ้อนเนื่องจากผลหารของน้ำหนักอาจเป็นแบบสุ่มเอง โดยเฉพาะอย่างยิ่งเมื่อไม่มีข้อ จำกัด ) ดังนั้นการคำนวณเวลาแบบเอ็กซ์โปเนนเชียลจึงเป็นไปได้ (สิ่งนี้จะแสดงในตัวอย่างด้านล่าง) นอกจากนี้เนื่องจากหาร ,เพิ่มขนาดเป็นทวีคูณสำหรับแต่ละwjwj+1wjj. นี่เป็นเพราะแทนที่จะใช้ไอเท็มถ่วงน้ำหนักแบบสุ่ม (ลูกบอลที่มีน้ำหนักต่อหน่วยอาจถูก จำกัด ให้น้ำหนักต่อหน่วยต่ำกว่า 100 หรือ 50 หรือ 10) ข้อ จำกัด แทนจะทำให้ความซับซ้อนของเวลาขึ้นอยู่กับจำนวนหลักของเช่นเดียวกับ ส่วนการทดลองซึ่งเป็นเลขยกกำลังwj
ดังนั้นใช่โปรแกรมจำนวนเต็มดังกล่าวข้างต้นยังคง NP-ยากแม้เมื่อแบ่งสำหรับทุกJw j + 1 jwjwj+1j และนี่เป็นสิ่งที่สังเกตได้ง่าย
ตัวอย่างที่ 1:ให้และเป็นพลังของสอง เนื่องจากค่าคงที่สองปัญหาทั้งหมดจะได้รับการแก้ไขในเวลากำลังสองตามที่ตัวอย่างของคุณแสดง น้ำหนักไม่สุ่มและดังนั้นการคำนวณจะถูกแก้ไขอย่างมีประสิทธิภาพw หน้าn=1wp
ตัวอย่าง 2:ให้ถูกกำหนดเป็นโดยที่คือจำนวนเฉพาะที่สอดคล้องกับเช่นนั้นJ นี้มีผลบังคับใช้เป็นแบ่งสำหรับทุกJเราได้รับในแต่ละเป็นผลิตภัณฑ์ของจำนวนเฉพาะทั้งหมดขึ้นอยู่กับเจค่าของน้ำหนักหน่วยเพิ่มเป็นเช่น:... เนื่องจากมีข้อ จำกัด (~ W J * พีพีเจพี= 2 , J = 1 : P = 3 , J = 2 , P = 5 , J = 3 , P = 7 , J = 4 , . . , P , J w j w j + 1 j w j j 1 ,wj+1wj∗ppjp=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,P,Jwjwj+1jwjjp j j l o1,2,6,30,210,2310,30030,...pjjlog(j)ผ่านทางทฤษฎีจำนวนเฉพาะ) เนื่องจากผลหารเป็นจำนวนเฉพาะเราได้รับความซับซ้อน NP-Intermediate
ตัวอย่างที่ 3:ให้กำหนดเป็นที่เป็นจำนวนเฉพาะการสุ่มเลือกจากสองอินฟินิตี้ที่สอดคล้องกับเจนี้ใช้ได้กับปัญหานี้เป็นแบ่งสำหรับทุกJเราได้รับ 5 บวกลบคูณหารแรก (สุ่มตกจากสองถึงอินฟินิตี้) เช่น2 เราเห็นว่าแม้ในบอลลูกที่ 5 น้ำหนักจะมีตัวเลขสิบเอ็ดหลัก โชคดีที่เชาวน์ที่ห้าเป็นสองและไม่เป็นจำนวนเฉพาะในลำดับที่หรือใหญ่กว่า w j ∗ R p R p j w j w j + 1 j 101 , 2657 , 7 , 3169 , 2wj+1wj∗RpRpjwjwj+1j101,2657,7,3169,210100
ตัวอย่างสามข้างต้นเป็นสิ่งที่เกิดขึ้นเมื่อไม่ได้กระโดด (น้ำหนักสุ่ม) โดยพหุนามที่สอดคล้องกับฉันความซับซ้อนของเวลานั้นเพิ่มขึ้นอย่างมากคือ NP-Hard สำหรับบางมุมมองให้เพิ่มน้ำหนักทั้งหมดดูว่าเหมาะสมหรือไม่ แต่ไม่มีวิธีการแก้ปัญหาที่จะแก้ปัญหาได้เร็วขึ้นอย่างมีนัยสำคัญโดยการทำให้น้ำหนักหารได้ง่ายกว่าการลองชุดย่อยแต่ละอันเพื่อดูว่ามันทำงานได้หรือไม่ หลังจากผ่านไปสักสองสามลูกคุณยังคงเข้าสู่อาณาจักรของชุดย่อยหรือหลักล้านล้านฉันwji