একটি পার্টিশন থেকে অনন্য সাবস্ট্রিংয়ের সর্বাধিক সংখ্যা


30

আমি শিরোনামটি পরিবর্তন করেছি যাতে এটি আরও বোধগম্য হয়।

এখানে প্রশ্নের বিস্তারিত সংস্করণ দেওয়া হল:

আমাদের একটি স্ট্রিং রয়েছে s এবং এটি সাবস্ট্রিংগুলিতে বিভক্ত করতে চাই । প্রতিটি সাবস্ট্রিং একে অপরের থেকে পৃথক। এক কাট থেকে আমরা যে অনন্য সাবস্ট্রিংয়ের সর্বাধিক সংখ্যা পেতে পারি । অন্য কথায়, অনন্য সাবস্ট্রিংগুলির সর্বাধিক সংখ্যক যা ফর্মের সাথে মিলিত হয় s

এখানে কিছু উদাহরন:

Example 1
s = 'aababaa'
output = 4
Explain: we can split `s` into aa|b|aba|a or aab|a|b|aa, 
         and 4 is the max number of substrings we can get from one split.

Example 2
s = 'aba'
output = 2
Explain: a|ba

Example 3
s = 'aaaaaaa'
output = 3
Explain: a|aa|aaaa

দ্রষ্টব্য : sকেবল ছোট অক্ষর রয়েছে। আমাকে বলা হয়নি যে কত দিন sএবং তাই সর্বোত্তম সময়ের জটিলতা অনুমান করতে পারে না। :(

এটি কি এনপি-হার্ড সমস্যা? যদি তা না হয় তবে কীভাবে আমি এটি দক্ষতার সাথে সমাধান করতে পারি?

আমি আমার এক বন্ধুর কাছ থেকে এই সমস্যাটি শুনেছি এবং এর উত্তর দিতে পারিনি। এই সমস্যাটি সমাধান করার জন্য আমি একটি ট্রাই + লোভী ব্যবহার করার চেষ্টা করছি। পদ্ধতিটি উদাহরণস্বরূপ ব্যর্থ হয়।

এই যে ট্রাই সমাধানটি আমি এনেছি তা এখানে:

def triesolution(s):
    trie = {}
    p = trie
    output = 0
    for char in s:
        if char not in p:
            output += 1
            p[char] = {}
            p = trie
        else:
            p = p[char]
    return output

উদাহরণস্বরূপ 1, উপরের কোডটি 3 এ ফিরে আসবে কারণ এটি বিভক্ত sহওয়ার চেষ্টা করছে a|ab|abaa

যোগ করুন: প্রত্যেকের ধারণার জন্য ধন্যবাদ, দেখে মনে হচ্ছে এই সমস্যাটি একটি এনপি সমস্যার খুব কাছাকাছি রয়েছে। এই মুহুর্তে, আমি এই দিক থেকে এটি চেষ্টা করার চেষ্টা করছি। ধরুন আমাদের একটা ফাংশন আছে Guess(n)। এই ফাংশনটি ফিরে আসবে Trueযদি আমরা nএকটি বিভাজন থেকে Falseঅন্যথায় অনন্য সাবস্ট্রিংগুলি খুঁজে পাই । এখানে একটি পর্যবেক্ষণ হ'ল যদি Guess(n) == True, তবে সবার Guess(i) == Trueজন্য i <= n। যেহেতু আমরা দুটি সংলগ্ন সাবস্ট্রিংগুলি একসাথে একত্রী করতে পারি। এই পর্যবেক্ষণ একটি বাইনারি সমাধান হতে পারে। যাইহোক, এটি এখনও প্রয়োজন আমরা Guessখুব দক্ষতার সাথে ফাংশনটি গণনা করতে পারি । দুঃখের বিষয়, আমি এখনও গণনা করার বহুপদী উপায় খুঁজে পাইনি Guess(n)


প্রথমটি aab|a|b|aaএখনও বিভক্ত হতে পারে যা এখনও 4
smac89

3
কৌতূহলের বাইরে, আপনার স্ট্রিং কতক্ষণ পেতে পারে?
টেমপ্লেটপৃষ্ঠাটিফ

আবাবা কে বিভক্ত করা যায় | আঃ | আবা | আবা | আবাব | আবাবা | আবা | ... ইত্যাদি। আপনি কিভাবে 4 পেয়েছেন?
সুরজ মোতাপার্থি

স্ট্রিংটিতে কেবল aবা রয়েছে b?
ফাম ট্রুং

@ ফ্যামট্রং নং, তবে আপনি ধরে নিতে পারেন এটিতে কেবল ছোট অক্ষর রয়েছে।
wqm1800

উত্তর:


15

এটি সংঘর্ষ-সচেতন স্ট্রিং পার্টিশন সমস্যা হিসাবে পরিচিত এবং অ্যান কন্ডন, জান মাউচ এবং ক্রিস থাচুকের একটি কাগজে 3-স্যাট থেকে হ্রাস দ্বারা এনপি-সম্পূর্ণ দেখানো হয়েছে - সংঘর্ষ-সচেতন স্ট্রিং পার্টিশনের সমস্যার জটিলতা এবং এর জিন সংশ্লেষণের জন্য অলিগো ডিজাইনের সাথে সম্পর্কযুক্ত ( আন্তর্জাতিক কম্পিউটারিং এবং সংযুক্তি সম্মেলন , 265-275, ২০০,)।


আমি সেই কাগজটির উপরে একটি অভিশাপটি দেখেছি এবং ফলাফলটি মনে হচ্ছে এটি কেবল প্রমাণ করে যে এই সমস্যাটি এনপি-হার্ড যেখানে ক্ষেত্রে প্রতিটি অক্ষর হতে পারে এমন অক্ষরের সংখ্যার উপরের সীমা রয়েছে। এটা কি সঠিক? যদি তা হয় তবে এটি এই সমস্যার থেকে কিছুটা আলাদা করে তোলে। সাদৃশ্য দ্বারা যুক্তিযুক্ত, একটি এমএসটি সন্ধান বহুবর্ষীয় সময়ে করা যেতে পারে যদিও "গাছের নোডের উপর একটি এমএসটি বিষয় সন্ধান করুন" এর সমস্যাটি এনপি-হার্ড।
টেম্পলেটটিফাইফ

1
এই সমস্যাটি এনপি-হার্ড হিসাবে দেখানোর জন্য আমাদের পরিচিত এনপি-হার্ড সমস্যাটি (কে-পার্টিশন) কমিয়ে আনতে সক্ষম হওয়া উচিত অন্য সমস্যাগুলির চেয়ে বরং এই সমস্যাটিতে (নিয়ন্ত্রণহীন বিভাজন) to কে-পার্টিশন করার জন্য একটি সমাধানকারী অবশ্যই এই সমস্যাটি সমাধান করতে পারে, তবে এটি এনপি-কঠোরতার প্রমাণ দেয় না।
টেম্পলেটটিফাইফ

আমি দেখতে পাচ্ছি না যে কাগজটি সমস্যার সমাধান করে: আমি বুঝতে পারছি যে কাগজটি সিদ্ধান্ত-সমস্যা সম্পর্কে যদি সর্বাধিক দৈর্ঘ্যের কে সাবস্ট্রিংগুলিতে বিভাজন থাকে। যদি কে মোট স্ট্রিং দৈর্ঘ্যের অর্ধেকের বেশি হয় তবে সিদ্ধান্তের সমস্যাটি তুচ্ছ সত্য (যেমনটি আমি এটি বুঝতে পারি) is
হ্যানস ওলসন

না, এই সমস্যাটি যে বড় কে এর জন্য একটি তুচ্ছ সমাধান রয়েছে তার অর্থ এই নয় যে কে ছোট হবে এবং হ্রাস কাজ করবে।
টেমপ্লেটিপটিফ

8

(আমাকে এই আলোচনা সম্পর্কে সচেতন করার জন্য গিলাদ বারকানকে (גלעד ברקן) অনেক ধন্যবাদ।)

আমাকে এই সমস্যাটি সম্পর্কে আমার ধারণাগুলি একটি বিশুদ্ধ তাত্ত্বিক দৃষ্টিকোণ থেকে ভাগ করতে দিন (নোট করুন যে আমি "সাবওয়ার্ড" এর পরিবর্তে "ফ্যাক্টর "ও ব্যবহার করি)।

আমি মনে করি যে এখানে বিবেচনা করা সমস্যা (বা সমস্যা) এর পর্যাপ্ত আনুষ্ঠানিক সংজ্ঞাটি নিম্নলিখিত:

একটি ডাব্লু দেওয়া হয়েছে, শব্দগুলি u_1, u_2, ..., u_k সন্ধান করুন

  • u_i! = u_j প্রতি i এর জন্য, 1 <= i <j <= k এবং এর সাথে জে
  • u_1 u_2 ... u_k = w

ম্যাক্সিমাইজেশন বৈকল্পিক (আমরা অনেকগুলি u_i চাই): সর্বাধিক কে

মিনিমাইজেশন বৈকল্পিক (আমরা সংক্ষিপ্ত u_i চাই): সর্বনিম্ন সর্বোচ্চ {| u_i | : 1 <= i <= কে}

এই সমস্যাগুলি অতিরিক্ত বাউন্ডুলি বি দিয়ে সিদ্ধান্ত গ্রহণের সমস্যা হয়ে দাঁড়ায়, যা আমরা "বহু-কারণ" -ভারেন্ট বা "সংক্ষিপ্ত কারণগুলি" -বিভারেন্টের কথা বলছি কিনা তার অনুসারে, কে এর উপর একটি নিম্ন আবদ্ধ (আমরা কমপক্ষে বি চাই) গুণক), বা সর্বোচ্চ bound | u_i | উপরের আবদ্ধ : যথাক্রমে 1 <= i <= k} (আমরা সর্বাধিক বি দৈর্ঘ্যের গুণক চাই)। এনপি-কঠোরতা সম্পর্কে কথা বলার জন্য, আমাদের সিদ্ধান্তের সমস্যাগুলি সম্পর্কে কথা বলা উচিত।

