एक स्ट्रिंग के समरूपकरण की जटिलता


10

प्रेरणा : डेटा संस्करण के लिए उपकरण विकसित करते समय, हमने पूर्णांक के दो सेटों को "भिन्न" के लिए एल्गोरिदम में देखना समाप्त कर दिया, जो परिवर्तनों के एक क्रम के साथ आकर पूर्णांक के एक सेट को दूसरे तक ले जाते हैं। हम उस समस्या को निम्न बहुत ही स्वाभाविक समस्या को कम करने में सक्षम थे जो लगता है कि दूरी को संपादित करने के लिए कनेक्शन, स्वैपिंग द्वारा समूहीकरण और न्यूनतम न्यूनतम स्ट्रिंग विभाजन है

समस्या : हमें एक स्ट्रिंग, अर्थात, पत्रों का एक क्रम दिया जाता है, और हमारा लक्ष्य इसे न्यूनतम लागत पर समरूप बनाना है । यही है, हम एक पुनर्व्यवस्थित अनुक्रम चाहते हैं जैसे कि सभी अक्षर जो एक जैसे हैं एक दूसरे के बगल में हैं।

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

इस समस्या की जटिलता को दर्शाने वाली कोई भी मदद बहुत सराहना की जाएगी!

उदाहरण :

  • aabcdab: इनपुट
  • bcd aa ab: "आ" के ठीक बाद स्थिति में पहला जाने के बाद
  • b bcdaaa: ट्रेलिंग b को पहली स्थिति में ले जाने के बाद

चूंकि परिणामस्वरूप स्ट्रिंग सजातीय है, हमारे पास 2 की लागत है।

ध्यान दें कि हम आउटपुट के संबंध में किसी भी तरह से विवश नहीं हैं: जब तक यह सजातीय है, हमें किसी विशिष्ट आदेश को सुनिश्चित करने की आवश्यकता नहीं है।

जवाबों:


6

न्यूनतम हिटिंग सेट से कटौती करके यह समस्या एनपी-पूर्ण है ।

USsS,sUHUsS,hHhs

कटौती निम्नानुसार है:

  • uUussSusu

  • s|s|1suusu

  • ususssSssu

  • |s|+|H|H

चूंकि न्यूनतम हिटिंग सेट एनपी-हार्ड है, इसलिए एक स्ट्रिंग को होमोजेनाइजिंग करना भी समान है। चूंकि चालें एक गवाह बनती हैं, यह एनपी-पूर्ण है।


यह एक सुरुचिपूर्ण कमी है - धन्यवाद!
आदित्य परमेस्वरन

2

अपनी स्ट्रिंग में एक अक्षर से दूसरे में परिवर्तन की संख्या को देखें, जिसे आप स्ट्रिंग की अस्वस्थता के लिए एक उपाय के रूप में देख सकते हैं। यदि आप आगे बढ़ते हैं तो आपके द्वारा बाद में की जाने वाली प्रत्येक (उपयोगी) चाल के साथ इस संख्या को एक कम कर दिया जाता है और उसके बाद दो अलग-अलग अक्षरों का उपयोग किया जाता है। अन्यथा आप दो से अमानवीयता को कम करते हैं।

तो कश्मीर परिवर्तनों के साथ एक स्ट्रिंग के लिए आपको सबसे अधिक k - l + 1 चाल की आवश्यकता होती है जहां l स्ट्रिंग में विभिन्न अक्षरों की संख्या होती है, क्योंकि अंत में l - 1 में परिवर्तन रहेंगे। लंबाई n की एक स्ट्रिंग के रूप में सबसे अधिक n-1 अक्षर में परिवर्तन हो सकते हैं, इसे सबसे n - l चाल पर आवश्यकता हो सकती है। इसमें से सबसे कम संभव संख्या आधी है।

