সমস্ত সাধারণ সাবস্ট্রিংগুলি অনুসন্ধানের জন্য কি প্রত্যয় গাছগুলি ব্যবহার করা যেতে পারে?


10

আমি স্ট্রিং ক্রমগুলি তুলনা করতে প্রত্যয় গাছ ব্যবহার করার চেষ্টা করছি। আমি প্রত্যয় গাছ ব্যবহার করে দীর্ঘতম সাধারণ সাব স্ট্রিং সমস্যার জন্য বাস্তবায়ন / তত্ত্বটি পেয়েছি। তবে, আমি যা খুঁজছি তা সম্পর্কিত সমস্যা সম্পর্কিত একটি আলোচনা - "সমস্ত সাধারণ সাবস্ট্রিংগুলি"। বিশেষত, আমার একটি সমস্যা রয়েছে যার মধ্যে আমাকে প্রথমে সর্বাধিক দীর্ঘতম সাধারণ স্ট্রিংগুলি সন্ধান করতে হবে, তারপরে পরবর্তী দীর্ঘতম সাধারণ স্ট্রিংগুলিতে সন্ধান করুন যাতে ইতিমধ্যে পাওয়া এলসিএস সূচকগুলি অন্তর্ভুক্ত থাকে না এবং আরও ন্যূনতম দৈর্ঘ্য পর্যন্ত। কেবলমাত্র দুটি সিক্যুয়েন্সের জন্য জেনারেলাইজড প্রত্যয় গাছ (জিএসটি) তৈরি করে এই সমস্যাটি সমাধানযোগ্য? আমি জানি যে এলসিএস অনুসন্ধান এবং অপসারণের প্রতিটি পুনরাবৃত্তির পরে বারবার একটি জিএসটি নির্মাণ করে সমাধান করা যেতে পারে। তবে, আমি ভাবছি যে আমি যদি একটি ঝরঝরে কৌশল মিস করছি যেখানে জিএসটি কেবল একবারই তৈরি করা হয়েছে।


এটি একটি আকর্ষণীয় প্রশ্ন। সমস্যাটি হ'ল যদি আমাদের এবং আমরা দেখতে পেয়েছি যে হ'ল এলসিএস আর্ট , আমরা সহজেই প্রত্যয় গাছ (বা প্রত্যয় অ্যারে, যাই হোক না কেন) থেকে " " সরাতে পারি না । আমরা প্রথম পদক্ষেপের পরে মতো কিছু পেতে চাই , তাই না? β টি β এস = α $ γ γS=αβγβTβS=α$γ
Dmytro Korduban

উত্তর:


3

হ্যাঁ, প্রত্যয় গাছগুলি সমস্ত সাধারণ সাবস্ট্রিংগুলি সন্ধান করতে ব্যবহার করা যেতে পারে। আমি পরিবর্তে একটি প্রত্যয় অ্যারের ব্যবহার করতে বলব, তবে যদি আপনার ইতিমধ্যে প্রত্যয় গাছ থাকে তবে প্রত্যয় গাছ থেকে প্রত্যয় অ্যারে তৈরি করতে ডিএফএসের সাথে লিনিং সময় লাগে। সুতরাং আমার উত্তরটির বাকি অংশটি ধরে নেবে আমরা একটি প্রত্যয় অ্যারের সাথে কাজ করছি।

একটি টেক্সট দেওয়া জন্য একটি সাফিক্স অ্যারের পরিসীমা পূর্ণসংখ্যার একটি অ্যারে থেকে এর lexicographic ক্রম উল্লেখ স্ট্রিং এর প্রত্যয় $ এস 0 এন এন + 1 এসS=s1,...,snS0nn+1S

আমরা দীর্ঘতম সাধারণ উপসর্গ, সাথে প্রত্যয় অ্যারের সাথে করতে । কাসাই এট আল দ্বারা কাগজে উল্লিখিত হিসাবে আমরা লিনিয়ার সময়ে অ্যারে তৈরি করতে পারি । প্রত্যয় অ্যারে এবং তাদের LCP অ্যারে একসঙ্গে লাইন আপ একটি উপায় যে LCP অ্যারে বলে মধ্যে একটি সূচক দেওয়া মধ্যে যেখানে সূচক নম্বর, তারপর সাধারণ সাবস্ট্রিং এবং এক উদাহরণ হিসেবে বলা যায় শুরুর হতে হবে দ্বিতীয় উদাহরণের সূচনা সূচক হবে। দৈর্ঘ্য অবশ্যই lcp অ্যারেতে মান।এল সি পি গুলি পি [ ] s একটি [ ] গুলি একটি [ - 1 ]LCPsLCPslcp[k]ksa[k]sa[k1]


3