আসুন "সংক্ষিপ্ত কারণগুলি" -বিভাজন এবং "অনেকগুলি কারণ" -ভেরিয়েন্টের জন্য এমএফ পদটি ব্যবহার করি। বিশেষত, এবং এটি একটি সত্যই গুরুত্বপূর্ণ বিষয়, সমস্যাগুলি এমনভাবে সংজ্ঞায়িত করা হয় যে আমরা কিছু বর্ণমালার উপরে একটি শব্দ পাই যা কোনওভাবেই সীমাবদ্ধ নয়। সমস্যার সংস্করণটি ছিল আমরা কী এমন একটি প্রাইমারী জানি যে আমরা কেবল ইনপুট শব্দগুলি পেয়ে থাকি, বলি, বর্ণমালা {এ, বি, সি, ডি a একটি আলাদা সমস্যা! দ্বারা NP-কঠোরতা নেই না স্বয়ংক্রিয়ভাবে উপর "অবাধ" থেকে "সংশোধন করা হয়েছে বর্ণমালা" বৈকল্পিক (আধুনিক সহজ হতে পারে) এর বহন।

এসএফ এবং এমএফ উভয়ই এনপি-সম্পূর্ণ সমস্যা। এটি যথাক্রমে [1, 1b] এবং [2] এ প্রদর্শিত হয়েছে (যেমন গিলাদ ইতিমধ্যে উল্লেখ করেছেন)। এই আলোচনার শুরুতে যদি আমি এখানে (সম্ভবত খুব) অনানুষ্ঠানিক সমস্যার সংজ্ঞাটি সঠিকভাবে বুঝতে পারি তবে এই আলোচনার সমস্যাটি হ'ল সমস্যা এমএফ। প্রাথমিকভাবে উল্লেখ করা হয়নি যে শব্দগুলি কিছু নির্দিষ্ট বর্ণমালা থেকে সীমাবদ্ধ ছিল, পরে বলা হয় যে আমরা অনুমান করতে পারি যে কেবলমাত্র ছোট-বড় অক্ষর ব্যবহৃত হয়। যদি এর অর্থ হ'ল আমরা কেবলমাত্র নির্দিষ্ট বর্ণমালা- a, b, c, ..., z over এর উপরের শব্দগুলি বিবেচনা করি, তবে এটি আসলে এনপি-কঠোরতার ক্ষেত্রে অনেকটা পরিবর্তিত হবে।

নিবিড় দৃষ্টিভঙ্গি এসএফ এবং এমএফের জটিলতার কিছু পার্থক্য প্রকাশ করে:

  1. কাগজ [১, ১ বি] দেখায় যে এসএফ এনপি-সম্পূর্ণ রয়ে গেছে যদি আমরা বর্ণমালাকে একটি বাইনারি হিসাবে স্থির করি (আরও সুনির্দিষ্টভাবে: একটি এবং বি এবং একটি আবদ্ধ বি বর্ণের উপরে একটি শব্দ পাওয়া, আমরা এটির দৈর্ঘ্যের স্বতন্ত্র কারণগুলিতে গুণক করতে পারি) সর্বাধিক বি?)।
  2. কাগজ [1, 1 বি] দেখায় যে এসএফ এনপি-সম্পূর্ণ রয়ে গেছে যদি আমরা বাউন্ড বি = 2 ঠিক করি (আরও সুনির্দিষ্টভাবে: একটি শব্দ ডাবল পাওয়া, আমরা কি এটির দৈর্ঘ্যের স্বতন্ত্র কারণগুলিতে সর্বোচ্চ 2?) তৈরি করতে পারি?)
  3. কাগজ [3] দেখায় যে যদি বর্ণমালা এবং আবদ্ধ বি উভয়ই স্থির করা হয়, তবে এসএফ বহু-কালীন সময়ে সমাধান করা যেতে পারে।
  4. কাগজ [২] দেখায় যে এমএফ এনপি-সম্পূর্ণ, তবে কেবলমাত্র বর্ণমালা সীমাবদ্ধ না থাকলে বা কোনও পূর্বনির্ধারিত স্থির করা হয় না ! বিশেষত, যদি সমস্যাটি এনপি-সম্পূর্ণ হয় তবে এটি প্রশ্নের উত্তর দেয় না যদি আমরা কেবলমাত্র কিছু নির্দিষ্ট বর্ণমালায় (যেমন ব্যবহারিক সেটিংসে যেমন হয় তেমন ক্ষেত্রে) শব্দগুলি বিবেচনা করি।
  5. কাগজ [3] দেখায় যে এমএফ বহুবর্ষীয় সময়ে সমাধান করা যেতে পারে যদি ইনপুট বাউন্ডস বি কিছুটা ধ্রুবক দ্বারা আবার উপরের সীমানা হয়, অর্থাৎ সমস্যা ইনপুটটি একটি শব্দ এবং একটি bound 1, 2, ..., কে K , যেখানে কে কিছু স্থির ধ্রুবক।

