কম্পিউটার টিউটোরিয়াল

সাধারণ সুপার সিকোয়েন্স (Shortest Common Super Sequence)


সাধারণ সুপার সিকোয়েন্স হল এমন একটি ক্রম যেখানে প্রদত্ত দুটি সিকোয়েন্সের প্রতিটি উপাদান উপস্থিত থাকে। সহজ কথায়, দেওয়া দুটি স্ট্রিং উভয়ই সর্বনিম্ন সাধারণ সুপার-সিকোয়েন্সের উপ-সিকোয়েন্স।

ইনপুট এবং আউটপুট

ইনপুট: দুটি স্ট্রিং। "ABCDEF" এবং "XYDEF" আউটপুট: সর্বনিম্ন সাধারণ সুপার-সিকোয়েন্সের দৈর্ঘ্য। এখানে সুপার-সিকোয়েন্স হল "ABCDEFXY"। তাই দৈর্ঘ্য ৮।

অ্যালগরিদম

superSeq(str1, str2)

ইনপুট: দুটি স্ট্রিং str1 এবং str2।

আউটপুট: সুপার সিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করুন।

শুরু 
  m := str1-এর দৈর্ঘ্য 
  n := str2-এর দৈর্ঘ্য 
  seqTab নামক টেবিল সংজ্ঞায়িত করুন আকার (m+1 x n+1) 
  i := 0 থেকে m পর্যন্ত, করুন 
    j := 0 থেকে n পর্যন্ত, করুন 
      যদি i = 0, তবে 
        seqTab[i, j] := j 
      অন্যথায় যদি j = 0, তবে 
        seqTab[i, j] := i 
      অন্যথায় যদি str1[i-1] = str2[j-1], তবে 
        seqTab[i, j] := 1 + seqTab[i-1, j-1] 
      অন্যথায় 
        seqTab[i, j] := 1 + seqTab[i-1, j] এবং seqTab[i, j-1]-এর ন্যূনতম 
    শেষ 
  শেষ 
  seqTab[m, n] ফেরত দিন 
শেষ

উদাহরণ

#include<iostream> using namespace std; int min(int a, int b) {   return (a<b)?a:b; } int superSeq(string str1, string str2) {   int m = str1.size();   int n = str2.size();   int supSeqTable[m+1][n+1];   for (int i = 0; i <= m; i++) {     for (int j = 0; j <= n; j++) {       if (!i)         supSeqTable[i][j] = j;       //সর্বনিম্ন সুপারসিকোয়েন্সের দৈর্ঘ্য j     else if (!j)         supSeqTable[i][j] = i;       //সর্বনিম্ন সুপারসিকোয়েন্সের দৈর্ঘ্য i     else if (str1[i-1] == str2[j-1])         supSeqTable[i][j] = 1 + supSeqTable[i-1][j-1];     else         supSeqTable[i][j] = 1 + min(supSeqTable[i-1][j], supSeqTable[i][j-1]);     }   }   return supSeqTable[m][n]; } int main() {   string first = "ABCDEF";   string second = "XYDEF";   cout << "Length of the shortest supersequence is " << superSeq(first, second); }

আউটপুট

সর্বনিম্ন সুপারসিকোয়েন্সের দৈর্ঘ্য ৮

  1. মার্জ সোর্ট (Merge Sort)

  2. ঠিক k সংখ্যক এজ দিয়ে শর্টেস্ট পাথ (Shortest path with exactly k Edges)

  3. সর্বোচ্চ সাধারণ সাবসিকোয়েন্স (LCS)

  4. সিঙ্গেল-সোর্স শর্টেস্ট পাথস, আর্বিট্রারি ওয়েটস (বেলমান-ফোর্ড)