কোনও ওয়াইল্ডকার্ড স্ট্রিং কোনও সেটটিতে অন্য একটি ওয়াইল্ডকার্ড স্ট্রিংয়ের সাথে সম্পূর্ণ মিলছে কিনা তা সিদ্ধান্ত নেওয়া হচ্ছে


9

এখানে একটি সমস্যা যা আমাকে কিছুক্ষণের জন্য বগল করে চলেছে। ধরা যাক একটি স্ট্রিং 1s এবং 0 এর ক্রম এবং একটি ওয়াইল্ডকার্ড স্ট্রিং 1, 0 এবং? এর একটি অনুক্রম। সমস্ত স্ট্রিং এবং ওয়াইল্ডকার্ড স্ট্রিংগুলির দৈর্ঘ্য একই। এগুলি মানক ইউনিক্স ওয়াইল্ডকার্ড; 10 ?? 1 ম্যাচ 10011, 10111, ইত্যাদি - ক? সেই অবস্থানে একটি 1 বা 0 এর সাথে মেলে। যদিv এবং w ওয়াইল্ডকার্ড স্ট্রিং হয়, তারপরে আমরা লিখি vw যদি প্রতিটি স্ট্রিং মিলে যায় v এছাড়াও মিলেছে w

সমস্যাগুলি : একটি সেট দেওয়া হয়েছেS ওয়াইল্ডকার্ড স্ট্রিং এবং একটি ক্যোয়ারী v (এছাড়াও একটি ওয়াইল্ডকার্ড স্ট্রিং), সেখানে কি আছে? wS যেমন যে vw? এবং যদি না হয় তবে আমরা যুক্ত করতে পারিv প্রতি S দক্ষতার?

এখানে সুস্পষ্ট O(kmn) সমাধান (যেখানে k স্ট্রিংয়ের আকার, mর‌্যামের শব্দের আকার (সাধারণত 32 বা )৪): তালিকার প্রতিটি উপাদান দিয়ে the এছাড়াও পরীক্ষা যদিvw যে কোনও আইটেম রাখে wযখন আমরা স্ক্যান করছি। যদিv আমাদের পরীক্ষা ব্যর্থ, তারপর যোগ করুন v সেট করতে, এবং অপসারণ wআমরা চিহ্নিত করেছি।

তবে তা যথেষ্ট দ্রুত নয়। এটি থাকলে খুব ভাল লাগতO(logn) সমাধান, বা, একটি নিখুঁত বিশ্বে, মূলা গাছের মতো জটিলতা (O(k))। ক্যোয়ারীগুলি প্রায় সঠিক হওয়াও ঠিক আছে : এটি যদি হয়vw, তারপর হ্যাঁ বা না ফিরে; তবে শর্তটি যদি না ধরে থাকে তবে অবশ্যই ফিরে আসবে।

যদিও এটি সবচেয়ে খারাপ ক্ষেত্রে জটিলতায় সহায়তা করে না, আপনি ধরে নিতে পারেন যে সমস্ত উপাদান এতে রয়েছে Sএকটি ওয়াইল্ডকার্ড স্ট্রিং দ্বারা আবদ্ধ হয়; যে কিছু আছেv যেমন সবার জন্য wS, vw