এই ফলাফল সম্পর্কে কিছু মন্তব্য: রাইট (1) এবং (2), এটি স্বজ্ঞাতভাবে পরিষ্কার যে বর্ণমালা যদি বাইনারি হয় তবে সমস্যাটি এসএফকে কঠিন করার জন্য, আবদ্ধ বিটিও ঠিক করা যাবে না। বিপরীতে, বি = 2 ঠিক করার অর্থ হ'ল কঠিন দৃষ্টান্ত তৈরি করতে বর্ণমালার আকারটি আরও বড় হওয়া উচিত। ফলস্বরূপ, (3) বরং তুচ্ছ (আসলে, [3] কিছুটা আরও বলেছে: আমরা তখন চলমান সময়টিকে কেবল বহুপক্ষীয় নয়, তবে | ডাব্লু | a 2 বারের চেয়ে বেশি কারণ হিসাবে চিহ্নিত করতে পারি যা কেবল বর্ণমালার আকারের উপর নির্ভর করে এবং আবদ্ধ বি)। (5) পাশাপাশি কঠিন নয়: বি এর তুলনায় আমাদের শব্দটি দীর্ঘ হয়, তবে আমরা বিভিন্ন দৈর্ঘ্যের কারণগুলিতে কেবল বিচ্ছিন্ন হয়ে কাঙ্ক্ষিত গুণনীয়করণ পেতে পারি। যদি তা না হয়, তবে আমরা সমস্ত সম্ভাবনার উপর চাপ প্রয়োগ করতে পারি, এটি কেবল বিতে ঘনিষ্ঠ, যা এই ক্ষেত্রে স্থির হিসাবে ধরে নেওয়া হয়।

সুতরাং আমাদের কাছে থাকা চিত্রটি নিম্নরূপ: এসএফ আরও কঠিন বলে মনে হচ্ছে, কারণ আমাদের এমনকি নির্দিষ্ট বর্ণমালা বা একটি নির্দিষ্ট বাউন্ড বিয়ের জন্যও কঠোরতা রয়েছে অন্যদিকে এমএফ সমস্যাটি সীমাবদ্ধ থাকলে পলি-টাইম দ্রবণযোগ্য হয় (মধ্যে এই বিষয়ে এটি এসএফের চেয়ে সহজ), তবে বর্ণমালার আকারটি সম্পর্কিত প্রশ্নটি খোলা থাকে। সুতরাং এমএফ এসএফের তুলনায় কিছুটা কম জটিল, এমনকি যদি দেখা যায় যে স্থির বর্ণমালার জন্য এমএফও এনপি-সম্পূর্ণ। তবে, যদি এটি দেখানো যায় যে পল-টাইমে স্থির বর্ণমালাগুলির জন্য এমএফ সমাধান করা যায়, তবে এমএফকে এসএফের চেয়ে অনেক বেশি সহজ দেখানো হয় ... কারণ এটির জন্য এটি শক্ত একটি ক্ষেত্রে কিছুটা কৃত্রিম (আনবাউন্ড বর্ণমালা!) ।

