ตั้งค่าปัญหาการปรับให้เหมาะสม - เป็นแบบ np หรือไม่


10

ชุดS={อี1,,อีn}จะได้รับ สำหรับแต่ละองค์ประกอบอีผมเรามีน้ำหนักWผม>0และค่าใช้จ่ายผม>0 0 เป้าหมายคือการหาเซตMขนาดkที่เพิ่มฟังก์ชั่นมีวัตถุประสงค์ดังต่อไปนี้:

ΣอีผมMWผม+ΣอีผมMWผมผมΣอีผมMผม
ฉัน

ปัญหา NP-hard หรือไม่

เนื่องจากฟังก์ชั่นวัตถุประสงค์ดูเหมือนแปลก ๆ มันเป็นประโยชน์ในการอธิบายการประยุกต์ใช้ฟังก์ชั่นวัตถุประสงค์

สมมติว่าเรามี n รายการอี1เพื่ออีnและมีผมสำเนาของแต่ละวัตถุอีผมในสินค้าคงคลังของเรา เรามีลูกค้าบางคนและพวกเขามีความสนใจในวัตถุเหล่านี้ในสัดส่วนกับน้ำหนักของพวกเขาWผมซึ่งหมายถึงวัตถุที่มีมากขึ้นWผมเป็นที่นิยมมาก เรามีระบบการขายออนไลน์และเราจำเป็นต้องตอบคำขอของลูกค้าอย่างถูกต้อง เราไม่สามารถจำแนกวัตถุตามรูปร่างของวัตถุ (พวกมันดูเหมือนกัน!) แต่เรามีลักษณนามเพื่อค้นหาพวกมัน ลักษณนามแต่ละตัวสามารถใช้สำหรับตรวจจับสำเนาของวัตถุ เรามุ่งมั่นที่จะรัน k ลักษณนามเพื่อเพิ่มความพึงพอใจของลูกค้า

Wผมผม=พีผมn


คำที่ถูกต้องน้อยกว่าหรือเท่ากับน้ำหนักที่ใหญ่ที่สุดขององค์ประกอบที่ไม่ได้อยู่ใน M ดังนั้นหากคุณมีองค์ประกอบที่มีน้ำหนักมากจะดีกว่าที่จะใส่ไว้ใน M แทนที่จะปล่อยให้มันเสียเปล่า ดังนั้น M ควรประกอบด้วยองค์ประกอบที่มีน้ำหนักมากที่สุด k ขวา?
zotachidil

มันไม่ถูกต้องเพราะค่าใช้จ่ายมีความสำคัญเช่นกัน ลองพิจารณาตัวอย่างต่อไปนี้
Nasooh

w1 = 50, c1 = 80 - w2 = 40, c2 = 15 - w3 = 10, c3 = 5 สำหรับ k เท่ากับ 1 การเลือก e2 จะมีประโยชน์มากกว่า e1
Nasooh

คุณถูก. อืม ...
zotachidil

2
ขอบคุณที่พยายามอธิบายแรงจูงใจ น่าเสียดายที่การเชื่อมโยงระหว่างคำอธิบายของคุณกับฟังก์ชันวัตถุประสงค์ในคำถามนั้นยังไม่ชัดเจนสำหรับฉัน แต่ฉันคิดว่าฉันต้องพอใจกับคำอธิบายปัจจุบันเพื่อให้คำถามอยู่ในระยะเวลาที่เหมาะสม
Tsuyoshi Ito

คำตอบ:


2

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

ผมnD=Σผมผม

(S,W,,K)W,R+nS={1,2,...,n}MSKΣผมMWผมผมΣผมMผม-ΣผมMWผม

(d1,d2,k,ม.)0d1d2D0kKkม.n

φ(d1,d2,k,ม.)=สูงสุด{ΣผมMWผม(ผม/d1-1) : M[ม.],|M|=k,ΣผมMผม=d2}.
สูงสุดdφ(d,d,K,n)

φ(d1,d2,k,ม.)ม.

φ(d1,d2,k,ม.)=สูงสุด{φ(d1,d2-ม.,k-1,ม.-1)+Wม.(ม./d1-1)φ(d1,d2,k,ม.-1).

O(n2D2)nD  

Dn

Wผม

Wผม=ผมผมMk


1
Wผม=ผม(ΣผมJMWผมWJ)/(ΣผมMWผม)MWผม

@ WillardZhan ใช่ว่าถูกต้อง
Neal Young

-6

คุณกำลังถามถึงการเพิ่มฟังก์ชั่นให้มากที่สุดโดยไม่มีข้อ จำกัด หรือไม่?

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

ปัญหานี้ดูเหมือนจะคล้ายกับปัญหาเป้ซึ่งเป็นปัญหาโดยวิธี


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