আমি চেষ্টা করেছি

  • ওয়াইল্ডকার্ড স্ট্রিংগুলি একটি জয়েন্ট-সেলিমিটাইস গঠন করে। আমাদের কাছে এন-আরি গাছ থাকতে পারে যা ওয়াইল্ডকার্ডের স্ট্রিংগুলি ধারণ করে; পাতাগুলি ওয়াইল্ডকার্ডের স্ট্রিং হবে এবং ডালগুলি বাচ্চাদের সমস্তের যোগদানের প্রতিনিধিত্ব করবে। যদি কোয়েরি এবং যোগদানটি অতুলনীয় হয়, তবে সেই শাখার সমস্ত সন্তানের সাথে তুলনা করার চেষ্টা করতে আমাদের সময় নষ্ট করতে হবে না। তদুপরি, যদি আমরা একটি আপডেট করি এবং আপডেটটি কোনও যোগদানের চেয়ে বড় হয় তবে আমরা কেবল পুরো শাখাটি মুছতে পারি। দুর্ভাগ্যক্রমে, এটি এখনও আছেO(n) সবচেয়ে খারাপ ক্ষেত্রে এবং উপাদান যুক্ত করার জন্য গাছের মাধ্যমে স্ক্যান করার সময় আমরা সর্বদা "সেরা" যোগ দিতে পাই না।
  • যে কোনও একটি এর মূলাঙ্ক ট্রাই গঠন করতে পারে S। আমরা জানি যেSকিছু ওয়াইল্ডকার্ড স্ট্রিং দ্বারা আবদ্ধ; ধরুন এটি 0? 0? তারপরে ট্রাইয়ের সমস্ত শাখা কেবল স্ট্রিংয়ের প্রথম এবং তৃতীয় বিটগুলিতে থাকতে হবে। বর্তমান বিটটি আমরা কোয়েরিতে শাখা করছি যদি 1 1 হয় তবে আমাদের পরীক্ষা করতে হবে? এবং 1 শাখা; যদি এটি 0 হয়, আমরা কি পরীক্ষা করব? এবং 0 টি শাখা; যদি এটি হয়?, আমরা কেবল পরীক্ষা করব? শাখা। যেহেতু আমাদের সম্ভাব্য একাধিক শাখা নিতে হবে, এটি খুব ভাল বলে মনে হচ্ছে না (একই কারণে ট্রাই আপডেট করা শক্ত)। যেহেতু মিলে যাওয়া খুব তাত্ক্ষণিক ক্রিয়াকলাপ, তাই গাছটিতে প্রচুর ট্র্যাভারিংয়ের চালক কৌশলটির তুলনায় এটি ব্যথিত হয় (কিছু ওআরএড এবং এ্যান্ডএস করার চেয়ে পয়েন্টারগুলির একগুচ্ছ অনুসরণ করা আরও ব্যয়বহুল)।

সম্পর্কিত কাজ

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

  • অ্যালগরিদম সম্প্রদায়টিতে আমি সাবস্ক্রাইটিংগুলি খুঁজে পাওয়া সম্পর্কিত অনেকগুলি ফলাফল পেয়েছি যা "পরোয়া করে না" এর সাথে মেলে। এটি যথেষ্ট কঠিন সমস্যা এবং আমি সত্যিই কোনও কৌশল ব্যবহার করতে পারি না।

উপসংহারে

কোন সাহায্যের জন্য ধন্যবাদ!


1
স্ট্রিংগুলি কত বড় অনুমতি দেওয়া হয়? এবং কেন আপনি জটিলতায় তাদের দৈর্ঘ্যের জন্য অ্যাকাউন্টিং করছেন না? স্পষ্টতই আপনার স্ট্রিংগুলি হওয়া দরকারΩ(logn) অন্যথায় আপনি ঠিক না nস্বতন্ত্র স্ট্রিং সঙ্গে কাজ করতে। এটি স্বজ্ঞাতও মনে হয় যদি আপনি অনুমতি দেনO(n)দৈর্ঘ্যের স্ট্রিং, তারপরে আপনাকে আপনার ডেটা স্ট্রাকচারে আপনার সমস্ত স্ট্রিং সবচেয়ে খারাপ অবস্থায় দেখতে হবে ... স্ট্রিংয়ের দৈর্ঘ্যের কোনও সীমা আছে? পলি-লগারিদমিক?o(n)?
Artem Kaznatcheev