আবদ্ধ বর্ণমালা দ্বারা এমএফের কেস সমাধান করার চেষ্টা করার জন্য আমি কিছুটা চেষ্টা করেছিলাম, তবে আমি এটি নিষ্পত্তি করতে সক্ষম হইনি এবং তখন থেকেই এটিতে কাজ করা বন্ধ করে দিয়েছি। আমি বিশ্বাস করি না যে অন্যান্য গবেষকরা এটি সমাধানের জন্য খুব কঠোর প্রচেষ্টা করেছেন (তাই এটি খুব কঠিন ওপেন সমস্যাগুলির মধ্যে একটি নয়, অনেক লোক ইতিমধ্যে চেষ্টা করেছে এবং ব্যর্থ হয়েছে; আমি এটাকে কোনওভাবেই অক্ষম মনে করি)। আমার অনুমানটি হ'ল এটি স্থির বর্ণমালার জন্যও এনপি-হার্ড, তবে সম্ভবত হ্রাসটি এত জটিল যে আপনি "এমএফ 35 বা তার চেয়ে বড় আকারের বর্ণমালার জন্য শক্ত" বা এমন কিছু পাবেন যা খুব ভাল লাগবে না either ।

আরও সাহিত্যের বিষয়ে, আমি কাগজটি জানি [4], যা ডাব্লু শব্দেরকে পৃথক ফ্যাক্টরগুলিতে বিভক্ত করার সমস্যা বিবেচনা করে u_1, u_2, ..., u_k যা সমস্ত প্যালিনড্রোম, যা এনপি-সম্পূর্ণও।

আমি কাগজে একটি তাত্ক্ষণিকভাবে নজর রেখেছি [5], গিলাদ নির্দেশ করেছেন। যদিও এটি অন্যরকম সেটিং বিবেচনা করে। এই গবেষণাপত্রে, লেখকগণ একটি নির্দিষ্ট শব্দের মধ্যে কতগুলি স্বতন্ত্র উপসর্গ বা সাব-ওয়ার্ড অন্তর্ভুক্ত থাকতে পারে তার সম্মিলিত প্রশ্নে আগ্রহী, তবে এগুলি ওভারল্যাপ করতে পারে। উদাহরণস্বরূপ, আয়াবাব 20 টি পৃথক সাবওয়ার্ড এ, বি, আ, আব, বা, বিবি, আআআব, আব, আব, বা, আব, আব, আব, আব, আবা, আবাবা, আবাব, আবাবা, আবাবা (সম্ভবত আমি) ভুল হিসাববিহীন, তবে আপনি ধারণাটি পাবেন)। তাদের কারও কারও একটি মাত্র ঘটনা রয়েছে, যেমন বা'এর মতো, কিছু আবার আ'র মতো। যাইহোক, প্রশ্নটি নয় যে আমরা কীভাবে অনেকগুলি পৃথক কারণ পেতে শব্দটি বিভক্ত করতে পারি, কারণ এর অর্থ প্রতিটি পৃথক প্রতীক হ'ল একটি কারণকে অবদান রাখে।

এই ধরণের সমস্যার ব্যবহারিক সমাধান সম্পর্কে (মনে রাখবেন যে আমি একজন তাত্ত্বিক, তাই নুনের দানার সাথে এটি নিন):

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

  • আপনি যদি প্রাকটিক্যাল সমাধানগুলিতে আগ্রহী হন তবে সমাধানটি আনুমানিকভাবে সহায়ক হতে পারে। সুতরাং সবচেয়ে খারাপ ক্ষেত্রে সর্বোত্তম হিসাবে অর্ধেক বড় হওয়ার গ্যারান্টিযুক্ত ফ্যাক্টরিজেশন পাওয়া খুব খারাপ হবে না।

  • হিউরিস্টিক্স যা একটি প্রবণতাযোগ্য আনুমানিক অনুপাত দেয় না, তবে একটি ব্যবহারিক সেটিংয়ে ভাল কাজ করাও আকর্ষণীয় হবে, আমার ধারণা।

  • সমস্যার উদাহরণগুলি স্যাট বা আইএলপি-দৃষ্টান্তে রূপান্তর করা খুব কঠিন হওয়া উচিত নয় এবং তারপরে আপনি সর্বোত্তম সমাধান পেতে এমনকি একটি স্যাট বা আইএলপি-সলভার চালাতে পারেন।

  • আমার ব্যক্তিগত মতামতটি এমএফ-এর স্থির-বর্ণমালা ক্ষেত্রে এনপি-হার্ড কিনা তা জানা না গেলেও পর্যাপ্ত তাত্ত্বিক অন্তর্দৃষ্টি রয়েছে যা বোঝায় যে সমস্যাটি যথেষ্ট কঠিন তাই এটি বৌদ্ধিক সমাধানগুলি অনুসন্ধান করার পক্ষে যুক্তিযুক্ত কিনা ইত্যাদি that একটি ব্যবহারিক সেটিং ভাল কাজ।


বিবলিওগ্রাফি:

[১] অ্যান কন্ডন, জান মানুচ, ক্রিস থাচুক: স্ট্রিং বিভাজনের জটিলতা। জে ডিস্রিপ্ট অ্যালগরিদম 32: 24-43 (2015)

[১ বি] অ্যান কন্ডন, জান মানুচ, ক্রিস থাচুক: জিন সংশ্লেষের জন্য অলিগো ডিজাইনের সাথে সংঘাত-সচেতন স্ট্রিং পার্টিশন সমস্যা এবং এর সম্পর্ক lation কুকুন ২০০৮: 265-275 75

[২] হেনিং ফার্নাউ, ফ্লোরিন ম্যানিয়া, রবার্ট মারকাস, মার্কাস এল শ্মিড: পরিবর্তনশীলদের সাথে প্যাটার্ন ম্যাচিং: ফাস্ট অ্যালগোরিদম এবং নতুন কঠোরতার ফলাফল। স্ট্যাকস 2015: 302-315

