ตั้งค่าปัญหาการปรับให้เหมาะสม - เป็นแบบ 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}M⊆SKΣผม∈MWผมคผมΣผม∈Mคผม-Σผม∈MWผม

(d1,d2,k,ม.)0≤d1≤d2≤D0≤k≤Kk≤ม.≤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ผม=คผม(Σผม≠J∉MWผมWJ)/(Σผม∉MWผม)MWผม

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

-6

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

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

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


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