আমার ধারণা আছে যা কার্যকর হতে পারে। আমরা এবং টি সিকোয়েন্সগুলির জন্য একটি সাধারণীকৃত প্রত্যয় গাছ দিয়ে শুরু করি । এর সাবট্রিতে এস এবং টি উভয়ের প্রত্যয় সহ প্রতিটি অভ্যন্তরীণ নোড অনুক্রমের কিছু সাধারণ স্ট্রিংয়ের সাথে মিলে যায়। আসুন এই জাতীয় নোডগুলিকে অ-তুচ্ছ বলি। সাধারণ সাবস্ট্রিংটি সর্বাধিক, যদি সংশ্লিষ্ট নোডের কোনও তুচ্ছ শিশু না থাকে। যদি নোড বনাম অ তুচ্ছ হয়, আমরা তার সাবট্রি একটি অ তুচ্ছ নোডের বৃহত্তম স্ট্রিং গভীর সংরক্ষণ গুলি ( বনাম ) । তাহলে রুট হয় তাহলে গুলি ( )STSTvlcs(v)rlcs(r) এবং টি এর দীর্ঘতম সাধারণ স্ট্রিংয়ের দৈর্ঘ্য ।ST

সিকোয়েন্সগুলির মধ্যে একটি থেকে সাবস্ট্রিং মোছার পরে গাছ আপডেট করা খুব বেশি শক্ত হওয়া উচিত নয়। আমরা প্রথমে মুছে ফেলা প্রত্যয়গুলির সাথে সম্পর্কিত পাতাগুলি মুছে ফেলি, যখন প্রয়োজন হয় তাদের পূর্বপুরুষদের আপডেট করে। তারপরে আমরা মুছে ফেলা স্ট্রিংয়ের আগের প্রত্যয়গুলি প্রক্রিয়াকরণ শুরু করি। চলুন এর বর্তমান পাতার সর্বনিম্ন তুচ্ছ-পূর্বসূর হয়ে উঠুন। প্রত্যয়টির দৈর্ঘ্য যদি কে হয় (আমরা মুছে ফেলা থেকে কে পদক্ষেপে) এবং কে < এল সি এস ( ভি ) , আমাদের প্রয়োজন অনুসারে পূর্বপুরুষদের আপডেট করে গাছের যথাস্থানে তার প্রত্যয়টি স্থানান্তর করতে হবে। যদি কে এল সি এস ( ভি )vkkk<lcs(v)klcs(v), আমরা সম্পন্ন করেছি, কারণ আমরা তুচ্ছ শিকড় সহ সাবট্রিতে আগ্রহী না।

সামগ্রিক অ্যালগরিদম বারবার এবং টি এর দীর্ঘতম সাধারণ স্তরটিকে সন্ধান করে এবং এর দুটি উপস্থিতিগুলির একটির উপস্থিতি দুটি সিকোয়েন্স থেকে মুছে দেয়, যতক্ষণ না এলসিএসের দৈর্ঘ্য যথেষ্ট বড় হয়।ST

কিছু প্রযুক্তিগত বৈশিষ্ট্য রয়েছে, তবে সাধারণ ধারণাটি কাজ করা উচিত।


0

সংক্ষিপ্ত পাঠ্য এস $ টি দিয়ে শুরু করুন , যেখানে T * বা টি তে কোথাও হয় না । এই পাঠ্য থেকে প্রত্যয় গাছ / অ্যারে তৈরি করুন। সমস্ত সঠিক সর্বাধিক পুনরাবৃত্তি সংগ্রহ করার জন্য এই প্রত্যয় ডেটা কাঠামোটিকে অতিক্রম করা এখন সহজ। বাম প্রসঙ্গটি পরীক্ষা করে, বাম-বাম সর্বাধিক পুনরাবৃত্তিগুলি ফিল্টার করুন। আবুয়েলহোদা এট আল-এর মতো বুড়ো-হুইলারের টেবিল ব্যবহার করে এই বাম দিকে ফিল্টারিং কার্যকর করা যেতে পারে, যদিও আমি বিশ্বাস করি না যে এটি প্রয়োজনীয়। কেবলমাত্র এস বা কেবল টি তে ঘটছে Repএই মুহুর্তে ওলসোকে বাদ দেওয়া উচিত। পুনরাবৃত্তিগুলি যা অপসারণ করা হয় নি তারপরে অগ্রাধিকারের সারিতে দৈর্ঘ্য দ্বারা সংজ্ঞায়িত করা হয়। ট্র্যাভারসাল করার পরে, রেকর্ড করা পুনরাবৃত্তিগুলি অগ্রাধিকার থেকে সরানো হিসাবে, চূড়ান্ত ফিল্টারিং (সাবস্ট্রিং কনটেন্টের জন্য) চালানো যেতে পারে। সর্বাধিক বাক্যাংশের ব্যবহার দেওয়া, তবে আমি সন্দেহ করি যে এই ফিল্টারিংয়ের খুব কমই প্রয়োজনীয় হবে।

এই অ্যালগরিদমটি আমার নিজস্ব আবিষ্কার। আমি এটিকে খুব চালাক হিসাবে শ্রেণিবদ্ধ করব না, তবে এটি কাজ করা উচিত।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.