[3] মার্কাস এল। শ্মিড: সাম্য-মুক্ত এবং পুনরাবৃত্তিমূলক স্ট্রিং ফ্যাক্টরিফিকেশনগুলি গণনা করা হচ্ছে। Theor। Comput। সী। 618: 42-51 (2016)

[৪] হিদেও বাননাই, ট্র্যাভিস গাগি, শুনসুক ইনেনাগা, জুহা কার্ক্কেসিনেন, ডোমিনিক কেম্পা, মার্সিন পাইটকোস্কি, শিহো সুগিমোটো: বিবিধ প্যালিনড্রমিক ফ্যাক্টরাইজেশন হ'ল এনপি-কমপ্লিট। আইএনটি। জে। Comput। সী। 29 (2): 143-164 (2018)

[৫] আব্রাহাম ফ্ল্যাক্সম্যান, আরম ওয়েটারথ হ্যারো, গ্রেগরি বি। সারকিন: সর্বাধিক অনেকগুলি পৃথক সাবসেক্সেন্স এবং সাবস্ট্রিং সহ স্ট্রিংস। Electr। জে ঝুঁটি 11 (1) (2004)


(পোস্ট করার জন্য ধন্যবাদ, উপায়!) কেবল স্পষ্ট করে বলতে গেলে, রেফারেন্স সম্পর্কে আমার উপরের মন্তব্য [5] আসলেই একটি আলাদা প্রশ্ন সম্পর্কে ছিল - এটি মূল মন্তব্য বিভাগে লুকস্টর্মসের প্রশ্নের প্রতিক্রিয়া ছিল , "এন এর যে কোনও স্ট্রিংয়ের জন্য পি সম্ভাব্য অক্ষরের দৈর্ঘ্য, এই জাতীয় স্ট্রিংগুলির সর্বাধিক অনন্য সাব-স্ট্রিং কী থাকতে পারে? "
5

3

এখানে একটি সমাধান তবে এটি খুব দ্রুত ফুঁড়ে উঠেছে এবং একটি কার্যকর সমাধানের কাছাকাছি কোথাও নেই। এটি প্রথমে স্ট্রিংটিকে অনন্য সাবস্ট্রিংগুলির তালিকায় ভেঙে অর্ডার করার জন্য কোনও উদ্বেগ নেই, তারপরে itertools.permutes ব্যবহার করে সেই সাবস্ট্রিংগুলিকে আবার মূল স্ট্রিংয়ে পুনরায় সাজানোর জন্য চেষ্টা করে, প্রতিটি স্ট্রিমিট পরীক্ষা করে এটি পরীক্ষা করে দেখুন যে এটি স্ট্রিংয়ের সাথে মেলে কিনা।

import itertools as it

def splitter(seq):                                                             
    temp = [seq]
    for x in range(1, len(seq)):
        print(seq[:x], seq[x:])
        temp.append(seq[:x])
        temp.append(seq[x:])
    return temp

if __name__ == "__main__":
    test = input("Enter a string: ")
    temp = splitter(test)
    copy = temp[::]
    condition = True
    for x in temp:
        if len(x) > 1:
            copy.extend(splitter(x))
    copy = sorted(list(set(copy)))
    print(copy)
    count = []
    for x in range(len(test)):
        item = it.permutations(copy, x)
        try:
            while True:
                temp = next(item)
                if "".join(list(temp)) == test:
                    if len(temp) == len(set(temp)):
                        count.append((len(temp), temp))
        except StopIteration:
            print('next permutation begin iteration')
            continue
    print(f"All unique splits: {count}")
    print(f"Longest unique split : {max(count)[0]}")

প্রথম পরীক্ষার জন্য আমরা এটি পেয়েছি:

All unique splits: [(1, ('aababaa',)), (2, ('a', 'ababaa')), (2, ('aa', 'babaa')), (2, 
('aab', 'abaa')), (2, ('aaba', 'baa')), (2, ('aabab', 'aa')), (2, ('aababa', 'a')), (3, 
('a', 'ab', 'abaa')), (3, ('a', 'aba', 'baa')), (3, ('a', 'abab', 'aa')), (3, ('aa', 'b',
 'abaa')), (3, ('aa', 'ba', 'baa')), (3, ('aa', 'baba', 'a')), (3, ('aab', 'a', 'baa')),
 (3, ('aab', 'ab', 'aa')), (3, ('aab', 'aba', 'a')), (3, ('aaba', 'b', 'aa')), (3,
 ('aaba', 'ba', 'a')), (4, ('a', 'aba', 'b', 'aa')), (4, ('aa', 'b', 'a', 'baa')), (4,
 ('aa', 'b', 'aba', 'a')), (4, ('aab', 'a', 'b', 'aa'))]
Longest unique split : 4

সম্ভবত এটি কোনওভাবেই অনুকূলিত করা যেতে পারে তবে এটি এই মেশিনে বেশ কয়েক সেকেন্ড সময় নেয়।


3

আমি এই সমস্যাটিকে চেষ্টা করে দেখেছি এবং বিবেচনা করে বিবেচনা করেছি বা প্রদত্ত সূচকে কোনও বিভাজন তৈরি করব কিনা। সুতরাং এই ফাংশনটি পুনরাবৃত্ত হয় এবং প্রতিটি সূচকে ২ টি শাখা তৈরি করে index. সূচক i তে বিভাজন না 2. সূচীতে পার্টিশন i।

পার্টিশনের উপর ভিত্তি করে আমি একটি সেট পূরণ করি এবং তারপরে সেটটির আকার ফিরে আসি

def max(a,b):
    if a>b: return a
    return b



def keep(last, current, inp, map):
    # print last
    # print current
    # print map

    if len(inp) == 2 :
        if inp[0]==inp[1]: return 1
        return 2

    if current >= len(inp):
        return len(map)
    // This is when we are at the start of the string. 
    // In this case we can only do one thing not partition and thus take the entire string as a possible string.

    if current == last :
        map11 = map.copy()
        map11.add(inp[current:])
        return keep(last, current + 1, inp, map11)

    map1 = map.copy();
    if current != (len(inp)-1):
        map1.add(inp[last:current])

    map2 = map.copy()

    return max(keep(last,current+1,inp, map2), keep(current, current+1, inp, map1))

