कुछ स्ट्रिंग टुकड़ों को देखते हुए, मैं कम से कम संभव सिंगल स्ट्रिंग ("आउटपुट स्ट्रिंग") को ढूंढना चाहूंगा जिसमें सभी टुकड़े शामिल हों। फ्रेगमेंट आउटपुट स्ट्रिंग में एक दूसरे को ओवरलैप कर सकते हैं।
उदाहरण:
स्ट्रिंग टुकड़ों के लिए:
BCDA
AGF
ABC
निम्नलिखित आउटपुट स्ट्रिंग में सभी टुकड़े हैं, और भोले भाले द्वारा बनाया गया था:
BCDAAGFABC
हालाँकि यह आउटपुट स्ट्रिंग बेहतर (कम) है, क्योंकि यह ओवरलैप को नियोजित करता है:
ABCDAGF
^
ABC
^
BCDA
^
AGF
मैं इस समस्या के लिए एल्गोरिदम की तलाश कर रहा हूं। यह कड़ाई से कम से कम उत्पादन स्ट्रिंग को खोजने के लिए बिल्कुल महत्वपूर्ण नहीं है, लेकिन कम बेहतर है। मुझे स्पष्ट भोले से बेहतर एक एल्गोरिथ्म की तलाश है जो इनपुट टुकड़े के सभी क्रमपरिवर्तन को जोड़ने और ओवरलैप को हटाने की कोशिश करेगा (जो एनपी-पूर्ण प्रतीत होगा)।
मैंने एक समाधान पर काम शुरू कर दिया है और यह काफी दिलचस्प साबित हो रहा है; मैं यह देखना चाहता हूं कि अन्य लोग क्या कर सकते हैं। मैं थोड़ी देर में इस प्रश्न पर अपनी कार्य-प्रगति जोड़ दूंगा।