सबसे छोटा सामान्य सुपरस्ट्रिंग: सबसे छोटा स्ट्रिंग ढूंढें जिसमें सभी दिए गए स्ट्रिंग टुकड़े होते हैं


12

कुछ स्ट्रिंग टुकड़ों को देखते हुए, मैं कम से कम संभव सिंगल स्ट्रिंग ("आउटपुट स्ट्रिंग") को ढूंढना चाहूंगा जिसमें सभी टुकड़े शामिल हों। फ्रेगमेंट आउटपुट स्ट्रिंग में एक दूसरे को ओवरलैप कर सकते हैं।

उदाहरण:

स्ट्रिंग टुकड़ों के लिए:

BCDA
AGF
ABC

निम्नलिखित आउटपुट स्ट्रिंग में सभी टुकड़े हैं, और भोले भाले द्वारा बनाया गया था:

BCDAAGFABC

हालाँकि यह आउटपुट स्ट्रिंग बेहतर (कम) है, क्योंकि यह ओवरलैप को नियोजित करता है:

ABCDAGF
^
ABC
 ^
 BCDA
    ^ 
    AGF

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

मैंने एक समाधान पर काम शुरू कर दिया है और यह काफी दिलचस्प साबित हो रहा है; मैं यह देखना चाहता हूं कि अन्य लोग क्या कर सकते हैं। मैं थोड़ी देर में इस प्रश्न पर अपनी कार्य-प्रगति जोड़ दूंगा।


3
समस्या एनपी-पूर्ण प्रतीत होती है। यदि हां, तो आप कम से कम स्ट्रिंग का निर्धारण करने के लिए एक बहुपद एल्गोरिथ्म खोजने में सक्षम नहीं होंगे, लेकिन बहुपद एल्गोरिदम हो सकते हैं जो अनुमानित (सबसे कम संभव नहीं) समाधान देते हैं।
सुपर

3
NP-Complete के बारे में यह ब्लॉग पोस्ट अच्छा है: codinghorror.com/blog/2008/11/…
occulus

ब्लॉग का वास्तव में अच्छा है, मैं इसे हर समय पढ़ता हूं)))
सुपरएम

@superM यह ट्रैवलिंग सेल्समैन के समान (प्रत्येक स्ट्रिंग एक शहर और शहरों के बीच लागत = कुछ संख्या-ओवरलैप) के समान है
शाफ़्ट फ्रीक

@ratchet freak, यह _ है अगर आप शहरों के बीच छोटी लागत दे सकते हैं यदि उनके पास अधिक सामान्य पत्र हैं, और सबसे बड़ी लागत जब उनके पास कोई भी सामान्य पत्र नहीं है
सुपरएम

जवाबों:


14

आप जिस चीज के बारे में पूछ रहे हैं वह सबसे छोटी कॉमन सुपरस्ट्रिंग समस्या है, जिसके लिए कोई एल्गोरिथ्म नहीं है जो सभी मामलों के लिए काम करता है। लेकिन यह एक सामान्य समस्या है (संपीड़न और डीएनए अनुक्रमण में) और कई सन्निकटन एल्गोरिदम प्रसिद्ध हैं।

"लालची" एल्गोरिदम को आमतौर पर सबसे प्रभावी माना जाता है (जैसा कि, उनके पास सबसे कम-खराब सबसे खराब स्थिति है)।

बहुत अधिक जानकारी के लिए जोनाथन टर्नर द्वारा सबसे कम आम सुपरस्ट्रिंग समस्या के लिए पेपर अप्रोचमेंट अल्गोरिदम को पढ़ा है ।


1
कुछ प्रासंगिक पृष्ठों: update.uu.se/~shikaree/Westling और cs.sunysb.edu/~algorith/files/shortest-common-superstring.shtml
occulus

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

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