print keep(0,0,"121", set([]))
print keep(0,0,"aaaaaaa", set([]))
print keep(0,0,"aba", set([]))
print keep(0,0,"aababaa", set([]))
print keep(0,0,"21", set([]))
print keep(0,0,"22", set([]))

https://onlinegdb.com/HJynWw-iH


আপনার সমাধানের জন্য ধন্যবাদ! এই ডিএফএস সমাধানটি খুব পরিষ্কার। আমার কাছে একটি ছোট পরামর্শ keepফাংশনটিকে ত্বরান্বিত করতে পারে কারণ set.copy()ফাংশনটি খুব সময়সাপেক্ষ। এই ফাংশন স্ট্যাকটি শেষ করার পরে ব্যাকট্র্যাকিং ব্যবহার করার বিষয়ে কীভাবে বর্তমান প্রার্থীকে সেট থেকে সরান?
wqm1800

@ wqm1800 আপনি কীভাবে বিস্তারিত জানাতে পারেন, আমি দুঃখিত আমি ঠিক বুঝতে পারছি না। এমনকি যদি আমরা ব্যাকট্র্যাক ব্যবহার করি, তবুও mergeআমাদের সর্বদা শাখা থাকায় সেটগুলি আলাদা করতে হবে। সুতরাং এটি হয় মার্জ বা অনুলিপি। আপনি বিস্তারিত বলতে পারেন?
রবি চন্দক

1
এখানে আমার ব্যাকট্র্যাকিংয়ের সমাধান । এটি কাজ করতে পারে কারণ ফাংশন স্ট্যাকটি ডিএফএস উপায় হিসাবে কার্যকর করে তাই ফাংশন শেষ হয়ে গেলে এর অর্থ এটি এর সমস্ত সাবস্ট্রি অনুসন্ধান শেষ করে।
wqm1800

3

আপনি এখন পর্যন্ত বর্তমান পথে অনন্য স্ট্রিংয়ের ট্র্যাক রাখতে দ্বিতীয় প্যারামিটার হিসাবে একটি সেট সহ একটি পুনরাবৃত্ত ফাংশন ব্যবহার করতে পারেন। প্রতিটি পুনরাবৃত্তির জন্য, সম্ভাব্য প্রার্থী স্ট্রিংয়ের জন্য স্ট্রিংটি বিভক্ত করার জন্য সমস্ত সূচকগুলি 1 দিয়ে পুনরাবৃত্তি করুন এবং প্রার্থী স্ট্রিংটি এখনও সেটটিতে না থাকলে, বাকী স্ট্রিং সহ পুনরাবৃত্ত কল করুন এবং প্রার্থী সেটে যুক্ত হবে বাকি স্ট্রিং থেকে সর্বাধিক সংখ্যক অনন্য সাবস্ট্রিংগুলি পেতে, এটিতে 1 যুক্ত করুন এবং পুনরাবৃত্তি থেকে সর্বাধিক সর্বাধিক ফিরিয়ে দিন। প্রদত্ত স্ট্রিং ফাঁকা থাকলে বা প্রার্থীর সমস্ত স্ট্রিং ইতিমধ্যে সেটে থাকলে 0 প্রদান করুন:

def max_unique_substrings(s, seen=()):
    maximum = 0
    for i in range(1, len(s) + 1):
        candidate = s[:i]
        if candidate not in seen:
            maximum = max(maximum, 1 + max_unique_substrings(s[i:], {candidate, *seen}))
    return maximum

ডেমো: https://repl.it/@blhsing/PriceyScalySphere

পাইথন ৩.৮-তে, উপরের যুক্তিটি maxজেনারেটর এক্সপ্রেশন সহ ফাংশনে একটি কল দিয়েও রচনা করা যেতে পারে যা একটি নিয়োগের এক্সপ্রেশন সহ "দেখা" হয়েছে এমন প্রার্থীদের ফিল্টার করে:

def max_unique_substrings(s, seen=()):
    return max((1 + max_unique_substrings(s[i:], {candidate, *seen}) for i in range(1, len(s) + 1) if (candidate := s[:i]) not in seen), default=0)

1

এখানে একটি গ্রাফ-তত্ত্ব ভিত্তিক উত্তর।

মডেলিং
এই সমস্যাটি আকারের গ্রাফটিতে সর্বাধিক স্বতন্ত্র সেট সমস্যা হিসাবে মডেল করা যেতে পারে O(n²):
আসুন w = c_1, ..., c_nইনপুট স্ট্রিং হোক।
দিন G = (V,E)একটি undirected গ্রাফ হতে নির্মিত নিম্নরূপ:
V = { (a, b) such that a,b in [1, n], a <= b }। আমরা দেখতে পারি যে আকার Vহয় n(n-1)/2, যেখানে প্রতিটি প্রান্তবিন্দু একটি সাবস্ট্রিং প্রতিনিধিত্ব করে w
তারপরে, প্রতিটি দ্বিখণ্ডনের জন্য (a1, b1)এবং (a2, b2)আমরা প্রান্তটি ((a1, b1), (a2, b2))iff
(i) [a1, b1]ছেদ করে [a2, b2]বা
(ii) তৈরি করি c_a1...c_b1 = c_a2...c_b2
অন্যথায় বলা হয়েছে, আমরা দুটি শীর্ষ কোণের মধ্যে একটি কিনারা তৈরি করি যদি (i) তারা যে সাবস্ট্রিংগুলিকে ওভারল্যাপ উপস্থাপন করে wবা (ii) দুটি সাবস্ট্রিংগুলি সমান হয়।

আমরা তখন দেখতে পারেন কেন একটি সর্বাধিক স্বাধীন সেট এর Gআমাদের সমস্যা উত্তর প্রদান করে।