আমি পরিষ্কার না হলে দুঃখিত। স্ট্রিং আছেO(1)আকার; সমস্ত উদ্দেশ্য এবং উদ্দেশ্যগুলির জন্য, আপনি এগুলি 32 অক্ষর দীর্ঘ বলে ভাবতে পারেন। "স্ট্রিং" সমস্যা তৈরির জন্য কেবল একটি সুবিধাজনক বিমূর্ততা ছিল - এগুলিকে আসলে (পূর্ণসংখ্যা, বিটমাস্ক) টিপলস হিসাবে উপস্থাপন করা হয়, যাতে আমি যোগদানের গণনা করতে পারি এবংvwশুধুমাত্র কয়েকটি মেশিন অপারেশন। (অবশ্যই, সমস্যাটি প্রাকৃতিক এবং বিটমাস্ক ক্ষেত্রের সংখ্যা বাড়িয়ে স্বাভাবিকভাবে বৃহত্তর ধ্রুব আকারের স্ট্রিংগুলিতে বাড়ানো যেতে পারে)।
ক্রিস্টোফার মনসান্টো

আমার উপরের মন্তব্যটি সম্ভবত কোনও জটিলতার যুক্তির জন্য সহায়ক নয় :( আপনি যদি স্ট্রিংয়ের আকারও আলাদা করতে দেন তবে স্ট্রিংয়ের আকার এবং সেটের আকারের মধ্যে সত্যই কোনও সম্পর্ক নেই If হচ্ছে সম্পর্কে সত্য O(n)সবচেয়ে খারাপ ঘটনাটি দুর্ভাগ্যজনক, তবে, আমি যাইহোক, গড়-মামলায় (বা আনুমানিক) আরও বেশি আগ্রহী।
ক্রিস্টোফার মনসান্টো

উত্তর:


3

সসীম-রাষ্ট্রীয় অটোমেটন কীভাবে ব্যবহার করবেন? ভাষাSসীমাবদ্ধ এবং তাই নিয়মিত। এমনকি নীচের রূপান্তরগুলি পরেও এটি নিয়মিত থাকবে। সুতরাং নিয়মিত ভাবটিকে একটি নির্জ্ঞানী সসীম-রাষ্ট্রীয় অটোমেটনে রূপান্তরিত করার স্বাভাবিক পদক্ষেপের পরে, আপনি যা চান সেটি পরিচালনা করার জন্য আপনার একটি সনাক্তকারী থাকবেO(k)সময়। আশা করি নীচে প্রস্তাবিত বাগগুলি থাকলে এই ধারণাটি এখনও কার্যকর হবে work

রিংকলটি কীভাবে ওয়াইল্ডকার্ড অপারেটরের সাথে ডিল করবেন:?। ওয়াইল্ডকার্ড স্ট্রিংয়ের একটি ওয়াইল্ডকার্ড একটি পরীক্ষার স্ট্রিংয়ে 0 বা 1 এর সাথে মেলে। তবে যেহেতু আমরা ওয়াইল্ডকার্ড স্ট্রিংগুলি সনাক্ত করার চেষ্টা করছি, একটি ওয়াইল্ডকার্ড স্ট্রিংয়ের একটি ওয়াইল্ডকার্ড 0, 1, বা এর সাথে মেলে? অন্য একটি ওয়াইল্ডকার্ড স্ট্রিংয়ে। এই সেটটি এখনও নিয়মিত, সুতরাং আমরা প্রতিটি ঘটনাকে রূপান্তর করব? নিয়মিত অভিব্যক্তিতে (0 | 1 |?) যেখানে উল্লম্ব বারটি সাধারণ বিকল্প অপারেটর। সুতরাং যদি আপনার পুরো সেটS {10 ?? 1, 0? 1? 0}, ফলে নিয়মিত প্রকাশটি হবে (10 (0 | 1 |?) (0 | 1 |?) 1 | 0 (0 | 1 |?) 1 (0 | | 1 |?) 0)

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

এটা কি সাহায্য করে?


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

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

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