सबसे अच्छी रणनीति इस प्रकार लगती है कि फॉर्म अब्बू की अनुवर्तीताओं को देखें और बीब को वहां से दूर ले जाएं। जब कोई न बचे, तो जो कुछ भी हो, उसे आगे बढ़ाओ। आप अभी भी उन ऑपरेशनों को करने की कोशिश कर सकते हैं जो नई अब्बा स्थितियों का निर्माण करते हैं, लेकिन मुझे लगता है कि लाभ बहुत कम होगा। चूँकि सबसे खराब संभव रणनीति (मूर्खतापूर्ण चाल के बिना, जो अमानवीयता को बढ़ाती है) अधिकतम दो बार सबसे अधिक उपयोग करता है, सबसे कम आप जो लाभ प्राप्त कर सकते हैं, वह इस प्रयास के लिए कोई उचित संबंध नहीं है जैसा कि चरित्र के साथ इसहाक द्वारा उत्तर के रूप में होता है। एनपी-हार्ड सुझाव। जब तक, निश्चित रूप से, आप वास्तव में केवल चाल कार्रवाई की संख्या की गणना करते हैं और यह तय करने के लिए समय के बारे में परवाह नहीं करते हैं कि कौन सी चाल चलनी है।

सबसे खराब स्थिति इसलिए एक स्ट्रिंग है जहां हर अक्षर अपने पूर्ववर्ती से अलग है (और आपको कोई एब्बा बोनस नहीं मिलता है)। यहां आपको स्ट्रिंग की लंबाई में रैखिक के कई ऑपरेशनों की आवश्यकता है और लगभग इस लंबाई के बराबर है।

आपके उदाहरण में, आपके पास 5 -> 4 -> 3 परिवर्तन हैं, और 3 अक्षरों की संख्या (4) शून्य 1 के बराबर है।

साइड नोट: केवल दो के आकार की वर्णमाला के लिए, प्रत्येक चाल जो स्ट्रिंग के एक उपसर्ग या प्रत्यय को स्थानांतरित नहीं करती है, दो में से अयोग्यता को कम करती है और इस प्रकार उचित चाल का प्रत्येक क्रम इष्टतम है।


आप दावा करते हैं कि एक चाल अधिकतम 2 पर परिवर्तनों की संख्या को कम कर सकती है, लेकिन वास्तव में यह परिवर्तनों की संख्या को 3. तक कम कर सकती है। उदाहरण के लिए, "एएबकब" को "सबबेक" में परिवर्तित करके पहला सबस्ट्रक्शन "बीसी" चलाकर। 5 से 2 से स्ट्रिंग में परिवर्तन की संख्या में कमी के परिणामस्वरूप दूसरे प्रतिस्थापन "बीसी" के मध्य में
मिखाइल रुडोय जूल

हाय, @ मिखाइलरुदॉय सवालों में कहा गया है कि ऑपरेशन "एक जैसे अक्षरों की एक अनुगामी उठाता है", इसलिए जहां तक ​​मैं समझता हूं बीसी की अनुमति नहीं है।
पीटर लेपॉल्ड

मुझे वह डिटेल पूरी तरह याद आ गई। आप उस मामले में सही हैं।
मिखाइल रुडोय जूल

पीटर सही है: उन चालों की अनुमति नहीं है।
आदित्य परमेस्वरन

पुन: उत्तर के बाकी - वास्तव में, इन टिप्पणियों को फिर से: कम सीमा, वर्णमाला आकार 2 मामले की इष्टतमता, और किसी भी बिंदु पर क्या करना है के लिए अनुमान मूल्यवान हैं। चूंकि सबसे खराब स्थिति में कोई भी कदम केवल अक्षरों के अनुक्रम को लाभ देता है, और सबसे अच्छी स्थिति में अक्षरों के अधिकांश दो अनुक्रमों में विलय होता है जैसे कि आपके अब्बा में, एक 2-सन्निकटन स्वाभाविक लगता है।
आदित्य परमेस्वरन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.