জটিলতা
সাধারণ ক্ষেত্রে, সর্বাধিক স্বতন্ত্র সেট (এমআইএস) সমস্যাটি এনপি-হার্ড , সময়কালীন জটিলতা O(1.1996^n)এবং বহুবর্ষীয় স্থানের মধ্যে রয়েছে [জিয়াও, নামগোশি (2017)]
প্রথমে আমি ভেবেছিলাম যে ফলাফলের গ্রাফটি একটি কর্ডাল গ্রাফ হবে (দৈর্ঘ্যের কোনও প্ররোচিত চক্র> 3) নয়, যেহেতু এমআইএস সমস্যাটি গ্রাফিকের এই শ্রেণিতে রৈখিক সময়ে সমাধান করা যেতে পারে since
তবে আমি দ্রুত উপলব্ধি করেছিলাম যে এটি ঘটনা নয়, উদাহরণস্বরূপ পাওয়া খুব সহজ যেখানে 5 এবং আরও বেশি দৈর্ঘ্যের প্ররোচিত চক্র রয়েছে।
প্রকৃতপক্ষে, ফলস্বরূপ গ্রাফ এমন কোনও 'দুর্দান্ত' বৈশিষ্ট্য প্রদর্শন করে না যা আমরা সাধারণত দেখি এবং এটি এমআইএস সমস্যার জটিলতাটিকে বহুপদীতে হ্রাস করতে দেয়।
সমস্যাটির জটিলতার উপর এটি কেবল একটি উপরের গণ্ডি, যেহেতু বহুপদী সময় হ্রাস কেবল এক দিকে চলে যায় (আমরা এই সমস্যাটিকে এমআইএস সমস্যাটিতে হ্রাস করতে পারি, তবে অন্যভাবে নয়, কমপক্ষে তুচ্ছভাবে নয়)। সুতরাং শেষ পর্যন্ত আমরা O(1.1996^(n(n-1)/2))সবচেয়ে খারাপ ক্ষেত্রে এই সমস্যার সমাধান করব ।
সুতরাং হায় আফসোস, আমি প্রমাণ করতে পারি নি যে এটি পি তে রয়েছে, বা এটি এনপি-সম্পূর্ণ বা এনপি-হার্ড। একটি নিশ্চিত বিষয় হ'ল সমস্যাটি এনপি-তে রয়েছে তবে আমার ধারণা এটি কারও জন্যই অবাক হওয়ার কিছু নয়।

বাস্তবায়ন
এমআইএস সমস্যার এই সমস্যাটি হ্রাস করার সুবিধা হ'ল এমআইএস একটি শাস্ত্রীয় সমস্যা, যার জন্য বেশ কয়েকটি বাস্তবায়ন পাওয়া যায় এবং এমআইএস সমস্যাটি সহজেই আইএলপি হিসাবেও লেখা হয়।
এখানে এমআইএস সমস্যার আইএলপি গঠনের ব্যবস্থা রয়েছে:

Objective function 
maximize sum(X[i], i in 1..n)
Constraints:
for all i in 1..n, X[i] in {0, 1}
for all edge (i, j), X[i] + X[j] <= 1

আমার মতে, এই সমস্যাটি সমাধানের সবচেয়ে কার্যকর উপায় হওয়া উচিত (এই মডেলিংটিকে এমআইএস সমস্যা হিসাবে ব্যবহার করা), যেহেতু আইএলপি সলভার অবিশ্বাস্যভাবে দক্ষ, বিশেষত যখন এটি বড় উদাহরণগুলির ক্ষেত্রে আসে।

পাইথন 3 এবং জিএলপিকে সলভার ব্যবহার করে এটি একটি বাস্তবায়ন । এটি পরীক্ষা করার জন্য আপনার সিপ্লেক্স ফাইল ফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ একটি এলপি সলভার প্রয়োজন।

from itertools import combinations

def edges_from_string(w):
    # build vertices
    vertices = set((a, b) for b in range(len(w)) for a in range(b+1))
    # build edges
    edges = {(a, b): set() for (a, b) in vertices}
    for (a1, b1), (a2, b2) in combinations(edges, 2):
        # case: substrings overlap
        if a1 <= a2 <= b1:
            edges[(a1, b1)].add((a2, b2))
        if a2 <= a1 <= b2:
            edges[(a2, b2)].add((a1, b1))
        # case: equal substrings
        if w[a1:b1+1] == w[a2:b2+1]:
            if a1 < a2:
                edges[(a1, b1)].add((a2, b2))
            else:
                edges[(a2, b2)].add((a1, b1))
    return edges

def write_LP_from_edges(edges, filename):
    with open(filename, 'w') as LP_file:
        LP_file.write('Maximize Z: ')
        LP_file.write("\n".join([
            "+X%s_%s" % (a, b)
            for (a, b) in edges
        ]) + '\n')
        LP_file.write('\nsubject to \n')
        for (a1, b1) in edges:
            for (a2, b2) in edges[(a1, b1)]:
                LP_file.write(
                    "+X%s_%s + X%s_%s <= 1\n" %
                    (a1, b1, a2, b2)
                )
        LP_file.write('\nbinary\n')
        LP_file.write("\n".join([
            "X%s_%s" % (a, b)
            for (a, b) in edges.keys()
        ]))
        LP_file.write('\nend\n')
write_LP_from_edges(edges_from_string('aababaa'), 'LP_file_1')
write_LP_from_edges(edges_from_string('kzshidfiouzh'), 'LP_file_2')

এর পরে আপনি তাদের সাথে সমাধান করতে পারে glpsolকমান্ড প্রয়োগ করুন: দ্রুত মীমাংসিত পরার (0.02 আমার ল্যাপটপে সেকেন্ড), কিন্তু হিসাবে প্রত্যাশিত, জিনিসপত্র পেতে (অনেক) কঠোর স্ট্রিং আকার বৃদ্ধি হিসাবে .... এই প্রোগ্রামটি শুধুমাত্র সাংখ্যিক মান এবং দেয় (যদিও অনুকূল পার্টিশন), তবুও সর্বোত্তম পার্টিশন এবং সংশ্লিষ্ট সাবস্ট্রিংগুলি পাইপোর মতো এলপি সলভার / পাইথন ইন্টারফেস ব্যবহার করে অনুরূপ প্রয়োগের সাথে পাওয়া যাবে
glpsol --lp LP_file_1
aababaa

