इस पुनर्व्यवस्थित / छँटाई समस्या का नाम?


10

आपको लंबाई की एक सरणी दी गई है । सरणी का प्रत्येक तत्व K वर्गों में से एक से संबंधित है । आपको न्यूनतम संख्या में स्वैप संचालन का उपयोग करके सरणी को पुनर्व्यवस्थित करना चाहिए ताकि एक ही वर्ग के सभी तत्वों को हमेशा एक साथ समूहीकृत किया जाए, यही है कि वे एक सन्निहित उप-रूप बनाते हैं। उदाहरण के लिए: nK
तीन अन्य वैध व्यवस्थाएं बनी हुई हैं।

[2,1,3,3,2,2][2,2,2,1,3,3], or[2,1,3,3,2,2][1,2,2,2,3,3], or[2,1,3,3,2,2][3,3,2,2,2,1].

इस समस्या को साहित्य में क्या कहा जाता है? क्या इसके लिए एक कुशल एल्गोरिदम है?


1
मुझे यकीन नहीं है कि इस समस्या का एक नाम है, हालांकि यह निश्चित रूप से संभव है। सभी बोधगम्य समस्याओं के नाम नहीं हैं।
युवल फिल्मस

2
व्यवहार में, इसे समूहन कहा जाएगा । मैं शास्त्रीय एल्गोरिदम में शब्दावली से अवगत नहीं हूं। (यह निश्चित रूप से एक दिलचस्प, और संभवतः कठिन समस्या है कम से कम स्वैप की संख्या है, जो बारी-बारी का मानना है एनपी कठिन-ish "समूहों में से सबसे अच्छा क्रमचय लगता है" की भावना है!।)
राफेल

खैर दोस्तों, अब के लिए धन्यवाद। बेशक मैं समस्या के समाधान में दिलचस्पी रखता हूं, लेकिन यह सोचा कि इसका पहले से ही अध्ययन किया गया था इसलिए संदर्भ के लिए पूछ रहा था।
मार्को बुकल

जवाबों:


6

नोट: यह एक कठोरता प्रमाण है, और मुझे लगता है कि पूर्णांक प्रोग्रामिंग आदि जैसे व्यावहारिक एल्गोरिदम हैं।

एक BIN_PACKING उदाहरण आप जहां पैक करने के लिए चाहते हैं को देखते हुए संख्या n 1 , ... , n कश्मीर में एल आकार के डिब्बे मीटर 1 , ... , मीटर एल , और यह सुनिश्चित किया जाता है कि Σ n मैं = Σ मीटर j = एन , तो हम डिजाइन सकता है आपकी समस्या का एक उदाहरण इस प्रकार है:Kn1,,nKLm1,,mLni=mj=N

  • कर रहे हैं वर्गों;K+(N+1)(L1)
  • पहले कक्षाओं का आकार n 1 , , n K क्रमशः होता है, और बाकी वर्गों में से प्रत्येक का आकार N + 1 ;;Kn1,,nKN+1
  • सरणी को आकार के स्लॉट में विभाजित किया गया है: जहां आकार का प्रत्येक स्लॉट ( एन) + 1 ) 2 को N + 1 वर्गों के साथ पैक किया जाता है , सन्निहित रूप से व्यवस्थित किया जाता है, और बाकी मनमाने ढंग से व्यवस्थित होते हैं।
    m1,(N+1)2,m2,(N+1)2,m3,,(N+1)2,mL
    (N+1)2N+1

अब एक महत्वपूर्ण अवलोकन यह है कि स्लॉट में कम से कम एक वर्ग को रखने और अन्य को स्थानांतरित करने के लिए अर्थहीन है (क्योंकि यह एक 'बिन' के आकार को नहीं बदलेगा)। तो मूल बिन पैकिंग उपलब्ध है अगर और केवल अगर स्वैप की न्यूनतम संख्या एन से बड़ी नहीं है । चूँकि BIN-PACKING को दृढ़ता से NP-complete माना जाता है , इसलिए आपकी समस्या NP- हार्ड है।(N+1)2N


ये सुन्दर है! मामले में अन्य लोगों ने भी संघर्ष किया: (1) स्वैप हमेशा किसी भी "बिन पैकिंग" को बनाने के लिए पर्याप्त होता है, जिसे हम आकार m 1 , ... , m L के स्लॉट में चाहते हैं , क्योंकि एक स्वैप एक तत्व को अपने अंतिम में ले जाने के लिए पर्याप्त है। पहले से रखे गए तत्वों को परेशान किए बिना स्थान। (2) केवल 2 संभावित चीजें हैं जो हम लंबाई के साथ करने की कोशिश कर सकते हैं- ( एन + 1 ) 2 "बफर जोन" के बीच "डिब्बे": एक पूरी लंबाई ले जाएं- ( एन + 1 ) वर्ग कहीं और अंत में () लेकिन इसकी लागत N + 1 हैNm1,,mL(N+1)2(N+1)N+1स्वैप पहले से ही, इसलिए हम नहीं कर सकते हैं, या पूरी स्थिति को "स्लाइड" कर सकते हैं एक स्थिति बाएं या दाएं (लेकिन यह प्रत्येक "फिसलने" की आवश्यकता होती है ...
j_random_hacker

... बफ़र में कक्षा बाएँ या दाएँ एक स्थिति में, और यद्यपि हम ऐसा कर सकते हैं कि प्रति वर्ग एक स्वैप के साथ, ज़ोन में वर्ग हैं, इसलिए कम से कम N + 1 स्वैप की आवश्यकता है, इसलिए एक बार फिर: असंभव)। इस बिंदु पर बहस करने के लिए आवश्यक है कि लागत एन के साथ ओपी की समस्या का समाधान एक मान्य बिन पैकिंग का अर्थ है। (3) क्योंकि बिन पैकिंग जोरदार एनपी-पूर्ण होती है, इनपुट में एन्कोड किए गए संख्याओं के आनुपातिक (यहाँ, एरे तत्व) बनाने की सामान्य "नहीं-नहीं" यहाँ लागू नहीं होती है :)N+1N+1N
j_random_hacker

1

मुझे यह भी संदेह है कि यह एनपी-हार्ड है, लेकिन एक सबूत के लिए एक विचार की अनुपस्थिति में, यहां जल्दी से कम होने वाली कम सीमा के एक जोड़े हैं जो एक हेयुरिस्टिक समाधान की इष्टतमता की जांच करने, या एक शाखा-और-बाउंड खोज को छंटनी करने के लिए उपयोगी हो सकते हैं। ।

iniijLiijinijLiiO(n)O(Kn)

  1. LiK=2K
  2. Li

आपके उदाहरण में ये सीमाएं दोनों 1 (0.5 को बाद वाले मामले में गोल किया जा सकता है) देते हैं, जो निश्चित रूप से ढीला है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.