সময় এবং মেমরি
aababaa : 0.02 সেকেন্ড, 0.4 এমবি, মান: 4
kzshidfiouzh: 1.4 সেকেন্ড, 3.8 এমবি, মান: 10
aababababbababab: 60.2 সেকেন্ড, 31.5 মেগাবাইট, মান: 8
kzshidfiouzhsdjfyu: 207.5 সেকেন্ড, 55.7 মেগাবাইট, মান: 14
নোট করুন যে এলপি সলভারটিও অফার করে সমাধানটির উপরের নিম্ন এবং উপরের সীমানা, সুতরাং সর্বশেষ উদাহরণের জন্য, আমি এক মিনিটের পরে নিম্ন বাউন্ড হিসাবে আসল সমাধানটি পেতে পারি।


মডেলিং কোনও জটিলতার হ্রাস বা প্রমাণ নয়, যদিও এটি সমাধানগুলি কার্যকর করতে সহায়ক হতে পারে। আমি মূলত মূল উত্তরটির অধীনে একটি মন্তব্য হিসাবে এই খুব মডেল (এমআইএস) লিখেছিলাম এবং পরে এটি মুছে ফেলেছি। এই বিষয়টিতে লেখকদের কয়েকটি তাত্ত্বিকদের মধ্যে অন্যতম মার্কাস শ্মিড ইতিমধ্যে এই ওয়েবপৃষ্ঠায় একটি বিশদ উত্তর দিয়েছেন। সিদ্ধান্ত সমস্যার জটিলতা ক্লাসটি সাহিত্যে উন্মুক্ত থাকে।
5 ברקן

এই ক্ষেত্রে, এমআইএস হ'ল একটি তুচ্ছ সংস্থার কারণ অবশ্যই আমরা "সংযোগ (প্রান্ত) মুক্ত" জিনিসগুলির একটি বৃহত গ্রুপের সন্ধান করছি। একটি অক্ষরের বর্ণমালা সহ, উদাহরণস্বরূপ, উত্তরটি হ'ল একটি সংখ্যা বিভাজন যার জন্য একটি সাধারণ বহুপদী সময় সমাধান হতে পারে। সমস্যাটির এমন কিছু দিক থাকতে পারে যা অপ্টিমাইজেশন দেয় যা একটি O (n ^ 2) ভিত্তিক এলপিকে আরও গবেষণার পরে নিরূপণ করতে পারে এবং এমআইএস ভিউতে বিরতি দিয়ে মিস হবে। তবে এটি সাধারণ কাজের সমাধানের জন্য দুর্দান্ত দেখাচ্ছে।
19 ברקן

আপনি আমার উত্তর পড়েছেন? আমি এই সমস্যা থেকে এমআইএস থেকে একটি তুচ্ছ একমুখী বহুপদী সময় হ্রাস অফার, অন্য কোন উপায় না। একক চরিত্রের বর্ণমালা হিসাবে, সমস্যাটি স্পষ্টতই পি তে, লোভী তুচ্ছ রেজোলিউশনের সাথে।
m.raynal

দেখে মনে হয়েছিল আপনি এমআইএস এর উপর ভিত্তি করে এর জটিলতা শ্রেণি সম্পর্কে ধারণা নিয়েছেন।
23 ברקן

সুতরাং উত্তরটি পড়ুন :-) আপনি দেখতে পাবেন যে এটি তেমন নয়, আমি কেবলমাত্র এমআইএস জটিলতা ব্যবহার করে সমস্যার জটিলতায় উপরের দিকের বাউন্ড দিতে পারি। একটি নিম্ন সীমা না।
m.raynal

0

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

কাগজে, ভেরিয়েবলের সাথে প্যাটার্নের মিল: দ্রুত অ্যালগরিদম এবং নতুন কঠোরতার ফলাফল (হেনিং ফার্নাউ, ফ্লোরিন ম্যানিয়া, রবার্ট মার্কা, এবং মার্কাস এল। শ্মিড, কম্পিউটার সায়েন্সের তাত্ত্বিক দিকগুলির উপর 32 তম সিম্পোজিয়াম, স্ট্যাকস 2015, লেবনিজের খণ্ড 30 ইনফরম্যাটিকস (LIPIcs) পৃষ্ঠাগুলি 302–315, 2015) আন্তর্জাতিক প্রক্রিয়া , লেখকরা দেখায় যে একটি নির্দিষ্ট নম্বর kএবং একটি শব্দের জন্য, সিদ্ধান্ত নিতে এটি এনপি-সম্পূর্ণ w, স্বতন্ত্র কারণ হিসাবে চিহ্নিত wকরা যায় কিনা k

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

শ্মিড (২০১ 2016) তবে লিখেছেন যে "বর্ণমালা ঠিক করা থাকলে ম্যাক্সএফএফ-এস এনপি-সম্পূর্ণ থেকে যায় কিনা এটি এখনও একটি উন্মুক্ত সমস্যা" " (সাম্য-মুক্ত এবং পুনরাবৃত্তিমূলক স্ট্রিং ফ্যাক্টরিফিকেশনগুলি গণনা করা হচ্ছে , তাত্ত্বিক কম্পিউটার বিজ্ঞানের ভলিউম 618 , 7 মার্চ 2016, পৃষ্ঠা 42-51)

সর্বাধিক সাম্য-মুক্ত কারখানার আকার (ম্যাক্সএফএফ-এস) এখনও প্যারামিটারাইজড, যদিও এবং এটি সংজ্ঞায়িত করা হয়:

ইন্সটান্স: একটি শব্দ wএবং একটি সংখ্যা m, 1 ≤ m ≤ |w|

প্রশ্ন: সমতা-মুক্ত ফ্যাক্টরীকরণ পি এর wসাথে কি উপস্থিত রয়েছে s(p) ≥ m? ( s(p)অনুমানের আকার হচ্ছে))

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